Assembly Diffs

linux arm64

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

MISSED contexts: base: 3,546 (0.14%), diff: 3,956 (0.16%)

Overall (+654,368 bytes)

Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.linux.arm64.checked.mch 509,785,008 +3,556
libraries.crossgen2.linux.arm64.checked.mch 55,736,760 -384
libraries.pmi.linux.arm64.checked.mch 75,995,136 +60
libraries_tests.run.linux.arm64.Release.mch 380,612,024 +651,896
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 162,531,948 -888
smoke_tests.nativeaot.linux.arm64.checked.mch 2,948,924 +128

FullOpts (+654,368 bytes)

Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.linux.arm64.checked.mch 160,559,952 +3,556
libraries.crossgen2.linux.arm64.checked.mch 55,735,124 -384
libraries.pmi.linux.arm64.checked.mch 75,875,152 +60
libraries_tests.run.linux.arm64.Release.mch 165,314,884 +651,896
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 149,050,736 -888
smoke_tests.nativeaot.linux.arm64.checked.mch 2,947,976 +128

Example diffs

coreclr_tests.run.linux.arm64.checked.mch

-28 (-2.50%) : 412769.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)

@@ -9,52 +9,53 @@
 ; 4 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
+;  V00 this         [V00,T06] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
 ;  V01 RetBuf       [V01,T01] (  6,  6   )   byref  ->  x20         single-def
-;  V02 arg1         [V02,T04] ( 14,  4   )     ref  ->  x21         ld-addr-op class-hnd <System.String>
+;  V02 arg1         [V02,T05] ( 14,  4   )     ref  ->  x21         ld-addr-op class-hnd <System.String>
 ;  V03 arg2         [V03,T00] (  6,  6.54)     int  ->  x19        
-;  V04 arg3         [V04,T06] (  4,  3.89)     ref  ->  x23         class-hnd single-def <System.Type[]>
-;  V05 arg4         [V05,T08] (  3,  3   )   ubyte  ->  x24         single-def
-;  V06 loc0         [V06,T20] (  3,  2.40)   ubyte  ->  x25         ld-addr-op
-;  V07 loc1         [V07,T24] (  3,  1   )   ubyte  ->  x26         ld-addr-op
-;  V08 loc2         [V08,T22] (  7,  2   )     int  ->  x27         ld-addr-op
-;  V09 loc3         [V09,T19] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
+;  V04 arg3         [V04,T07] (  4,  3.89)     ref  ->  x23         class-hnd single-def <System.Type[]>
+;  V05 arg4         [V05,T09] (  3,  3   )   ubyte  ->  x24         single-def
+;  V06 loc0         [V06,T21] (  3,  2.40)   ubyte  ->  x25         ld-addr-op
+;  V07 loc1         [V07,T25] (  3,  1   )   ubyte  ->  x26         ld-addr-op
+;  V08 loc2         [V08,T23] (  7,  2   )     int  ->  x27         ld-addr-op
+;  V09 loc3         [V09,T20] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
 ;  V10 loc4         [V10    ] (  9,  9.40)  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]>
 ;  V11 loc5         [V11,T02] (  5,  7.16)     int  ->  x22        
-;  V12 loc6         [V12,T03] (  7,  5.94)     ref  ->  x27         class-hnd exact <System.Reflection.RuntimePropertyInfo>
+;  V12 loc6         [V12,T04] (  7,  5.94)     ref  ->  [fp+0x10]  class-hnd exact spill-single-def <System.Reflection.RuntimePropertyInfo>
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V16 tmp3         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
-;  V18 tmp5         [V18,T12] (  5,  4   )     ref  ->  x28         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
-;  V19 tmp6         [V19,T07] (  5,  5   )     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <System.Object>
-;  V20 tmp7         [V20,T14] (  2,  4   )     ref  ->   x0         class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
+;  V18 tmp5         [V18,T13] (  5,  4   )     ref  ->  x28         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
+;  V19 tmp6         [V19,T08] (  5,  5   )     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;  V20 tmp7         [V20,T15] (  2,  4   )     ref  ->   x0         class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
 ;* V21 tmp8         [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.RuntimeType+RuntimeTypeCache>
 ;* V22 tmp9         [V22    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp10        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V24 tmp11        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V25 tmp12        [V25,T13] (  4,  4   )   byref  ->  x22         single-def "Inlining Arg"
+;  V25 tmp12        [V25,T14] (  4,  4   )   byref  ->  x22         single-def "Inlining Arg"
 ;* V26 tmp13        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V27 tmp14        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
-;  V28 tmp15        [V28,T11] ( 14,  4   )     ref  ->  registers   class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V29 tmp16        [V29,T26] (  4,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V28 tmp15        [V28,T12] ( 14,  4   )     ref  ->  registers   class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V29 tmp16        [V29,T27] (  4,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V30 tmp17        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V31 tmp18        [V31,T23] (  5,  2   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V32 tmp19        [V32,T15] (  2,  4   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
-;  V33 tmp20        [V33,T17] (  4,  3   )     ref  ->   x0        
-;  V34 tmp21        [V34,T28] (  2,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
-;  V35 tmp22        [V35,T27] (  4,  0   )     ref  ->   x0        
-;  V36 tmp23        [V36,T16] (  2,  4   )     int  ->   x1         "Inlining Arg"
+;  V31 tmp18        [V31,T24] (  5,  2   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
+;  V32 tmp19        [V32,T16] (  2,  4   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
+;  V33 tmp20        [V33,T18] (  4,  3   )     ref  ->   x0        
+;  V34 tmp21        [V34,T29] (  2,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
+;  V35 tmp22        [V35,T28] (  4,  0   )     ref  ->   x0        
+;  V36 tmp23        [V36,T17] (  2,  4   )     int  ->   x1         "Inlining Arg"
 ;  V37 tmp24        [V37    ] (  3,  3.40)     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V10._items (fldOffset=0x0)" P-DEP
 ;  V38 tmp25        [V38    ] (  3,  3.40)     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V10._item (fldOffset=0x8)" P-DEP
 ;  V39 tmp26        [V39    ] (  3,  3.40)     int  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V10._count (fldOffset=0x10)" P-DEP
 ;  V40 tmp27        [V40    ] (  3,  3.40)     int  ->  [fp+0x2C]  do-not-enreg[X] addr-exposed "field V10._capacity (fldOffset=0x14)" P-DEP
-;* V41 tmp28        [V41,T25] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V42 cse0         [V42,T09] (  3,  4.62)     int  ->   x0         "CSE - moderate"
-;  V43 cse1         [V43,T18] (  3,  3   )    long  ->   x0         "CSE - moderate"
-;  V44 cse2         [V44,T10] (  4,  4.54)     int  ->  x24         "CSE - aggressive"
-;  V45 cse3         [V45,T21] (  2,  2.15)   byref  ->  x28         hoist "CSE - moderate"
+;* V41 tmp28        [V41,T26] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V42 cse0         [V42,T10] (  3,  4.62)     int  ->   x0         "CSE - moderate"
+;  V43 cse1         [V43,T19] (  3,  3   )    long  ->   x0         "CSE - moderate"
+;  V44 cse2         [V44,T03] ( 10,  6.52)    long  ->  x27         hoist multi-def "CSE - aggressive"
+;  V45 cse3         [V45,T11] (  4,  4.54)     int  ->  x24         "CSE - moderate"
+;  V46 cse4         [V46,T22] (  2,  2.15)   byref  ->  x28         hoist "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -146,7 +147,7 @@ G_M37807_IG07:        ; bbWeight=1, gcrefRegs=E00000 {x21 x22 x23}, byrefRegs=10
                        ;; size=4 bbWeight=1 PerfScore 0.50
 G_M37807_IG08:        ; bbWeight=1, gcrefRegs=E00000 {x21 x22 x23}, byrefRegs=100000 {x20}, byref, isz
             tst     w24, #255
-            bne     G_M37807_IG31
+            bne     G_M37807_IG32
             b       G_M37807_IG04
                        ;; size=12 bbWeight=1 PerfScore 2.50
 G_M37807_IG09:        ; bbWeight=1, gcrefRegs=E00000 {x21 x22 x23}, byrefRegs=100000 {x20}, byref
@@ -225,8 +226,8 @@ G_M37807_IG13:        ; bbWeight=1, gcrefRegs=1A00000 {x21 x23 x24}, byrefRegs=1
                        ;; size=12 bbWeight=1 PerfScore 4.50
 G_M37807_IG14:        ; bbWeight=0, gcrefRegs=1A00000 {x21 x23 x24}, byrefRegs=100000 {x20}, byref, isz
             cmp     w27, #2
-            beq     G_M37807_IG32
-            b       G_M37807_IG34
+            beq     G_M37807_IG33
+            b       G_M37807_IG35
                        ;; size=12 bbWeight=0 PerfScore 0.00
 G_M37807_IG15:        ; bbWeight=1, gcrefRegs=1A00000 {x21 x23 x24}, byrefRegs=100000 {x20}, byref, isz
             add     x0, x24, #32
@@ -270,30 +271,36 @@ G_M37807_IG17:        ; bbWeight=1, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=100
             stp     wzr, w1, [fp, #0x28]   // [V39 tmp26], [V40 tmp27]
             mov     w22, wzr
             cmp     w24, #0
-            ble     G_M37807_IG29
+            ble     G_M37807_IG30
                        ;; size=32 bbWeight=1 PerfScore 8.00
 G_M37807_IG18:        ; bbWeight=0.61, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=100000 {x20}, byref
             add     x28, x0, #16
             ; byrRegs +[x28]
-                       ;; size=4 bbWeight=0.61 PerfScore 0.30
+            movz    x27, #0xD1FFAB1E
+            movk    x27, #0xD1FFAB1E LSL #16
+            movk    x27, #0xD1FFAB1E LSL #32
+                       ;; size=16 bbWeight=0.61 PerfScore 1.21
 G_M37807_IG19:        ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x27, [x28, w22, UXTW #3]
-            ; gcrRegs +[x27]
-            ldr     w0, [x27, #0x58]
+            ldr     x2, [x28, w22, UXTW #3]
+            ; gcrRegs +[x2]
+            str     x2, [fp, #0x10]    // [V12 loc6]
+            ; GC ptr vars +{V12}
+            ldr     w0, [x2, #0x58]
             and     w1, w19, w0
             cmp     w1, w0
             bne     G_M37807_IG26
-                       ;; size=20 bbWeight=1.54 PerfScore 12.32
-G_M37807_IG20:        ; bbWeight=1.40, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
+                       ;; size=24 bbWeight=1.54 PerfScore 13.86
+G_M37807_IG20:        ; bbWeight=1.40, gcVars=0000000000000010 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, gcvars, byref, isz
             cbz     w25, G_M37807_IG22
                        ;; size=4 bbWeight=1.40 PerfScore 1.40
-G_M37807_IG21:        ; bbWeight=0, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            mov     x0, x27
+G_M37807_IG21:        ; bbWeight=0, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
             mov     x1, x21
             ; gcrRegs +[x1]
             mov     w2, w26
+            ; gcrRegs -[x2]
             movz    x3, #0xD1FFAB1E      // code for System.RuntimeType:FilterApplyPrefixLookup(System.Reflection.MemberInfo,System.String,ubyte):ubyte
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
@@ -301,28 +308,26 @@ G_M37807_IG21:        ; bbWeight=0, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=1
             blr     x3
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbz     w0, G_M37807_IG36
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            cbz     w0, G_M37807_IG37
+            mov     x0, x27
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=52 bbWeight=0 PerfScore 0.00
-G_M37807_IG22:        ; bbWeight=1.40, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            cbz     x23, G_M37807_IG25
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
+            ; gcrRegs +[x2]
+                       ;; size=48 bbWeight=0 PerfScore 0.00
+G_M37807_IG22:        ; bbWeight=1.40, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            cbz     x23, G_M37807_IG28
                        ;; size=4 bbWeight=1.40 PerfScore 1.40
-G_M37807_IG23:        ; bbWeight=0.49, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            mov     x0, x27
+G_M37807_IG23:        ; bbWeight=0.49, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
+            add     x1, x27, #8
             bl      CORINFO_HELP_CLASSPROFILE32
-            ; gcrRegs -[x0]
+            ; gcrRegs -[x0 x2]
             ; gcr arg pop 0
-            mov     x0, x27
+            ldr     x0, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x0]
-            ldr     x1, [x27]
+            ldr     x1, [x0]
             ldr     x1, [x1, #0x58]
             ldr     x1, [x1, #0x18]
             blr     x1
@@ -331,23 +336,19 @@ G_M37807_IG23:        ; bbWeight=0.49, gcrefRegs=8A00000 {x21 x23 x27}, byrefReg
             ; gcrRegs -[x0]
             ldr     w1, [x23, #0x08]
             cmp     w0, w1
-            bne     G_M37807_IG28
-                       ;; size=56 bbWeight=0.49 PerfScore 10.21
-G_M37807_IG24:        ; bbWeight=0.24, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            bne     G_M37807_IG29
+                       ;; size=48 bbWeight=0.49 PerfScore 10.45
+G_M37807_IG24:        ; bbWeight=0.24, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.24 PerfScore 0.61
-G_M37807_IG25:        ; bbWeight=1.40, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+                       ;; size=8 bbWeight=0.24 PerfScore 0.36
+G_M37807_IG25:        ; bbWeight=1.40, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     x0, fp, #24    // [V10 loc4]
-            mov     x2, x27
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x2]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -356,41 +357,45 @@ G_M37807_IG25:        ; bbWeight=1.40, gcrefRegs=8A00000 {x21 x23 x27}, byrefReg
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
+            ; GC ptr vars -{V12}
             blr     x3
-            ; gcrRegs -[x2 x27]
+            ; gcrRegs -[x2]
             ; gcr arg pop 0
-                       ;; size=56 bbWeight=1.40 PerfScore 14.73
+                       ;; size=48 bbWeight=1.40 PerfScore 15.44
 G_M37807_IG26:        ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     w22, w22, #1
             cmp     w24, w22
             bgt     G_M37807_IG19
-                       ;; size=28 bbWeight=1.54 PerfScore 6.93
+                       ;; size=20 bbWeight=1.54 PerfScore 5.39
 G_M37807_IG27:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
             ; gcrRegs -[x21 x23]
             ; byrRegs -[x28]
-            b       G_M37807_IG29
+            b       G_M37807_IG30
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M37807_IG28:        ; bbWeight=0.24, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref
...

-28 (-2.50%) : 412853.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)

@@ -9,52 +9,53 @@
 ; 4 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
+;  V00 this         [V00,T06] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
 ;  V01 RetBuf       [V01,T01] (  6,  6   )   byref  ->  x20         single-def
-;  V02 arg1         [V02,T04] ( 14,  4   )     ref  ->  x21         ld-addr-op class-hnd <System.String>
+;  V02 arg1         [V02,T05] ( 14,  4   )     ref  ->  x21         ld-addr-op class-hnd <System.String>
 ;  V03 arg2         [V03,T00] (  6,  6.54)     int  ->  x19        
-;  V04 arg3         [V04,T06] (  4,  3.89)     ref  ->  x23         class-hnd single-def <System.Type[]>
-;  V05 arg4         [V05,T08] (  3,  3   )   ubyte  ->  x24         single-def
-;  V06 loc0         [V06,T20] (  3,  2.40)   ubyte  ->  x25         ld-addr-op
-;  V07 loc1         [V07,T24] (  3,  1   )   ubyte  ->  x26         ld-addr-op
-;  V08 loc2         [V08,T22] (  7,  2   )     int  ->  x27         ld-addr-op
-;  V09 loc3         [V09,T19] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
+;  V04 arg3         [V04,T07] (  4,  3.89)     ref  ->  x23         class-hnd single-def <System.Type[]>
+;  V05 arg4         [V05,T09] (  3,  3   )   ubyte  ->  x24         single-def
+;  V06 loc0         [V06,T21] (  3,  2.40)   ubyte  ->  x25         ld-addr-op
+;  V07 loc1         [V07,T25] (  3,  1   )   ubyte  ->  x26         ld-addr-op
+;  V08 loc2         [V08,T23] (  7,  2   )     int  ->  x27         ld-addr-op
+;  V09 loc3         [V09,T20] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
 ;  V10 loc4         [V10    ] (  9,  9.40)  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]>
 ;  V11 loc5         [V11,T02] (  5,  7.16)     int  ->  x22        
-;  V12 loc6         [V12,T03] (  7,  5.94)     ref  ->  x27         class-hnd exact <System.Reflection.RuntimePropertyInfo>
+;  V12 loc6         [V12,T04] (  7,  5.94)     ref  ->  [fp+0x10]  class-hnd exact spill-single-def <System.Reflection.RuntimePropertyInfo>
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V16 tmp3         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
-;  V18 tmp5         [V18,T12] (  5,  4   )     ref  ->  x28         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
-;  V19 tmp6         [V19,T07] (  5,  5   )     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <System.Object>
-;  V20 tmp7         [V20,T14] (  2,  4   )     ref  ->   x0         class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
+;  V18 tmp5         [V18,T13] (  5,  4   )     ref  ->  x28         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
+;  V19 tmp6         [V19,T08] (  5,  5   )     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;  V20 tmp7         [V20,T15] (  2,  4   )     ref  ->   x0         class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
 ;* V21 tmp8         [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.RuntimeType+RuntimeTypeCache>
 ;* V22 tmp9         [V22    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp10        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V24 tmp11        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V25 tmp12        [V25,T13] (  4,  4   )   byref  ->  x22         single-def "Inlining Arg"
+;  V25 tmp12        [V25,T14] (  4,  4   )   byref  ->  x22         single-def "Inlining Arg"
 ;* V26 tmp13        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V27 tmp14        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
-;  V28 tmp15        [V28,T11] ( 14,  4   )     ref  ->  registers   class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V29 tmp16        [V29,T26] (  4,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V28 tmp15        [V28,T12] ( 14,  4   )     ref  ->  registers   class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V29 tmp16        [V29,T27] (  4,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V30 tmp17        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V31 tmp18        [V31,T23] (  5,  2   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V32 tmp19        [V32,T15] (  2,  4   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
-;  V33 tmp20        [V33,T17] (  4,  3   )     ref  ->   x0        
-;  V34 tmp21        [V34,T28] (  2,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
-;  V35 tmp22        [V35,T27] (  4,  0   )     ref  ->   x0        
-;  V36 tmp23        [V36,T16] (  2,  4   )     int  ->   x1         "Inlining Arg"
+;  V31 tmp18        [V31,T24] (  5,  2   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
+;  V32 tmp19        [V32,T16] (  2,  4   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
+;  V33 tmp20        [V33,T18] (  4,  3   )     ref  ->   x0        
+;  V34 tmp21        [V34,T29] (  2,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
+;  V35 tmp22        [V35,T28] (  4,  0   )     ref  ->   x0        
+;  V36 tmp23        [V36,T17] (  2,  4   )     int  ->   x1         "Inlining Arg"
 ;  V37 tmp24        [V37    ] (  3,  3.40)     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V10._items (fldOffset=0x0)" P-DEP
 ;  V38 tmp25        [V38    ] (  3,  3.40)     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V10._item (fldOffset=0x8)" P-DEP
 ;  V39 tmp26        [V39    ] (  3,  3.40)     int  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V10._count (fldOffset=0x10)" P-DEP
 ;  V40 tmp27        [V40    ] (  3,  3.40)     int  ->  [fp+0x2C]  do-not-enreg[X] addr-exposed "field V10._capacity (fldOffset=0x14)" P-DEP
-;* V41 tmp28        [V41,T25] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V42 cse0         [V42,T09] (  3,  4.62)     int  ->   x0         "CSE - moderate"
-;  V43 cse1         [V43,T18] (  3,  3   )    long  ->   x0         "CSE - moderate"
-;  V44 cse2         [V44,T10] (  4,  4.54)     int  ->  x24         "CSE - aggressive"
-;  V45 cse3         [V45,T21] (  2,  2.15)   byref  ->  x28         hoist "CSE - moderate"
+;* V41 tmp28        [V41,T26] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V42 cse0         [V42,T10] (  3,  4.62)     int  ->   x0         "CSE - moderate"
+;  V43 cse1         [V43,T19] (  3,  3   )    long  ->   x0         "CSE - moderate"
+;  V44 cse2         [V44,T03] ( 10,  6.52)    long  ->  x27         hoist multi-def "CSE - aggressive"
+;  V45 cse3         [V45,T11] (  4,  4.54)     int  ->  x24         "CSE - moderate"
+;  V46 cse4         [V46,T22] (  2,  2.15)   byref  ->  x28         hoist "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -146,7 +147,7 @@ G_M37807_IG07:        ; bbWeight=1, gcrefRegs=E00000 {x21 x22 x23}, byrefRegs=10
                        ;; size=4 bbWeight=1 PerfScore 0.50
 G_M37807_IG08:        ; bbWeight=1, gcrefRegs=E00000 {x21 x22 x23}, byrefRegs=100000 {x20}, byref, isz
             tst     w24, #255
-            bne     G_M37807_IG31
+            bne     G_M37807_IG32
             b       G_M37807_IG04
                        ;; size=12 bbWeight=1 PerfScore 2.50
 G_M37807_IG09:        ; bbWeight=1, gcrefRegs=E00000 {x21 x22 x23}, byrefRegs=100000 {x20}, byref
@@ -225,8 +226,8 @@ G_M37807_IG13:        ; bbWeight=1, gcrefRegs=1A00000 {x21 x23 x24}, byrefRegs=1
                        ;; size=12 bbWeight=1 PerfScore 4.50
 G_M37807_IG14:        ; bbWeight=0, gcrefRegs=1A00000 {x21 x23 x24}, byrefRegs=100000 {x20}, byref, isz
             cmp     w27, #2
-            beq     G_M37807_IG32
-            b       G_M37807_IG34
+            beq     G_M37807_IG33
+            b       G_M37807_IG35
                        ;; size=12 bbWeight=0 PerfScore 0.00
 G_M37807_IG15:        ; bbWeight=1, gcrefRegs=1A00000 {x21 x23 x24}, byrefRegs=100000 {x20}, byref, isz
             add     x0, x24, #32
@@ -270,30 +271,36 @@ G_M37807_IG17:        ; bbWeight=1, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=100
             stp     wzr, w1, [fp, #0x28]   // [V39 tmp26], [V40 tmp27]
             mov     w22, wzr
             cmp     w24, #0
-            ble     G_M37807_IG29
+            ble     G_M37807_IG30
                        ;; size=32 bbWeight=1 PerfScore 8.00
 G_M37807_IG18:        ; bbWeight=0.61, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=100000 {x20}, byref
             add     x28, x0, #16
             ; byrRegs +[x28]
-                       ;; size=4 bbWeight=0.61 PerfScore 0.30
+            movz    x27, #0xD1FFAB1E
+            movk    x27, #0xD1FFAB1E LSL #16
+            movk    x27, #0xD1FFAB1E LSL #32
+                       ;; size=16 bbWeight=0.61 PerfScore 1.21
 G_M37807_IG19:        ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x27, [x28, w22, UXTW #3]
-            ; gcrRegs +[x27]
-            ldr     w0, [x27, #0x58]
+            ldr     x2, [x28, w22, UXTW #3]
+            ; gcrRegs +[x2]
+            str     x2, [fp, #0x10]    // [V12 loc6]
+            ; GC ptr vars +{V12}
+            ldr     w0, [x2, #0x58]
             and     w1, w19, w0
             cmp     w1, w0
             bne     G_M37807_IG26
-                       ;; size=20 bbWeight=1.54 PerfScore 12.32
-G_M37807_IG20:        ; bbWeight=1.40, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
+                       ;; size=24 bbWeight=1.54 PerfScore 13.86
+G_M37807_IG20:        ; bbWeight=1.40, gcVars=0000000000000010 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, gcvars, byref, isz
             cbz     w25, G_M37807_IG22
                        ;; size=4 bbWeight=1.40 PerfScore 1.40
-G_M37807_IG21:        ; bbWeight=0, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            mov     x0, x27
+G_M37807_IG21:        ; bbWeight=0, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
             mov     x1, x21
             ; gcrRegs +[x1]
             mov     w2, w26
+            ; gcrRegs -[x2]
             movz    x3, #0xD1FFAB1E      // code for System.RuntimeType:FilterApplyPrefixLookup(System.Reflection.MemberInfo,System.String,ubyte):ubyte
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
@@ -301,28 +308,26 @@ G_M37807_IG21:        ; bbWeight=0, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=1
             blr     x3
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbz     w0, G_M37807_IG36
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            cbz     w0, G_M37807_IG37
+            mov     x0, x27
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=52 bbWeight=0 PerfScore 0.00
-G_M37807_IG22:        ; bbWeight=1.40, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            cbz     x23, G_M37807_IG25
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
+            ; gcrRegs +[x2]
+                       ;; size=48 bbWeight=0 PerfScore 0.00
+G_M37807_IG22:        ; bbWeight=1.40, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            cbz     x23, G_M37807_IG28
                        ;; size=4 bbWeight=1.40 PerfScore 1.40
-G_M37807_IG23:        ; bbWeight=0.49, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            mov     x0, x27
+G_M37807_IG23:        ; bbWeight=0.49, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
+            add     x1, x27, #8
             bl      CORINFO_HELP_CLASSPROFILE32
-            ; gcrRegs -[x0]
+            ; gcrRegs -[x0 x2]
             ; gcr arg pop 0
-            mov     x0, x27
+            ldr     x0, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x0]
-            ldr     x1, [x27]
+            ldr     x1, [x0]
             ldr     x1, [x1, #0x58]
             ldr     x1, [x1, #0x18]
             blr     x1
@@ -331,23 +336,19 @@ G_M37807_IG23:        ; bbWeight=0.49, gcrefRegs=8A00000 {x21 x23 x27}, byrefReg
             ; gcrRegs -[x0]
             ldr     w1, [x23, #0x08]
             cmp     w0, w1
-            bne     G_M37807_IG28
-                       ;; size=56 bbWeight=0.49 PerfScore 10.21
-G_M37807_IG24:        ; bbWeight=0.24, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            bne     G_M37807_IG29
+                       ;; size=48 bbWeight=0.49 PerfScore 10.45
+G_M37807_IG24:        ; bbWeight=0.24, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.24 PerfScore 0.61
-G_M37807_IG25:        ; bbWeight=1.40, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+                       ;; size=8 bbWeight=0.24 PerfScore 0.36
+G_M37807_IG25:        ; bbWeight=1.40, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     x0, fp, #24    // [V10 loc4]
-            mov     x2, x27
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x2]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -356,41 +357,45 @@ G_M37807_IG25:        ; bbWeight=1.40, gcrefRegs=8A00000 {x21 x23 x27}, byrefReg
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
+            ; GC ptr vars -{V12}
             blr     x3
-            ; gcrRegs -[x2 x27]
+            ; gcrRegs -[x2]
             ; gcr arg pop 0
-                       ;; size=56 bbWeight=1.40 PerfScore 14.73
+                       ;; size=48 bbWeight=1.40 PerfScore 15.44
 G_M37807_IG26:        ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     w22, w22, #1
             cmp     w24, w22
             bgt     G_M37807_IG19
-                       ;; size=28 bbWeight=1.54 PerfScore 6.93
+                       ;; size=20 bbWeight=1.54 PerfScore 5.39
 G_M37807_IG27:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
             ; gcrRegs -[x21 x23]
             ; byrRegs -[x28]
-            b       G_M37807_IG29
+            b       G_M37807_IG30
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M37807_IG28:        ; bbWeight=0.24, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref
...

-28 (-2.50%) : 411670.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)

@@ -9,52 +9,53 @@
 ; 4 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
+;  V00 this         [V00,T06] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
 ;  V01 RetBuf       [V01,T01] (  6,  6   )   byref  ->  x20         single-def
-;  V02 arg1         [V02,T04] ( 14,  4   )     ref  ->  x21         ld-addr-op class-hnd <System.String>
+;  V02 arg1         [V02,T05] ( 14,  4   )     ref  ->  x21         ld-addr-op class-hnd <System.String>
 ;  V03 arg2         [V03,T00] (  6,  6.54)     int  ->  x19        
-;  V04 arg3         [V04,T06] (  4,  3.89)     ref  ->  x23         class-hnd single-def <System.Type[]>
-;  V05 arg4         [V05,T08] (  3,  3   )   ubyte  ->  x24         single-def
-;  V06 loc0         [V06,T20] (  3,  2.40)   ubyte  ->  x25         ld-addr-op
-;  V07 loc1         [V07,T24] (  3,  1   )   ubyte  ->  x26         ld-addr-op
-;  V08 loc2         [V08,T22] (  7,  2   )     int  ->  x27         ld-addr-op
-;  V09 loc3         [V09,T19] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
+;  V04 arg3         [V04,T07] (  4,  3.89)     ref  ->  x23         class-hnd single-def <System.Type[]>
+;  V05 arg4         [V05,T09] (  3,  3   )   ubyte  ->  x24         single-def
+;  V06 loc0         [V06,T21] (  3,  2.40)   ubyte  ->  x25         ld-addr-op
+;  V07 loc1         [V07,T25] (  3,  1   )   ubyte  ->  x26         ld-addr-op
+;  V08 loc2         [V08,T23] (  7,  2   )     int  ->  x27         ld-addr-op
+;  V09 loc3         [V09,T20] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
 ;  V10 loc4         [V10    ] (  9,  9.40)  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]>
 ;  V11 loc5         [V11,T02] (  5,  7.16)     int  ->  x22        
-;  V12 loc6         [V12,T03] (  7,  5.94)     ref  ->  x27         class-hnd exact <System.Reflection.RuntimePropertyInfo>
+;  V12 loc6         [V12,T04] (  7,  5.94)     ref  ->  [fp+0x10]  class-hnd exact spill-single-def <System.Reflection.RuntimePropertyInfo>
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V16 tmp3         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
-;  V18 tmp5         [V18,T12] (  5,  4   )     ref  ->  x28         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
-;  V19 tmp6         [V19,T07] (  5,  5   )     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <System.Object>
-;  V20 tmp7         [V20,T14] (  2,  4   )     ref  ->   x0         class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
+;  V18 tmp5         [V18,T13] (  5,  4   )     ref  ->  x28         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
+;  V19 tmp6         [V19,T08] (  5,  5   )     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;  V20 tmp7         [V20,T15] (  2,  4   )     ref  ->   x0         class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
 ;* V21 tmp8         [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.RuntimeType+RuntimeTypeCache>
 ;* V22 tmp9         [V22    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp10        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V24 tmp11        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V25 tmp12        [V25,T13] (  4,  4   )   byref  ->  x22         single-def "Inlining Arg"
+;  V25 tmp12        [V25,T14] (  4,  4   )   byref  ->  x22         single-def "Inlining Arg"
 ;* V26 tmp13        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V27 tmp14        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
-;  V28 tmp15        [V28,T11] ( 14,  4   )     ref  ->  registers   class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V29 tmp16        [V29,T26] (  4,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V28 tmp15        [V28,T12] ( 14,  4   )     ref  ->  registers   class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V29 tmp16        [V29,T27] (  4,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V30 tmp17        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V31 tmp18        [V31,T23] (  5,  2   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V32 tmp19        [V32,T15] (  2,  4   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
-;  V33 tmp20        [V33,T17] (  4,  3   )     ref  ->   x0        
-;  V34 tmp21        [V34,T28] (  2,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
-;  V35 tmp22        [V35,T27] (  4,  0   )     ref  ->   x0        
-;  V36 tmp23        [V36,T16] (  2,  4   )     int  ->   x1         "Inlining Arg"
+;  V31 tmp18        [V31,T24] (  5,  2   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
+;  V32 tmp19        [V32,T16] (  2,  4   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
+;  V33 tmp20        [V33,T18] (  4,  3   )     ref  ->   x0        
+;  V34 tmp21        [V34,T29] (  2,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
+;  V35 tmp22        [V35,T28] (  4,  0   )     ref  ->   x0        
+;  V36 tmp23        [V36,T17] (  2,  4   )     int  ->   x1         "Inlining Arg"
 ;  V37 tmp24        [V37    ] (  3,  3.40)     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V10._items (fldOffset=0x0)" P-DEP
 ;  V38 tmp25        [V38    ] (  3,  3.40)     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V10._item (fldOffset=0x8)" P-DEP
 ;  V39 tmp26        [V39    ] (  3,  3.40)     int  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V10._count (fldOffset=0x10)" P-DEP
 ;  V40 tmp27        [V40    ] (  3,  3.40)     int  ->  [fp+0x2C]  do-not-enreg[X] addr-exposed "field V10._capacity (fldOffset=0x14)" P-DEP
-;* V41 tmp28        [V41,T25] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V42 cse0         [V42,T09] (  3,  4.62)     int  ->   x0         "CSE - moderate"
-;  V43 cse1         [V43,T18] (  3,  3   )    long  ->   x0         "CSE - moderate"
-;  V44 cse2         [V44,T10] (  4,  4.54)     int  ->  x24         "CSE - aggressive"
-;  V45 cse3         [V45,T21] (  2,  2.15)   byref  ->  x28         hoist "CSE - moderate"
+;* V41 tmp28        [V41,T26] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V42 cse0         [V42,T10] (  3,  4.62)     int  ->   x0         "CSE - moderate"
+;  V43 cse1         [V43,T19] (  3,  3   )    long  ->   x0         "CSE - moderate"
+;  V44 cse2         [V44,T03] ( 10,  6.52)    long  ->  x27         hoist multi-def "CSE - aggressive"
+;  V45 cse3         [V45,T11] (  4,  4.54)     int  ->  x24         "CSE - moderate"
+;  V46 cse4         [V46,T22] (  2,  2.15)   byref  ->  x28         hoist "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -146,7 +147,7 @@ G_M37807_IG07:        ; bbWeight=1, gcrefRegs=E00000 {x21 x22 x23}, byrefRegs=10
                        ;; size=4 bbWeight=1 PerfScore 0.50
 G_M37807_IG08:        ; bbWeight=1, gcrefRegs=E00000 {x21 x22 x23}, byrefRegs=100000 {x20}, byref, isz
             tst     w24, #255
-            bne     G_M37807_IG31
+            bne     G_M37807_IG32
             b       G_M37807_IG04
                        ;; size=12 bbWeight=1 PerfScore 2.50
 G_M37807_IG09:        ; bbWeight=1, gcrefRegs=E00000 {x21 x22 x23}, byrefRegs=100000 {x20}, byref
@@ -225,8 +226,8 @@ G_M37807_IG13:        ; bbWeight=1, gcrefRegs=1A00000 {x21 x23 x24}, byrefRegs=1
                        ;; size=12 bbWeight=1 PerfScore 4.50
 G_M37807_IG14:        ; bbWeight=0, gcrefRegs=1A00000 {x21 x23 x24}, byrefRegs=100000 {x20}, byref, isz
             cmp     w27, #2
-            beq     G_M37807_IG32
-            b       G_M37807_IG34
+            beq     G_M37807_IG33
+            b       G_M37807_IG35
                        ;; size=12 bbWeight=0 PerfScore 0.00
 G_M37807_IG15:        ; bbWeight=1, gcrefRegs=1A00000 {x21 x23 x24}, byrefRegs=100000 {x20}, byref, isz
             add     x0, x24, #32
@@ -270,30 +271,36 @@ G_M37807_IG17:        ; bbWeight=1, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=100
             stp     wzr, w1, [fp, #0x28]   // [V39 tmp26], [V40 tmp27]
             mov     w22, wzr
             cmp     w24, #0
-            ble     G_M37807_IG29
+            ble     G_M37807_IG30
                        ;; size=32 bbWeight=1 PerfScore 8.00
 G_M37807_IG18:        ; bbWeight=0.61, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=100000 {x20}, byref
             add     x28, x0, #16
             ; byrRegs +[x28]
-                       ;; size=4 bbWeight=0.61 PerfScore 0.30
+            movz    x27, #0xD1FFAB1E
+            movk    x27, #0xD1FFAB1E LSL #16
+            movk    x27, #0xD1FFAB1E LSL #32
+                       ;; size=16 bbWeight=0.61 PerfScore 1.21
 G_M37807_IG19:        ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x27, [x28, w22, UXTW #3]
-            ; gcrRegs +[x27]
-            ldr     w0, [x27, #0x58]
+            ldr     x2, [x28, w22, UXTW #3]
+            ; gcrRegs +[x2]
+            str     x2, [fp, #0x10]    // [V12 loc6]
+            ; GC ptr vars +{V12}
+            ldr     w0, [x2, #0x58]
             and     w1, w19, w0
             cmp     w1, w0
             bne     G_M37807_IG26
-                       ;; size=20 bbWeight=1.54 PerfScore 12.32
-G_M37807_IG20:        ; bbWeight=1.40, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
+                       ;; size=24 bbWeight=1.54 PerfScore 13.86
+G_M37807_IG20:        ; bbWeight=1.40, gcVars=0000000000000010 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, gcvars, byref, isz
             cbz     w25, G_M37807_IG22
                        ;; size=4 bbWeight=1.40 PerfScore 1.40
-G_M37807_IG21:        ; bbWeight=0, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            mov     x0, x27
+G_M37807_IG21:        ; bbWeight=0, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
             mov     x1, x21
             ; gcrRegs +[x1]
             mov     w2, w26
+            ; gcrRegs -[x2]
             movz    x3, #0xD1FFAB1E      // code for System.RuntimeType:FilterApplyPrefixLookup(System.Reflection.MemberInfo,System.String,ubyte):ubyte
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
@@ -301,28 +308,26 @@ G_M37807_IG21:        ; bbWeight=0, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=1
             blr     x3
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbz     w0, G_M37807_IG36
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            cbz     w0, G_M37807_IG37
+            mov     x0, x27
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=52 bbWeight=0 PerfScore 0.00
-G_M37807_IG22:        ; bbWeight=1.40, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            cbz     x23, G_M37807_IG25
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
+            ; gcrRegs +[x2]
+                       ;; size=48 bbWeight=0 PerfScore 0.00
+G_M37807_IG22:        ; bbWeight=1.40, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            cbz     x23, G_M37807_IG28
                        ;; size=4 bbWeight=1.40 PerfScore 1.40
-G_M37807_IG23:        ; bbWeight=0.49, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            mov     x0, x27
+G_M37807_IG23:        ; bbWeight=0.49, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
+            add     x1, x27, #8
             bl      CORINFO_HELP_CLASSPROFILE32
-            ; gcrRegs -[x0]
+            ; gcrRegs -[x0 x2]
             ; gcr arg pop 0
-            mov     x0, x27
+            ldr     x0, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x0]
-            ldr     x1, [x27]
+            ldr     x1, [x0]
             ldr     x1, [x1, #0x58]
             ldr     x1, [x1, #0x18]
             blr     x1
@@ -331,23 +336,19 @@ G_M37807_IG23:        ; bbWeight=0.49, gcrefRegs=8A00000 {x21 x23 x27}, byrefReg
             ; gcrRegs -[x0]
             ldr     w1, [x23, #0x08]
             cmp     w0, w1
-            bne     G_M37807_IG28
-                       ;; size=56 bbWeight=0.49 PerfScore 10.21
-G_M37807_IG24:        ; bbWeight=0.24, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            bne     G_M37807_IG29
+                       ;; size=48 bbWeight=0.49 PerfScore 10.45
+G_M37807_IG24:        ; bbWeight=0.24, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.24 PerfScore 0.61
-G_M37807_IG25:        ; bbWeight=1.40, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+                       ;; size=8 bbWeight=0.24 PerfScore 0.36
+G_M37807_IG25:        ; bbWeight=1.40, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     x0, fp, #24    // [V10 loc4]
-            mov     x2, x27
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x2]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -356,41 +357,45 @@ G_M37807_IG25:        ; bbWeight=1.40, gcrefRegs=8A00000 {x21 x23 x27}, byrefReg
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
+            ; GC ptr vars -{V12}
             blr     x3
-            ; gcrRegs -[x2 x27]
+            ; gcrRegs -[x2]
             ; gcr arg pop 0
-                       ;; size=56 bbWeight=1.40 PerfScore 14.73
+                       ;; size=48 bbWeight=1.40 PerfScore 15.44
 G_M37807_IG26:        ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     w22, w22, #1
             cmp     w24, w22
             bgt     G_M37807_IG19
-                       ;; size=28 bbWeight=1.54 PerfScore 6.93
+                       ;; size=20 bbWeight=1.54 PerfScore 5.39
 G_M37807_IG27:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
             ; gcrRegs -[x21 x23]
             ; byrRegs -[x28]
-            b       G_M37807_IG29
+            b       G_M37807_IG30
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M37807_IG28:        ; bbWeight=0.24, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref
...

+8 (+0.37%) : 31206.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Instrumented Tier1)

@@ -10,27 +10,27 @@
 ;
 ;  V00 this         [V00,T23] (  9, 22.50)     ref  ->  x19         this class-hnd single-def <System.Buffers.SharedArrayPool`1[ushort]>
 ;  V01 loc0         [V01,T13] (  5, 33.50)     int  ->  x20        
-;  V02 loc1         [V02,T33] (  5, 19   )     int  ->  x21        
+;  V02 loc1         [V02,T32] (  5, 19   )     int  ->  x21        
 ;  V03 loc2         [V03,T22] (  7, 27   )     ref  ->  x22         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V04 loc3         [V04,T46] (  4, 10   )     ref  ->  x23         class-hnd exact single-def <<unknown class>>
-;  V05 loc4         [V05,T32] (  6, 19   )     int  ->  x24        
-;  V06 loc5         [V06,T40] (  8, 10.50)     ref  ->  [fp+0x48]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V04 loc3         [V04,T45] (  4, 10   )     ref  ->  x23         class-hnd exact single-def <<unknown class>>
+;  V05 loc4         [V05,T31] (  6, 19   )     int  ->  x24        
+;  V06 loc5         [V06,T39] (  8, 10.50)     ref  ->  [fp+0x40]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V07 loc6         [V07    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V08 loc7         [V08,T41] (  8, 10.50)     ref  ->  [fp+0x40]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V08 loc7         [V08,T40] (  8, 10.50)     ref  ->  [fp+0x38]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V09 loc8         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V10 loc9         [V10,T27] (  3, 20   )     ref  ->  x24         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V10 loc9         [V10,T26] (  3, 20   )     ref  ->  x24         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V11 loc10        [V11,T05] (  5, 66   )     int  ->  x20        
 ;  V12 loc11        [V12,T03] (  6, 64   )     ref  ->  x25         class-hnd <<unknown class>>
-;  V13 loc12        [V13,T47] (  2,  8.50)     int  ->  x24        
-;  V14 loc13        [V14,T70] (  3,  1.50)     int  ->  x24        
-;  V15 loc14        [V15,T42] (  8, 10.50)     ref  ->  [fp+0x38]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V13 loc12        [V13,T46] (  2,  8.50)     int  ->  x24        
+;  V14 loc13        [V14,T69] (  3,  1.50)     int  ->  x24        
+;  V15 loc14        [V15,T41] (  8, 10.50)     ref  ->  [fp+0x30]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V16 loc15        [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V17 loc16        [V17,T11] (  5, 36   )     ref  ->  x25         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V17 loc16        [V17,T11] (  6, 44   )     ref  ->  x25         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V18 loc17        [V18,T00] (  5,210   )     int  ->  x27        
-;  V19 loc18        [V19,T25] (  3, 24   )     int  ->   x3        
-;  V20 loc19        [V20,T08] (  6, 48   )     ref  ->  [fp+0x30]  class-hnd spill-single-def <<unknown class>>
+;  V19 loc18        [V19,T24] (  3, 24   )     int  ->   x2        
+;  V20 loc19        [V20,T08] (  6, 48   )     ref  ->  [fp+0x28]  class-hnd spill-single-def <<unknown class>>
 ;# V21 OutArgs      [V21    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V22 tmp1         [V22,T28] (  3, 20   )     ref  ->  x25         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V22 tmp1         [V22,T27] (  3, 20   )     ref  ->  x25         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
 ;* V23 tmp2         [V23    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V24 tmp3         [V24,T12] (  2, 36   )     int  ->  x26         "impAppendStmt"
 ;* V25 tmp4         [V25    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
@@ -40,76 +40,75 @@
 ;  V29 tmp8         [V29,T18] (  2, 32   )     int  ->  x27         "impAppendStmt"
 ;  V30 tmp9         [V30,T19] (  2, 32   )     int  ->  x25         "impAppendStmt"
 ;* V31 tmp10        [V31    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V32 tmp11        [V32,T58] (  3,  3   )     ref  ->  x19         single-def "handle histogram profile tmp"
+;  V32 tmp11        [V32,T57] (  3,  3   )     ref  ->  x19         single-def "handle histogram profile tmp"
 ;* V33 tmp12        [V33    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V34 tmp13        [V34    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V35 tmp14        [V35    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V36 tmp15        [V36,T59] (  3,  3   )     ref  ->  x21         single-def "handle histogram profile tmp"
+;  V36 tmp15        [V36,T58] (  3,  3   )     ref  ->  x21         single-def "handle histogram profile tmp"
 ;* V37 tmp16        [V37    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;  V38 tmp17        [V38,T02] (  3, 96   )     ref  ->  x25         "handle histogram profile tmp"
 ;* V39 tmp18        [V39    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V40 tmp19        [V40    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V41 tmp20        [V41    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V42 tmp21        [V42,T60] (  3,  3   )     ref  ->  x21         single-def "handle histogram profile tmp"
+;  V42 tmp21        [V42,T59] (  3,  3   )     ref  ->  x21         single-def "handle histogram profile tmp"
 ;* V43 tmp22        [V43    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V44 tmp23        [V44,T10] (  3, 48   )     ref  ->  [fp+0x28]  spill-single-def "handle histogram profile tmp"
+;  V44 tmp23        [V44,T10] (  3, 48   )     ref  ->  [fp+0x20]  spill-single-def "handle histogram profile tmp"
 ;* V45 tmp24        [V45    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V46 tmp25        [V46    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V47 tmp26        [V47    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V48 tmp27        [V48,T29] (  3, 20   )     int  ->  x27         "Inline stloc first use temp"
+;  V48 tmp27        [V48,T28] (  3, 20   )     int  ->  x27         "Inline stloc first use temp"
 ;* V49 tmp28        [V49    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V50 tmp29        [V50    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V51 tmp30        [V51,T54] (  3,  6   )     ref  ->   x0         class-hnd exact "Inline stloc first use temp" <<unknown class>>
+;  V51 tmp30        [V51,T53] (  3,  6   )     ref  ->   x0         class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;  V52 tmp31        [V52,T06] (  5, 66   )     int  ->  x25         "Inline stloc first use temp"
 ;  V53 tmp32        [V53,T20] (  2, 32   )     int  ->   x4         "Inlining Arg"
 ;  V54 tmp33        [V54,T21] (  2, 32   )     int  ->   x4         "Inlining Arg"
-;  V55 tmp34        [V55,T55] (  2,  4   )     ref  ->   x0         "field V07.key (fldOffset=0x0)" P-INDEP
-;  V56 tmp35        [V56,T67] (  1,  2   )     ref  ->   x1         "field V07.value (fldOffset=0x8)" P-INDEP
-;  V57 tmp36        [V57,T56] (  2,  4   )     ref  ->  x24         "field V09.key (fldOffset=0x0)" P-INDEP
-;  V58 tmp37        [V58,T68] (  1,  2   )     ref  ->   x1         "field V09.value (fldOffset=0x8)" P-INDEP
-;  V59 tmp38        [V59,T57] (  2,  4   )     ref  ->  x25         "field V16.key (fldOffset=0x0)" P-INDEP
-;  V60 tmp39        [V60,T69] (  1,  2   )     ref  ->   x1         "field V16.value (fldOffset=0x8)" P-INDEP
+;  V55 tmp34        [V55,T54] (  2,  4   )     ref  ->   x0         "field V07.key (fldOffset=0x0)" P-INDEP
+;  V56 tmp35        [V56,T66] (  1,  2   )     ref  ->   x1         "field V07.value (fldOffset=0x8)" P-INDEP
+;  V57 tmp36        [V57,T55] (  2,  4   )     ref  ->  x24         "field V09.key (fldOffset=0x0)" P-INDEP
+;  V58 tmp37        [V58,T67] (  1,  2   )     ref  ->   x1         "field V09.value (fldOffset=0x8)" P-INDEP
+;  V59 tmp38        [V59,T56] (  2,  4   )     ref  ->  x25         "field V16.key (fldOffset=0x0)" P-INDEP
+;  V60 tmp39        [V60,T68] (  1,  2   )     ref  ->   x1         "field V16.value (fldOffset=0x8)" P-INDEP
 ;* V61 tmp40        [V61    ] (  0,  0   )     ref  ->  zero-ref    "field V25.key (fldOffset=0x0)" P-DEP
 ;* V62 tmp41        [V62    ] (  0,  0   )     ref  ->  zero-ref    "field V25.value (fldOffset=0x8)" P-DEP
 ;* V63 tmp42        [V63    ] (  0,  0   )     ref  ->  zero-ref    "field V28.key (fldOffset=0x0)" P-DEP
 ;* V64 tmp43        [V64    ] (  0,  0   )     ref  ->  zero-ref    "field V28.value (fldOffset=0x8)" P-DEP
 ;* V65 tmp44        [V65    ] (  0,  0   )     ref  ->  zero-ref    "field V31.key (fldOffset=0x0)" P-DEP
 ;* V66 tmp45        [V66    ] (  0,  0   )     ref  ->  zero-ref    "field V31.value (fldOffset=0x8)" P-DEP
-;  V67 tmp46        [V67,T61] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V68 tmp47        [V68,T35] (  2, 16   )     ref  ->  x11         "argument with side effect"
-;  V69 tmp48        [V69,T51] (  2,  8   )     ref  ->   x0         "argument with side effect"
+;  V67 tmp46        [V67,T60] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V68 tmp47        [V68,T34] (  2, 16   )     ref  ->  x11         "argument with side effect"
+;  V69 tmp48        [V69,T50] (  2,  8   )     ref  ->   x0         "argument with side effect"
 ;  V70 tmp49        [V70,T15] (  2, 32   )     ref  ->   x1         "argument with side effect"
-;* V71 tmp50        [V71,T38] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V72 tmp51        [V72,T72] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V73 tmp52        [V73,T62] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V74 tmp53        [V74,T63] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V75 tmp54        [V75,T36] (  2, 16   )     ref  ->  x11         "argument with side effect"
-;  V76 tmp55        [V76,T52] (  2,  8   )     ref  ->   x0         "argument with side effect"
+;* V71 tmp50        [V71,T37] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V72 tmp51        [V72,T71] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V73 tmp52        [V73,T61] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V74 tmp53        [V74,T62] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V75 tmp54        [V75,T35] (  2, 16   )     ref  ->  x11         "argument with side effect"
+;  V76 tmp55        [V76,T51] (  2,  8   )     ref  ->   x0         "argument with side effect"
 ;  V77 tmp56        [V77,T07] (  2, 64   )     ref  ->   x1         "argument with side effect"
-;* V78 tmp57        [V78,T39] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V79 tmp58        [V79,T73] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V80 tmp59        [V80,T64] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V81 tmp60        [V81,T65] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V82 tmp61        [V82,T37] (  2, 16   )     ref  ->  x11         "argument with side effect"
-;  V83 tmp62        [V83,T53] (  2,  8   )     ref  ->   x0         "argument with side effect"
-;  V84 tmp63        [V84,T74] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V85 tmp64        [V85,T66] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V86 PSPSym       [V86,T71] (  1,  1   )    long  ->  [fp+0x58]  do-not-enreg[V] "PSPSym"
-;  V87 cse0         [V87,T48] (  4,  8   )     ref  ->  x23         multi-def "CSE - moderate"
-;  V88 cse1         [V88,T43] (  6, 10.50)     ref  ->  x23         multi-def "CSE - moderate"
-;  V89 cse2         [V89,T49] (  4,  8   )     ref  ->  x24         multi-def "CSE - moderate"
-;  V90 cse3         [V90,T44] (  6, 10.50)     ref  ->  x24         multi-def "CSE - moderate"
-;  V91 cse4         [V91,T50] (  4,  8   )     ref  ->  x25         multi-def "CSE - moderate"
-;  V92 cse5         [V92,T45] (  6, 10.50)     ref  ->  x25         multi-def "CSE - moderate"
-;  V93 cse6         [V93,T24] (  3, 24   )   byref  ->  [fp+0x20]  spill-single-def "CSE - moderate"
-;  V94 cse7         [V94,T09] (  4, 48   )    long  ->   x1         "CSE - aggressive"
-;  V95 cse8         [V95,T01] ( 48,185.50)    long  ->  registers   multi-def "CSE - aggressive"
-;  V96 cse9         [V96,T04] (  3, 68   )     int  ->  x28         "CSE - aggressive"
-;  V97 cse10        [V97,T14] ( 16, 32.50)    long  ->  x23         hoist multi-def "CSE - moderate"
-;  V98 cse11        [V98,T26] ( 21, 22.50)    long  ->  registers   multi-def "CSE - moderate"
-;  V99 cse12        [V99,T34] (  2, 18   )   byref  ->  [fp+0x18]  spill-single-def hoist "CSE - moderate"
-;  V100 cse13       [V100,T30] (  3, 20   )     int  ->  x28         "CSE - moderate"
-;  V101 cse14       [V101,T31] (  3, 20   )     int  ->  x23         "CSE - moderate"
+;* V78 tmp57        [V78,T38] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V79 tmp58        [V79,T72] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V80 tmp59        [V80,T63] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V81 tmp60        [V81,T64] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V82 tmp61        [V82,T36] (  2, 16   )     ref  ->  x11         "argument with side effect"
+;  V83 tmp62        [V83,T52] (  2,  8   )     ref  ->   x0         "argument with side effect"
+;  V84 tmp63        [V84,T73] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V85 tmp64        [V85,T65] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V86 PSPSym       [V86,T70] (  1,  1   )    long  ->  [fp+0x58]  do-not-enreg[V] "PSPSym"
+;  V87 cse0         [V87,T47] (  4,  8   )     ref  ->  x23         multi-def "CSE - moderate"
+;  V88 cse1         [V88,T42] (  6, 10.50)     ref  ->  x23         multi-def "CSE - moderate"
+;  V89 cse2         [V89,T48] (  4,  8   )     ref  ->  x24         multi-def "CSE - moderate"
+;  V90 cse3         [V90,T43] (  6, 10.50)     ref  ->  x24         multi-def "CSE - moderate"
+;  V91 cse4         [V91,T49] (  4,  8   )     ref  ->  x25         multi-def "CSE - moderate"
+;  V92 cse5         [V92,T44] (  6, 10.50)     ref  ->  x25         multi-def "CSE - moderate"
+;  V93 cse6         [V93,T09] (  5, 56   )    long  ->  [fp+0x48]  spill-single-def "CSE - aggressive"
+;  V94 cse7         [V94,T01] ( 48,185.50)    long  ->  registers   multi-def "CSE - aggressive"
+;  V95 cse8         [V95,T04] (  3, 68   )     int  ->  x28         "CSE - aggressive"
+;  V96 cse9         [V96,T14] ( 16, 32.50)    long  ->  x23         hoist multi-def "CSE - moderate"
+;  V97 cse10        [V97,T25] ( 21, 22.50)    long  ->  registers   multi-def "CSE - moderate"
+;  V98 cse11        [V98,T33] (  2, 18   )   byref  ->  [fp+0x18]  spill-single-def hoist "CSE - moderate"
+;  V99 cse12        [V99,T29] (  3, 20   )     int  ->  x28         "CSE - moderate"
+;  V100 cse13       [V100,T30] (  3, 20   )     int  ->  x23         "CSE - moderate"
 ;
 ; Lcl frame size = 80
 
@@ -221,10 +220,10 @@ G_M16016_IG07:        ; bbWeight=2, gcrefRegs=2C80000 {x19 x22 x23 x25}, byrefRe
             ble     G_M16016_IG09
             add     x5, x0, #16
             ; byrRegs +[x5]
-            str     x5, [fp, #0x18]    // [V99 cse12]
-            ; GC ptr vars +{V99}
+            str     x5, [fp, #0x18]    // [V98 cse11]
+            ; GC ptr vars +{V98}
                        ;; size=28 bbWeight=2 PerfScore 19.00
-G_M16016_IG08:        ; bbWeight=16, gcVars=00000000000000000000000400000000 {V99}, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0020 {x5}, gcvars, byref, isz
+G_M16016_IG08:        ; bbWeight=16, gcVars=00000000000000000000000200000000 {V98}, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0020 {x5}, gcvars, byref, isz
             ; gcrRegs -[x0]
             ldr     x0, [x5, w25, UXTW #3]
             ; gcrRegs +[x0]
@@ -243,13 +242,13 @@ G_M16016_IG08:        ; bbWeight=16, gcVars=00000000000000000000000400000000 {V9
             ; gcr arg pop 0
             add     w25, w25, #1
             cmp     w28, w25
-            ldr     x5, [fp, #0x18]    // [V99 cse12]
+            ldr     x5, [fp, #0x18]    // [V98 cse11]
             ; byrRegs +[x5]
             bgt     G_M16016_IG08
                        ;; size=60 bbWeight=16 PerfScore 280.00
 G_M16016_IG09:        ; bbWeight=4, gcVars=00000000000000000000000000000000 {}, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, gcvars, byref, isz
             ; byrRegs -[x5]
-            ; GC ptr vars -{V99}
+            ; GC ptr vars -{V98}
             movz    x26, #0xD1FFAB1E
             movk    x26, #0xD1FFAB1E LSL #16
             movk    x26, #0xD1FFAB1E LSL #32
@@ -289,10 +288,10 @@ G_M16016_IG11:        ; bbWeight=0.50, gcrefRegs=480000 {x19 x22}, byrefRegs=000
             ldr     x1, [x11]
             blr     x1
             ; gcr arg pop 0
-            str     x0, [fp, #0x48]    // [V06 loc5]
+            str     x0, [fp, #0x40]    // [V06 loc5]
             ; GC ptr vars +{V06}
                        ;; size=68 bbWeight=0.50 PerfScore 9.00
-G_M16016_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000010000000000 {V06}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M16016_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000008000000000 {V06}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
             b       G_M16016_IG14
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M16016_IG13:        ; bbWeight=2, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
@@ -300,7 +299,7 @@ G_M16016_IG13:        ; bbWeight=2, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, b
             add     x0, x26, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-            ldr     x0, [fp, #0x48]    // [V06 loc5]
+            ldr     x0, [fp, #0x40]    // [V06 loc5]
             ; gcrRegs +[x0]
             add     x1, x26, #0xD1FFAB1E
             bl      CORINFO_HELP_CLASSPROFILE32
@@ -321,7 +320,7 @@ G_M16016_IG13:        ; bbWeight=2, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, b
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x0, [fp, #0x48]    // [V06 loc5]
+            ldr     x0, [fp, #0x40]    // [V06 loc5]
             ; gcrRegs +[x0]
                        ;; size=60 bbWeight=2 PerfScore 35.00
 G_M16016_IG14:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
@@ -329,7 +328,7 @@ G_M16016_IG14:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x0, [fp, #0x48]    // [V06 loc5]
+            ldr     x0, [fp, #0x40]    // [V06 loc5]
             ; gcrRegs +[x0]
             mov     x23, x0
             ; gcrRegs +[x23]
@@ -348,7 +347,7 @@ G_M16016_IG15:        ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}
             add     x0, x26, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-            ldr     x0, [fp, #0x48]    // [V06 loc5]
+            ldr     x0, [fp, #0x40]    // [V06 loc5]
             ; gcrRegs +[x0]
             add     x1, x26, #0xD1FFAB1E
             ; GC ptr vars -{V06}
@@ -390,15 +389,15 @@ G_M16016_IG16:        ; bbWeight=0.50, gcrefRegs=480000 {x19 x22}, byrefRegs=000
             ldr     x1, [x11]
             blr     x1
             ; gcr arg pop 0
-            str     x0, [fp, #0x40]    // [V08 loc7]
+            str     x0, [fp, #0x38]    // [V08 loc7]
             ; GC ptr vars +{V08}
                        ;; size=60 bbWeight=0.50 PerfScore 7.00
-G_M16016_IG17:        ; bbWeight=4, gcVars=00000000000000000000020000000000 {V08}, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, gcvars, byref, isz
...

+8 (+0.38%) : 275858.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Instrumented Tier1)

@@ -10,27 +10,27 @@
 ;
 ;  V00 this         [V00,T23] (  9, 22.50)     ref  ->  x19         this class-hnd single-def <System.Buffers.SharedArrayPool`1[int]>
 ;  V01 loc0         [V01,T14] (  5, 33.50)     int  ->  x20        
-;  V02 loc1         [V02,T33] (  5, 19   )     int  ->  x21        
+;  V02 loc1         [V02,T32] (  5, 19   )     int  ->  x21        
 ;  V03 loc2         [V03,T22] (  7, 27   )     ref  ->  x22         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V04 loc3         [V04,T46] (  4, 10   )     ref  ->  x23         class-hnd exact single-def <<unknown class>>
-;  V05 loc4         [V05,T32] (  6, 19   )     int  ->  x24        
-;  V06 loc5         [V06,T40] (  8, 10.50)     ref  ->  [fp+0x48]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V04 loc3         [V04,T45] (  4, 10   )     ref  ->  x23         class-hnd exact single-def <<unknown class>>
+;  V05 loc4         [V05,T31] (  6, 19   )     int  ->  x24        
+;  V06 loc5         [V06,T39] (  8, 10.50)     ref  ->  [fp+0x40]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V07 loc6         [V07    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V08 loc7         [V08,T41] (  8, 10.50)     ref  ->  [fp+0x40]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V08 loc7         [V08,T40] (  8, 10.50)     ref  ->  [fp+0x38]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V09 loc8         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V10 loc9         [V10,T27] (  3, 20   )     ref  ->  x24         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V10 loc9         [V10,T26] (  3, 20   )     ref  ->  x24         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V11 loc10        [V11,T06] (  5, 66   )     int  ->  x20        
 ;  V12 loc11        [V12,T04] (  6, 64   )     ref  ->  x25         class-hnd <<unknown class>>
-;  V13 loc12        [V13,T47] (  2,  8.50)     int  ->  x24        
-;  V14 loc13        [V14,T70] (  3,  1.50)     int  ->  x24        
-;  V15 loc14        [V15,T42] (  8, 10.50)     ref  ->  [fp+0x38]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V13 loc12        [V13,T46] (  2,  8.50)     int  ->  x24        
+;  V14 loc13        [V14,T69] (  3,  1.50)     int  ->  x24        
+;  V15 loc14        [V15,T41] (  8, 10.50)     ref  ->  [fp+0x30]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V16 loc15        [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V17 loc16        [V17,T12] (  5, 36   )     ref  ->  x25         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V17 loc16        [V17,T12] (  6, 44   )     ref  ->  x25         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V18 loc17        [V18,T00] (  5,210   )     int  ->  x27        
-;  V19 loc18        [V19,T25] (  3, 24   )     int  ->   x3        
-;  V20 loc19        [V20,T09] (  6, 48   )     ref  ->  [fp+0x30]  class-hnd spill-single-def <<unknown class>>
+;  V19 loc18        [V19,T24] (  3, 24   )     int  ->   x2        
+;  V20 loc19        [V20,T09] (  6, 48   )     ref  ->  [fp+0x28]  class-hnd spill-single-def <<unknown class>>
 ;# V21 OutArgs      [V21    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V22 tmp1         [V22,T28] (  3, 20   )     ref  ->  x25         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V22 tmp1         [V22,T27] (  3, 20   )     ref  ->  x25         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
 ;* V23 tmp2         [V23    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V24 tmp3         [V24,T13] (  2, 36   )     int  ->  x26         "impAppendStmt"
 ;* V25 tmp4         [V25    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
@@ -40,76 +40,75 @@
 ;  V29 tmp8         [V29,T18] (  2, 32   )     int  ->  x27         "impAppendStmt"
 ;  V30 tmp9         [V30,T19] (  2, 32   )     int  ->  x25         "impAppendStmt"
 ;* V31 tmp10        [V31    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V32 tmp11        [V32,T58] (  3,  3   )     ref  ->  x19         single-def "handle histogram profile tmp"
+;  V32 tmp11        [V32,T57] (  3,  3   )     ref  ->  x19         single-def "handle histogram profile tmp"
 ;* V33 tmp12        [V33    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V34 tmp13        [V34    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V35 tmp14        [V35    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V36 tmp15        [V36,T59] (  3,  3   )     ref  ->  x21         single-def "handle histogram profile tmp"
+;  V36 tmp15        [V36,T58] (  3,  3   )     ref  ->  x21         single-def "handle histogram profile tmp"
 ;* V37 tmp16        [V37    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;  V38 tmp17        [V38,T02] (  3, 96   )     ref  ->  x25         "handle histogram profile tmp"
 ;* V39 tmp18        [V39    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V40 tmp19        [V40    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V41 tmp20        [V41    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V42 tmp21        [V42,T60] (  3,  3   )     ref  ->  x21         single-def "handle histogram profile tmp"
+;  V42 tmp21        [V42,T59] (  3,  3   )     ref  ->  x21         single-def "handle histogram profile tmp"
 ;* V43 tmp22        [V43    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V44 tmp23        [V44,T11] (  3, 48   )     ref  ->  [fp+0x28]  spill-single-def "handle histogram profile tmp"
+;  V44 tmp23        [V44,T11] (  3, 48   )     ref  ->  [fp+0x20]  spill-single-def "handle histogram profile tmp"
 ;* V45 tmp24        [V45    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V46 tmp25        [V46    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V47 tmp26        [V47    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V48 tmp27        [V48,T29] (  3, 20   )     int  ->  x27         "Inline stloc first use temp"
+;  V48 tmp27        [V48,T28] (  3, 20   )     int  ->  x27         "Inline stloc first use temp"
 ;* V49 tmp28        [V49    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V50 tmp29        [V50    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V51 tmp30        [V51,T54] (  3,  6   )     ref  ->   x0         class-hnd exact "Inline stloc first use temp" <<unknown class>>
+;  V51 tmp30        [V51,T53] (  3,  6   )     ref  ->   x0         class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;  V52 tmp31        [V52,T07] (  5, 66   )     int  ->  x25         "Inline stloc first use temp"
 ;  V53 tmp32        [V53,T20] (  2, 32   )     int  ->   x4         "Inlining Arg"
 ;  V54 tmp33        [V54,T21] (  2, 32   )     int  ->   x4         "Inlining Arg"
-;  V55 tmp34        [V55,T55] (  2,  4   )     ref  ->   x0         "field V07.key (fldOffset=0x0)" P-INDEP
-;  V56 tmp35        [V56,T67] (  1,  2   )     ref  ->   x1         "field V07.value (fldOffset=0x8)" P-INDEP
-;  V57 tmp36        [V57,T56] (  2,  4   )     ref  ->  x24         "field V09.key (fldOffset=0x0)" P-INDEP
-;  V58 tmp37        [V58,T68] (  1,  2   )     ref  ->   x1         "field V09.value (fldOffset=0x8)" P-INDEP
-;  V59 tmp38        [V59,T57] (  2,  4   )     ref  ->  x25         "field V16.key (fldOffset=0x0)" P-INDEP
-;  V60 tmp39        [V60,T69] (  1,  2   )     ref  ->   x1         "field V16.value (fldOffset=0x8)" P-INDEP
+;  V55 tmp34        [V55,T54] (  2,  4   )     ref  ->   x0         "field V07.key (fldOffset=0x0)" P-INDEP
+;  V56 tmp35        [V56,T66] (  1,  2   )     ref  ->   x1         "field V07.value (fldOffset=0x8)" P-INDEP
+;  V57 tmp36        [V57,T55] (  2,  4   )     ref  ->  x24         "field V09.key (fldOffset=0x0)" P-INDEP
+;  V58 tmp37        [V58,T67] (  1,  2   )     ref  ->   x1         "field V09.value (fldOffset=0x8)" P-INDEP
+;  V59 tmp38        [V59,T56] (  2,  4   )     ref  ->  x25         "field V16.key (fldOffset=0x0)" P-INDEP
+;  V60 tmp39        [V60,T68] (  1,  2   )     ref  ->   x1         "field V16.value (fldOffset=0x8)" P-INDEP
 ;* V61 tmp40        [V61    ] (  0,  0   )     ref  ->  zero-ref    "field V25.key (fldOffset=0x0)" P-DEP
 ;* V62 tmp41        [V62    ] (  0,  0   )     ref  ->  zero-ref    "field V25.value (fldOffset=0x8)" P-DEP
 ;* V63 tmp42        [V63    ] (  0,  0   )     ref  ->  zero-ref    "field V28.key (fldOffset=0x0)" P-DEP
 ;* V64 tmp43        [V64    ] (  0,  0   )     ref  ->  zero-ref    "field V28.value (fldOffset=0x8)" P-DEP
 ;* V65 tmp44        [V65    ] (  0,  0   )     ref  ->  zero-ref    "field V31.key (fldOffset=0x0)" P-DEP
 ;* V66 tmp45        [V66    ] (  0,  0   )     ref  ->  zero-ref    "field V31.value (fldOffset=0x8)" P-DEP
-;  V67 tmp46        [V67,T61] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V68 tmp47        [V68,T35] (  2, 16   )     ref  ->  x11         "argument with side effect"
-;  V69 tmp48        [V69,T51] (  2,  8   )     ref  ->   x0         "argument with side effect"
+;  V67 tmp46        [V67,T60] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V68 tmp47        [V68,T34] (  2, 16   )     ref  ->  x11         "argument with side effect"
+;  V69 tmp48        [V69,T50] (  2,  8   )     ref  ->   x0         "argument with side effect"
 ;  V70 tmp49        [V70,T15] (  2, 32   )     ref  ->   x1         "argument with side effect"
-;* V71 tmp50        [V71,T38] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V72 tmp51        [V72,T72] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V73 tmp52        [V73,T62] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V74 tmp53        [V74,T63] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V75 tmp54        [V75,T36] (  2, 16   )     ref  ->  x11         "argument with side effect"
-;  V76 tmp55        [V76,T52] (  2,  8   )     ref  ->   x0         "argument with side effect"
+;* V71 tmp50        [V71,T37] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V72 tmp51        [V72,T71] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V73 tmp52        [V73,T61] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V74 tmp53        [V74,T62] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V75 tmp54        [V75,T35] (  2, 16   )     ref  ->  x11         "argument with side effect"
+;  V76 tmp55        [V76,T51] (  2,  8   )     ref  ->   x0         "argument with side effect"
 ;  V77 tmp56        [V77,T08] (  2, 64   )     ref  ->   x1         "argument with side effect"
-;* V78 tmp57        [V78,T39] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V79 tmp58        [V79,T73] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V80 tmp59        [V80,T64] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V81 tmp60        [V81,T65] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V82 tmp61        [V82,T37] (  2, 16   )     ref  ->  x11         "argument with side effect"
-;  V83 tmp62        [V83,T53] (  2,  8   )     ref  ->   x0         "argument with side effect"
-;  V84 tmp63        [V84,T74] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V85 tmp64        [V85,T66] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V86 PSPSym       [V86,T71] (  1,  1   )    long  ->  [fp+0x58]  do-not-enreg[V] "PSPSym"
-;  V87 cse0         [V87,T48] (  4,  8   )     ref  ->  x23         multi-def "CSE - moderate"
-;  V88 cse1         [V88,T43] (  6, 10.50)     ref  ->  x23         multi-def "CSE - moderate"
-;  V89 cse2         [V89,T49] (  4,  8   )     ref  ->  x24         multi-def "CSE - moderate"
-;  V90 cse3         [V90,T44] (  6, 10.50)     ref  ->  x24         multi-def "CSE - moderate"
-;  V91 cse4         [V91,T50] (  4,  8   )     ref  ->  x25         multi-def "CSE - moderate"
-;  V92 cse5         [V92,T45] (  6, 10.50)     ref  ->  x25         multi-def "CSE - moderate"
-;  V93 cse6         [V93,T24] (  3, 24   )   byref  ->  [fp+0x20]  spill-single-def "CSE - moderate"
-;  V94 cse7         [V94,T10] (  4, 48   )    long  ->   x1         "CSE - aggressive"
-;  V95 cse8         [V95,T01] ( 22,132.50)    long  ->  x23         hoist multi-def "CSE - aggressive"
+;* V78 tmp57        [V78,T38] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V79 tmp58        [V79,T72] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V80 tmp59        [V80,T63] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V81 tmp60        [V81,T64] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V82 tmp61        [V82,T36] (  2, 16   )     ref  ->  x11         "argument with side effect"
+;  V83 tmp62        [V83,T52] (  2,  8   )     ref  ->   x0         "argument with side effect"
+;  V84 tmp63        [V84,T73] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V85 tmp64        [V85,T65] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V86 PSPSym       [V86,T70] (  1,  1   )    long  ->  [fp+0x58]  do-not-enreg[V] "PSPSym"
+;  V87 cse0         [V87,T47] (  4,  8   )     ref  ->  x23         multi-def "CSE - moderate"
+;  V88 cse1         [V88,T42] (  6, 10.50)     ref  ->  x23         multi-def "CSE - moderate"
+;  V89 cse2         [V89,T48] (  4,  8   )     ref  ->  x24         multi-def "CSE - moderate"
+;  V90 cse3         [V90,T43] (  6, 10.50)     ref  ->  x24         multi-def "CSE - moderate"
+;  V91 cse4         [V91,T49] (  4,  8   )     ref  ->  x25         multi-def "CSE - moderate"
+;  V92 cse5         [V92,T44] (  6, 10.50)     ref  ->  x25         multi-def "CSE - moderate"
+;  V93 cse6         [V93,T10] (  5, 56   )    long  ->  [fp+0x48]  spill-single-def "CSE - aggressive"
+;  V94 cse7         [V94,T01] ( 22,132.50)    long  ->  x23         hoist multi-def "CSE - aggressive"
+;  V95 cse8         [V95,T03] ( 42, 85.50)    long  ->  registers   multi-def "CSE - aggressive"
 ;  V96 cse9         [V96,T05] (  3, 68   )     int  ->  x28         "CSE - aggressive"
-;  V97 cse10        [V97,T03] ( 42, 85.50)    long  ->  registers   multi-def "CSE - aggressive"
-;  V98 cse11        [V98,T26] ( 21, 22.50)    long  ->  registers   multi-def "CSE - moderate"
-;  V99 cse12        [V99,T34] (  2, 18   )   byref  ->  [fp+0x18]  spill-single-def hoist "CSE - moderate"
-;  V100 cse13       [V100,T30] (  3, 20   )     int  ->  x28         "CSE - moderate"
-;  V101 cse14       [V101,T31] (  3, 20   )     int  ->  x23         "CSE - moderate"
+;  V97 cse10        [V97,T25] ( 21, 22.50)    long  ->  registers   multi-def "CSE - moderate"
+;  V98 cse11        [V98,T33] (  2, 18   )   byref  ->  [fp+0x18]  spill-single-def hoist "CSE - moderate"
+;  V99 cse12        [V99,T29] (  3, 20   )     int  ->  x28         "CSE - moderate"
+;  V100 cse13       [V100,T30] (  3, 20   )     int  ->  x23         "CSE - moderate"
 ;
 ; Lcl frame size = 80
 
@@ -221,10 +220,10 @@ G_M34916_IG07:        ; bbWeight=2, gcrefRegs=2C80000 {x19 x22 x23 x25}, byrefRe
             ble     G_M34916_IG09
             add     x5, x0, #16
             ; byrRegs +[x5]
-            str     x5, [fp, #0x18]    // [V99 cse12]
-            ; GC ptr vars +{V99}
+            str     x5, [fp, #0x18]    // [V98 cse11]
+            ; GC ptr vars +{V98}
                        ;; size=28 bbWeight=2 PerfScore 19.00
-G_M34916_IG08:        ; bbWeight=16, gcVars=00000000000000000000000400000000 {V99}, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0020 {x5}, gcvars, byref, isz
+G_M34916_IG08:        ; bbWeight=16, gcVars=00000000000000000000000200000000 {V98}, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0020 {x5}, gcvars, byref, isz
             ; gcrRegs -[x0]
             ldr     x0, [x5, w25, UXTW #3]
             ; gcrRegs +[x0]
@@ -243,13 +242,13 @@ G_M34916_IG08:        ; bbWeight=16, gcVars=00000000000000000000000400000000 {V9
             ; gcr arg pop 0
             add     w25, w25, #1
             cmp     w28, w25
-            ldr     x5, [fp, #0x18]    // [V99 cse12]
+            ldr     x5, [fp, #0x18]    // [V98 cse11]
             ; byrRegs +[x5]
             bgt     G_M34916_IG08
                        ;; size=60 bbWeight=16 PerfScore 280.00
 G_M34916_IG09:        ; bbWeight=4, gcVars=00000000000000000000000000000000 {}, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, gcvars, byref, isz
             ; byrRegs -[x5]
-            ; GC ptr vars -{V99}
+            ; GC ptr vars -{V98}
             movz    x26, #0xD1FFAB1E
             movk    x26, #0xD1FFAB1E LSL #16
             movk    x26, #0xD1FFAB1E LSL #32
@@ -289,10 +288,10 @@ G_M34916_IG11:        ; bbWeight=0.50, gcrefRegs=480000 {x19 x22}, byrefRegs=000
             ldr     x1, [x11]
             blr     x1
             ; gcr arg pop 0
-            str     x0, [fp, #0x48]    // [V06 loc5]
+            str     x0, [fp, #0x40]    // [V06 loc5]
             ; GC ptr vars +{V06}
                        ;; size=68 bbWeight=0.50 PerfScore 9.00
-G_M34916_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000010000000000 {V06}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M34916_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000008000000000 {V06}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
             b       G_M34916_IG14
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M34916_IG13:        ; bbWeight=2, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
@@ -300,7 +299,7 @@ G_M34916_IG13:        ; bbWeight=2, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, b
             add     x0, x26, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-            ldr     x0, [fp, #0x48]    // [V06 loc5]
+            ldr     x0, [fp, #0x40]    // [V06 loc5]
             ; gcrRegs +[x0]
             add     x1, x26, #0xD1FFAB1E
             bl      CORINFO_HELP_CLASSPROFILE32
@@ -321,7 +320,7 @@ G_M34916_IG13:        ; bbWeight=2, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, b
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x0, [fp, #0x48]    // [V06 loc5]
+            ldr     x0, [fp, #0x40]    // [V06 loc5]
             ; gcrRegs +[x0]
                        ;; size=60 bbWeight=2 PerfScore 35.00
 G_M34916_IG14:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
@@ -329,7 +328,7 @@ G_M34916_IG14:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x0, [fp, #0x48]    // [V06 loc5]
+            ldr     x0, [fp, #0x40]    // [V06 loc5]
             ; gcrRegs +[x0]
             mov     x23, x0
             ; gcrRegs +[x23]
@@ -348,7 +347,7 @@ G_M34916_IG15:        ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}
             add     x0, x26, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-            ldr     x0, [fp, #0x48]    // [V06 loc5]
+            ldr     x0, [fp, #0x40]    // [V06 loc5]
             ; gcrRegs +[x0]
             add     x1, x26, #0xD1FFAB1E
             ; GC ptr vars -{V06}
@@ -390,15 +389,15 @@ G_M34916_IG16:        ; bbWeight=0.50, gcrefRegs=480000 {x19 x22}, byrefRegs=000
             ldr     x1, [x11]
             blr     x1
             ; gcr arg pop 0
-            str     x0, [fp, #0x40]    // [V08 loc7]
+            str     x0, [fp, #0x38]    // [V08 loc7]
             ; GC ptr vars +{V08}
                        ;; size=60 bbWeight=0.50 PerfScore 7.00
-G_M34916_IG17:        ; bbWeight=4, gcVars=00000000000000000000020000000000 {V08}, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M34916_IG17:        ; bbWeight=4, gcVars=00000000000000000000010000000000 {V08}, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, gcvars, byref, isz
...

+8 (+0.65%) : 252063.dasm - System.RuntimeType:GetField(System.String,int):System.Reflection.FieldInfo:this (Instrumented Tier1)

@@ -12,13 +12,13 @@
 ;  V00 this         [V00,T02] (  4,  4   )     ref  ->  x21         this class-hnd single-def <System.RuntimeType>
 ;  V01 arg1         [V01,T01] (  6,  4   )     ref  ->  x20         ld-addr-op class-hnd <System.String>
 ;  V02 arg2         [V02,T00] (  6,  5.31)     int  ->  x19        
-;  V03 loc0         [V03,T16] (  3,  1.78)     int  ->  x22         ld-addr-op
-;  V04 loc1         [V04,T12] (  3,  2.23)     ref  ->   x0         class-hnd single-def <System.Reflection.RuntimeFieldInfo[]>
-;  V05 loc2         [V05,T10] ( 16,  2.61)     ref  ->  x21         class-hnd <System.Reflection.FieldInfo>
-;  V06 loc3         [V06,T15] (  3,  2   )   ubyte  ->  x22        
+;  V03 loc0         [V03,T15] (  3,  1.78)     int  ->  x22         ld-addr-op
+;  V04 loc1         [V04,T11] (  4,  2.54)     ref  ->  x21         class-hnd single-def <System.Reflection.RuntimeFieldInfo[]>
+;  V05 loc2         [V05,T10] ( 16,  2.61)     ref  ->  x22         class-hnd <System.Reflection.FieldInfo>
+;  V06 loc3         [V06,T14] (  3,  2   )   ubyte  ->  x23        
 ;* V07 loc4         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op
-;  V08 loc5         [V08,T13] (  5,  2.22)     int  ->  x23        
-;  V09 loc6         [V09,T17] ( 12,  0.92)     ref  ->  x26         class-hnd <System.Reflection.RuntimeFieldInfo>
+;  V08 loc5         [V08,T12] (  5,  2.22)     int  ->  x24        
+;  V09 loc6         [V09,T16] ( 12,  0.92)     ref  ->  x26         class-hnd <System.Reflection.RuntimeFieldInfo>
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V12 tmp2         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <System.Type>
@@ -28,7 +28,7 @@
 ;* V16 tmp6         [V16    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V17 tmp7         [V17    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V18 tmp8         [V18    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V19 tmp9         [V19,T20] (  3,  0   )     ref  ->  x20         "handle histogram profile tmp"
+;  V19 tmp9         [V19,T19] (  3,  0   )     ref  ->  x20         "handle histogram profile tmp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V21 tmp11        [V21    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V22 tmp12        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
@@ -48,25 +48,24 @@
 ;* V36 tmp26        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;* V37 tmp27        [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
 ;  V38 tmp28        [V38,T06] (  7,  4.11)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V39 tmp29        [V39,T14] (  4,  2.21)     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V39 tmp29        [V39,T13] (  4,  2.21)     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V40 tmp30        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V41 tmp31        [V41    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V42 tmp32        [V42    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V43 tmp33        [V43,T28] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V44 tmp34        [V44,T21] (  3,  0   )     ref  ->   x0         "argument with side effect"
-;  V45 tmp35        [V45,T22] (  3,  0   )     ref  ->   x0         "argument with side effect"
-;* V46 tmp36        [V46,T29] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;* V47 tmp37        [V47,T30] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V48 tmp38        [V48,T23] (  3,  0   )     ref  ->   x0         "argument with side effect"
-;  V49 tmp39        [V49,T24] (  3,  0   )     ref  ->  x20         "argument with side effect"
-;  V50 tmp40        [V50,T27] (  2,  0   )     ref  ->   x1         "argument with side effect"
-;  V51 tmp41        [V51,T25] (  3,  0   )     ref  ->   x0         "argument with side effect"
-;  V52 tmp42        [V52,T26] (  3,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V53 cse0         [V53,T18] (  3,  0.92)     int  ->   x0         "CSE - conservative"
-;  V54 cse1         [V54,T11] (  3,  2.31)     int  ->  x24         "CSE - moderate"
-;  V55 cse2         [V55,T19] (  2,  0.54)   byref  ->  x25         hoist "CSE - conservative"
-;  V56 cse3         [V56,T08] (  3,  3   )    long  ->   x0         "CSE - aggressive"
-;  V57 cse4         [V57,T07] (  3,  3   )     ref  ->   x1         "CSE - aggressive"
+;* V43 tmp33        [V43,T27] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V44 tmp34        [V44,T20] (  3,  0   )     ref  ->   x0         "argument with side effect"
+;  V45 tmp35        [V45,T21] (  3,  0   )     ref  ->   x0         "argument with side effect"
+;* V46 tmp36        [V46,T28] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;* V47 tmp37        [V47,T29] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V48 tmp38        [V48,T22] (  3,  0   )     ref  ->   x0         "argument with side effect"
+;  V49 tmp39        [V49,T23] (  3,  0   )     ref  ->  x20         "argument with side effect"
+;  V50 tmp40        [V50,T26] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V51 tmp41        [V51,T24] (  3,  0   )     ref  ->   x0         "argument with side effect"
+;  V52 tmp42        [V52,T25] (  3,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V53 cse0         [V53,T17] (  3,  0.92)     int  ->   x0         "CSE - conservative"
+;  V54 cse1         [V54,T18] (  2,  0.54)   byref  ->  x25         hoist "CSE - conservative"
+;  V55 cse2         [V55,T08] (  3,  3   )    long  ->   x0         "CSE - aggressive"
+;  V56 cse3         [V56,T07] (  3,  3   )     ref  ->   x1         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -233,30 +232,32 @@ G_M40435_IG13:        ; bbWeight=1, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}
             blr     x4
             ; gcrRegs -[x2 x20]
             ; gcr arg pop 0
-            mov     x21, xzr
+            mov     x21, x0
             ; gcrRegs +[x21]
+            mov     x22, xzr
+            ; gcrRegs +[x22]
             eor     w19, w19, #2
-            mov     w22, wzr
             mov     w23, wzr
-            ldr     w24, [x0, #0x08]
-            cmp     w24, #0
+            mov     w24, wzr
+            ldr     w0, [x21, #0x08]
+            ; gcrRegs -[x0]
+            cmp     w0, #0
             ble     G_M40435_IG20
-                       ;; size=64 bbWeight=1 PerfScore 16.50
-G_M40435_IG14:        ; bbWeight=0.23, gcrefRegs=200001 {x0 x21}, byrefRegs=0000 {}, byref
-            add     x25, x0, #16
+                       ;; size=68 bbWeight=1 PerfScore 17.00
+G_M40435_IG14:        ; bbWeight=0.23, gcrefRegs=600000 {x21 x22}, byrefRegs=0000 {}, byref
+            add     x25, x21, #16
             ; byrRegs +[x25]
                        ;; size=4 bbWeight=0.23 PerfScore 0.12
-G_M40435_IG15:        ; bbWeight=0.31, gcrefRegs=200000 {x21}, byrefRegs=2000000 {x25}, byref, isz
-            ; gcrRegs -[x0]
-            ldr     x26, [x25, w23, UXTW #3]
+G_M40435_IG15:        ; bbWeight=0.31, gcrefRegs=600000 {x21 x22}, byrefRegs=2000000 {x25}, byref, isz
+            ldr     x26, [x25, w24, UXTW #3]
             ; gcrRegs +[x26]
             ldr     w0, [x26, #0x18]
             and     w1, w19, w0
             cmp     w1, w0
             bne     G_M40435_IG19
-            cbz     x21, G_M40435_IG18
+            cbz     x22, G_M40435_IG18
                        ;; size=24 bbWeight=0.31 PerfScore 2.75
-G_M40435_IG16:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=2000000 {x25}, byref, isz
+G_M40435_IG16:        ; bbWeight=0, gcrefRegs=4600000 {x21 x22 x26}, byrefRegs=2000000 {x25}, byref, isz
             mov     x0, x26
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -274,14 +275,14 @@ G_M40435_IG16:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=20000
             ; gcr arg pop 0
             mov     x20, x0
             ; gcrRegs +[x20]
-            mov     x0, x21
+            mov     x0, x22
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            mov     x0, x21
+            mov     x0, x22
             ; gcrRegs +[x0]
             ldr     x1, [x0]
             ldr     x1, [x1, #0x48]
@@ -290,14 +291,14 @@ G_M40435_IG16:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=20000
             ; gcr arg pop 0
             cmp     x20, x0
             beq     G_M40435_IG30
-            mov     x0, x21
+            mov     x0, x22
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0 x20]
             ; gcr arg pop 0
-            mov     x0, x21
+            mov     x0, x22
             ; gcrRegs +[x0]
             ldr     x1, [x0]
             ldr     x1, [x1, #0x48]
@@ -342,9 +343,9 @@ G_M40435_IG16:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=20000
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-            mov     w22, #1
+            mov     w23, #1
                        ;; size=248 bbWeight=0 PerfScore 0.00
-G_M40435_IG17:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=2000000 {x25}, byref, isz
+G_M40435_IG17:        ; bbWeight=0, gcrefRegs=4600000 {x21 x22 x26}, byrefRegs=2000000 {x25}, byref, isz
             mov     x0, x26
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -368,7 +369,7 @@ G_M40435_IG17:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=20000
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            mov     x0, x21
+            mov     x0, x22
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -376,7 +377,7 @@ G_M40435_IG17:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=20000
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            mov     x0, x21
+            mov     x0, x22
             ; gcrRegs +[x0]
             ldr     x1, [x0]
             ldr     x1, [x1, #0x48]
@@ -393,7 +394,7 @@ G_M40435_IG17:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=20000
             ; gcrRegs -[x0-x1 x20]
             ; gcr arg pop 0
             cbnz    w0, G_M40435_IG27
-            mov     x0, x21
+            mov     x0, x22
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -401,7 +402,7 @@ G_M40435_IG17:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=20000
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            mov     x0, x21
+            mov     x0, x22
             ; gcrRegs +[x0]
             ldr     x1, [x0]
             ldr     x1, [x1, #0x48]
@@ -421,35 +422,37 @@ G_M40435_IG17:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=20000
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_COUNTPROFILE32
-            ; gcrRegs -[x21]
+            ; gcrRegs -[x22]
             ; gcr arg pop 0
                        ;; size=212 bbWeight=0 PerfScore 0.00
-G_M40435_IG18:        ; bbWeight=0.31, gcrefRegs=4000000 {x26}, byrefRegs=2000000 {x25}, byref
+G_M40435_IG18:        ; bbWeight=0.31, gcrefRegs=4200000 {x21 x26}, byrefRegs=2000000 {x25}, byref
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-            mov     x21, x26
-            ; gcrRegs +[x21]
+            mov     x22, x26
+            ; gcrRegs +[x22]
                        ;; size=20 bbWeight=0.31 PerfScore 0.92
-G_M40435_IG19:        ; bbWeight=0.31, gcrefRegs=200000 {x21}, byrefRegs=2000000 {x25}, byref, isz
+G_M40435_IG19:        ; bbWeight=0.31, gcrefRegs=600000 {x21 x22}, byrefRegs=2000000 {x25}, byref, isz
             ; gcrRegs -[x26]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-            add     w23, w23, #1
-            cmp     w24, w23
+            add     w24, w24, #1
+            ldr     w0, [x21, #0x08]
+            cmp     w0, w24
             bgt     G_M40435_IG15
-                       ;; size=28 bbWeight=0.31 PerfScore 1.38
-G_M40435_IG20:        ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref, isz
+                       ;; size=32 bbWeight=0.31 PerfScore 2.29
+G_M40435_IG20:        ; bbWeight=1, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x21]
             ; byrRegs -[x25]
-            cbz     w22, G_M40435_IG23
+            cbz     w23, G_M40435_IG23
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M40435_IG21:        ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref, isz
-            mov     x0, x21
+G_M40435_IG21:        ; bbWeight=0, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
+            mov     x0, x22
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -457,7 +460,7 @@ G_M40435_IG21:        ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, b
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0]
...

libraries.crossgen2.linux.arm64.checked.mch

-4 (-0.19%) : 220779.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

@@ -9,25 +9,25 @@
 ; 0 inlinees with PGO data; 18 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T23] ( 18, 19   )     ref  ->  [fp+0x28]  this class-hnd EH-live single-def <System.Runtime.Caching.ExpiresBucket>
+;  V00 this         [V00,T23] ( 18, 19   )     ref  ->  [fp+0x30]  this class-hnd EH-live single-def <System.Runtime.Caching.ExpiresBucket>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.DateTime>
 ;  V02 arg2         [V02,T30] (  8,  7   )   ubyte  ->  [fp+0x54]  EH-live single-def
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V04 loc1         [V04,T01] ( 12,132   )     ref  ->  x25         class-hnd <<unknown class>>
+;  V04 loc1         [V04,T05] (  8, 68   )     ref  ->  x25         class-hnd <<unknown class>>
 ;  V05 loc2         [V05,T28] (  3, 12   )     int  ->   x0        
-;  V06 loc3         [V06,T03] (  7,108   )     ref  ->  [fp+0x20]  class-hnd <System.Runtime.Caching.MemoryCacheEntry>
+;  V06 loc3         [V06,T02] (  7,108   )     ref  ->  [fp+0x28]  class-hnd <System.Runtime.Caching.MemoryCacheEntry>
 ;  V07 loc4         [V07,T15] (  5, 35   )     int  ->  [fp+0x50]  do-not-enreg[Z] EH-live
 ;  V08 loc5         [V08,T34] (  2,  5   )     ref  ->  x19         class-hnd exact single-def <System.Runtime.Caching.MemoryCacheStore>
 ;* V09 loc6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Runtime.Caching.ExpiresEntryRef>
 ;* V10 loc7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V11 loc8         [V11,T04] ( 13, 71   )     ref  ->  [fp+0x18]  class-hnd exact EH-live spill-single-def <System.Runtime.Caching.ExpiresBucket>
+;  V11 loc8         [V11,T03] ( 13, 71   )     ref  ->  [fp+0x20]  class-hnd exact EH-live spill-single-def <System.Runtime.Caching.ExpiresBucket>
 ;  V12 loc9         [V12    ] (  4,  4   )   ubyte  ->  [fp+0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;  V13 loc10        [V13,T26] (  4, 13   )     int  ->  x22        
 ;* V14 loc11        [V14,T36] (  0,  0   )     int  ->  zero-ref    do-not-enreg[M] EH-live
 ;  V15 loc12        [V15,T07] (  7, 57   )     int  ->  x23        
 ;  V16 loc13        [V16,T08] (  4, 52   )     int  ->  x27        
 ;  V17 loc14        [V17,T00] (  6,148   )     int  ->  x28        
-;  V18 loc15        [V18,T13] (  8, 35   )     ref  ->  [fp+0x10]  class-hnd exact EH-live spill-single-def <System.Runtime.Caching.ExpiresBucket>
+;  V18 loc15        [V18,T13] (  8, 35   )     ref  ->  [fp+0x18]  class-hnd exact EH-live spill-single-def <System.Runtime.Caching.ExpiresBucket>
 ;  V19 loc16        [V19    ] (  4,  3   )   ubyte  ->  [fp+0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;# V20 OutArgs      [V20    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V21 tmp1         [V21    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.Caching.ExpiresEntryRef>
@@ -45,7 +45,7 @@
 ;  V33 tmp13        [V33,T31] (  6,  6   )     ref  ->  x19         class-hnd exact "Inlining Arg" <System.Runtime.Caching.MemoryCacheStore>
 ;  V34 tmp14        [V34,T22] (  5, 20   )    long  ->  x19         single-def "field V01._dateData (fldOffset=0x0)" P-INDEP
 ;  V35 tmp15        [V35,T16] (  5, 35   )     int  ->  [fp+0x3C]  do-not-enreg[Z] EH-live "field V03._ref (fldOffset=0x0)" P-INDEP
-;  V36 tmp16        [V36,T05] ( 13, 71   )     int  ->   x4         "field V09._ref (fldOffset=0x0)" P-INDEP
+;  V36 tmp16        [V36,T04] ( 13, 71   )     int  ->   x4         "field V09._ref (fldOffset=0x0)" P-INDEP
 ;  V37 tmp17        [V37,T19] (  4, 24   )     int  ->  x20         "field V10._ref (fldOffset=0x0)" P-INDEP
 ;  V38 tmp18        [V38,T17] (  2, 32   )     int  ->   x0         "field V21._ref (fldOffset=0x0)" P-INDEP
 ;  V39 tmp19        [V39,T18] (  2, 32   )     int  ->   x0         "field V26._ref (fldOffset=0x0)" P-INDEP
@@ -55,8 +55,8 @@
 ;  V43 tmp23        [V43,T11] (  3, 48   )     ref  ->   x1         "arr expr"
 ;  V44 PSPSym       [V44,T37] (  1,  1   )    long  ->  [fp+0x58]  do-not-enreg[V] "PSPSym"
 ;  V45 cse0         [V45,T24] (  3, 18   )     ref  ->  x21         "CSE - moderate"
-;  V46 cse1         [V46,T25] (  4, 16   )   byref  ->   x0         "CSE - moderate"
-;  V47 cse2         [V47,T02] (  6,128   )    long  ->  [fp+0x30]  spill-single-def "CSE - aggressive"
+;  V46 cse1         [V46,T01] (  6,128   )   byref  ->  [fp+0x10]  spill-single-def "CSE - aggressive"
+;  V47 cse2         [V47,T25] (  4, 16   )   byref  ->   x0         "CSE - moderate"
 ;  V48 cse3         [V48,T06] (  6, 65   )    long  ->  registers   hoist multi-def "CSE - aggressive"
 ;  V49 cse4         [V49,T14] (  8, 35   )    long  ->  x24         hoist multi-def "CSE - aggressive"
 ;  V50 cse5         [V50,T35] (  3,  3   )    long  ->  x20         "CSE - moderate"
@@ -77,7 +77,7 @@ G_M744_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, n
             stp     xzr, xzr, [fp, #0x40]  // [V19 loc16], [V12 loc9]
             add     x3, sp, #176
             str     x3, [fp, #0x58]    // [V44 PSPSym]
-            str     x0, [fp, #0x28]    // [V00 this]
+            str     x0, [fp, #0x30]    // [V00 this]
             ; GC ptr vars +{V00}
             str     w2, [fp, #0x54]    // [V02 arg2]
             mov     x19, x1
@@ -133,7 +133,7 @@ G_M744_IG06:        ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byr
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x0]
-            ldr     x1, [fp, #0x28]    // [V00 this]
+            ldr     x1, [fp, #0x30]    // [V00 this]
             ; gcrRegs +[x1]
             ldr     x0, [x1, x0]
             ; gcrRegs +[x0]
@@ -158,15 +158,15 @@ G_M744_IG06:        ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byr
 G_M744_IG07:        ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x22]
             ; byrRegs -[x1]
-            ldr     x1, [fp, #0x28]    // [V00 this]
+            ldr     x1, [fp, #0x30]    // [V00 this]
             ; gcrRegs +[x1]
             mov     x0, x1
             ; gcrRegs +[x0]
-            str     x0, [fp, #0x18]    // [V11 loc8]
+            str     x0, [fp, #0x20]    // [V11 loc8]
             ; GC ptr vars +{V11}
             str     wzr, [fp, #0x48]   // [V12 loc9]
                        ;; size=16 bbWeight=1 PerfScore 4.50
-G_M744_IG08:        ; bbWeight=1, gcVars=0000000000800010 {V00 V11}, gcrefRegs=200001 {x0 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M744_IG08:        ; bbWeight=1, gcVars=0000000000800008 {V00 V11}, gcrefRegs=200001 {x0 x21}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x1]
             add     x1, fp, #72    // [V12 loc9]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -175,7 +175,7 @@ G_M744_IG08:        ; bbWeight=1, gcVars=0000000000800010 {V00 V11}, gcrefRegs=2
             blr     x3
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x0, [fp, #0x18]    // [V11 loc8]
+            ldr     x0, [fp, #0x20]    // [V11 loc8]
             ; gcrRegs +[x0]
             ldr     w1, [x0, x20]
             cbz     w1, G_M744_IG21
@@ -187,7 +187,7 @@ G_M744_IG08:        ; bbWeight=1, gcVars=0000000000800010 {V00 V11}, gcrefRegs=2
             ; gcrRegs -[x0]
             ; gcr arg pop 0
             cbz     w0, G_M744_IG21
-            ldr     x0, [fp, #0x18]    // [V11 loc8]
+            ldr     x0, [fp, #0x20]    // [V11 loc8]
             ; gcrRegs +[x0]
             mov     x1, x19
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -199,7 +199,7 @@ G_M744_IG08:        ; bbWeight=1, gcVars=0000000000800010 {V00 V11}, gcrefRegs=2
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x0]
-            ldr     x20, [fp, #0x18]   // [V11 loc8]
+            ldr     x20, [fp, #0x20]   // [V11 loc8]
             ; gcrRegs +[x20]
             ldr     w22, [x20, x0]
             mov     w23, wzr
@@ -242,35 +242,38 @@ G_M744_IG10:        ; bbWeight=4, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=000
                        ;; size=40 bbWeight=4 PerfScore 44.00
 G_M744_IG11:        ; bbWeight=32, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0000 {}, byref, isz
             ubfiz   x0, x28, #4, #32
-            add     x2, x0, #16
-            str     x2, [fp, #0x30]    // [V47 cse2]
-            add     x0, x25, x2
-            ; byrRegs +[x0]
-            ldr     x3, [x0, #0x08]
+            add     x0, x0, #16
+            add     x2, x25, x0
+            ; byrRegs +[x2]
+            str     x2, [fp, #0x10]    // [V46 cse1]
+            ; GC ptr vars +{V46}
+            ldr     x3, [x2, #0x08]
             ; gcrRegs +[x3]
-            str     x3, [fp, #0x20]    // [V06 loc3]
+            str     x3, [fp, #0x28]    // [V06 loc3]
             ; GC ptr vars +{V06}
             cbz     x3, G_M744_IG14
                        ;; size=28 bbWeight=32 PerfScore 256.00
-G_M744_IG12:        ; bbWeight=16, gcVars=0000000000800018 {V00 V06 V11}, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M744_IG12:        ; bbWeight=16, gcVars=000000000080000E {V00 V06 V11 V46}, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0004 {x2}, gcvars, byref, isz
             ; gcrRegs -[x3]
-            ; byrRegs -[x0]
-            ldr     x0, [x25, x2]
+            ldr     x0, [x2]
             mov     x1, x19
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x4, [x11]
             blr     x4
+            ; byrRegs -[x2]
             ; gcr arg pop 0
             cbz     w0, G_M744_IG19
-            ldr     x2, [fp, #0x30]    // [V47 cse2]
-            ldr     x1, [x25, x2]
+            ldr     x2, [fp, #0x10]    // [V46 cse1]
+            ; byrRegs +[x2]
+            ldr     x1, [x2]
             mov     x0, x20
             ; gcrRegs +[x0]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x2, [x11]
-            ; GC ptr vars -{V06}
+            ; byrRegs -[x2]
+            ; GC ptr vars -{V06 V46}
             blr     x2
             ; gcrRegs -[x0]
             ; gcr arg pop 0
@@ -318,14 +321,14 @@ G_M744_IG18:        ; bbWeight=0, gcVars=0000000000800000 {V00}, gcrefRegs=0000
             blr     x0
             ; gcr arg pop 0
                        ;; size=16 bbWeight=0 PerfScore 0.00
-G_M744_IG19:        ; bbWeight=16, gcVars=0000000000800018 {V00 V06 V11}, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0000 {}, gcvars, byref
+G_M744_IG19:        ; bbWeight=16, gcVars=000000000080000E {V00 V06 V11 V46}, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x20-x21 x25]
-            ; GC ptr vars +{V04 V06 V11}
+            ; GC ptr vars +{V02 V06 V11 V46}
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x0]
             mov     w11, #255
-            ldr     x1, [fp, #0x20]    // [V06 loc3]
+            ldr     x1, [fp, #0x28]    // [V06 loc3]
             ; gcrRegs +[x1]
             strb    w11, [x1, x0]
             ldr     w0, [x21, #0x08]
@@ -333,15 +336,12 @@ G_M744_IG19:        ; bbWeight=16, gcVars=0000000000800018 {V00 V06 V11}, gcrefR
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x11, [x11]
             str     w0, [x1, x11]
-            ldr     x0, [fp, #0x30]    // [V47 cse2]
-            add     x11, x25, x0
+            mov     w0, #1
+            ldr     x11, [fp, #0x10]   // [V46 cse1]
             ; byrRegs +[x11]
-            mov     w1, #1
-            ; gcrRegs -[x1]
-            str     w1, [x11, #0x04]
-            ldr     w11, [fp, #0x3C]   // [V35 tmp15]
-            ; byrRegs -[x11]
-            str     w11, [x25, x0]
+            str     w0, [x11, #0x04]
+            ldr     w0, [fp, #0x3C]    // [V35 tmp15]
+            str     w0, [x11]
             uxtb    w0, w28
             orr     w0, w0, w23,  LSL #8
             str     w0, [fp, #0x3C]    // [V35 tmp15]
@@ -350,18 +350,19 @@ G_M744_IG19:        ; bbWeight=16, gcVars=0000000000800018 {V00 V06 V11}, gcrefR
             str     w0, [fp, #0x50]    // [V07 loc4]
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
-            ldr     x1, [x0]
-            ldr     w0, [x20, x1]
+            ldr     x2, [x0]
+            ldr     w0, [x20, x2]
             add     w0, w0, #1
-            str     w0, [x20, x1]
+            str     w0, [x20, x2]
             b       G_M744_IG13
-                       ;; size=120 bbWeight=16 PerfScore 608.00
+                       ;; size=116 bbWeight=16 PerfScore 600.00
 G_M744_IG20:        ; bbWeight=1, gcVars=0000000000800000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[x20-x21 x25]
-            ; GC ptr vars -{V04 V06 V11}
+            ; gcrRegs -[x1 x20-x21 x25]
+            ; byrRegs -[x11]
+            ; GC ptr vars -{V02 V06 V11 V46}
             ldrb    w0, [fp, #0x48]    // [V12 loc9]
             cbz     w0, G_M744_IG24
-            ldr     x0, [fp, #0x28]    // [V00 this]
+            ldr     x0, [fp, #0x30]    // [V00 this]
             ; gcrRegs +[x0]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
@@ -385,7 +386,7 @@ G_M744_IG23:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, i
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x0]
-            ldr     x1, [fp, #0x28]    // [V00 this]
+            ldr     x1, [fp, #0x30]    // [V00 this]
             ; gcrRegs +[x1]
             ldr     x0, [x1, x0]
             ; gcrRegs +[x0]
@@ -424,7 +425,7 @@ G_M744_IG26:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x0]
-            ldr     x1, [fp, #0x28]    // [V00 this]
+            ldr     x1, [fp, #0x30]    // [V00 this]
             ; gcrRegs +[x1]
             ldr     x0, [x1, x0]
             ; gcrRegs +[x0]
...

+12 (+1.80%) : 229594.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

@@ -4,46 +4,45 @@
 ; ReadyToRun compilation
 ; optimized code
 ; fp based frame
-; fully interruptible
+; partially interruptible
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] ( 12,  7   )   byref  ->  x19         this single-def
-;  V01 arg1         [V01,T05] (  4,  4   )  struct (16) [fp+0x38]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
+;  V00 this         [V00,T00] ( 12,  7   )   byref  ->  x19         this single-def
+;  V01 arg1         [V01,T02] (  4,  4   )  struct (16) [fp+0x38]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op <System.Span`1[int]>
-;  V03 loc1         [V03,T01] (  9, 12   )     int  ->  x22        
+;  V03 loc1         [V03,T06] (  9,  4.75)     int  ->  x22        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[int]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [fp+0x48]  do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
-;  V07 tmp2         [V07    ] (  4,  8   )  struct (16) [fp+0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
+;  V07 tmp2         [V07    ] (  4,  8   )  struct (16) [fp+0x28]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;  V08 tmp3         [V08    ] (  3,  6   )  struct (16) [fp+0x18]  do-not-enreg[SFAR] multireg-arg multireg-ret "Return value temp for multireg return" <System.Decimal>
-;  V09 tmp4         [V09,T09] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V10 tmp5         [V10,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V09 tmp4         [V09,T08] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V10 tmp5         [V10,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
-;  V13 tmp8         [V13,T17] (  2,  1   )     int  ->   x0        
-;  V14 tmp9         [V14,T10] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V15 tmp10        [V15,T13] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V16 tmp11        [V16,T11] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V17 tmp12        [V17,T14] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V18 tmp13        [V18,T15] (  2,  2   )     int  ->   x0         "impAppendStmt"
+;  V13 tmp8         [V13,T16] (  2,  1   )     int  ->   x0        
+;  V14 tmp9         [V14,T09] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V15 tmp10        [V15,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V16 tmp11        [V16,T10] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V17 tmp12        [V17,T13] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V18 tmp13        [V18,T14] (  2,  2   )     int  ->   x0         "impAppendStmt"
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    ptr
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp18        [V23,T18] (  2,  1   )     int  ->  x11        
-;  V24 tmp19        [V24,T03] (  9,  9   )   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V25 tmp20        [V25,T04] (  7,  8   )     int  ->  x21         "field V02._length (fldOffset=0x8)" P-INDEP
+;  V23 tmp18        [V23,T17] (  2,  1   )     int  ->  x11        
+;  V24 tmp19        [V24,T01] ( 11,  6.50)   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V25 tmp20        [V25,T07] (  5,  3.50)     int  ->  x21         "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V26 tmp21        [V26    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V27 tmp22        [V27    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V28 tmp23        [V28    ] (  3,  5   )   byref  ->  [fp+0x28]  do-not-enreg[X] addr-exposed ptr "field V07._reference (fldOffset=0x0)" P-DEP
 ;  V29 tmp24        [V29    ] (  3,  5   )     int  ->  [fp+0x30]  do-not-enreg[X] addr-exposed ptr "field V07._length (fldOffset=0x8)" P-DEP
-;  V30 tmp25        [V30,T06] (  3,  6   )     int  ->  [fp+0x18]  do-not-enreg[] "field V08._flags (fldOffset=0x0)" P-DEP
-;  V31 tmp26        [V31,T07] (  3,  6   )     int  ->  [fp+0x1C]  do-not-enreg[] "field V08._hi32 (fldOffset=0x4)" P-DEP
-;  V32 tmp27        [V32,T08] (  3,  6   )    long  ->  [fp+0x20]  do-not-enreg[] "field V08._lo64 (fldOffset=0x8)" P-DEP
+;  V30 tmp25        [V30,T03] (  3,  6   )     int  ->  [fp+0x18]  do-not-enreg[] "field V08._flags (fldOffset=0x0)" P-DEP
+;  V31 tmp26        [V31,T04] (  3,  6   )     int  ->  [fp+0x1C]  do-not-enreg[] "field V08._hi32 (fldOffset=0x4)" P-DEP
+;  V32 tmp27        [V32,T05] (  3,  6   )    long  ->  [fp+0x20]  do-not-enreg[] "field V08._lo64 (fldOffset=0x8)" P-DEP
 ;  V33 GsCookie     [V33    ] (  1,  1   )    long  ->  [fp+0x58]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V34 cse0         [V34,T16] (  3,  1.50)     int  ->   x0         "CSE - moderate"
-;  V35 cse1         [V35,T00] (  4, 14   )     int  ->  x11         "CSE - aggressive"
+;  V34 cse0         [V34,T15] (  3,  1.50)     int  ->   x0         "CSE - moderate"
 ;
 ; Lcl frame size = 80
 
@@ -52,7 +51,6 @@ G_M46478_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     x19, x20, [sp, #0x60]
             stp     x21, x22, [sp, #0x70]
             mov     fp, sp
-            str     xzr, [fp, #0x28]   // [V07 tmp2]
             adrp    x3, [HIGH RELOC #0xD1FFAB1E]      // [SetGlobalSecurityCookie]
             add     x3, x3, [LOW RELOC #0xD1FFAB1E]
             ldr     x3, [x3]
@@ -60,7 +58,7 @@ G_M46478_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     x1, x2, [fp, #0x38]    // [V01 arg1], [V01 arg1+0x08]
             mov     x19, x0
             ; byrRegs +[x19]
-                       ;; size=44 bbWeight=1 PerfScore 11.00
+                       ;; size=40 bbWeight=1 PerfScore 10.00
 G_M46478_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
             stp     xzr, xzr, [fp, #0x28]
             add     x0, fp, #40    // [V07 tmp2]
@@ -70,7 +68,6 @@ G_M46478_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, by
             mov     w2, #4
             ldr     x3, [x11]
             blr     x3
-            ; gcr arg pop 0
             ldr     x20, [fp, #0x28]   // [V28 tmp23]
             ; byrRegs +[x20]
             ldr     w21, [fp, #0x30]   // [V29 tmp24]
@@ -79,7 +76,6 @@ G_M46478_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, by
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x2, [x11]
             blr     x2
-            ; gcr arg pop 0
             stp     x0, x1, [fp, #0x18]    // [V08 tmp3], [V08 tmp3+0x08]
             mov     x2, x20
             ; byrRegs +[x2]
@@ -90,33 +86,51 @@ G_M46478_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, by
             ldr     x4, [x11]
             blr     x4
             ; byrRegs -[x2]
-            ; gcr arg pop 0
             mov     w22, #3
             b       G_M46478_IG04
                        ;; size=100 bbWeight=1 PerfScore 31.00
-G_M46478_IG03:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sxtw    w22, w11
-            cmp     w22, #0
-            ble     G_M46478_IG05
-                       ;; size=12 bbWeight=2 PerfScore 4.00
-G_M46478_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sub     w11, w22, #1
-            cmp     w11, w21
-            bhs     G_M46478_IG14
-            ldr     w0, [x20, w11, UXTW #2]
-            cbz     w0, G_M46478_IG03
-                       ;; size=20 bbWeight=4 PerfScore 24.00
-G_M46478_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            cbnz    w22, G_M46478_IG08
+G_M46478_IG03:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w22, #2
+            b       G_M46478_IG07
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            cmp     w21, #2
+            bls     G_M46478_IG20
+            ldr     w11, [x20, #0x08]
+            cbz     w11, G_M46478_IG03
+                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+G_M46478_IG05:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG11
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG06:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w22, #1
+            b       G_M46478_IG10
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w11, [x20, #0x04]
+            cbz     w11, G_M46478_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG08:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG11
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG09:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w22, wzr
+            b       G_M46478_IG11
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w11, [x20]
+            cbz     w11, G_M46478_IG09
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            cbnz    w22, G_M46478_IG14
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             ; byrRegs -[x20]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x11]
             blr     x0
             ; byrRegs +[x0]
-            ; gcr arg pop 0
             ldr     x13, [x0, #0x50]
             ; gcrRegs +[x13]
             add     x13, x13, #8
@@ -136,31 +150,30 @@ G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             ldr     xip0, [xip0]
             ldr     xip1, [fp, #0x58]  // [V33 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG07
+            beq     G_M46478_IG13
             adrp    xip0, [HIGH RELOC #0xD1FFAB1E]      // CORINFO_HELP_FAIL_FAST
             add     xip0, xip0, [LOW RELOC #0xD1FFAB1E]
             ldr     xip0, [xip0]
             blr     xip0
             ; byrRegs -[x13-x14]
-            ; gcr arg pop 0
                        ;; size=92 bbWeight=0.50 PerfScore 15.25
-G_M46478_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     x21, x22, [sp, #0x70]
             ldp     x19, x20, [sp, #0x60]
             ldp     fp, lr, [sp], #0x80
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
-G_M46478_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             cmp     w22, #1
-            bne     G_M46478_IG10
+            bne     G_M46478_IG16
             ldr     w0, [x20]
             cmp     w0, #0
-            ble     G_M46478_IG10
+            ble     G_M46478_IG16
             str     w0, [x19, #0x08]
             ldr     w0, [x19, #0x08]
             cmp     w21, #3
-            bls     G_M46478_IG14
+            bls     G_M46478_IG20
             ldr     w11, [x20, #0x0C]
             movn    w1, #0
             mov     w2, #1
@@ -174,21 +187,20 @@ G_M46478_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     xip0, [xip0]
             ldr     xip1, [fp, #0x58]  // [V33 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG09
+            beq     G_M46478_IG15
             adrp    xip0, [HIGH RELOC #0xD1FFAB1E]      // CORINFO_HELP_FAIL_FAST
             add     xip0, xip0, [LOW RELOC #0xD1FFAB1E]
             ldr     xip0, [xip0]
             blr     xip0
             ; byrRegs -[x19-x20]
-            ; gcr arg pop 0
                        ;; size=108 bbWeight=0.50 PerfScore 16.50
-G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     x21, x22, [sp, #0x70]
             ldp     x19, x20, [sp, #0x60]
             ldp     fp, lr, [sp], #0x80
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
-G_M46478_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG16:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             sxtw    x0, w22
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -196,7 +208,6 @@ G_M46478_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     x1, [x11]
             blr     x1
             ; gcrRegs +[x0]
-            ; gcr arg pop 0
             mov     x15, x0
             ; gcrRegs +[x15]
             mov     x14, x19
@@ -212,37 +223,33 @@ G_M46478_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     w1, [x20]
             ldr     w2, [x0, #0x08]
             cmp     w2, #0
-            bls     G_M46478_IG14
+            bls     G_M46478_IG20
             str     w1, [x0, #0x10]
             cmp     w22, #1
-            ble     G_M46478_IG11
+            ble     G_M46478_IG17
...

libraries.pmi.linux.arm64.checked.mch

-12 (-0.71%) : 83232.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)

@@ -10,72 +10,71 @@
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <ILCompiler.DevirtualizationManager>
 ;  V01 arg1         [V01,T00] ( 21, 26   )     ref  ->  x19         class-hnd <Internal.TypeSystem.MethodDesc>
-;  V02 arg2         [V02,T16] ( 14,  8   )     ref  ->  x20         class-hnd single-def <Internal.TypeSystem.DefType>
-;  V03 arg3         [V03,T19] (  8,  5.50)   byref  ->  x21         single-def
+;  V02 arg2         [V02,T17] ( 14,  8   )     ref  ->  x20         class-hnd single-def <Internal.TypeSystem.DefType>
+;  V03 arg3         [V03,T20] (  8,  5.50)   byref  ->  x21         single-def
 ;  V04 loc0         [V04,T22] ( 11,  5.50)     ref  ->  x23         class-hnd <Internal.TypeSystem.MethodDesc>
-;  V05 loc1         [V05,T42] (  3,  1.50)     ref  ->  x24         class-hnd single-def <Internal.TypeSystem.DefType[]>
+;  V05 loc1         [V05,T41] (  3,  1.50)     ref  ->  x24         class-hnd single-def <Internal.TypeSystem.DefType[]>
 ;  V06 loc2         [V06,T21] (  4,  6.50)     int  ->  x23        
-;  V07 loc3         [V07,T20] (  5,  7.50)     ref  ->  x25         class-hnd single-def <Internal.TypeSystem.DefType>
+;  V07 loc3         [V07,T16] (  4, 10.50)     ref  ->  x25         class-hnd single-def <Internal.TypeSystem.DefType>
 ;  V08 loc4         [V08,T07] (  5, 16.50)     int  ->  x26        
-;  V09 loc5         [V09,T04] (  7, 20   )     ref  ->  [fp+0x30]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
+;  V09 loc5         [V09,T04] (  7, 20   )     ref  ->  x28         class-hnd <Internal.TypeSystem.DefType>
 ;  V10 loc6         [V10,T26] (  6,  4.50)     ref  ->  x24         class-hnd <Internal.TypeSystem.MethodDesc>
-;  V11 loc7         [V11,T43] (  3,  1.50)     ref  ->   x0         class-hnd single-def <Internal.TypeSystem.DefType[]>
+;  V11 loc7         [V11,T42] (  3,  1.50)     ref  ->   x0         class-hnd single-def <Internal.TypeSystem.DefType[]>
 ;  V12 loc8         [V12,T08] (  5, 16.50)     int  ->  x25        
 ;  V13 loc9         [V13,T05] (  6, 20   )     ref  ->  x28         class-hnd <Internal.TypeSystem.DefType>
 ;  V14 loc10        [V14    ] (  4,  2   )     ref  ->  [fp+0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <Internal.TypeSystem.MethodDesc>
-;  V15 loc11        [V15,T48] (  3,  1.50)     int  ->   x0         single-def
+;  V15 loc11        [V15,T47] (  3,  1.50)     int  ->   x0         single-def
 ;  V16 loc12        [V16,T03] ( 10, 20   )     ref  ->  x23         class-hnd <Internal.TypeSystem.TypeDesc>
 ;* V17 loc13        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Internal.TypeSystem.MethodDesc>
 ;* V18 loc14        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Internal.TypeSystem.MethodDesc>
 ;# V19 OutArgs      [V19    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V20 tmp1         [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
-;  V21 tmp2         [V21,T34] (  3,  2.25)     ref  ->   x1         single-def "CASTCLASS eval op1"
-;  V22 tmp3         [V22,T49] (  3,  1.25)    long  ->   x2         "fgMakeTemp is creating a new local variable"
-;  V23 tmp4         [V23,T31] (  5,  3.75)     ref  ->  x25         class-hnd "spilling QMark2" <Internal.TypeSystem.DefType>
+;  V21 tmp2         [V21,T33] (  3,  2.25)     ref  ->   x1         single-def "CASTCLASS eval op1"
+;  V22 tmp3         [V22,T48] (  3,  1.25)    long  ->   x2         "fgMakeTemp is creating a new local variable"
+;  V23 tmp4         [V23,T30] (  5,  3.75)     ref  ->  x25         class-hnd "spilling QMark2" <Internal.TypeSystem.DefType>
 ;  V24 tmp5         [V24,T23] (  3,  5   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
-;  V25 tmp6         [V25,T35] (  3,  2   )     int  ->   x2         "Inline return value spill temp"
-;  V26 tmp7         [V26,T33] (  3,  2.50)     int  ->   x2         single-def "Inline stloc first use temp"
-;  V27 tmp8         [V27,T44] (  3,  1.50)     ref  ->  x24         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
+;  V25 tmp6         [V25,T34] (  3,  2   )     int  ->   x2         "Inline return value spill temp"
+;  V26 tmp7         [V26,T32] (  3,  2.50)     int  ->   x2         single-def "Inline stloc first use temp"
+;  V27 tmp8         [V27,T43] (  3,  1.50)     ref  ->  x24         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
 ;* V28 tmp9         [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V29 tmp10        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
-;  V30 tmp11        [V30,T17] (  5, 10   )     ref  ->  [fp+0x28]  class-hnd "Inline stloc first use temp" <Internal.TypeSystem.TypeDesc>
-;  V31 tmp12        [V31,T30] (  2,  4   )     ref  ->   x2         class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
+;  V30 tmp11        [V30,T18] (  5, 10   )     ref  ->  [fp+0x30]  class-hnd "Inline stloc first use temp" <Internal.TypeSystem.TypeDesc>
+;  V31 tmp12        [V31,T29] (  2,  4   )     ref  ->   x1         class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
 ;* V32 tmp13        [V32    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V33 tmp14        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <<unknown class>>
 ;* V34 tmp15        [V34    ] (  0,  0   )     int  ->  zero-ref   
 ;* V35 tmp16        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc>
-;  V36 tmp17        [V36,T45] (  3,  1.50)     ref  ->   x0         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
-;  V37 tmp18        [V37,T01] (  3, 24   )     ref  ->  [fp+0x20]  class-hnd spill-single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
+;  V36 tmp17        [V36,T44] (  3,  1.50)     ref  ->   x0         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
+;  V37 tmp18        [V37,T01] (  3, 24   )     ref  ->  [fp+0x28]  class-hnd spill-single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V38 tmp19        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V39 tmp20        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V40 tmp21        [V40    ] (  0,  0   )     int  ->  zero-ref   
 ;  V41 tmp22        [V41,T02] (  3, 24   )     ref  ->  x24         class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V42 tmp23        [V42    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V43 tmp24        [V43    ] (  0,  0   )     int  ->  zero-ref   
-;  V44 tmp25        [V44,T36] (  2,  2   )     ref  ->   x0         single-def "Single return block return value"
+;  V44 tmp25        [V44,T35] (  2,  2   )     ref  ->   x0         single-def "Single return block return value"
 ;  V45 tmp26        [V45,T09] (  2, 16   )     ref  ->  x25         "argument with side effect"
 ;  V46 tmp27        [V46,T10] (  2, 16   )     ref  ->   x1         "argument with side effect"
-;  V47 tmp28        [V47,T37] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V48 tmp29        [V48,T38] (  2,  2   )     ref  ->  x24         single-def "argument with side effect"
-;  V49 tmp30        [V49,T39] (  2,  2   )     ref  ->   x1         single-def "argument with side effect"
-;  V50 tmp31        [V50,T32] (  3,  3   )     ref  ->   x0         single-def "argument with side effect"
-;  V51 tmp32        [V51,T40] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V52 tmp33        [V52,T11] (  2, 16   )     ref  ->  [fp+0x18]  spill-single-def "argument with side effect"
+;  V47 tmp28        [V47,T36] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V48 tmp29        [V48,T37] (  2,  2   )     ref  ->  x24         single-def "argument with side effect"
+;  V49 tmp30        [V49,T38] (  2,  2   )     ref  ->   x1         single-def "argument with side effect"
+;  V50 tmp31        [V50,T31] (  3,  3   )     ref  ->   x0         single-def "argument with side effect"
+;  V51 tmp32        [V51,T39] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V52 tmp33        [V52,T11] (  2, 16   )     ref  ->  [fp+0x20]  spill-single-def "argument with side effect"
 ;  V53 tmp34        [V53,T12] (  2, 16   )     ref  ->   x1         "argument with side effect"
 ;* V54 tmp35        [V54    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V55 tmp36        [V55,T41] (  2,  2   )     ref  ->   x1         single-def "argument with side effect"
+;  V55 tmp36        [V55,T40] (  2,  2   )     ref  ->   x1         single-def "argument with side effect"
 ;  V56 tmp37        [V56,T13] (  2, 16   )     ref  ->   x1         "argument with side effect"
-;  V57 tmp38        [V57,T14] (  2, 16   )     ref  ->  [fp+0x10]  spill-single-def "argument with side effect"
+;  V57 tmp38        [V57,T14] (  2, 16   )     ref  ->  [fp+0x18]  spill-single-def "argument with side effect"
 ;  V58 tmp39        [V58,T15] (  2, 16   )     ref  ->   x1         "argument with side effect"
-;  V59 tmp40        [V59,T18] (  2,  8   )     ref  ->   x1         "argument with side effect"
+;  V59 tmp40        [V59,T19] (  2,  8   )     ref  ->   x1         "argument with side effect"
 ;  V60 cse0         [V60,T06] ( 10, 18   )    long  ->  x22         "CSE - aggressive"
-;  V61 cse1         [V61,T29] (  2,  4.50)    long  ->  x28         hoist "CSE - moderate"
-;  V62 cse2         [V62,T46] (  3,  1.50)     ref  ->  x23         "CSE - conservative"
-;  V63 cse3         [V63,T47] (  3,  1.50)     ref  ->  x25         "CSE - conservative"
+;  V61 cse1         [V61,T45] (  3,  1.50)     ref  ->  x23         "CSE - moderate"
+;  V62 cse2         [V62,T46] (  3,  1.50)     ref  ->  x25         "CSE - moderate"
+;  V63 cse3         [V63,T24] (  3,  5   )     int  ->  x27         "CSE - moderate"
 ;  V64 cse4         [V64,T27] (  2,  4.50)   byref  ->  x24         hoist "CSE - moderate"
-;  V65 cse5         [V65,T24] (  3,  5   )     int  ->  x27         "CSE - moderate"
-;  V66 cse6         [V66,T28] (  2,  4.50)   byref  ->  x27         hoist "CSE - moderate"
-;  V67 cse7         [V67,T25] (  3,  5   )     int  ->  x26         "CSE - moderate"
+;  V65 cse5         [V65,T28] (  2,  4.50)   byref  ->  x27         hoist "CSE - moderate"
+;  V66 cse6         [V66,T25] (  3,  5   )     int  ->  x26         "CSE - moderate"
 ;
 ; Lcl frame size = 48
 
@@ -215,30 +214,26 @@ G_M48343_IG12:        ; bbWeight=0.50, gcrefRegs=3180000 {x19 x20 x24 x25}, byre
             add     x24, x24, #16
             ; gcrRegs -[x24]
             ; byrRegs +[x24]
-            ldr     xzr, [x25]
-            ldr     x0, [x25]
-            ldr     x28, [x0, #0x58]
-                       ;; size=32 bbWeight=0.50 PerfScore 7.25
+                       ;; size=20 bbWeight=0.50 PerfScore 2.75
 G_M48343_IG13:        ; bbWeight=4, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=1200000 {x21 x24}, byref, isz
-            ldr     x1, [x24, w26, UXTW #3]
-            ; gcrRegs +[x1]
-            str     x1, [fp, #0x30]    // [V09 loc5]
-            ; GC ptr vars +{V09}
+            ldr     x28, [x24, w26, UXTW #3]
+            ; gcrRegs +[x28]
             mov     x0, x25
             ; gcrRegs +[x0]
-            ldr     x2, [x28, #0x20]
-            blr     x2
-            ; gcrRegs -[x1]
-            str     x0, [fp, #0x18]    // [V52 tmp33]
+            ldr     x1, [x25]
+            ldr     x1, [x1, #0x58]
+            ldr     x1, [x1, #0x20]
+            blr     x1
+            str     x0, [fp, #0x20]    // [V52 tmp33]
             ; GC ptr vars +{V52}
-            ldr     x0, [fp, #0x30]    // [V09 loc5]
-            ldr     x2, [x0]
+            mov     x0, x28
+            ldr     x2, [x28]
             ldr     x2, [x2, #0x58]
             ldr     x2, [x2, #0x20]
             blr     x2
             mov     x1, x0
             ; gcrRegs +[x1]
-            ldr     x0, [fp, #0x18]    // [V52 tmp33]
+            ldr     x0, [fp, #0x20]    // [V52 tmp33]
             movz    x2, #0xD1FFAB1E      // code for Internal.TypeSystem.TypeDesc:op_Equality(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc):ubyte
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
@@ -247,28 +242,26 @@ G_M48343_IG13:        ; bbWeight=4, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=1
             blr     x2
             ; gcrRegs -[x0-x1]
             cbz     w0, G_M48343_IG16
-                       ;; size=76 bbWeight=4 PerfScore 122.00
-G_M48343_IG14:        ; bbWeight=2, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=1200000 {x21 x24}, byref, isz
-            ldr     x1, [fp, #0x30]    // [V09 loc5]
+                       ;; size=80 bbWeight=4 PerfScore 136.00
+G_M48343_IG14:        ; bbWeight=2, gcrefRegs=12180000 {x19 x20 x25 x28}, byrefRegs=1200000 {x21 x24}, byref, isz
+            ldr     x1, [x28, #0x08]
             ; gcrRegs +[x1]
-            ldr     x2, [x1, #0x08]
-            ; gcrRegs +[x2]
-            str     x2, [fp, #0x28]    // [V30 tmp11]
+            str     x1, [fp, #0x30]    // [V30 tmp11]
             ; GC ptr vars +{V30}
             mov     w0, #1
-            movz    x3, #0xD1FFAB1E      // code for <unknown method>
-            movk    x3, #0xD1FFAB1E LSL #16
-            movk    x3, #0xD1FFAB1E LSL #32
-            ldr     x3, [x3]
-            blr     x3
-            ; gcrRegs -[x1-x2]
-            ldr     x2, [fp, #0x28]    // [V30 tmp11]
+            movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #0xD1FFAB1E LSL #32
+            ldr     x2, [x2]
+            blr     x2
+            ; gcrRegs -[x1]
+            ldr     x2, [fp, #0x30]    // [V30 tmp11]
             ; gcrRegs +[x2]
             cbnz    x2, G_M48343_IG15
-            ldr     x0, [fp, #0x30]    // [V09 loc5]
+            mov     x0, x28
             ; gcrRegs +[x0]
             mov     w1, wzr
-            ldr     x2, [x0]
+            ldr     x2, [x28]
             ; gcrRegs -[x2]
             ldr     x2, [x2, #0x48]
             ldr     x2, [x2, #0x28]
@@ -276,8 +269,8 @@ G_M48343_IG14:        ; bbWeight=2, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=1
             blr     x2
             mov     x3, x0
             ; gcrRegs +[x3]
-            ldr     x0, [fp, #0x30]    // [V09 loc5]
-            str     x3, [fp, #0x28]    // [V30 tmp11]
+            mov     x0, x28
+            str     x3, [fp, #0x30]    // [V30 tmp11]
             ; GC ptr vars +{V30}
             mov     x2, x3
             ; gcrRegs +[x2]
@@ -286,12 +279,11 @@ G_M48343_IG14:        ; bbWeight=2, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=1
             movk    x4, #0xD1FFAB1E LSL #16
             movk    x4, #0xD1FFAB1E LSL #32
             ldr     x4, [x4]
-            ; GC ptr vars -{V09}
             blr     x4
-            ; gcrRegs -[x0 x2-x3]
-            ldr     x2, [fp, #0x28]    // [V30 tmp11]
+            ; gcrRegs -[x0 x2-x3 x28]
+            ldr     x2, [fp, #0x30]    // [V30 tmp11]
             ; gcrRegs +[x2]
-                       ;; size=112 bbWeight=2 PerfScore 79.00
+                       ;; size=108 bbWeight=2 PerfScore 69.00
 G_M48343_IG15:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=2180004 {x2 x19 x20 x25}, byrefRegs=1200000 {x21 x24}, gcvars, byref, isz
             ; GC ptr vars -{V30}
             mov     x0, x2
@@ -426,16 +418,16 @@ G_M48343_IG23:        ; bbWeight=4, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRe
             ; gcrRegs +[x0]
             ldr     x1, [x22, #0x18]
             blr     x1
-            str     x0, [fp, #0x20]    // [V37 tmp18]
+            str     x0, [fp, #0x28]    // [V37 tmp18]
             ; GC ptr vars +{V37}
             mov     x0, x28
             ldr     x2, [x28]
             ldr     x2, [x2, #0x58]
             ldr     x2, [x2, #0x20]
             blr     x2
-            str     x0, [fp, #0x10]    // [V57 tmp38]
+            str     x0, [fp, #0x18]    // [V57 tmp38]
             ; GC ptr vars +{V57}
-            ldr     x0, [fp, #0x20]    // [V37 tmp18]
+            ldr     x0, [fp, #0x28]    // [V37 tmp18]
             ldr     x2, [x0]
             ldr     x2, [x2, #0x58]
             ldr     x2, [x2, #0x20]
@@ -443,7 +435,7 @@ G_M48343_IG23:        ; bbWeight=4, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRe
             blr     x2
             mov     x1, x0
             ; gcrRegs +[x1]
-            ldr     x0, [fp, #0x10]    // [V57 tmp38]
+            ldr     x0, [fp, #0x18]    // [V57 tmp38]
             movz    x2, #0xD1FFAB1E      // code for Internal.TypeSystem.TypeDesc:op_Equality(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc):ubyte
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
@@ -727,7 +719,7 @@ G_M48343_IG40:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=28 bbWeight=0.50 PerfScore 3.50
 
-; Total bytes of code 1684, prolog size 32, PerfScore 829.50, instruction count 421, allocated bytes for code 1684 (MethodHash=11874328) for method ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
...

-4 (-0.20%) : 271536.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

@@ -12,14 +12,14 @@
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.DateTime>
 ;  V02 arg2         [V02,T30] (  8,  7   )   ubyte  ->  [fp+0x44]  EH-live single-def
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V04 loc1         [V04,T01] ( 11,116   )     ref  ->  x24         class-hnd <<unknown class>>
+;  V04 loc1         [V04,T05] (  8, 68   )     ref  ->  x24         class-hnd <<unknown class>>
 ;  V05 loc2         [V05,T28] (  3, 12   )     int  ->   x1        
-;  V06 loc3         [V06,T03] (  7,108   )     ref  ->   x2         class-hnd <System.Runtime.Caching.MemoryCacheEntry>
+;  V06 loc3         [V06,T02] (  7,108   )     ref  ->   x2         class-hnd <System.Runtime.Caching.MemoryCacheEntry>
 ;  V07 loc4         [V07,T14] (  5, 35   )     int  ->  [fp+0x40]  do-not-enreg[Z] EH-live
 ;  V08 loc5         [V08,T38] (  2,  5   )     ref  ->  x20         class-hnd exact single-def <System.Runtime.Caching.MemoryCacheStore>
 ;* V09 loc6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Runtime.Caching.ExpiresEntryRef>
 ;* V10 loc7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V11 loc8         [V11,T04] ( 16, 74   )     ref  ->  [fp+0x18]  class-hnd exact EH-live single-def <System.Runtime.Caching.ExpiresBucket>
+;  V11 loc8         [V11,T03] ( 16, 74   )     ref  ->  [fp+0x18]  class-hnd exact EH-live single-def <System.Runtime.Caching.ExpiresBucket>
 ;  V12 loc9         [V12    ] (  6,  6   )   ubyte  ->  [fp+0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;  V13 loc10        [V13,T26] (  4, 13   )     int  ->  x19        
 ;* V14 loc11        [V14,T47] (  0,  0   )     int  ->  zero-ref    do-not-enreg[M] EH-live
@@ -59,7 +59,7 @@
 ;  V48 tmp28        [V48,T32] (  6,  6   )     ref  ->  x19         class-hnd exact "Inlining Arg" <System.Runtime.Caching.MemoryCacheStore>
 ;  V49 tmp29        [V49,T31] (  5,  5   )    long  ->  x19         single-def "field V01._dateData (fldOffset=0x0)" P-INDEP
 ;  V50 tmp30        [V50,T15] (  5, 35   )     int  ->  [fp+0x2C]  do-not-enreg[Z] EH-live "field V03._ref (fldOffset=0x0)" P-INDEP
-;  V51 tmp31        [V51,T05] ( 13, 71   )     int  ->   x1         "field V09._ref (fldOffset=0x0)" P-INDEP
+;  V51 tmp31        [V51,T04] ( 13, 71   )     int  ->   x1         "field V09._ref (fldOffset=0x0)" P-INDEP
 ;  V52 tmp32        [V52,T20] (  4, 24   )     int  ->  registers   "field V10._ref (fldOffset=0x0)" P-INDEP
 ;  V53 tmp33        [V53,T16] (  2, 32   )     int  ->   x0         "field V21._ref (fldOffset=0x0)" P-INDEP
 ;* V54 tmp34        [V54    ] (  0,  0   )    long  ->  zero-ref    single-def "field V26._dateData (fldOffset=0x0)" P-INDEP
@@ -77,9 +77,9 @@
 ;  V66 tmp46        [V66,T10] (  3, 48   )     ref  ->   x0         "arr expr"
 ;  V67 PSPSym       [V67,T50] (  1,  1   )    long  ->  [fp+0x48]  do-not-enreg[V] "PSPSym"
 ;* V68 cse0         [V68,T51] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
-;  V69 cse1         [V69,T25] (  4, 16   )   byref  ->   x1         "CSE - moderate"
-;  V70 cse2         [V70,T11] (  3, 48   )    long  ->   x1         "CSE - aggressive"
-;  V71 cse3         [V71,T02] (  5,112   )    long  ->  x28         "CSE - aggressive"
+;  V69 cse1         [V69,T11] (  3, 48   )    long  ->   x1         "CSE - aggressive"
+;  V70 cse2         [V70,T01] (  5,112   )   byref  ->  x28         "CSE - aggressive"
+;  V71 cse3         [V71,T25] (  4, 16   )   byref  ->   x1         "CSE - moderate"
 ;  V72 cse4         [V72,T45] (  3,  3   )     ref  ->   x2         "CSE - moderate"
 ;  V73 cse5         [V73,T46] (  3,  3   )     ref  ->   x1         "CSE - moderate"
 ;  V74 cse6         [V74,T12] (  4, 44   )     int  ->  x25         "CSE - aggressive"
@@ -215,7 +215,7 @@ G_M744_IG10:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; GC ptr vars +{V11}
             str     wzr, [fp, #0x38]   // [V12 loc9]
                        ;; size=12 bbWeight=1 PerfScore 2.50
-G_M744_IG11:        ; bbWeight=1, gcVars=0000000000080010 {V00 V11}, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M744_IG11:        ; bbWeight=1, gcVars=0000000000080008 {V00 V11}, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0]
             ldrb    w1, [fp, #0x38]    // [V12 loc9]
             cbz     w1, G_M744_IG14
@@ -235,9 +235,9 @@ G_M744_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M744_IG14:        ; bbWeight=1, gcVars=0000000000080010 {V00 V11}, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M744_IG14:        ; bbWeight=1, gcVars=0000000000080008 {V00 V11}, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x22]
-            ; GC ptr vars +{V04 V11}
+            ; GC ptr vars +{V11}
             add     x1, fp, #56    // [V12 loc9]
             mov     x0, x22
             ; gcrRegs +[x0]
@@ -344,16 +344,15 @@ G_M744_IG19:        ; bbWeight=4, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}
                        ;; size=40 bbWeight=4 PerfScore 44.00
 G_M744_IG20:        ; bbWeight=32, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
             ubfiz   x1, x27, #4, #32
-            add     x28, x1, #16
-            add     x1, x24, x28
-            ; byrRegs +[x1]
-            ldr     x2, [x1, #0x08]
+            add     x1, x1, #16
+            add     x28, x24, x1
+            ; byrRegs +[x28]
+            ldr     x2, [x28, #0x08]
             ; gcrRegs +[x2]
             cbz     x2, G_M744_IG24
                        ;; size=20 bbWeight=32 PerfScore 192.00
-G_M744_IG21:        ; bbWeight=16, gcrefRegs=1400004 {x2 x22 x24}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[x1]
-            ldr     x1, [x24, x28]
+G_M744_IG21:        ; bbWeight=16, gcrefRegs=1400004 {x2 x22 x24}, byrefRegs=10000000 {x28}, byref, isz
+            ldr     x1, [x28]
             mov     x0, x1
             and     x0, x0, #0xD1FFAB1E
             cmp     x0, x20
@@ -367,22 +366,21 @@ G_M744_IG21:        ; bbWeight=16, gcrefRegs=1400004 {x2 x22 x24}, byrefRegs=000
             ldr     x2, [x2]
             blr     x2
             ; gcrRegs -[x0]
+            ; byrRegs -[x28]
             ; gcr arg pop 0
             b       G_M744_IG23
                        ;; size=48 bbWeight=16 PerfScore 200.00
-G_M744_IG22:        ; bbWeight=16, gcrefRegs=1400004 {x2 x22 x24}, byrefRegs=0000 {}, byref
+G_M744_IG22:        ; bbWeight=16, gcrefRegs=1400004 {x2 x22 x24}, byrefRegs=10000000 {x28}, byref
             ; gcrRegs +[x2]
+            ; byrRegs +[x28]
             mov     w0, #255
             strb    w0, [x2, #0x30]
             ldr     w0, [x21]
             str     w0, [x2, #0x50]
-            add     x0, x24, x28
-            ; byrRegs +[x0]
-            mov     w1, #1
-            str     w1, [x0, #0x04]
+            mov     w0, #1
+            str     w0, [x28, #0x04]
             ldr     w0, [fp, #0x2C]    // [V50 tmp30]
-            ; byrRegs -[x0]
-            str     w0, [x24, x28]
+            str     w0, [x28]
             uxtb    w0, w27
             orr     w0, w0, w23,  LSL #8
             str     w0, [fp, #0x2C]    // [V50 tmp30]
@@ -392,9 +390,10 @@ G_M744_IG22:        ; bbWeight=16, gcrefRegs=1400004 {x2 x22 x24}, byrefRegs=000
             ldr     w0, [x22, #0x28]
             add     w0, w0, #1
             str     w0, [x22, #0x28]
-                       ;; size=72 bbWeight=16 PerfScore 336.00
+                       ;; size=68 bbWeight=16 PerfScore 328.00
 G_M744_IG23:        ; bbWeight=16, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x2]
+            ; byrRegs -[x28]
             sub     w26, w26, #1
             cbz     w26, G_M744_IG25
                        ;; size=8 bbWeight=16 PerfScore 24.00
@@ -425,7 +424,7 @@ G_M744_IG27:        ; bbWeight=1, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byr
                        ;; size=16 bbWeight=1 PerfScore 4.50
 G_M744_IG28:        ; bbWeight=1, gcVars=0000000000080000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x22]
-            ; GC ptr vars -{V04 V11}
+            ; GC ptr vars -{V11}
             ldrb    w0, [fp, #0x38]    // [V12 loc9]
             cbz     w0, G_M744_IG32
             ldr     x0, [fp, #0x20]    // [V00 this]
@@ -884,7 +883,7 @@ G_M744_IG65:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, f
             ret     lr
                        ;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1960, prolog size 52, PerfScore 1888.50, instruction count 490, allocated bytes for code 1960 (MethodHash=d871fd17) for method System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)
+; Total bytes of code 1956, prolog size 52, PerfScore 1880.50, instruction count 489, allocated bytes for code 1956 (MethodHash=d871fd17) for method System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -895,7 +894,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 392 (0x00188) Actual length = 1568 (0x000620)
+  Function Length   : 391 (0x00187) Actual length = 1564 (0x00061c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+3.97%) : 284422.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

@@ -3,48 +3,48 @@
 ; FullOpts code
 ; optimized code
 ; fp based frame
-; fully interruptible
+; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] ( 12,  7   )   byref  ->  x19         this single-def
-;  V01 arg1         [V01,T04] (  3,  3   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
+;  V00 this         [V00,T01] ( 12,  7   )   byref  ->  x19         this single-def
+;  V01 arg1         [V01,T02] (  3,  3   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
-;  V03 loc1         [V03,T02] (  9, 12   )     int  ->  x21        
+;  V03 loc1         [V03,T03] (  9,  4.75)     int  ->  x21        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[int]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [fp+0x30]  do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Decimal>
-;  V09 tmp4         [V09,T05] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V10 tmp5         [V10,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V09 tmp4         [V09,T04] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V10 tmp5         [V10,T10] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
-;  V13 tmp8         [V13,T18] (  2,  1   )     int  ->   x0        
-;  V14 tmp9         [V14,T06] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V15 tmp10        [V15,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V16 tmp11        [V16,T07] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V17 tmp12        [V17,T13] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V18 tmp13        [V18,T14] (  2,  2   )     int  ->   x1         "impAppendStmt"
+;  V13 tmp8         [V13,T17] (  2,  1   )     int  ->   x0        
+;  V14 tmp9         [V14,T05] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V15 tmp10        [V15,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V16 tmp11        [V16,T06] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V17 tmp12        [V17,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V18 tmp13        [V18,T13] (  2,  2   )     int  ->   x1         "impAppendStmt"
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    ptr
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp18        [V23,T19] (  2,  1   )     int  ->   x0        
+;  V23 tmp18        [V23,T18] (  2,  1   )     int  ->   x0        
 ;  V24 tmp19        [V24    ] (  6, 11   )  struct (16) [fp+0x10]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
-;  V25 tmp20        [V25,T09] (  3,  2.50)     int  ->   x1         "Inline stloc first use temp"
+;  V25 tmp20        [V25,T08] (  3,  2.50)     int  ->   x1         "Inline stloc first use temp"
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Decimal>
 ;* V28 tmp23        [V28    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V29 tmp24        [V29    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V30 tmp25        [V30    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;  V31 tmp26        [V31,T01] ( 12, 12   )   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V32 tmp27        [V32,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp26        [V31,T00] ( 14,  9.50)   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V32 tmp27        [V32,T19] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp28        [V33    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V34 tmp29        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V35 tmp30        [V35,T10] (  2,  2   )   byref  ->  x20         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V36 tmp31        [V36,T21] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
+;  V35 tmp30        [V35,T09] (  2,  2   )   byref  ->  x20         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V36 tmp31        [V36,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V37 tmp32        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V08._flags (fldOffset=0x0)" P-INDEP
 ;* V38 tmp33        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V08._hi32 (fldOffset=0x4)" P-INDEP
 ;* V39 tmp34        [V39    ] (  0,  0   )    long  ->  zero-ref    "field V08._lo64 (fldOffset=0x8)" P-INDEP
@@ -53,12 +53,11 @@
 ;  V42 tmp37        [V42    ] (  3,  4   )    long  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V24._lo64 (fldOffset=0x8)" P-DEP
 ;* V43 tmp38        [V43    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V44 tmp39        [V44    ] (  0,  0   )     int  ->  zero-ref    ptr "field V26._length (fldOffset=0x8)" P-INDEP
-;  V45 tmp40        [V45,T15] (  2,  2   )     int  ->  x13         "field V27._flags (fldOffset=0x0)" P-INDEP
-;  V46 tmp41        [V46,T16] (  2,  2   )     int  ->  x14         "field V27._hi32 (fldOffset=0x4)" P-INDEP
-;  V47 tmp42        [V47,T08] (  3,  3   )    long  ->  x12         "field V27._lo64 (fldOffset=0x8)" P-INDEP
+;  V45 tmp40        [V45,T14] (  2,  2   )     int  ->  x13         "field V27._flags (fldOffset=0x0)" P-INDEP
+;  V46 tmp41        [V46,T15] (  2,  2   )     int  ->  x14         "field V27._hi32 (fldOffset=0x4)" P-INDEP
+;  V47 tmp42        [V47,T07] (  3,  3   )    long  ->  x12         "field V27._lo64 (fldOffset=0x8)" P-INDEP
 ;  V48 GsCookie     [V48    ] (  1,  1   )    long  ->  [fp+0x40]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V49 cse0         [V49,T17] (  3,  1.50)     int  ->   x1         "CSE - moderate"
-;  V50 cse1         [V50,T00] (  4, 14   )     int  ->  x13         "CSE - aggressive"
+;  V49 cse0         [V49,T16] (  3,  1.50)     int  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 56
 
@@ -95,7 +94,6 @@ G_M46478_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-            ; gcr arg pop 0
                        ;; size=36 bbWeight=0.50 PerfScore 4.00
 G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
             ldp     w13, w14, [fp, #0x10]  // [V40 tmp35], [V41 tmp36]
@@ -107,30 +105,48 @@ G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20
             mov     w21, #3
             b       G_M46478_IG06
                        ;; size=32 bbWeight=1 PerfScore 9.50
-G_M46478_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sxtw    w21, w13
-            cmp     w21, #0
-            ble     G_M46478_IG07
-                       ;; size=12 bbWeight=2 PerfScore 4.00
-G_M46478_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sub     w13, w21, #1
-            cmp     w13, #4
-            bhs     G_M46478_IG17
-            ldr     w14, [x20, w13, UXTW #2]
-            cbz     w14, G_M46478_IG05
-                       ;; size=20 bbWeight=4 PerfScore 24.00
-G_M46478_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            cbnz    w21, G_M46478_IG11
+G_M46478_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, #2
+            b       G_M46478_IG09
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20, #0x08]
+            cbz     w13, G_M46478_IG05
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG07:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG13
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG08:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, #1
+            b       G_M46478_IG12
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20, #0x04]
+            cbz     w13, G_M46478_IG08
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG10:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG13
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG11:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, wzr
+            b       G_M46478_IG13
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20]
+            cbz     w13, G_M46478_IG11
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            cbnz    w21, G_M46478_IG17
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M46478_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             ; byrRegs -[x20]
             movz    x13, #0xD1FFAB1E
             movk    x13, #0xD1FFAB1E LSL #16
             movk    x13, #0xD1FFAB1E LSL #32
             ldr     w13, [x13]
-            tbz     w13, #0, G_M46478_IG18
+            tbz     w13, #0, G_M46478_IG24
                        ;; size=20 bbWeight=0.50 PerfScore 2.75
-G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             movz    x13, #0xD1FFAB1E      // box for <unknown class>:<unknown field>
             movk    x13, #0xD1FFAB1E LSL #16
             movk    x13, #0xD1FFAB1E LSL #32
@@ -151,24 +167,23 @@ G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             movk    xip0, #0xD1FFAB1E LSL #48
             ldr     xip1, [fp, #0x40]  // [V48 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG10
+            beq     G_M46478_IG16
             bl      CORINFO_HELP_FAIL_FAST
             ; byrRegs -[x13-x14]
-            ; gcr arg pop 0
                        ;; size=68 bbWeight=0.50 PerfScore 8.50
-G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x21, [sp, #0x58]
             ldp     x19, x20, [sp, #0x48]
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M46478_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG17:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             cmp     w21, #1
-            bne     G_M46478_IG13
+            bne     G_M46478_IG19
             ldr     w1, [x20]
             cmp     w1, #0
-            ble     G_M46478_IG13
+            ble     G_M46478_IG19
             str     w1, [x19, #0x08]
             ldr     w1, [x19, #0x08]
             ldr     w0, [x20, #0x0C]
@@ -185,18 +200,17 @@ G_M46478_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             movk    xip0, #0xD1FFAB1E LSL #48
             ldr     xip1, [fp, #0x40]  // [V48 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG12
+            beq     G_M46478_IG18
             bl      CORINFO_HELP_FAIL_FAST
             ; byrRegs -[x19-x20]
-            ; gcr arg pop 0
                        ;; size=92 bbWeight=0.50 PerfScore 12.75
-G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG18:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x21, [sp, #0x58]
             ldp     x19, x20, [sp, #0x48]
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG19:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             sxtw    x1, w21
             movz    x0, #0xD1FFAB1E
@@ -204,7 +218,6 @@ G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWARR_1_VC
             ; gcrRegs +[x0]
-            ; gcr arg pop 0
             mov     x15, x0
             ; gcrRegs +[x15]
             mov     x14, x19
@@ -217,30 +230,30 @@ G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     w1, [x20]
             ldr     w2, [x0, #0x08]
             cmp     w2, #0
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x10]
             cmp     w21, #1
-            ble     G_M46478_IG14
+            ble     G_M46478_IG20
             ldr     x0, [x19]
             ldr     w1, [x20, #0x04]
             ldr     w2, [x0, #0x08]
             cmp     w2, #1
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x14]
                        ;; size=88 bbWeight=0.50 PerfScore 14.75
-G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+G_M46478_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
             ; gcrRegs -[x0]
             cmp     w21, #2
-            ble     G_M46478_IG15
+            ble     G_M46478_IG21
             ldr     x0, [x19]
             ; gcrRegs +[x0]
             ldr     w1, [x20, #0x08]
             ldr     w2, [x0, #0x08]
             cmp     w2, #2
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x18]
...

libraries_tests.run.linux.arm64.Release.mch

-44 (-6.47%) : 530200.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (Tier1)

@@ -4,7 +4,7 @@
 ; optimized code
 ; optimized using Dynamic PGO
 ; fp based frame
-; partially interruptible
+; fully interruptible
 ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 39
 ; 3 inlinees with PGO data; 13 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
@@ -12,27 +12,27 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ubyte]>
 ;  V01 arg1         [V01,T01] (  7,  3   )   byref  ->  x19         single-def
 ;  V02 arg2         [V02,T02] (  7,  3   )   byref  ->  x20         single-def
-;  V03 loc0         [V03,T05] ( 20,  3.08)     int  ->  x21        
+;  V03 loc0         [V03,T05] ( 11,  3.08)     int  ->  x21        
 ;  V04 loc1         [V04,T04] (  6,  3.97)     int  ->  x22        
 ;  V05 loc2         [V05,T17] (  2,  0   )     int  ->   x0        
-;  V06 loc3         [V06    ] (  2,  0   )  struct ( 8) [fp+0x18]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Text.Rune>
-;  V07 loc4         [V07    ] (  3,  0   )     int  ->  [fp+0x10]  do-not-enreg[X] addr-exposed ld-addr-op
-;* V08 loc5         [V08,T07] (  0,  0   )     int  ->  zero-ref   
+;  V06 loc3         [V06    ] (  2,  0   )  struct ( 8) [fp+0x20]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Text.Rune>
+;  V07 loc4         [V07    ] (  3,  0   )     int  ->  [fp+0x18]  do-not-enreg[X] addr-exposed ld-addr-op
+;  V08 loc5         [V08,T07] (  4,  0.03)     int  ->  x23        
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V11 tmp2         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Rune>
 ;* V12 tmp3         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;  V13 tmp4         [V13,T10] (  3,  0   )     int  ->  x21         "Inlining Arg"
-;  V14 tmp5         [V14,T12] (  2,  0   )   byref  ->  x22         single-def "Inlining Arg"
+;  V14 tmp5         [V14,T12] (  2,  0   )   byref  ->  x23         single-def "Inlining Arg"
 ;* V15 tmp6         [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Rune>
 ;* V16 tmp7         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;  V17 tmp8         [V17,T09] (  5,  0   )     int  ->  x21         "Inlining Arg"
 ;  V18 tmp9         [V18,T13] (  2,  0   )   byref  ->  x22         "Inlining Arg"
 ;* V19 tmp10        [V19    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Rune>
 ;  V20 tmp11        [V20,T11] (  3,  0   )     int  ->   x0         "Single return block return value"
-;  V21 tmp12        [V21,T03] (  7,  2   )   byref  ->   x0         "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V22 tmp13        [V22,T00] (  9,  3.03)     int  ->   x1         "field V00._length (fldOffset=0x8)" P-INDEP
-;  V23 tmp14        [V23    ] (  2,  0   )     int  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V06._value (fldOffset=0x0)" P-DEP
+;  V21 tmp12        [V21,T03] (  5,  2   )   byref  ->   x0         "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V22 tmp13        [V22,T00] (  6,  3.03)     int  ->   x1         "field V00._length (fldOffset=0x8)" P-INDEP
+;  V23 tmp14        [V23    ] (  2,  0   )     int  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V06._value (fldOffset=0x0)" P-DEP
 ;* V24 tmp15        [V24    ] (  0,  0   )   byref  ->  zero-ref    "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V25 tmp16        [V25    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
 ;  V26 tmp17        [V26,T06] (  2,  1.95)     int  ->  x22         "field V11._value (fldOffset=0x0)" P-INDEP
@@ -44,18 +44,19 @@
 ;* V32 tmp23        [V32,T20] (  0,  0   )     int  ->  zero-ref    "field V19._value (fldOffset=0x0)" P-INDEP
 ;  V33 tmp24        [V33,T16] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 24
 
 G_M6810_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x20]
-            stp     x21, x22, [sp, #0x30]
+            stp     fp, lr, [sp, #-0x50]!
+            stp     x19, x20, [sp, #0x28]
+            stp     x21, x22, [sp, #0x38]
+            str     x23, [sp, #0x48]
             mov     fp, sp
             mov     x19, x2
             ; byrRegs +[x19]
             mov     x20, x3
             ; byrRegs +[x20]
-                       ;; size=24 bbWeight=1 PerfScore 4.50
+                       ;; size=28 bbWeight=1 PerfScore 5.50
 G_M6810_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x20}, byref, isz
             ; byrRegs +[x0]
             sub     w21, w1, #1
@@ -83,19 +84,23 @@ G_M6810_IG04:        ; bbWeight=0.97, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             mov     w0, wzr
                        ;; size=8 bbWeight=0.97 PerfScore 1.46
 G_M6810_IG05:        ; bbWeight=0.97, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x30]
-            ldp     x19, x20, [sp, #0x20]
-            ldp     fp, lr, [sp], #0x40
+            ldr     x23, [sp, #0x48]
+            ldp     x21, x22, [sp, #0x38]
+            ldp     x19, x20, [sp, #0x28]
+            ldp     fp, lr, [sp], #0x50
             ret     lr
-                       ;; size=16 bbWeight=0.97 PerfScore 3.90
+                       ;; size=20 bbWeight=0.97 PerfScore 5.85
 G_M6810_IG06:        ; bbWeight=0.03, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x20}, gcvars, byref, isz
             ; byrRegs +[x0 x20]
             tbnz    w22, #6, G_M6810_IG15
+            mov     w23, #3
+                       ;; size=8 bbWeight=0.03 PerfScore 0.04
+G_M6810_IG07:        ; bbWeight=0.03, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x20}, byref, isz
             sub     w21, w21, #1
             cmp     w21, w1
             blo     G_M6810_IG16
-                       ;; size=16 bbWeight=0.03 PerfScore 0.08
-G_M6810_IG07:        ; bbWeight=0.03, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+                       ;; size=12 bbWeight=0.03 PerfScore 0.05
+G_M6810_IG08:        ; bbWeight=0.03, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
             ; byrRegs -[x0]
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E      // code for System.Text.UnicodeDebug:AssertIsValidScalar(uint)
@@ -103,33 +108,22 @@ G_M6810_IG07:        ; bbWeight=0.03, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             blr     x1
+            ; gcr arg pop 0
             mov     w0, #0xD1FFAB1E
             str     w0, [x19]
             mov     w0, #1
             str     w0, [x20]
             mov     w0, #3
                        ;; size=44 bbWeight=0.03 PerfScore 0.24
-G_M6810_IG08:        ; bbWeight=0.03, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x30]
-            ldp     x19, x20, [sp, #0x20]
-            ldp     fp, lr, [sp], #0x40
+G_M6810_IG09:        ; bbWeight=0.03, epilog, nogc, extend
+            ldr     x23, [sp, #0x48]
+            ldp     x21, x22, [sp, #0x38]
+            ldp     x19, x20, [sp, #0x28]
+            ldp     fp, lr, [sp], #0x50
             ret     lr
-                       ;; size=16 bbWeight=0.03 PerfScore 0.10
-G_M6810_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x20}, gcvars, byref, isz
+                       ;; size=20 bbWeight=0.03 PerfScore 0.15
+G_M6810_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x20}, gcvars, byref, isz
             ; byrRegs +[x0]
-            cmp     w21, w1
-            bls     G_M6810_IG10
-            movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
-            ; byrRegs -[x0]
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            ldr     x0, [x0]
-            blr     x0
-            ; byrRegs -[x19-x20]
-            brk_unix #0
-                       ;; size=32 bbWeight=0 PerfScore 0.00
-G_M6810_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x20}, byref, isz
-            ; byrRegs +[x0 x19-x20]
             mov     w2, w21
             add     x22, x0, x2
             ; byrRegs +[x22]
@@ -142,6 +136,7 @@ G_M6810_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             blr     x1
+            ; gcr arg pop 0
             sxtw    w0, w21
             cmp     w0, #0
             cset    x0, ne
@@ -153,23 +148,25 @@ G_M6810_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
+            ; gcr arg pop 0
             mov     x0, x22
             ; byrRegs +[x0]
             mov     w1, w21
-            add     x2, fp, #24    // [V06 loc3]
-            add     x3, fp, #16    // [V07 loc4]
+            add     x2, fp, #32    // [V06 loc3]
+            add     x3, fp, #24    // [V07 loc4]
             movz    x4, #0xD1FFAB1E      // code for <unknown method>
             movk    x4, #0xD1FFAB1E LSL #16
             movk    x4, #0xD1FFAB1E LSL #32
             ldr     x4, [x4]
             blr     x4
             ; byrRegs -[x0 x22]
-            ldr     w1, [fp, #0x10]    // [V07 loc4]
+            ; gcr arg pop 0
+            ldr     w1, [fp, #0x18]    // [V07 loc4]
             cmp     w1, w21
-            bne     G_M6810_IG07
-            ldr     w1, [fp, #0x10]    // [V07 loc4]
+            bne     G_M6810_IG08
+            ldr     w1, [fp, #0x18]    // [V07 loc4]
             str     w1, [x20]
-            ldr     w1, [fp, #0x18]    // [V23 tmp14]
+            ldr     w1, [fp, #0x20]    // [V23 tmp14]
             str     w1, [x19]
             b       G_M6810_IG13
                        ;; size=152 bbWeight=0 PerfScore 0.00
@@ -180,24 +177,27 @@ G_M6810_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             blr     x1
+            ; gcr arg pop 0
             mov     w0, #0xD1FFAB1E
             str     w0, [x19]
             str     wzr, [x20]
             mov     w0, #2
                        ;; size=40 bbWeight=0 PerfScore 0.00
 G_M6810_IG12:        ; bbWeight=0, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x30]
-            ldp     x19, x20, [sp, #0x20]
-            ldp     fp, lr, [sp], #0x40
+            ldr     x23, [sp, #0x48]
+            ldp     x21, x22, [sp, #0x38]
+            ldp     x19, x20, [sp, #0x28]
+            ldp     fp, lr, [sp], #0x50
             ret     lr
-                       ;; size=16 bbWeight=0 PerfScore 0.00
+                       ;; size=20 bbWeight=0 PerfScore 0.00
 G_M6810_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[x19-x20]
-            ldp     x21, x22, [sp, #0x30]
-            ldp     x19, x20, [sp, #0x20]
-            ldp     fp, lr, [sp], #0x40
+            ldr     x23, [sp, #0x48]
+            ldp     x21, x22, [sp, #0x38]
+            ldp     x19, x20, [sp, #0x28]
+            ldp     fp, lr, [sp], #0x50
             ret     lr
-                       ;; size=16 bbWeight=0 PerfScore 0.00
+                       ;; size=20 bbWeight=0 PerfScore 0.00
 G_M6810_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, gcvars, byref
             ; byrRegs +[x19]
             mov     w0, w22
@@ -207,6 +207,7 @@ G_M6810_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
             ldr     x1, [x1]
             blr     x1
             ; gcrRegs +[x0]
+            ; gcr arg pop 0
             mov     x1, x0
             ; gcrRegs +[x1]
             movz    x0, #0xD1FFAB1E
@@ -222,19 +223,21 @@ G_M6810_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x1] +[x0]
+            ; gcr arg pop 0
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             blr     x1
             ; gcrRegs -[x0]
+            ; gcr arg pop 0
             b       G_M6810_IG04
                        ;; size=96 bbWeight=0 PerfScore 0.00
 G_M6810_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x20}, byref
             ; byrRegs +[x0 x20]
             mov     w2, w21
-            add     x22, x0, x2
-            ; byrRegs +[x22]
+            add     x23, x0, x2
+            ; byrRegs +[x23]
             sub     w21, w1, w21
             cmp     w21, #0
             cset    x0, ge
...

-28 (-3.21%) : 74077.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)

@@ -9,50 +9,51 @@
 ; 3 inlinees with PGO data; 10 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
+;  V00 this         [V00,T06] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
 ;  V01 RetBuf       [V01,T00] (  6,  6   )   byref  ->  x19         single-def
-;  V02 arg1         [V02,T04] ( 11,  4   )     ref  ->  x21         ld-addr-op class-hnd <System.String>
+;  V02 arg1         [V02,T05] ( 11,  4   )     ref  ->  x21         ld-addr-op class-hnd <System.String>
 ;  V03 arg2         [V03,T01] (  6,  5.59)     int  ->  x20        
-;  V04 arg3         [V04,T06] (  4,  3.89)     ref  ->  x23         class-hnd single-def <System.Type[]>
-;  V05 arg4         [V05,T13] (  3,  2.05)   ubyte  ->  x24         single-def
-;  V06 loc0         [V06,T20] (  3,  2.40)   ubyte  ->  x25         ld-addr-op
-;  V07 loc1         [V07,T23] (  3,  1   )   ubyte  ->  x26         ld-addr-op
-;  V08 loc2         [V08,T22] (  4,  2   )     int  ->  x27         ld-addr-op
-;  V09 loc3         [V09,T19] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
+;  V04 arg3         [V04,T07] (  4,  3.89)     ref  ->  x23         class-hnd single-def <System.Type[]>
+;  V05 arg4         [V05,T14] (  3,  2.05)   ubyte  ->  x24         single-def
+;  V06 loc0         [V06,T21] (  3,  2.40)   ubyte  ->  x25         ld-addr-op
+;  V07 loc1         [V07,T24] (  3,  1   )   ubyte  ->  x26         ld-addr-op
+;  V08 loc2         [V08,T23] (  4,  2   )     int  ->  x27         ld-addr-op
+;  V09 loc3         [V09,T20] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
 ;  V10 loc4         [V10    ] (  9,  9.40)  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]>
 ;  V11 loc5         [V11,T02] (  5,  7.16)     int  ->  x24        
-;  V12 loc6         [V12,T03] (  7,  5.94)     ref  ->  x28         class-hnd exact <System.Reflection.RuntimePropertyInfo>
+;  V12 loc6         [V12,T04] (  7,  5.94)     ref  ->  [fp+0x10]  class-hnd exact spill-single-def <System.Reflection.RuntimePropertyInfo>
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V16 tmp3         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
-;  V18 tmp5         [V18,T12] (  5,  4.34)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
-;  V19 tmp6         [V19,T08] (  4,  4   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
-;* V20 tmp7         [V20,T17] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
+;  V18 tmp5         [V18,T13] (  5,  4.34)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
+;  V19 tmp6         [V19,T09] (  4,  4   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;* V20 tmp7         [V20,T18] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
 ;* V21 tmp8         [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.RuntimeType+RuntimeTypeCache>
 ;* V22 tmp9         [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp10        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp11        [V24    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp12        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V26 tmp13        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V27 tmp14        [V27,T07] (  4,  5.36)   byref  ->  x22         single-def "Inlining Arg"
+;  V27 tmp14        [V27,T08] (  4,  5.36)   byref  ->  x22         single-def "Inlining Arg"
 ;* V28 tmp15        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;* V29 tmp16        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
-;  V30 tmp17        [V30,T11] (  7,  4.36)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V31 tmp18        [V31,T18] (  4,  2.71)     ref  ->  x28         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V30 tmp17        [V30,T12] (  7,  4.36)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V31 tmp18        [V31,T19] (  4,  2.71)     ref  ->  x28         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V32 tmp19        [V32    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V33 tmp20        [V33,T14] (  2,  4   )     int  ->   x1         "Inlining Arg"
+;  V33 tmp20        [V33,T15] (  2,  4   )     int  ->   x1         "Inlining Arg"
 ;  V34 tmp21        [V34    ] (  3,  3.40)     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V10._items (fldOffset=0x0)" P-DEP
 ;  V35 tmp22        [V35    ] (  3,  3.40)     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V10._item (fldOffset=0x8)" P-DEP
 ;  V36 tmp23        [V36    ] (  3,  3.40)     int  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V10._count (fldOffset=0x10)" P-DEP
 ;  V37 tmp24        [V37    ] (  3,  3.40)     int  ->  [fp+0x2C]  do-not-enreg[X] addr-exposed "field V10._capacity (fldOffset=0x14)" P-DEP
-;* V38 tmp25        [V38,T24] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V39 cse0         [V39,T09] (  3,  4.62)     int  ->   x0         "CSE - aggressive"
-;  V40 cse1         [V40,T16] (  3,  3   )    long  ->   x0         "CSE - moderate"
-;  V41 cse2         [V41,T10] (  4,  4.54)     int  ->  x22         "CSE - aggressive"
-;  V42 cse3         [V42,T21] (  2,  2.15)   byref  ->  x27         hoist "CSE - moderate"
-;  V43 cse4         [V43,T15] (  3,  3   )     ref  ->   x1         "CSE - moderate"
+;* V38 tmp25        [V38,T25] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V39 cse0         [V39,T10] (  3,  4.62)     int  ->   x0         "CSE - aggressive"
+;  V40 cse1         [V40,T17] (  3,  3   )    long  ->   x0         "CSE - moderate"
+;  V41 cse2         [V41,T03] ( 10,  6.52)    long  ->  x28         hoist multi-def "CSE - aggressive"
+;  V42 cse3         [V42,T11] (  4,  4.54)     int  ->  x22         "CSE - moderate"
+;  V43 cse4         [V43,T22] (  2,  2.15)   byref  ->  x27         hoist "CSE - moderate"
+;  V44 cse5         [V44,T16] (  3,  3   )     ref  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -218,7 +219,7 @@ G_M37807_IG13:        ; bbWeight=0.34, gcrefRegs=1A00000 {x21 x23 x24}, byrefReg
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15 x24]
             ; byrRegs -[x14]
-            cbz     x22, G_M37807_IG28
+            cbz     x22, G_M37807_IG29
             mov     x0, x22
             ; byrRegs +[x0]
             mov     x1, x28
@@ -252,30 +253,36 @@ G_M37807_IG14:        ; bbWeight=1, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=800
             stp     wzr, w1, [fp, #0x28]   // [V36 tmp23], [V37 tmp24]
             mov     w24, wzr
             cmp     w22, #0
-            ble     G_M37807_IG26
+            ble     G_M37807_IG27
                        ;; size=68 bbWeight=1 PerfScore 18.00
 G_M37807_IG15:        ; bbWeight=0.61, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=80000 {x19}, byref
             add     x27, x0, #16
             ; byrRegs +[x27]
-                       ;; size=4 bbWeight=0.61 PerfScore 0.30
+            movz    x28, #0xD1FFAB1E
+            movk    x28, #0xD1FFAB1E LSL #16
+            movk    x28, #0xD1FFAB1E LSL #32
+                       ;; size=16 bbWeight=0.61 PerfScore 1.21
 G_M37807_IG16:        ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x28, [x27, w24, UXTW #3]
-            ; gcrRegs +[x28]
-            ldr     w0, [x28, #0x58]
+            ldr     x2, [x27, w24, UXTW #3]
+            ; gcrRegs +[x2]
+            str     x2, [fp, #0x10]    // [V12 loc6]
+            ; GC ptr vars +{V12}
+            ldr     w0, [x2, #0x58]
             and     w1, w20, w0
             cmp     w1, w0
             bne     G_M37807_IG23
-                       ;; size=20 bbWeight=1.54 PerfScore 12.32
-G_M37807_IG17:        ; bbWeight=1.40, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref, isz
+                       ;; size=24 bbWeight=1.54 PerfScore 13.86
+G_M37807_IG17:        ; bbWeight=1.40, gcVars=0000000000000010 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, gcvars, byref, isz
             cbz     w25, G_M37807_IG19
                        ;; size=4 bbWeight=1.40 PerfScore 1.40
-G_M37807_IG18:        ; bbWeight=0, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref, isz
-            mov     x0, x28
+G_M37807_IG18:        ; bbWeight=0, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
             mov     x1, x21
             ; gcrRegs +[x1]
             mov     w2, w26
+            ; gcrRegs -[x2]
             movz    x3, #0xD1FFAB1E      // code for System.RuntimeType:FilterApplyPrefixLookup(System.Reflection.MemberInfo,System.String,ubyte):ubyte
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
@@ -283,28 +290,26 @@ G_M37807_IG18:        ; bbWeight=0, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=
             blr     x3
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbz     w0, G_M37807_IG29
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            cbz     w0, G_M37807_IG30
+            mov     x0, x28
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=52 bbWeight=0 PerfScore 0.00
-G_M37807_IG19:        ; bbWeight=1.40, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref, isz
-            cbz     x23, G_M37807_IG22
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
+            ; gcrRegs +[x2]
+                       ;; size=48 bbWeight=0 PerfScore 0.00
+G_M37807_IG19:        ; bbWeight=1.40, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
+            cbz     x23, G_M37807_IG25
                        ;; size=4 bbWeight=1.40 PerfScore 1.40
-G_M37807_IG20:        ; bbWeight=0.49, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref, isz
-            mov     x0, x28
+G_M37807_IG20:        ; bbWeight=0.49, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
+            add     x1, x28, #8
             bl      CORINFO_HELP_CLASSPROFILE32
-            ; gcrRegs -[x0]
+            ; gcrRegs -[x0 x2]
             ; gcr arg pop 0
-            mov     x0, x28
+            ldr     x0, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x0]
-            ldr     x1, [x28]
+            ldr     x1, [x0]
             ldr     x1, [x1, #0x58]
             ldr     x1, [x1, #0x18]
             blr     x1
@@ -313,23 +318,19 @@ G_M37807_IG20:        ; bbWeight=0.49, gcrefRegs=10A00000 {x21 x23 x28}, byrefRe
             ; gcrRegs -[x0]
             ldr     w1, [x23, #0x08]
             cmp     w0, w1
-            bne     G_M37807_IG25
-                       ;; size=56 bbWeight=0.49 PerfScore 10.21
-G_M37807_IG21:        ; bbWeight=0.24, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            bne     G_M37807_IG26
+                       ;; size=48 bbWeight=0.49 PerfScore 10.45
+G_M37807_IG21:        ; bbWeight=0.24, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.24 PerfScore 0.61
-G_M37807_IG22:        ; bbWeight=1.40, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+                       ;; size=8 bbWeight=0.24 PerfScore 0.36
+G_M37807_IG22:        ; bbWeight=1.40, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     x0, fp, #24    // [V10 loc4]
-            mov     x2, x28
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x2]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -338,41 +339,45 @@ G_M37807_IG22:        ; bbWeight=1.40, gcrefRegs=10A00000 {x21 x23 x28}, byrefRe
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
+            ; GC ptr vars -{V12}
             blr     x3
-            ; gcrRegs -[x2 x28]
+            ; gcrRegs -[x2]
             ; gcr arg pop 0
-                       ;; size=56 bbWeight=1.40 PerfScore 14.73
+                       ;; size=48 bbWeight=1.40 PerfScore 15.44
 G_M37807_IG23:        ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     w24, w24, #1
             cmp     w22, w24
             bgt     G_M37807_IG16
-                       ;; size=28 bbWeight=1.54 PerfScore 6.93
+                       ;; size=20 bbWeight=1.54 PerfScore 5.39
 G_M37807_IG24:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
             ; gcrRegs -[x21 x23]
             ; byrRegs -[x27]
-            b       G_M37807_IG26
+            b       G_M37807_IG27
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M37807_IG25:        ; bbWeight=0.24, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref
-            ; gcrRegs +[x21 x23]
+G_M37807_IG25:        ; bbWeight=0.70, gcVars=0000000000000010 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, gcvars, byref
+            ; gcrRegs +[x2 x21 x23]
             ; byrRegs +[x27]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            ; GC ptr vars +{V04 V12}
+            b       G_M37807_IG22
+                       ;; size=4 bbWeight=0.70 PerfScore 0.70
+G_M37807_IG26:        ; bbWeight=0.24, gcVars=0000000000000000 {}, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, gcvars, byref
+            ; gcrRegs -[x2]
+            ; GC ptr vars -{V04 V12}
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             b       G_M37807_IG23
...

-28 (-3.21%) : 122881.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)

@@ -9,50 +9,51 @@
 ; 3 inlinees with PGO data; 10 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
+;  V00 this         [V00,T06] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
 ;  V01 RetBuf       [V01,T00] (  6,  6   )   byref  ->  x19         single-def
-;  V02 arg1         [V02,T04] ( 11,  4   )     ref  ->  x21         ld-addr-op class-hnd <System.String>
+;  V02 arg1         [V02,T05] ( 11,  4   )     ref  ->  x21         ld-addr-op class-hnd <System.String>
 ;  V03 arg2         [V03,T01] (  6,  5.65)     int  ->  x20        
-;  V04 arg3         [V04,T06] (  4,  3.89)     ref  ->  x23         class-hnd single-def <System.Type[]>
-;  V05 arg4         [V05,T13] (  3,  2.11)   ubyte  ->  x24         single-def
-;  V06 loc0         [V06,T20] (  3,  2.40)   ubyte  ->  x25         ld-addr-op
-;  V07 loc1         [V07,T23] (  3,  1   )   ubyte  ->  x26         ld-addr-op
-;  V08 loc2         [V08,T22] (  4,  2   )     int  ->  x27         ld-addr-op
-;  V09 loc3         [V09,T19] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
+;  V04 arg3         [V04,T07] (  4,  3.89)     ref  ->  x23         class-hnd single-def <System.Type[]>
+;  V05 arg4         [V05,T14] (  3,  2.11)   ubyte  ->  x24         single-def
+;  V06 loc0         [V06,T21] (  3,  2.40)   ubyte  ->  x25         ld-addr-op
+;  V07 loc1         [V07,T24] (  3,  1   )   ubyte  ->  x26         ld-addr-op
+;  V08 loc2         [V08,T23] (  4,  2   )     int  ->  x27         ld-addr-op
+;  V09 loc3         [V09,T20] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
 ;  V10 loc4         [V10    ] (  9,  9.40)  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]>
 ;  V11 loc5         [V11,T02] (  5,  7.16)     int  ->  x24        
-;  V12 loc6         [V12,T03] (  7,  5.94)     ref  ->  x28         class-hnd exact <System.Reflection.RuntimePropertyInfo>
+;  V12 loc6         [V12,T04] (  7,  5.94)     ref  ->  [fp+0x10]  class-hnd exact spill-single-def <System.Reflection.RuntimePropertyInfo>
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V16 tmp3         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
-;  V18 tmp5         [V18,T12] (  5,  4.35)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
-;  V19 tmp6         [V19,T08] (  4,  4   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
-;* V20 tmp7         [V20,T17] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
+;  V18 tmp5         [V18,T13] (  5,  4.35)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
+;  V19 tmp6         [V19,T09] (  4,  4   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;* V20 tmp7         [V20,T18] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
 ;* V21 tmp8         [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.RuntimeType+RuntimeTypeCache>
 ;* V22 tmp9         [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp10        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp11        [V24    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp12        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V26 tmp13        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V27 tmp14        [V27,T07] (  4,  5.41)   byref  ->  x22         single-def "Inlining Arg"
+;  V27 tmp14        [V27,T08] (  4,  5.41)   byref  ->  x22         single-def "Inlining Arg"
 ;* V28 tmp15        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;* V29 tmp16        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
-;  V30 tmp17        [V30,T11] (  7,  4.41)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V31 tmp18        [V31,T18] (  4,  2.81)     ref  ->  x28         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V30 tmp17        [V30,T12] (  7,  4.41)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V31 tmp18        [V31,T19] (  4,  2.81)     ref  ->  x28         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V32 tmp19        [V32    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V33 tmp20        [V33,T14] (  2,  4   )     int  ->   x1         "Inlining Arg"
+;  V33 tmp20        [V33,T15] (  2,  4   )     int  ->   x1         "Inlining Arg"
 ;  V34 tmp21        [V34    ] (  3,  3.40)     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V10._items (fldOffset=0x0)" P-DEP
 ;  V35 tmp22        [V35    ] (  3,  3.40)     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V10._item (fldOffset=0x8)" P-DEP
 ;  V36 tmp23        [V36    ] (  3,  3.40)     int  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V10._count (fldOffset=0x10)" P-DEP
 ;  V37 tmp24        [V37    ] (  3,  3.40)     int  ->  [fp+0x2C]  do-not-enreg[X] addr-exposed "field V10._capacity (fldOffset=0x14)" P-DEP
-;* V38 tmp25        [V38,T24] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V39 cse0         [V39,T09] (  3,  4.62)     int  ->   x0         "CSE - aggressive"
-;  V40 cse1         [V40,T16] (  3,  3   )    long  ->   x0         "CSE - moderate"
-;  V41 cse2         [V41,T10] (  4,  4.54)     int  ->  x22         "CSE - aggressive"
-;  V42 cse3         [V42,T21] (  2,  2.15)   byref  ->  x27         hoist "CSE - moderate"
-;  V43 cse4         [V43,T15] (  3,  3   )     ref  ->   x1         "CSE - moderate"
+;* V38 tmp25        [V38,T25] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V39 cse0         [V39,T10] (  3,  4.62)     int  ->   x0         "CSE - aggressive"
+;  V40 cse1         [V40,T17] (  3,  3   )    long  ->   x0         "CSE - moderate"
+;  V41 cse2         [V41,T03] ( 10,  6.52)    long  ->  x28         hoist multi-def "CSE - aggressive"
+;  V42 cse3         [V42,T11] (  4,  4.54)     int  ->  x22         "CSE - moderate"
+;  V43 cse4         [V43,T22] (  2,  2.15)   byref  ->  x27         hoist "CSE - moderate"
+;  V44 cse5         [V44,T16] (  3,  3   )     ref  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -218,7 +219,7 @@ G_M37807_IG13:        ; bbWeight=0.35, gcrefRegs=1A00000 {x21 x23 x24}, byrefReg
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15 x24]
             ; byrRegs -[x14]
-            cbz     x22, G_M37807_IG28
+            cbz     x22, G_M37807_IG29
             mov     x0, x22
             ; byrRegs +[x0]
             mov     x1, x28
@@ -252,30 +253,36 @@ G_M37807_IG14:        ; bbWeight=1, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=800
             stp     wzr, w1, [fp, #0x28]   // [V36 tmp23], [V37 tmp24]
             mov     w24, wzr
             cmp     w22, #0
-            ble     G_M37807_IG26
+            ble     G_M37807_IG27
                        ;; size=68 bbWeight=1 PerfScore 18.00
 G_M37807_IG15:        ; bbWeight=0.61, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=80000 {x19}, byref
             add     x27, x0, #16
             ; byrRegs +[x27]
-                       ;; size=4 bbWeight=0.61 PerfScore 0.30
+            movz    x28, #0xD1FFAB1E
+            movk    x28, #0xD1FFAB1E LSL #16
+            movk    x28, #0xD1FFAB1E LSL #32
+                       ;; size=16 bbWeight=0.61 PerfScore 1.21
 G_M37807_IG16:        ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x28, [x27, w24, UXTW #3]
-            ; gcrRegs +[x28]
-            ldr     w0, [x28, #0x58]
+            ldr     x2, [x27, w24, UXTW #3]
+            ; gcrRegs +[x2]
+            str     x2, [fp, #0x10]    // [V12 loc6]
+            ; GC ptr vars +{V12}
+            ldr     w0, [x2, #0x58]
             and     w1, w20, w0
             cmp     w1, w0
             bne     G_M37807_IG23
-                       ;; size=20 bbWeight=1.54 PerfScore 12.32
-G_M37807_IG17:        ; bbWeight=1.40, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref, isz
+                       ;; size=24 bbWeight=1.54 PerfScore 13.86
+G_M37807_IG17:        ; bbWeight=1.40, gcVars=0000000000000010 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, gcvars, byref, isz
             cbz     w25, G_M37807_IG19
                        ;; size=4 bbWeight=1.40 PerfScore 1.40
-G_M37807_IG18:        ; bbWeight=0, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref, isz
-            mov     x0, x28
+G_M37807_IG18:        ; bbWeight=0, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
             mov     x1, x21
             ; gcrRegs +[x1]
             mov     w2, w26
+            ; gcrRegs -[x2]
             movz    x3, #0xD1FFAB1E      // code for System.RuntimeType:FilterApplyPrefixLookup(System.Reflection.MemberInfo,System.String,ubyte):ubyte
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
@@ -283,28 +290,26 @@ G_M37807_IG18:        ; bbWeight=0, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=
             blr     x3
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbz     w0, G_M37807_IG29
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            cbz     w0, G_M37807_IG30
+            mov     x0, x28
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=52 bbWeight=0 PerfScore 0.00
-G_M37807_IG19:        ; bbWeight=1.40, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref, isz
-            cbz     x23, G_M37807_IG22
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
+            ; gcrRegs +[x2]
+                       ;; size=48 bbWeight=0 PerfScore 0.00
+G_M37807_IG19:        ; bbWeight=1.40, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
+            cbz     x23, G_M37807_IG25
                        ;; size=4 bbWeight=1.40 PerfScore 1.40
-G_M37807_IG20:        ; bbWeight=0.49, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref, isz
-            mov     x0, x28
+G_M37807_IG20:        ; bbWeight=0.49, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
+            add     x1, x28, #8
             bl      CORINFO_HELP_CLASSPROFILE32
-            ; gcrRegs -[x0]
+            ; gcrRegs -[x0 x2]
             ; gcr arg pop 0
-            mov     x0, x28
+            ldr     x0, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x0]
-            ldr     x1, [x28]
+            ldr     x1, [x0]
             ldr     x1, [x1, #0x58]
             ldr     x1, [x1, #0x18]
             blr     x1
@@ -313,23 +318,19 @@ G_M37807_IG20:        ; bbWeight=0.49, gcrefRegs=10A00000 {x21 x23 x28}, byrefRe
             ; gcrRegs -[x0]
             ldr     w1, [x23, #0x08]
             cmp     w0, w1
-            bne     G_M37807_IG25
-                       ;; size=56 bbWeight=0.49 PerfScore 10.21
-G_M37807_IG21:        ; bbWeight=0.24, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            bne     G_M37807_IG26
+                       ;; size=48 bbWeight=0.49 PerfScore 10.45
+G_M37807_IG21:        ; bbWeight=0.24, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.24 PerfScore 0.61
-G_M37807_IG22:        ; bbWeight=1.40, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+                       ;; size=8 bbWeight=0.24 PerfScore 0.36
+G_M37807_IG22:        ; bbWeight=1.40, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     x0, fp, #24    // [V10 loc4]
-            mov     x2, x28
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x2]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -338,41 +339,45 @@ G_M37807_IG22:        ; bbWeight=1.40, gcrefRegs=10A00000 {x21 x23 x28}, byrefRe
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
+            ; GC ptr vars -{V12}
             blr     x3
-            ; gcrRegs -[x2 x28]
+            ; gcrRegs -[x2]
             ; gcr arg pop 0
-                       ;; size=56 bbWeight=1.40 PerfScore 14.73
+                       ;; size=48 bbWeight=1.40 PerfScore 15.44
 G_M37807_IG23:        ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     w24, w24, #1
             cmp     w22, w24
             bgt     G_M37807_IG16
-                       ;; size=28 bbWeight=1.54 PerfScore 6.93
+                       ;; size=20 bbWeight=1.54 PerfScore 5.39
 G_M37807_IG24:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
             ; gcrRegs -[x21 x23]
             ; byrRegs -[x27]
-            b       G_M37807_IG26
+            b       G_M37807_IG27
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M37807_IG25:        ; bbWeight=0.24, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref
-            ; gcrRegs +[x21 x23]
+G_M37807_IG25:        ; bbWeight=0.70, gcVars=0000000000000010 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, gcvars, byref
+            ; gcrRegs +[x2 x21 x23]
             ; byrRegs +[x27]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            ; GC ptr vars +{V04 V12}
+            b       G_M37807_IG22
+                       ;; size=4 bbWeight=0.70 PerfScore 0.70
+G_M37807_IG26:        ; bbWeight=0.24, gcVars=0000000000000000 {}, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, gcvars, byref
+            ; gcrRegs -[x2]
+            ; GC ptr vars -{V04 V12}
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             b       G_M37807_IG23
...

+8 (+0.38%) : 37018.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Instrumented Tier1)

@@ -10,27 +10,27 @@
 ;
 ;  V00 this         [V00,T23] (  9, 22.50)     ref  ->  x19         this class-hnd single-def <System.Buffers.SharedArrayPool`1[int]>
 ;  V01 loc0         [V01,T14] (  5, 33.50)     int  ->  x20        
-;  V02 loc1         [V02,T33] (  5, 19   )     int  ->  x21        
+;  V02 loc1         [V02,T32] (  5, 19   )     int  ->  x21        
 ;  V03 loc2         [V03,T22] (  7, 27   )     ref  ->  x22         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V04 loc3         [V04,T46] (  4, 10   )     ref  ->  x23         class-hnd exact single-def <<unknown class>>
-;  V05 loc4         [V05,T32] (  6, 19   )     int  ->  x24        
-;  V06 loc5         [V06,T40] (  8, 10.50)     ref  ->  [fp+0x48]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V04 loc3         [V04,T45] (  4, 10   )     ref  ->  x23         class-hnd exact single-def <<unknown class>>
+;  V05 loc4         [V05,T31] (  6, 19   )     int  ->  x24        
+;  V06 loc5         [V06,T39] (  8, 10.50)     ref  ->  [fp+0x40]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V07 loc6         [V07    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V08 loc7         [V08,T41] (  8, 10.50)     ref  ->  [fp+0x40]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V08 loc7         [V08,T40] (  8, 10.50)     ref  ->  [fp+0x38]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V09 loc8         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V10 loc9         [V10,T27] (  3, 20   )     ref  ->  x24         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V10 loc9         [V10,T26] (  3, 20   )     ref  ->  x24         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V11 loc10        [V11,T06] (  5, 66   )     int  ->  x20        
 ;  V12 loc11        [V12,T04] (  6, 64   )     ref  ->  x25         class-hnd <<unknown class>>
-;  V13 loc12        [V13,T47] (  2,  8.50)     int  ->  x24        
-;  V14 loc13        [V14,T70] (  3,  1.50)     int  ->  x24        
-;  V15 loc14        [V15,T42] (  8, 10.50)     ref  ->  [fp+0x38]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V13 loc12        [V13,T46] (  2,  8.50)     int  ->  x24        
+;  V14 loc13        [V14,T69] (  3,  1.50)     int  ->  x24        
+;  V15 loc14        [V15,T41] (  8, 10.50)     ref  ->  [fp+0x30]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V16 loc15        [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V17 loc16        [V17,T12] (  5, 36   )     ref  ->  x25         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V17 loc16        [V17,T12] (  6, 44   )     ref  ->  x25         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V18 loc17        [V18,T00] (  5,210   )     int  ->  x27        
-;  V19 loc18        [V19,T25] (  3, 24   )     int  ->   x3        
-;  V20 loc19        [V20,T09] (  6, 48   )     ref  ->  [fp+0x30]  class-hnd spill-single-def <<unknown class>>
+;  V19 loc18        [V19,T24] (  3, 24   )     int  ->   x2        
+;  V20 loc19        [V20,T09] (  6, 48   )     ref  ->  [fp+0x28]  class-hnd spill-single-def <<unknown class>>
 ;# V21 OutArgs      [V21    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V22 tmp1         [V22,T28] (  3, 20   )     ref  ->  x25         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V22 tmp1         [V22,T27] (  3, 20   )     ref  ->  x25         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
 ;* V23 tmp2         [V23    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V24 tmp3         [V24,T13] (  2, 36   )     int  ->  x26         "impAppendStmt"
 ;* V25 tmp4         [V25    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
@@ -40,74 +40,73 @@
 ;  V29 tmp8         [V29,T18] (  2, 32   )     int  ->  x27         "impAppendStmt"
 ;  V30 tmp9         [V30,T19] (  2, 32   )     int  ->  x25         "impAppendStmt"
 ;* V31 tmp10        [V31    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V32 tmp11        [V32,T58] (  3,  3   )     ref  ->  x19         single-def "handle histogram profile tmp"
+;  V32 tmp11        [V32,T57] (  3,  3   )     ref  ->  x19         single-def "handle histogram profile tmp"
 ;* V33 tmp12        [V33    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V34 tmp13        [V34    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V35 tmp14        [V35    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V36 tmp15        [V36,T59] (  3,  3   )     ref  ->  x21         single-def "handle histogram profile tmp"
+;  V36 tmp15        [V36,T58] (  3,  3   )     ref  ->  x21         single-def "handle histogram profile tmp"
 ;* V37 tmp16        [V37    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;  V38 tmp17        [V38,T03] (  3, 96   )     ref  ->  x25         "handle histogram profile tmp"
 ;* V39 tmp18        [V39    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V40 tmp19        [V40    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V41 tmp20        [V41    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V42 tmp21        [V42,T60] (  3,  3   )     ref  ->  x21         single-def "handle histogram profile tmp"
+;  V42 tmp21        [V42,T59] (  3,  3   )     ref  ->  x21         single-def "handle histogram profile tmp"
 ;* V43 tmp22        [V43    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V44 tmp23        [V44,T11] (  3, 48   )     ref  ->  [fp+0x28]  spill-single-def "handle histogram profile tmp"
+;  V44 tmp23        [V44,T11] (  3, 48   )     ref  ->  [fp+0x20]  spill-single-def "handle histogram profile tmp"
 ;* V45 tmp24        [V45    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V46 tmp25        [V46    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V47 tmp26        [V47    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V48 tmp27        [V48,T29] (  3, 20   )     int  ->  x27         "Inline stloc first use temp"
-;  V49 tmp28        [V49,T54] (  3,  6   )     ref  ->   x0         class-hnd exact "Inline stloc first use temp" <<unknown class>>
+;  V48 tmp27        [V48,T28] (  3, 20   )     int  ->  x27         "Inline stloc first use temp"
+;  V49 tmp28        [V49,T53] (  3,  6   )     ref  ->   x0         class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;  V50 tmp29        [V50,T07] (  5, 66   )     int  ->  x25         "Inline stloc first use temp"
 ;  V51 tmp30        [V51,T20] (  2, 32   )     int  ->   x4         "Inlining Arg"
 ;  V52 tmp31        [V52,T21] (  2, 32   )     int  ->   x4         "Inlining Arg"
-;  V53 tmp32        [V53,T55] (  2,  4   )     ref  ->   x0         "field V07.key (fldOffset=0x0)" P-INDEP
-;  V54 tmp33        [V54,T67] (  1,  2   )     ref  ->   x1         "field V07.value (fldOffset=0x8)" P-INDEP
-;  V55 tmp34        [V55,T56] (  2,  4   )     ref  ->  x24         "field V09.key (fldOffset=0x0)" P-INDEP
-;  V56 tmp35        [V56,T68] (  1,  2   )     ref  ->   x1         "field V09.value (fldOffset=0x8)" P-INDEP
-;  V57 tmp36        [V57,T57] (  2,  4   )     ref  ->  x25         "field V16.key (fldOffset=0x0)" P-INDEP
-;  V58 tmp37        [V58,T69] (  1,  2   )     ref  ->   x1         "field V16.value (fldOffset=0x8)" P-INDEP
+;  V53 tmp32        [V53,T54] (  2,  4   )     ref  ->   x0         "field V07.key (fldOffset=0x0)" P-INDEP
+;  V54 tmp33        [V54,T66] (  1,  2   )     ref  ->   x1         "field V07.value (fldOffset=0x8)" P-INDEP
+;  V55 tmp34        [V55,T55] (  2,  4   )     ref  ->  x24         "field V09.key (fldOffset=0x0)" P-INDEP
+;  V56 tmp35        [V56,T67] (  1,  2   )     ref  ->   x1         "field V09.value (fldOffset=0x8)" P-INDEP
+;  V57 tmp36        [V57,T56] (  2,  4   )     ref  ->  x25         "field V16.key (fldOffset=0x0)" P-INDEP
+;  V58 tmp37        [V58,T68] (  1,  2   )     ref  ->   x1         "field V16.value (fldOffset=0x8)" P-INDEP
 ;* V59 tmp38        [V59    ] (  0,  0   )     ref  ->  zero-ref    "field V25.key (fldOffset=0x0)" P-DEP
 ;* V60 tmp39        [V60    ] (  0,  0   )     ref  ->  zero-ref    "field V25.value (fldOffset=0x8)" P-DEP
 ;* V61 tmp40        [V61    ] (  0,  0   )     ref  ->  zero-ref    "field V28.key (fldOffset=0x0)" P-DEP
 ;* V62 tmp41        [V62    ] (  0,  0   )     ref  ->  zero-ref    "field V28.value (fldOffset=0x8)" P-DEP
 ;* V63 tmp42        [V63    ] (  0,  0   )     ref  ->  zero-ref    "field V31.key (fldOffset=0x0)" P-DEP
 ;* V64 tmp43        [V64    ] (  0,  0   )     ref  ->  zero-ref    "field V31.value (fldOffset=0x8)" P-DEP
-;  V65 tmp44        [V65,T61] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V66 tmp45        [V66,T35] (  2, 16   )     ref  ->  x11         "argument with side effect"
-;  V67 tmp46        [V67,T51] (  2,  8   )     ref  ->   x0         "argument with side effect"
+;  V65 tmp44        [V65,T60] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V66 tmp45        [V66,T34] (  2, 16   )     ref  ->  x11         "argument with side effect"
+;  V67 tmp46        [V67,T50] (  2,  8   )     ref  ->   x0         "argument with side effect"
 ;  V68 tmp47        [V68,T15] (  2, 32   )     ref  ->   x1         "argument with side effect"
-;* V69 tmp48        [V69,T38] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V70 tmp49        [V70,T72] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V71 tmp50        [V71,T62] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V72 tmp51        [V72,T63] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V73 tmp52        [V73,T36] (  2, 16   )     ref  ->  x11         "argument with side effect"
-;  V74 tmp53        [V74,T52] (  2,  8   )     ref  ->   x0         "argument with side effect"
+;* V69 tmp48        [V69,T37] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V70 tmp49        [V70,T71] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V71 tmp50        [V71,T61] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V72 tmp51        [V72,T62] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V73 tmp52        [V73,T35] (  2, 16   )     ref  ->  x11         "argument with side effect"
+;  V74 tmp53        [V74,T51] (  2,  8   )     ref  ->   x0         "argument with side effect"
 ;  V75 tmp54        [V75,T08] (  2, 64   )     ref  ->   x1         "argument with side effect"
-;* V76 tmp55        [V76,T39] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V77 tmp56        [V77,T73] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V78 tmp57        [V78,T64] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V79 tmp58        [V79,T65] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V80 tmp59        [V80,T37] (  2, 16   )     ref  ->  x11         "argument with side effect"
-;  V81 tmp60        [V81,T53] (  2,  8   )     ref  ->   x0         "argument with side effect"
-;  V82 tmp61        [V82,T74] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V83 tmp62        [V83,T66] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V84 PSPSym       [V84,T71] (  1,  1   )    long  ->  [fp+0x58]  do-not-enreg[V] "PSPSym"
-;  V85 cse0         [V85,T48] (  4,  8   )     ref  ->  x23         multi-def "CSE - moderate"
-;  V86 cse1         [V86,T43] (  6, 10.50)     ref  ->  x23         multi-def "CSE - moderate"
-;  V87 cse2         [V87,T49] (  4,  8   )     ref  ->  x24         multi-def "CSE - moderate"
-;  V88 cse3         [V88,T44] (  6, 10.50)     ref  ->  x24         multi-def "CSE - moderate"
-;  V89 cse4         [V89,T50] (  4,  8   )     ref  ->  x25         multi-def "CSE - moderate"
-;  V90 cse5         [V90,T45] (  6, 10.50)     ref  ->  x25         multi-def "CSE - moderate"
-;  V91 cse6         [V91,T24] (  3, 24   )   byref  ->  [fp+0x20]  spill-single-def "CSE - moderate"
-;  V92 cse7         [V92,T10] (  4, 48   )    long  ->   x1         "CSE - aggressive"
-;  V93 cse8         [V93,T01] ( 20,116.50)    long  ->  x23         hoist multi-def "CSE - aggressive"
+;* V76 tmp55        [V76,T38] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V77 tmp56        [V77,T72] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V78 tmp57        [V78,T63] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V79 tmp58        [V79,T64] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V80 tmp59        [V80,T36] (  2, 16   )     ref  ->  x11         "argument with side effect"
+;  V81 tmp60        [V81,T52] (  2,  8   )     ref  ->   x0         "argument with side effect"
+;  V82 tmp61        [V82,T73] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V83 tmp62        [V83,T65] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V84 PSPSym       [V84,T70] (  1,  1   )    long  ->  [fp+0x58]  do-not-enreg[V] "PSPSym"
+;  V85 cse0         [V85,T47] (  4,  8   )     ref  ->  x23         multi-def "CSE - moderate"
+;  V86 cse1         [V86,T42] (  6, 10.50)     ref  ->  x23         multi-def "CSE - moderate"
+;  V87 cse2         [V87,T48] (  4,  8   )     ref  ->  x24         multi-def "CSE - moderate"
+;  V88 cse3         [V88,T43] (  6, 10.50)     ref  ->  x24         multi-def "CSE - moderate"
+;  V89 cse4         [V89,T49] (  4,  8   )     ref  ->  x25         multi-def "CSE - moderate"
+;  V90 cse5         [V90,T44] (  6, 10.50)     ref  ->  x25         multi-def "CSE - moderate"
+;  V91 cse6         [V91,T10] (  5, 56   )    long  ->  [fp+0x48]  spill-single-def "CSE - aggressive"
+;  V92 cse7         [V92,T01] ( 20,116.50)    long  ->  x23         hoist multi-def "CSE - aggressive"
+;  V93 cse8         [V93,T02] ( 44,101.50)    long  ->  registers   multi-def "CSE - aggressive"
 ;  V94 cse9         [V94,T05] (  3, 68   )     int  ->  x28         "CSE - aggressive"
-;  V95 cse10        [V95,T02] ( 44,101.50)    long  ->  registers   multi-def "CSE - aggressive"
-;  V96 cse11        [V96,T26] ( 21, 22.50)    long  ->  registers   multi-def "CSE - moderate"
-;  V97 cse12        [V97,T34] (  2, 18   )   byref  ->  [fp+0x18]  spill-single-def hoist "CSE - moderate"
-;  V98 cse13        [V98,T30] (  3, 20   )     int  ->  x28         "CSE - moderate"
-;  V99 cse14        [V99,T31] (  3, 20   )     int  ->  x23         "CSE - moderate"
+;  V95 cse10        [V95,T25] ( 21, 22.50)    long  ->  registers   multi-def "CSE - moderate"
+;  V96 cse11        [V96,T33] (  2, 18   )   byref  ->  [fp+0x18]  spill-single-def hoist "CSE - moderate"
+;  V97 cse12        [V97,T29] (  3, 20   )     int  ->  x28         "CSE - moderate"
+;  V98 cse13        [V98,T30] (  3, 20   )     int  ->  x23         "CSE - moderate"
 ;
 ; Lcl frame size = 80
 
@@ -212,10 +211,10 @@ G_M34916_IG06:        ; bbWeight=2, gcrefRegs=2C80000 {x19 x22 x23 x25}, byrefRe
             ble     G_M34916_IG08
             add     x5, x0, #16
             ; byrRegs +[x5]
-            str     x5, [fp, #0x18]    // [V97 cse12]
-            ; GC ptr vars +{V97}
+            str     x5, [fp, #0x18]    // [V96 cse11]
+            ; GC ptr vars +{V96}
                        ;; size=100 bbWeight=2 PerfScore 45.00
-G_M34916_IG07:        ; bbWeight=16, gcVars=00000000000000000000000400000000 {V97}, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0020 {x5}, gcvars, byref, isz
+G_M34916_IG07:        ; bbWeight=16, gcVars=00000000000000000000000200000000 {V96}, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0020 {x5}, gcvars, byref, isz
             ; gcrRegs -[x0]
             ldr     x0, [x5, w25, UXTW #3]
             ; gcrRegs +[x0]
@@ -234,13 +233,13 @@ G_M34916_IG07:        ; bbWeight=16, gcVars=00000000000000000000000400000000 {V9
             ; gcr arg pop 0
             add     w25, w25, #1
             cmp     w28, w25
-            ldr     x5, [fp, #0x18]    // [V97 cse12]
+            ldr     x5, [fp, #0x18]    // [V96 cse11]
             ; byrRegs +[x5]
             bgt     G_M34916_IG07
                        ;; size=60 bbWeight=16 PerfScore 280.00
 G_M34916_IG08:        ; bbWeight=4, gcVars=00000000000000000000000000000000 {}, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, gcvars, byref, isz
             ; byrRegs -[x5]
-            ; GC ptr vars -{V97}
+            ; GC ptr vars -{V96}
             movz    x26, #0xD1FFAB1E
             movk    x26, #0xD1FFAB1E LSL #16
             movk    x26, #0xD1FFAB1E LSL #32
@@ -280,10 +279,10 @@ G_M34916_IG10:        ; bbWeight=0.50, gcrefRegs=480000 {x19 x22}, byrefRegs=000
             ldr     x1, [x11]
             blr     x1
             ; gcr arg pop 0
-            str     x0, [fp, #0x48]    // [V06 loc5]
+            str     x0, [fp, #0x40]    // [V06 loc5]
             ; GC ptr vars +{V06}
                        ;; size=68 bbWeight=0.50 PerfScore 9.00
-G_M34916_IG11:        ; bbWeight=0.50, gcVars=00000000000000000000010000000000 {V06}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M34916_IG11:        ; bbWeight=0.50, gcVars=00000000000000000000008000000000 {V06}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
             b       G_M34916_IG13
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M34916_IG12:        ; bbWeight=2, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
@@ -291,7 +290,7 @@ G_M34916_IG12:        ; bbWeight=2, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, b
             add     x0, x26, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-            ldr     x0, [fp, #0x48]    // [V06 loc5]
+            ldr     x0, [fp, #0x40]    // [V06 loc5]
             ; gcrRegs +[x0]
             add     x1, x26, #0xD1FFAB1E
             bl      CORINFO_HELP_CLASSPROFILE32
@@ -312,7 +311,7 @@ G_M34916_IG12:        ; bbWeight=2, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, b
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x0, [fp, #0x48]    // [V06 loc5]
+            ldr     x0, [fp, #0x40]    // [V06 loc5]
             ; gcrRegs +[x0]
                        ;; size=60 bbWeight=2 PerfScore 35.00
 G_M34916_IG13:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
@@ -320,7 +319,7 @@ G_M34916_IG13:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x0, [fp, #0x48]    // [V06 loc5]
+            ldr     x0, [fp, #0x40]    // [V06 loc5]
             ; gcrRegs +[x0]
             mov     x23, x0
             ; gcrRegs +[x23]
@@ -339,7 +338,7 @@ G_M34916_IG14:        ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}
             add     x0, x26, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-            ldr     x0, [fp, #0x48]    // [V06 loc5]
+            ldr     x0, [fp, #0x40]    // [V06 loc5]
             ; gcrRegs +[x0]
             add     x1, x26, #0xD1FFAB1E
             ; GC ptr vars -{V06}
@@ -381,15 +380,15 @@ G_M34916_IG15:        ; bbWeight=0.50, gcrefRegs=480000 {x19 x22}, byrefRegs=000
             ldr     x1, [x11]
             blr     x1
             ; gcr arg pop 0
-            str     x0, [fp, #0x40]    // [V08 loc7]
+            str     x0, [fp, #0x38]    // [V08 loc7]
             ; GC ptr vars +{V08}
                        ;; size=60 bbWeight=0.50 PerfScore 7.00
-G_M34916_IG16:        ; bbWeight=4, gcVars=00000000000000000000020000000000 {V08}, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M34916_IG16:        ; bbWeight=4, gcVars=00000000000000000000010000000000 {V08}, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, gcvars, byref, isz
             add     x1, x26, #0xD1FFAB1E
             bl      CORINFO_HELP_CLASSPROFILE32
...

+8 (+0.66%) : 7938.dasm - System.RuntimeType:GetField(System.String,int):System.Reflection.FieldInfo:this (Instrumented Tier1)

@@ -12,13 +12,13 @@
 ;  V00 this         [V00,T05] (  4,  4   )     ref  ->  x21         this class-hnd single-def <System.RuntimeType>
 ;  V01 arg1         [V01,T04] (  6,  4   )     ref  ->  x20         ld-addr-op class-hnd <System.String>
 ;  V02 arg2         [V02,T02] (  6,  5.31)     int  ->  x19        
-;  V03 loc0         [V03,T14] (  3,  2   )     int  ->  x22         ld-addr-op
-;  V04 loc1         [V04,T12] (  3,  2.23)     ref  ->   x0         class-hnd single-def <System.Reflection.RuntimeFieldInfo[]>
-;  V05 loc2         [V05,T10] ( 16,  2.61)     ref  ->  x21         class-hnd <System.Reflection.FieldInfo>
-;  V06 loc3         [V06,T15] (  3,  2   )   ubyte  ->  x22        
+;  V03 loc0         [V03,T13] (  3,  2   )     int  ->  x22         ld-addr-op
+;  V04 loc1         [V04,T11] (  4,  2.54)     ref  ->  x21         class-hnd single-def <System.Reflection.RuntimeFieldInfo[]>
+;  V05 loc2         [V05,T10] ( 16,  2.61)     ref  ->  x22         class-hnd <System.Reflection.FieldInfo>
+;  V06 loc3         [V06,T14] (  3,  2   )   ubyte  ->  x23        
 ;* V07 loc4         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op
-;  V08 loc5         [V08,T13] (  5,  2.22)     int  ->  x23        
-;  V09 loc6         [V09,T16] ( 12,  0.92)     ref  ->  x26         class-hnd <System.Reflection.RuntimeFieldInfo>
+;  V08 loc5         [V08,T12] (  5,  2.22)     int  ->  x24        
+;  V09 loc6         [V09,T15] ( 12,  0.92)     ref  ->  x26         class-hnd <System.Reflection.RuntimeFieldInfo>
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V12 tmp2         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <System.Type>
@@ -28,7 +28,7 @@
 ;* V16 tmp6         [V16    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V17 tmp7         [V17    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V18 tmp8         [V18    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V19 tmp9         [V19,T19] (  3,  0   )     ref  ->  x20         "handle histogram profile tmp"
+;  V19 tmp9         [V19,T18] (  3,  0   )     ref  ->  x20         "handle histogram profile tmp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V21 tmp11        [V21    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V22 tmp12        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
@@ -50,20 +50,19 @@
 ;* V38 tmp28        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V39 tmp29        [V39    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V40 tmp30        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V41 tmp31        [V41,T27] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V42 tmp32        [V42,T20] (  3,  0   )     ref  ->   x0         "argument with side effect"
-;  V43 tmp33        [V43,T21] (  3,  0   )     ref  ->   x0         "argument with side effect"
-;* V44 tmp34        [V44,T28] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;* V45 tmp35        [V45,T29] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V46 tmp36        [V46,T22] (  3,  0   )     ref  ->   x0         "argument with side effect"
-;  V47 tmp37        [V47,T23] (  3,  0   )     ref  ->  x20         "argument with side effect"
-;  V48 tmp38        [V48,T26] (  2,  0   )     ref  ->   x1         "argument with side effect"
-;  V49 tmp39        [V49,T24] (  3,  0   )     ref  ->   x0         "argument with side effect"
-;  V50 tmp40        [V50,T25] (  3,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V51 cse0         [V51,T17] (  3,  0.92)     int  ->   x0         "CSE - conservative"
-;  V52 cse1         [V52,T11] (  3,  2.31)     int  ->  x24         "CSE - moderate"
-;  V53 cse2         [V53,T18] (  2,  0.54)   byref  ->  x25         hoist "CSE - conservative"
-;  V54 cse3         [V54,T09] (  3,  3   )    long  ->   x0         "CSE - aggressive"
+;* V41 tmp31        [V41,T26] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V42 tmp32        [V42,T19] (  3,  0   )     ref  ->   x0         "argument with side effect"
+;  V43 tmp33        [V43,T20] (  3,  0   )     ref  ->   x0         "argument with side effect"
+;* V44 tmp34        [V44,T27] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;* V45 tmp35        [V45,T28] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V46 tmp36        [V46,T21] (  3,  0   )     ref  ->   x0         "argument with side effect"
+;  V47 tmp37        [V47,T22] (  3,  0   )     ref  ->  x20         "argument with side effect"
+;  V48 tmp38        [V48,T25] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V49 tmp39        [V49,T23] (  3,  0   )     ref  ->   x0         "argument with side effect"
+;  V50 tmp40        [V50,T24] (  3,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V51 cse0         [V51,T16] (  3,  0.92)     int  ->   x0         "CSE - conservative"
+;  V52 cse1         [V52,T17] (  2,  0.54)   byref  ->  x25         hoist "CSE - conservative"
+;  V53 cse2         [V53,T09] (  3,  3   )    long  ->   x0         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -223,30 +222,32 @@ G_M40435_IG10:        ; bbWeight=1, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}
             blr     x4
             ; gcrRegs -[x2 x20]
             ; gcr arg pop 0
-            mov     x21, xzr
+            mov     x21, x0
             ; gcrRegs +[x21]
+            mov     x22, xzr
+            ; gcrRegs +[x22]
             eor     w19, w19, #2
-            mov     w22, wzr
             mov     w23, wzr
-            ldr     w24, [x0, #0x08]
-            cmp     w24, #0
+            mov     w24, wzr
+            ldr     w0, [x21, #0x08]
+            ; gcrRegs -[x0]
+            cmp     w0, #0
             ble     G_M40435_IG17
-                       ;; size=64 bbWeight=1 PerfScore 16.50
-G_M40435_IG11:        ; bbWeight=0.23, gcrefRegs=200001 {x0 x21}, byrefRegs=0000 {}, byref
-            add     x25, x0, #16
+                       ;; size=68 bbWeight=1 PerfScore 17.00
+G_M40435_IG11:        ; bbWeight=0.23, gcrefRegs=600000 {x21 x22}, byrefRegs=0000 {}, byref
+            add     x25, x21, #16
             ; byrRegs +[x25]
                        ;; size=4 bbWeight=0.23 PerfScore 0.12
-G_M40435_IG12:        ; bbWeight=0.31, gcrefRegs=200000 {x21}, byrefRegs=2000000 {x25}, byref, isz
-            ; gcrRegs -[x0]
-            ldr     x26, [x25, w23, UXTW #3]
+G_M40435_IG12:        ; bbWeight=0.31, gcrefRegs=600000 {x21 x22}, byrefRegs=2000000 {x25}, byref, isz
+            ldr     x26, [x25, w24, UXTW #3]
             ; gcrRegs +[x26]
             ldr     w0, [x26, #0x18]
             and     w1, w19, w0
             cmp     w1, w0
             bne     G_M40435_IG16
-            cbz     x21, G_M40435_IG15
+            cbz     x22, G_M40435_IG15
                        ;; size=24 bbWeight=0.31 PerfScore 2.75
-G_M40435_IG13:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=2000000 {x25}, byref, isz
+G_M40435_IG13:        ; bbWeight=0, gcrefRegs=4600000 {x21 x22 x26}, byrefRegs=2000000 {x25}, byref, isz
             mov     x0, x26
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -264,14 +265,14 @@ G_M40435_IG13:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=20000
             ; gcr arg pop 0
             mov     x20, x0
             ; gcrRegs +[x20]
-            mov     x0, x21
+            mov     x0, x22
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            mov     x0, x21
+            mov     x0, x22
             ; gcrRegs +[x0]
             ldr     x1, [x0]
             ldr     x1, [x1, #0x48]
@@ -280,14 +281,14 @@ G_M40435_IG13:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=20000
             ; gcr arg pop 0
             cmp     x20, x0
             beq     G_M40435_IG27
-            mov     x0, x21
+            mov     x0, x22
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0 x20]
             ; gcr arg pop 0
-            mov     x0, x21
+            mov     x0, x22
             ; gcrRegs +[x0]
             ldr     x1, [x0]
             ldr     x1, [x1, #0x48]
@@ -332,9 +333,9 @@ G_M40435_IG13:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=20000
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-            mov     w22, #1
+            mov     w23, #1
                        ;; size=248 bbWeight=0 PerfScore 0.00
-G_M40435_IG14:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=2000000 {x25}, byref, isz
+G_M40435_IG14:        ; bbWeight=0, gcrefRegs=4600000 {x21 x22 x26}, byrefRegs=2000000 {x25}, byref, isz
             mov     x0, x26
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -358,7 +359,7 @@ G_M40435_IG14:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=20000
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            mov     x0, x21
+            mov     x0, x22
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -366,7 +367,7 @@ G_M40435_IG14:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=20000
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            mov     x0, x21
+            mov     x0, x22
             ; gcrRegs +[x0]
             ldr     x1, [x0]
             ldr     x1, [x1, #0x48]
@@ -383,7 +384,7 @@ G_M40435_IG14:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=20000
             ; gcrRegs -[x0-x1 x20]
             ; gcr arg pop 0
             cbnz    w0, G_M40435_IG24
-            mov     x0, x21
+            mov     x0, x22
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -391,7 +392,7 @@ G_M40435_IG14:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=20000
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            mov     x0, x21
+            mov     x0, x22
             ; gcrRegs +[x0]
             ldr     x1, [x0]
             ldr     x1, [x1, #0x48]
@@ -411,35 +412,37 @@ G_M40435_IG14:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=20000
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_COUNTPROFILE32
-            ; gcrRegs -[x21]
+            ; gcrRegs -[x22]
             ; gcr arg pop 0
                        ;; size=212 bbWeight=0 PerfScore 0.00
-G_M40435_IG15:        ; bbWeight=0.31, gcrefRegs=4000000 {x26}, byrefRegs=2000000 {x25}, byref
+G_M40435_IG15:        ; bbWeight=0.31, gcrefRegs=4200000 {x21 x26}, byrefRegs=2000000 {x25}, byref
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-            mov     x21, x26
-            ; gcrRegs +[x21]
+            mov     x22, x26
+            ; gcrRegs +[x22]
                        ;; size=20 bbWeight=0.31 PerfScore 0.92
-G_M40435_IG16:        ; bbWeight=0.31, gcrefRegs=200000 {x21}, byrefRegs=2000000 {x25}, byref, isz
+G_M40435_IG16:        ; bbWeight=0.31, gcrefRegs=600000 {x21 x22}, byrefRegs=2000000 {x25}, byref, isz
             ; gcrRegs -[x26]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-            add     w23, w23, #1
-            cmp     w24, w23
+            add     w24, w24, #1
+            ldr     w0, [x21, #0x08]
+            cmp     w0, w24
             bgt     G_M40435_IG12
-                       ;; size=28 bbWeight=0.31 PerfScore 1.38
-G_M40435_IG17:        ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref, isz
+                       ;; size=32 bbWeight=0.31 PerfScore 2.29
+G_M40435_IG17:        ; bbWeight=1, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x21]
             ; byrRegs -[x25]
-            cbz     w22, G_M40435_IG20
+            cbz     w23, G_M40435_IG20
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M40435_IG18:        ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref, isz
-            mov     x0, x21
+G_M40435_IG18:        ; bbWeight=0, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
+            mov     x0, x22
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -447,7 +450,7 @@ G_M40435_IG18:        ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, b
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            mov     x0, x21
+            mov     x0, x22
             ; gcrRegs +[x0]
             ldr     x1, [x0]
             ldr     x1, [x1, #0x48]
@@ -463,34 +466,34 @@ G_M40435_IG18:        ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, b
...

+24 (+3.97%) : 303124.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (Tier0-FullOpts)

@@ -3,48 +3,48 @@
 ; Tier-0 switched to FullOpts code
 ; optimized code
 ; fp based frame
-; fully interruptible
+; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] ( 12,  7   )   byref  ->  x19         this single-def
-;  V01 arg1         [V01,T04] (  3,  3   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
+;  V00 this         [V00,T01] ( 12,  7   )   byref  ->  x19         this single-def
+;  V01 arg1         [V01,T02] (  3,  3   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
-;  V03 loc1         [V03,T02] (  9, 12   )     int  ->  x21        
+;  V03 loc1         [V03,T03] (  9,  4.75)     int  ->  x21        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[int]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [fp+0x30]  do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Decimal>
-;  V09 tmp4         [V09,T05] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V10 tmp5         [V10,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V09 tmp4         [V09,T04] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V10 tmp5         [V10,T10] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
-;  V13 tmp8         [V13,T18] (  2,  1   )     int  ->   x0        
-;  V14 tmp9         [V14,T06] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V15 tmp10        [V15,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V16 tmp11        [V16,T07] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V17 tmp12        [V17,T13] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V18 tmp13        [V18,T14] (  2,  2   )     int  ->   x1         "impAppendStmt"
+;  V13 tmp8         [V13,T17] (  2,  1   )     int  ->   x0        
+;  V14 tmp9         [V14,T05] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V15 tmp10        [V15,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V16 tmp11        [V16,T06] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V17 tmp12        [V17,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V18 tmp13        [V18,T13] (  2,  2   )     int  ->   x1         "impAppendStmt"
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    ptr
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp18        [V23,T19] (  2,  1   )     int  ->   x0        
+;  V23 tmp18        [V23,T18] (  2,  1   )     int  ->   x0        
 ;  V24 tmp19        [V24    ] (  6, 11   )  struct (16) [fp+0x10]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
-;  V25 tmp20        [V25,T09] (  3,  2.50)     int  ->   x1         "Inline stloc first use temp"
+;  V25 tmp20        [V25,T08] (  3,  2.50)     int  ->   x1         "Inline stloc first use temp"
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Decimal>
 ;* V28 tmp23        [V28    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V29 tmp24        [V29    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V30 tmp25        [V30    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;  V31 tmp26        [V31,T01] ( 12, 12   )   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V32 tmp27        [V32,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp26        [V31,T00] ( 14,  9.50)   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V32 tmp27        [V32,T19] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp28        [V33    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V34 tmp29        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V35 tmp30        [V35,T10] (  2,  2   )   byref  ->  x20         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V36 tmp31        [V36,T21] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
+;  V35 tmp30        [V35,T09] (  2,  2   )   byref  ->  x20         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V36 tmp31        [V36,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V37 tmp32        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V08._flags (fldOffset=0x0)" P-INDEP
 ;* V38 tmp33        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V08._hi32 (fldOffset=0x4)" P-INDEP
 ;* V39 tmp34        [V39    ] (  0,  0   )    long  ->  zero-ref    "field V08._lo64 (fldOffset=0x8)" P-INDEP
@@ -53,12 +53,11 @@
 ;  V42 tmp37        [V42    ] (  3,  4   )    long  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V24._lo64 (fldOffset=0x8)" P-DEP
 ;* V43 tmp38        [V43    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V44 tmp39        [V44    ] (  0,  0   )     int  ->  zero-ref    ptr "field V26._length (fldOffset=0x8)" P-INDEP
-;  V45 tmp40        [V45,T15] (  2,  2   )     int  ->  x13         "field V27._flags (fldOffset=0x0)" P-INDEP
-;  V46 tmp41        [V46,T16] (  2,  2   )     int  ->  x14         "field V27._hi32 (fldOffset=0x4)" P-INDEP
-;  V47 tmp42        [V47,T08] (  3,  3   )    long  ->  x12         "field V27._lo64 (fldOffset=0x8)" P-INDEP
+;  V45 tmp40        [V45,T14] (  2,  2   )     int  ->  x13         "field V27._flags (fldOffset=0x0)" P-INDEP
+;  V46 tmp41        [V46,T15] (  2,  2   )     int  ->  x14         "field V27._hi32 (fldOffset=0x4)" P-INDEP
+;  V47 tmp42        [V47,T07] (  3,  3   )    long  ->  x12         "field V27._lo64 (fldOffset=0x8)" P-INDEP
 ;  V48 GsCookie     [V48    ] (  1,  1   )    long  ->  [fp+0x40]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V49 cse0         [V49,T17] (  3,  1.50)     int  ->   x1         "CSE - moderate"
-;  V50 cse1         [V50,T00] (  4, 14   )     int  ->  x13         "CSE - aggressive"
+;  V49 cse0         [V49,T16] (  3,  1.50)     int  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 56
 
@@ -95,7 +94,6 @@ G_M46478_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-            ; gcr arg pop 0
                        ;; size=36 bbWeight=0.50 PerfScore 4.00
 G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
             ldp     w13, w14, [fp, #0x10]  // [V40 tmp35], [V41 tmp36]
@@ -107,30 +105,48 @@ G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20
             mov     w21, #3
             b       G_M46478_IG06
                        ;; size=32 bbWeight=1 PerfScore 9.50
-G_M46478_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sxtw    w21, w13
-            cmp     w21, #0
-            ble     G_M46478_IG07
-                       ;; size=12 bbWeight=2 PerfScore 4.00
-G_M46478_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sub     w13, w21, #1
-            cmp     w13, #4
-            bhs     G_M46478_IG17
-            ldr     w14, [x20, w13, UXTW #2]
-            cbz     w14, G_M46478_IG05
-                       ;; size=20 bbWeight=4 PerfScore 24.00
-G_M46478_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            cbnz    w21, G_M46478_IG11
+G_M46478_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, #2
+            b       G_M46478_IG09
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20, #0x08]
+            cbz     w13, G_M46478_IG05
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG07:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG13
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG08:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, #1
+            b       G_M46478_IG12
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20, #0x04]
+            cbz     w13, G_M46478_IG08
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG10:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG13
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG11:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, wzr
+            b       G_M46478_IG13
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20]
+            cbz     w13, G_M46478_IG11
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            cbnz    w21, G_M46478_IG17
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M46478_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             ; byrRegs -[x20]
             movz    x13, #0xD1FFAB1E
             movk    x13, #0xD1FFAB1E LSL #16
             movk    x13, #0xD1FFAB1E LSL #32
             ldr     w13, [x13]
-            tbz     w13, #0, G_M46478_IG18
+            tbz     w13, #0, G_M46478_IG24
                        ;; size=20 bbWeight=0.50 PerfScore 2.75
-G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             movz    x13, #0xD1FFAB1E      // box for <unknown class>:<unknown field>
             movk    x13, #0xD1FFAB1E LSL #16
             movk    x13, #0xD1FFAB1E LSL #32
@@ -151,24 +167,23 @@ G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             movk    xip0, #0xD1FFAB1E LSL #48
             ldr     xip1, [fp, #0x40]  // [V48 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG10
+            beq     G_M46478_IG16
             bl      CORINFO_HELP_FAIL_FAST
             ; byrRegs -[x13-x14]
-            ; gcr arg pop 0
                        ;; size=68 bbWeight=0.50 PerfScore 8.50
-G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x21, [sp, #0x58]
             ldp     x19, x20, [sp, #0x48]
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M46478_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG17:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             cmp     w21, #1
-            bne     G_M46478_IG13
+            bne     G_M46478_IG19
             ldr     w1, [x20]
             cmp     w1, #0
-            ble     G_M46478_IG13
+            ble     G_M46478_IG19
             str     w1, [x19, #0x08]
             ldr     w1, [x19, #0x08]
             ldr     w0, [x20, #0x0C]
@@ -185,18 +200,17 @@ G_M46478_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             movk    xip0, #0xD1FFAB1E LSL #48
             ldr     xip1, [fp, #0x40]  // [V48 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG12
+            beq     G_M46478_IG18
             bl      CORINFO_HELP_FAIL_FAST
             ; byrRegs -[x19-x20]
-            ; gcr arg pop 0
                        ;; size=92 bbWeight=0.50 PerfScore 12.75
-G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG18:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x21, [sp, #0x58]
             ldp     x19, x20, [sp, #0x48]
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG19:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             sxtw    x1, w21
             movz    x0, #0xD1FFAB1E
@@ -204,7 +218,6 @@ G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWARR_1_VC
             ; gcrRegs +[x0]
-            ; gcr arg pop 0
             mov     x15, x0
             ; gcrRegs +[x15]
             mov     x14, x19
@@ -217,30 +230,30 @@ G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     w1, [x20]
             ldr     w2, [x0, #0x08]
             cmp     w2, #0
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x10]
             cmp     w21, #1
-            ble     G_M46478_IG14
+            ble     G_M46478_IG20
             ldr     x0, [x19]
             ldr     w1, [x20, #0x04]
             ldr     w2, [x0, #0x08]
             cmp     w2, #1
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x14]
                        ;; size=88 bbWeight=0.50 PerfScore 14.75
-G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+G_M46478_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
             ; gcrRegs -[x0]
             cmp     w21, #2
-            ble     G_M46478_IG15
+            ble     G_M46478_IG21
             ldr     x0, [x19]
             ; gcrRegs +[x0]
             ldr     w1, [x20, #0x08]
             ldr     w2, [x0, #0x08]
             cmp     w2, #2
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x18]
...

librariestestsnotieredcompilation.run.linux.arm64.Release.mch

+24 (+3.97%) : 115724.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

@@ -3,48 +3,48 @@
 ; FullOpts code
 ; optimized code
 ; fp based frame
-; fully interruptible
+; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] ( 12,  7   )   byref  ->  x19         this single-def
-;  V01 arg1         [V01,T04] (  3,  3   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
+;  V00 this         [V00,T01] ( 12,  7   )   byref  ->  x19         this single-def
+;  V01 arg1         [V01,T02] (  3,  3   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
-;  V03 loc1         [V03,T02] (  9, 12   )     int  ->  x21        
+;  V03 loc1         [V03,T03] (  9,  4.75)     int  ->  x21        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[int]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [fp+0x30]  do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Decimal>
-;  V09 tmp4         [V09,T05] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V10 tmp5         [V10,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V09 tmp4         [V09,T04] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V10 tmp5         [V10,T10] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
-;  V13 tmp8         [V13,T18] (  2,  1   )     int  ->   x0        
-;  V14 tmp9         [V14,T06] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V15 tmp10        [V15,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V16 tmp11        [V16,T07] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V17 tmp12        [V17,T13] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V18 tmp13        [V18,T14] (  2,  2   )     int  ->   x1         "impAppendStmt"
+;  V13 tmp8         [V13,T17] (  2,  1   )     int  ->   x0        
+;  V14 tmp9         [V14,T05] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V15 tmp10        [V15,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V16 tmp11        [V16,T06] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V17 tmp12        [V17,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V18 tmp13        [V18,T13] (  2,  2   )     int  ->   x1         "impAppendStmt"
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    ptr
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp18        [V23,T19] (  2,  1   )     int  ->   x0        
+;  V23 tmp18        [V23,T18] (  2,  1   )     int  ->   x0        
 ;  V24 tmp19        [V24    ] (  6, 11   )  struct (16) [fp+0x10]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
-;  V25 tmp20        [V25,T09] (  3,  2.50)     int  ->   x1         "Inline stloc first use temp"
+;  V25 tmp20        [V25,T08] (  3,  2.50)     int  ->   x1         "Inline stloc first use temp"
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Decimal>
 ;* V28 tmp23        [V28    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V29 tmp24        [V29    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V30 tmp25        [V30    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;  V31 tmp26        [V31,T01] ( 12, 12   )   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V32 tmp27        [V32,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp26        [V31,T00] ( 14,  9.50)   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V32 tmp27        [V32,T19] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp28        [V33    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V34 tmp29        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V35 tmp30        [V35,T10] (  2,  2   )   byref  ->  x20         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V36 tmp31        [V36,T21] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
+;  V35 tmp30        [V35,T09] (  2,  2   )   byref  ->  x20         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V36 tmp31        [V36,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V37 tmp32        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V08._flags (fldOffset=0x0)" P-INDEP
 ;* V38 tmp33        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V08._hi32 (fldOffset=0x4)" P-INDEP
 ;* V39 tmp34        [V39    ] (  0,  0   )    long  ->  zero-ref    "field V08._lo64 (fldOffset=0x8)" P-INDEP
@@ -53,12 +53,11 @@
 ;  V42 tmp37        [V42    ] (  3,  4   )    long  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V24._lo64 (fldOffset=0x8)" P-DEP
 ;* V43 tmp38        [V43    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V44 tmp39        [V44    ] (  0,  0   )     int  ->  zero-ref    ptr "field V26._length (fldOffset=0x8)" P-INDEP
-;  V45 tmp40        [V45,T15] (  2,  2   )     int  ->  x13         "field V27._flags (fldOffset=0x0)" P-INDEP
-;  V46 tmp41        [V46,T16] (  2,  2   )     int  ->  x14         "field V27._hi32 (fldOffset=0x4)" P-INDEP
-;  V47 tmp42        [V47,T08] (  3,  3   )    long  ->  x12         "field V27._lo64 (fldOffset=0x8)" P-INDEP
+;  V45 tmp40        [V45,T14] (  2,  2   )     int  ->  x13         "field V27._flags (fldOffset=0x0)" P-INDEP
+;  V46 tmp41        [V46,T15] (  2,  2   )     int  ->  x14         "field V27._hi32 (fldOffset=0x4)" P-INDEP
+;  V47 tmp42        [V47,T07] (  3,  3   )    long  ->  x12         "field V27._lo64 (fldOffset=0x8)" P-INDEP
 ;  V48 GsCookie     [V48    ] (  1,  1   )    long  ->  [fp+0x40]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V49 cse0         [V49,T17] (  3,  1.50)     int  ->   x1         "CSE - moderate"
-;  V50 cse1         [V50,T00] (  4, 14   )     int  ->  x13         "CSE - aggressive"
+;  V49 cse0         [V49,T16] (  3,  1.50)     int  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 56
 
@@ -95,7 +94,6 @@ G_M46478_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-            ; gcr arg pop 0
                        ;; size=36 bbWeight=0.50 PerfScore 4.00
 G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
             ldp     w13, w14, [fp, #0x10]  // [V40 tmp35], [V41 tmp36]
@@ -107,30 +105,48 @@ G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20
             mov     w21, #3
             b       G_M46478_IG06
                        ;; size=32 bbWeight=1 PerfScore 9.50
-G_M46478_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sxtw    w21, w13
-            cmp     w21, #0
-            ble     G_M46478_IG07
-                       ;; size=12 bbWeight=2 PerfScore 4.00
-G_M46478_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sub     w13, w21, #1
-            cmp     w13, #4
-            bhs     G_M46478_IG17
-            ldr     w14, [x20, w13, UXTW #2]
-            cbz     w14, G_M46478_IG05
-                       ;; size=20 bbWeight=4 PerfScore 24.00
-G_M46478_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            cbnz    w21, G_M46478_IG11
+G_M46478_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, #2
+            b       G_M46478_IG09
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20, #0x08]
+            cbz     w13, G_M46478_IG05
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG07:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG13
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG08:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, #1
+            b       G_M46478_IG12
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20, #0x04]
+            cbz     w13, G_M46478_IG08
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG10:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG13
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG11:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, wzr
+            b       G_M46478_IG13
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20]
+            cbz     w13, G_M46478_IG11
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            cbnz    w21, G_M46478_IG17
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M46478_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             ; byrRegs -[x20]
             movz    x13, #0xD1FFAB1E
             movk    x13, #0xD1FFAB1E LSL #16
             movk    x13, #0xD1FFAB1E LSL #32
             ldr     w13, [x13]
-            tbz     w13, #0, G_M46478_IG18
+            tbz     w13, #0, G_M46478_IG24
                        ;; size=20 bbWeight=0.50 PerfScore 2.75
-G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             movz    x13, #0xD1FFAB1E      // box for <unknown class>:<unknown field>
             movk    x13, #0xD1FFAB1E LSL #16
             movk    x13, #0xD1FFAB1E LSL #32
@@ -151,24 +167,23 @@ G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             movk    xip0, #0xD1FFAB1E LSL #48
             ldr     xip1, [fp, #0x40]  // [V48 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG10
+            beq     G_M46478_IG16
             bl      CORINFO_HELP_FAIL_FAST
             ; byrRegs -[x13-x14]
-            ; gcr arg pop 0
                        ;; size=68 bbWeight=0.50 PerfScore 8.50
-G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x21, [sp, #0x58]
             ldp     x19, x20, [sp, #0x48]
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M46478_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG17:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             cmp     w21, #1
-            bne     G_M46478_IG13
+            bne     G_M46478_IG19
             ldr     w1, [x20]
             cmp     w1, #0
-            ble     G_M46478_IG13
+            ble     G_M46478_IG19
             str     w1, [x19, #0x08]
             ldr     w1, [x19, #0x08]
             ldr     w0, [x20, #0x0C]
@@ -185,18 +200,17 @@ G_M46478_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             movk    xip0, #0xD1FFAB1E LSL #48
             ldr     xip1, [fp, #0x40]  // [V48 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG12
+            beq     G_M46478_IG18
             bl      CORINFO_HELP_FAIL_FAST
             ; byrRegs -[x19-x20]
-            ; gcr arg pop 0
                        ;; size=92 bbWeight=0.50 PerfScore 12.75
-G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG18:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x21, [sp, #0x58]
             ldp     x19, x20, [sp, #0x48]
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG19:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             sxtw    x1, w21
             movz    x0, #0xD1FFAB1E
@@ -204,7 +218,6 @@ G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWARR_1_VC
             ; gcrRegs +[x0]
-            ; gcr arg pop 0
             mov     x15, x0
             ; gcrRegs +[x15]
             mov     x14, x19
@@ -217,30 +230,30 @@ G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     w1, [x20]
             ldr     w2, [x0, #0x08]
             cmp     w2, #0
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x10]
             cmp     w21, #1
-            ble     G_M46478_IG14
+            ble     G_M46478_IG20
             ldr     x0, [x19]
             ldr     w1, [x20, #0x04]
             ldr     w2, [x0, #0x08]
             cmp     w2, #1
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x14]
                        ;; size=88 bbWeight=0.50 PerfScore 14.75
-G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+G_M46478_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
             ; gcrRegs -[x0]
             cmp     w21, #2
-            ble     G_M46478_IG15
+            ble     G_M46478_IG21
             ldr     x0, [x19]
             ; gcrRegs +[x0]
             ldr     w1, [x20, #0x08]
             ldr     w2, [x0, #0x08]
             cmp     w2, #2
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x18]
...

smoke_tests.nativeaot.linux.arm64.checked.mch

+64 (+3.09%) : 1474.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)

@@ -12,8 +12,8 @@
 ;  V02 arg2         [V02,T24] (  5, 15   )     ref  ->  x20         class-hnd exact single-def <System.String>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Object]>
 ;  V04 loc0         [V04,T50] (  3,  7   )     ref  ->  x24         class-hnd single-def <<unknown class>>
-;  V05 loc1         [V05,T00] ( 61,455   )     int  ->  x25         ld-addr-op
-;  V06 loc2         [V06,T01] ( 31,260   )  ushort  ->  [fp+0x6C] 
+;  V05 loc1         [V05,T00] ( 71,459   )     int  ->  x25         ld-addr-op
+;  V06 loc2         [V06,T01] ( 35,260   )  ushort  ->  [fp+0x6C] 
 ;  V07 loc3         [V07,T06] ( 12,102   )     int  ->  x28        
 ;  V08 loc4         [V08,T13] (  5, 46   )   ubyte  ->  [fp+0x68] 
 ;* V09 loc5         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op <System.ReadOnlySpan`1[ushort]>
@@ -128,9 +128,9 @@
 ;  V118 tmp97       [V118,T42] (  2,  8   )   byref  ->   x1         "field V75._reference (fldOffset=0x0)" P-INDEP
 ;  V119 tmp98       [V119,T45] (  2,  8   )     int  ->   x2         "field V75._length (fldOffset=0x8)" P-INDEP
 ;  V120 cse0        [V120,T37] (  3, 12   )     int  ->   x2         "CSE - moderate"
-;  V121 cse1        [V121,T03] ( 18,142   )     int  ->  x26         "CSE - aggressive"
+;  V121 cse1        [V121,T03] ( 20,142   )     int  ->  x26         "CSE - aggressive"
 ;  V122 cse2        [V122,T05] (  7,108   )     int  ->  x27         "CSE - aggressive"
-;  V123 cse3        [V123,T04] ( 15,120   )   byref  ->  x27         "CSE - aggressive"
+;  V123 cse3        [V123,T04] ( 17,120   )   byref  ->  x27         "CSE - aggressive"
 ;  V124 cse4        [V124,T38] (  3, 12   )     int  ->   x0         "CSE - moderate"
 ;  V125 cse5        [V125,T14] ( 20, 40   )     ref  ->  registers   multi-def "CSE - aggressive"
 ;
@@ -155,7 +155,7 @@ G_M36935_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             mov     w23, w4
                        ;; size=48 bbWeight=1 PerfScore 9.00
 G_M36935_IG02:        ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=480000 {x19 x22}, byref, isz
-            cbz     x20, G_M36935_IG73
+            cbz     x20, G_M36935_IG77
             cbnz    x21, G_M36935_IG04
                        ;; size=8 bbWeight=1 PerfScore 2.00
 G_M36935_IG03:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=480000 {x19 x22}, byref
@@ -227,7 +227,7 @@ G_M36935_IG10:        ; bbWeight=8, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=4
             ; gcrRegs -[x0]
             ldr     w26, [x20, #0x08]
             cmp     w26, w25
-            bls     G_M36935_IG69
+            bls     G_M36935_IG73
                        ;; size=12 bbWeight=8 PerfScore 36.00
 G_M36935_IG11:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=480000 {x19 x22}, byref, isz
             add     x27, x20, #12
@@ -266,10 +266,10 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=1
             ; gcr arg pop 0
             sxtw    w3, w0
             str     w3, [fp, #0x60]    // [V15 loc11]
-            tbnz    w3, #31, G_M36935_IG70
+            tbnz    w3, #31, G_M36935_IG74
             ldr     w4, [fp, #0x44]    // [V97 tmp76]
             cmp     w3, w4
-            bhi     G_M36935_IG80
+            bhi     G_M36935_IG84
             mov     x1, x28
             ; byrRegs +[x1]
             mov     w2, w3
@@ -281,11 +281,11 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=1
             ldr     w28, [fp, #0x60]   // [V15 loc11]
             add     w25, w25, w28
             cmp     w25, w26
-            bhs     G_M36935_IG72
+            bhs     G_M36935_IG76
             ldrh    w28, [x27, w25, UXTW #2]
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w28, w2
             bne     G_M36935_IG17
@@ -319,7 +319,7 @@ G_M36935_IG16:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=4
 G_M36935_IG17:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             ; byrRegs +[x27]
             cmp     w28, #123
-            bne     G_M36935_IG74
+            bne     G_M36935_IG78
             mov     w28, wzr
             str     wzr, [fp, #0x68]   // [V08 loc4]
             str     xzr, [fp, #0x18]   // [V88 tmp67]
@@ -327,7 +327,7 @@ G_M36935_IG17:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8
             str     wzr, [fp, #0x48]   // [V89 tmp68]
             sub     w0, w25, #1
             cmp     w0, w26
-            bhs     G_M36935_IG72
+            bhs     G_M36935_IG76
             ldrh    w0, [x27, w0, UXTW #2]
             cmp     w0, #123
             beq     G_M36935_IG19
@@ -367,10 +367,10 @@ G_M36935_IG21:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8
             ldr     w2, [fp, #0x6C]    // [V06 loc2]
             sub     w6, w2, #48
             cmp     w6, #10
-            bhs     G_M36935_IG75
+            bhs     G_M36935_IG79
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #125
             beq     G_M36935_IG23
@@ -381,7 +381,7 @@ G_M36935_IG22:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8
 G_M36935_IG23:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref
             ldr     x4, [fp, #0x18]    // [V88 tmp67]
             ; byrRegs +[x4]
-            b       G_M36935_IG40
+            b       G_M36935_IG44
                        ;; size=8 bbWeight=2 PerfScore 6.00
 G_M36935_IG24:        ; bbWeight=8, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             ; byrRegs -[x4]
@@ -391,7 +391,7 @@ G_M36935_IG24:        ; bbWeight=8, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8
             str     w6, [fp, #0x64]    // [V10 loc6]
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
             ldr     w6, [fp, #0x64]    // [V10 loc6]
                        ;; size=36 bbWeight=8 PerfScore 88.00
@@ -405,101 +405,125 @@ G_M36935_IG25:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=
                        ;; size=24 bbWeight=16 PerfScore 56.00
 G_M36935_IG26:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             cmp     w2, #32
-            bne     G_M36935_IG28
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M36935_IG27:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+            bne     G_M36935_IG30
+            tbnz    w25, #31, G_M36935_IG29
+                       ;; size=12 bbWeight=2 PerfScore 5.00
+G_M36935_IG27:        ; bbWeight=15.84, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #32
             beq     G_M36935_IG27
-                       ;; size=24 bbWeight=16 PerfScore 104.00
-G_M36935_IG28:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
-            cmp     w2, #44
-            bne     G_M36935_IG36
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M36935_IG29:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+                       ;; size=24 bbWeight=15.84 PerfScore 102.96
+G_M36935_IG28:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref
+            b       G_M36935_IG30
+                       ;; size=4 bbWeight=2 PerfScore 2.00
+G_M36935_IG29:        ; bbWeight=0.16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #32
             beq     G_M36935_IG29
-                       ;; size=24 bbWeight=16 PerfScore 104.00
+                       ;; size=24 bbWeight=0.16 PerfScore 1.04
 G_M36935_IG30:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+            cmp     w2, #44
+            bne     G_M36935_IG40
+                       ;; size=8 bbWeight=2 PerfScore 3.00
+G_M36935_IG31:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+            add     w25, w25, #1
+            cmp     w26, w25
+            bls     G_M36935_IG80
+            ldrh    w2, [x27, w25, UXTW #2]
+            cmp     w2, #32
+            beq     G_M36935_IG31
+                       ;; size=24 bbWeight=16 PerfScore 104.00
+G_M36935_IG32:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             cmp     w2, #45
-            bne     G_M36935_IG31
+            bne     G_M36935_IG33
             mov     w3, #1
             str     w3, [fp, #0x68]    // [V08 loc4]
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
                        ;; size=32 bbWeight=2 PerfScore 16.00
-G_M36935_IG31:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+G_M36935_IG33:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             sub     w28, w2, #48
             cmp     w28, #10
-            bhs     G_M36935_IG75
+            bhs     G_M36935_IG79
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
-            b       G_M36935_IG33
+            bls     G_M36935_IG80
+            b       G_M36935_IG35
                        ;; size=28 bbWeight=2 PerfScore 10.00
-G_M36935_IG32:        ; bbWeight=8, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+G_M36935_IG34:        ; bbWeight=8, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             mov     w0, #10
             madd    w2, w28, w0, w2
             sub     w28, w2, #48
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
                        ;; size=24 bbWeight=8 PerfScore 40.00
-G_M36935_IG33:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+G_M36935_IG35:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             cmp     w25, w26
-            bhs     G_M36935_IG72
+            bhs     G_M36935_IG76
             ldrh    w2, [x27, w25, UXTW #2]
             sub     w0, w2, #48
             movz    w1, #0xD1FFAB1E
             movk    w1, #15 LSL #16
             cmp     w0, #9
             ccmp    w28, w1, z, ls
-            blt     G_M36935_IG32
+            blt     G_M36935_IG34
                        ;; size=36 bbWeight=16 PerfScore 128.00
-G_M36935_IG34:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+G_M36935_IG36:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             cmp     w2, #32
-            bne     G_M36935_IG36
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M36935_IG35:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+            bne     G_M36935_IG40
+            tbnz    w25, #31, G_M36935_IG39
+                       ;; size=12 bbWeight=2 PerfScore 5.00
+G_M36935_IG37:        ; bbWeight=15.84, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #32
-            beq     G_M36935_IG35
-                       ;; size=24 bbWeight=16 PerfScore 104.00
-G_M36935_IG36:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+            beq     G_M36935_IG37
+                       ;; size=24 bbWeight=15.84 PerfScore 102.96
+G_M36935_IG38:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref
+            b       G_M36935_IG40
+                       ;; size=4 bbWeight=2 PerfScore 2.00
+G_M36935_IG39:        ; bbWeight=0.16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+            add     w25, w25, #1
+            cmp     w26, w25
+            bls     G_M36935_IG80
+            ldrh    w2, [x27, w25, UXTW #2]
+            cmp     w2, #32
+            beq     G_M36935_IG39
+                       ;; size=24 bbWeight=0.16 PerfScore 1.04
+G_M36935_IG40:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             cmp     w2, #125
...

+64 (+3.41%) : 5740.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)

@@ -12,8 +12,8 @@
 ;  V02 arg2         [V02,T19] (  5, 15   )     ref  ->  x20         class-hnd exact single-def <System.String>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Object]>
 ;  V04 loc0         [V04,T49] (  3,  7   )     ref  ->  x24         class-hnd single-def <<unknown class>>
-;  V05 loc1         [V05,T00] ( 61,455   )     int  ->  x25         ld-addr-op
-;  V06 loc2         [V06,T01] ( 30,260   )  ushort  ->  [fp+0x5C] 
+;  V05 loc1         [V05,T00] ( 71,459   )     int  ->  x25         ld-addr-op
+;  V06 loc2         [V06,T01] ( 34,260   )  ushort  ->  [fp+0x5C] 
 ;  V07 loc3         [V07,T05] ( 12, 74   )     int  ->  x28        
 ;  V08 loc4         [V08,T09] (  5, 46   )   ubyte  ->  [fp+0x58] 
 ;* V09 loc5         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op <System.ReadOnlySpan`1[ushort]>
@@ -134,8 +134,8 @@
 ;  V124 cse1        [V124,T33] (  3, 12   )     ref  ->   x4         "CSE - moderate"
 ;  V125 cse2        [V125,T36] (  3, 12   )     int  ->   x1         "CSE - moderate"
 ;  V126 cse3        [V126,T34] (  3, 12   )     ref  ->   x0         "CSE - moderate"
-;  V127 cse4        [V127,T02] ( 18,142   )     int  ->  x26         "CSE - aggressive"
-;  V128 cse5        [V128,T03] ( 15,120   )   byref  ->  x27         "CSE - aggressive"
+;  V127 cse4        [V127,T02] ( 20,142   )     int  ->  x26         "CSE - aggressive"
+;  V128 cse5        [V128,T03] ( 17,120   )   byref  ->  x27         "CSE - aggressive"
 ;  V129 cse6        [V129,T06] (  6, 60   )     int  ->  x27         "CSE - aggressive"
 ;  V130 cse7        [V130,T37] (  3, 12   )     int  ->   x0         "CSE - moderate"
 ;  V131 cse8        [V131,T10] ( 17, 34   )     ref  ->  registers   multi-def "CSE - aggressive"
@@ -161,7 +161,7 @@ G_M4730_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             mov     w23, w4
                        ;; size=48 bbWeight=1 PerfScore 9.00
 G_M4730_IG02:        ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=400000 {x22}, byref, isz
-            cbz     x20, G_M4730_IG65
+            cbz     x20, G_M4730_IG69
             cbnz    x21, G_M4730_IG04
                        ;; size=8 bbWeight=1 PerfScore 2.00
 G_M4730_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=400000 {x22}, byref
@@ -233,7 +233,7 @@ G_M4730_IG10:        ; bbWeight=8, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             ; gcrRegs -[x0]
             ldr     w26, [x20, #0x08]
             cmp     w26, w25
-            bls     G_M4730_IG60
+            bls     G_M4730_IG64
                        ;; size=12 bbWeight=8 PerfScore 36.00
 G_M4730_IG11:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=400000 {x22}, byref, isz
             add     x27, x20, #12
@@ -272,10 +272,10 @@ G_M4730_IG13:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             ; gcr arg pop 0
             sxtw    w3, w0
             str     w3, [fp, #0x50]    // [V15 loc11]
-            tbnz    w3, #31, G_M4730_IG62
+            tbnz    w3, #31, G_M4730_IG66
             ldr     w4, [fp, #0x38]    // [V96 tmp74]
             cmp     w3, w4
-            bhi     G_M4730_IG72
+            bhi     G_M4730_IG76
             mov     x0, x19
             ; gcrRegs +[x0]
             mov     x1, x28
@@ -288,11 +288,11 @@ G_M4730_IG13:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             ldr     w28, [fp, #0x50]   // [V15 loc11]
             add     w25, w25, w28
             cmp     w25, w26
-            bhs     G_M4730_IG64
+            bhs     G_M4730_IG68
             ldrh    w28, [x27, w25, UXTW #2]
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w28, w2
             bne     G_M4730_IG14
@@ -309,7 +309,7 @@ G_M4730_IG14:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             ; gcrRegs -[x0]
             ; byrRegs +[x27]
             cmp     w28, #123
-            bne     G_M4730_IG66
+            bne     G_M4730_IG70
             mov     w28, wzr
             str     wzr, [fp, #0x58]   // [V08 loc4]
             str     xzr, [fp, #0x18]   // [V85 tmp63]
@@ -317,7 +317,7 @@ G_M4730_IG14:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             str     wzr, [fp, #0x3C]   // [V86 tmp64]
             sub     w0, w25, #1
             cmp     w0, w26
-            bhs     G_M4730_IG64
+            bhs     G_M4730_IG68
             ldrh    w0, [x27, w0, UXTW #2]
             cmp     w0, #123
             beq     G_M4730_IG16
@@ -357,10 +357,10 @@ G_M4730_IG18:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             ldr     w2, [fp, #0x5C]    // [V06 loc2]
             sub     w6, w2, #48
             cmp     w6, #10
-            bhs     G_M4730_IG67
+            bhs     G_M4730_IG71
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #125
             beq     G_M4730_IG20
@@ -371,7 +371,7 @@ G_M4730_IG19:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
 G_M4730_IG20:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref
             ldr     x4, [fp, #0x18]    // [V85 tmp63]
             ; byrRegs +[x4]
-            b       G_M4730_IG37
+            b       G_M4730_IG41
                        ;; size=8 bbWeight=2 PerfScore 6.00
 G_M4730_IG21:        ; bbWeight=8, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             ; byrRegs -[x4]
@@ -381,7 +381,7 @@ G_M4730_IG21:        ; bbWeight=8, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             str     w6, [fp, #0x54]    // [V10 loc6]
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
             ldr     w6, [fp, #0x54]    // [V10 loc6]
                        ;; size=36 bbWeight=8 PerfScore 88.00
@@ -395,101 +395,125 @@ G_M4730_IG22:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
                        ;; size=24 bbWeight=16 PerfScore 56.00
 G_M4730_IG23:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             cmp     w2, #32
-            bne     G_M4730_IG25
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M4730_IG24:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+            bne     G_M4730_IG27
+            tbnz    w25, #31, G_M4730_IG26
+                       ;; size=12 bbWeight=2 PerfScore 5.00
+G_M4730_IG24:        ; bbWeight=15.84, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #32
             beq     G_M4730_IG24
-                       ;; size=24 bbWeight=16 PerfScore 104.00
-G_M4730_IG25:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
-            cmp     w2, #44
-            bne     G_M4730_IG33
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M4730_IG26:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+                       ;; size=24 bbWeight=15.84 PerfScore 102.96
+G_M4730_IG25:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref
+            b       G_M4730_IG27
+                       ;; size=4 bbWeight=2 PerfScore 2.00
+G_M4730_IG26:        ; bbWeight=0.16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #32
             beq     G_M4730_IG26
-                       ;; size=24 bbWeight=16 PerfScore 104.00
+                       ;; size=24 bbWeight=0.16 PerfScore 1.04
 G_M4730_IG27:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+            cmp     w2, #44
+            bne     G_M4730_IG37
+                       ;; size=8 bbWeight=2 PerfScore 3.00
+G_M4730_IG28:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+            add     w25, w25, #1
+            cmp     w26, w25
+            bls     G_M4730_IG72
+            ldrh    w2, [x27, w25, UXTW #2]
+            cmp     w2, #32
+            beq     G_M4730_IG28
+                       ;; size=24 bbWeight=16 PerfScore 104.00
+G_M4730_IG29:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             cmp     w2, #45
-            bne     G_M4730_IG28
+            bne     G_M4730_IG30
             mov     w3, #1
             str     w3, [fp, #0x58]    // [V08 loc4]
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
                        ;; size=32 bbWeight=2 PerfScore 16.00
-G_M4730_IG28:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+G_M4730_IG30:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             sub     w28, w2, #48
             cmp     w28, #10
-            bhs     G_M4730_IG67
+            bhs     G_M4730_IG71
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
-            b       G_M4730_IG30
+            bls     G_M4730_IG72
+            b       G_M4730_IG32
                        ;; size=28 bbWeight=2 PerfScore 10.00
-G_M4730_IG29:        ; bbWeight=8, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+G_M4730_IG31:        ; bbWeight=8, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             mov     w0, #10
             madd    w2, w28, w0, w2
             sub     w28, w2, #48
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
                        ;; size=24 bbWeight=8 PerfScore 40.00
-G_M4730_IG30:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+G_M4730_IG32:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             cmp     w25, w26
-            bhs     G_M4730_IG64
+            bhs     G_M4730_IG68
             ldrh    w2, [x27, w25, UXTW #2]
             sub     w0, w2, #48
             movz    w1, #0xD1FFAB1E
             movk    w1, #15 LSL #16
             cmp     w0, #9
             ccmp    w28, w1, z, ls
-            blt     G_M4730_IG29
+            blt     G_M4730_IG31
                        ;; size=36 bbWeight=16 PerfScore 128.00
-G_M4730_IG31:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+G_M4730_IG33:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             cmp     w2, #32
-            bne     G_M4730_IG33
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M4730_IG32:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+            bne     G_M4730_IG37
+            tbnz    w25, #31, G_M4730_IG36
+                       ;; size=12 bbWeight=2 PerfScore 5.00
+G_M4730_IG34:        ; bbWeight=15.84, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #32
-            beq     G_M4730_IG32
-                       ;; size=24 bbWeight=16 PerfScore 104.00
-G_M4730_IG33:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+            beq     G_M4730_IG34
+                       ;; size=24 bbWeight=15.84 PerfScore 102.96
+G_M4730_IG35:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref
+            b       G_M4730_IG37
+                       ;; size=4 bbWeight=2 PerfScore 2.00
+G_M4730_IG36:        ; bbWeight=0.16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+            add     w25, w25, #1
+            cmp     w26, w25
+            bls     G_M4730_IG72
+            ldrh    w2, [x27, w25, UXTW #2]
+            cmp     w2, #32
+            beq     G_M4730_IG36
+                       ;; size=24 bbWeight=0.16 PerfScore 1.04
+G_M4730_IG37:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             cmp     w2, #125
             ldr     x4, [fp, #0x18]    // [V85 tmp63]
...

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.arm64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.linux.arm64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_tiered.linux.arm64.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.linux.arm64.checked.mch 79 65 14 0 -1,668 +5,224
libraries.crossgen2.linux.arm64.checked.mch 6 5 1 0 -396 +12
libraries.pmi.linux.arm64.checked.mch 7 5 2 0 -296 +356
libraries_tests.run.linux.arm64.Release.mch 467 247 220 0 -7,636 +659,532
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 11 9 2 0 -1,060 +172
realworld.run.linux.arm64.checked.mch 0 0 0 0 -0 +0
smoke_tests.nativeaot.linux.arm64.checked.mch 2 0 2 0 -0 +128
572 331 241 0 -11,056 +665,424

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.arm64.checked.mch 33,636 2,755 30,881 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.linux.arm64.checked.mch 153,704 60,106 93,598 152 (0.10%) 152 (0.10%)
benchmarks.run_tiered.linux.arm64.checked.mch 63,983 47,942 16,041 0 (0.00%) 0 (0.00%)
coreclr_tests.run.linux.arm64.checked.mch 628,058 383,770 244,288 334 (0.05%) 413 (0.07%)
libraries.crossgen2.linux.arm64.checked.mch 233,777 15 233,762 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.arm64.checked.mch 294,239 6 294,233 1 (0.00%) 1 (0.00%)
libraries_tests.run.linux.arm64.Release.mch 737,454 487,495 249,959 3,053 (0.41%) 3,384 (0.46%)
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 304,065 21,560 282,505 6 (0.00%) 6 (0.00%)
realworld.run.linux.arm64.checked.mch 33,304 151 33,153 0 (0.00%) 0 (0.00%)
smoke_tests.nativeaot.linux.arm64.checked.mch 19,041 6 19,035 0 (0.00%) 0 (0.00%)
2,501,261 1,003,806 1,497,455 3,546 (0.14%) 3,956 (0.16%)

jit-analyze output

coreclr_tests.run.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 509785008 (overridden on cmd)
Total bytes of diff: 509788564 (overridden on cmd)
Total bytes of delta: 3556 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         904 : 2610.dasm (35.59 % of base)
         544 : 33235.dasm (16.75 % of base)
         544 : 91147.dasm (16.23 % of base)
         540 : 143759.dasm (18.22 % of base)
         536 : 187231.dasm (15.91 % of base)
         536 : 260057.dasm (15.49 % of base)
         532 : 31313.dasm (15.29 % of base)
         528 : 177894.dasm (17.93 % of base)
         528 : 251209.dasm (17.72 % of base)
           8 : 252063.dasm (0.65 % of base)
           8 : 275858.dasm (0.38 % of base)
           8 : 31206.dasm (0.37 % of base)
           4 : 244169.dasm (0.19 % of base)
           4 : 270285.dasm (0.20 % of base)

Top file improvements (bytes):
         -28 : 225954.dasm (-2.47 % of base)
         -28 : 215669.dasm (-2.47 % of base)
         -28 : 251497.dasm (-2.45 % of base)
         -28 : 267326.dasm (-2.13 % of base)
         -28 : 275213.dasm (-2.47 % of base)
         -28 : 296446.dasm (-2.47 % of base)
         -28 : 31406.dasm (-2.47 % of base)
         -28 : 316789.dasm (-2.48 % of base)
         -28 : 406437.dasm (-2.47 % of base)
         -28 : 412853.dasm (-2.50 % of base)
         -28 : 413016.dasm (-2.50 % of base)
         -28 : 413982.dasm (-2.50 % of base)
         -28 : 414072.dasm (-2.50 % of base)
         -28 : 426688.dasm (-2.48 % of base)
         -28 : 428089.dasm (-2.47 % of base)
         -28 : 232714.dasm (-2.47 % of base)
         -28 : 264662.dasm (-2.13 % of base)
         -28 : 282861.dasm (-2.13 % of base)
         -28 : 287385.dasm (-2.47 % of base)
         -28 : 312402.dasm (-2.47 % of base)

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

Top method regressions (bytes):
         904 (35.59 % of base) : 2610.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (Instrumented Tier1)
         544 (16.75 % of base) : 33235.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         544 (16.23 % of base) : 91147.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         540 (18.22 % of base) : 143759.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         536 (15.91 % of base) : 187231.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         536 (15.49 % of base) : 260057.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         532 (15.29 % of base) : 31313.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         528 (17.93 % of base) : 177894.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         528 (17.72 % of base) : 251209.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
           8 (0.38 % of base) : 275858.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Instrumented Tier1)
           8 (0.37 % of base) : 31206.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Instrumented Tier1)
           8 (0.65 % of base) : 252063.dasm - System.RuntimeType:GetField(System.String,int):System.Reflection.FieldInfo:this (Instrumented Tier1)
           4 (0.19 % of base) : 244169.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Instrumented Tier1)
           4 (0.20 % of base) : 270285.dasm - System.Diagnostics.Tracing.EventSource:DebugCheckEvent(byref,System.Diagnostics.Tracing.EventSource+EventMetadata[],System.Reflection.MethodInfo,System.Diagnostics.Tracing.EventAttribute,System.Diagnostics.Tracing.ManifestBuilder,int) (Instrumented Tier1)

Top method improvements (bytes):
         -28 (-2.47 % of base) : 225954.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 215669.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.45 % of base) : 251497.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.13 % of base) : 267326.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 275213.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 296446.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 31406.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.48 % of base) : 316789.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 406437.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.50 % of base) : 412853.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.50 % of base) : 413016.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.50 % of base) : 413982.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.50 % of base) : 414072.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.48 % of base) : 426688.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 428089.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 232714.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.13 % of base) : 264662.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.13 % of base) : 282861.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 287385.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 312402.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)

Top method regressions (percentages):
         904 (35.59 % of base) : 2610.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (Instrumented Tier1)
         540 (18.22 % of base) : 143759.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         528 (17.93 % of base) : 177894.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         528 (17.72 % of base) : 251209.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         544 (16.75 % of base) : 33235.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         544 (16.23 % of base) : 91147.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         536 (15.91 % of base) : 187231.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         536 (15.49 % of base) : 260057.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         532 (15.29 % of base) : 31313.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
           8 (0.65 % of base) : 252063.dasm - System.RuntimeType:GetField(System.String,int):System.Reflection.FieldInfo:this (Instrumented Tier1)
           8 (0.38 % of base) : 275858.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Instrumented Tier1)
           8 (0.37 % of base) : 31206.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Instrumented Tier1)
           4 (0.20 % of base) : 270285.dasm - System.Diagnostics.Tracing.EventSource:DebugCheckEvent(byref,System.Diagnostics.Tracing.EventSource+EventMetadata[],System.Reflection.MethodInfo,System.Diagnostics.Tracing.EventAttribute,System.Diagnostics.Tracing.ManifestBuilder,int) (Instrumented Tier1)
           4 (0.19 % of base) : 244169.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Instrumented Tier1)

Top method improvements (percentages):
         -28 (-2.50 % of base) : 412853.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.50 % of base) : 413016.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.50 % of base) : 413982.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.50 % of base) : 414072.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.50 % of base) : 411670.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.50 % of base) : 412769.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.50 % of base) : 424735.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.49 % of base) : 423691.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.48 % of base) : 316789.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.48 % of base) : 426688.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 225954.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 215669.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 275213.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 296446.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 31406.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 406437.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 428089.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 232714.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 287385.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 312402.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)


libraries.crossgen2.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 55736760 (overridden on cmd)
Total bytes of diff: 55736376 (overridden on cmd)
Total bytes of delta: -384 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          12 : 229594.dasm (1.80 % of base)

Top file improvements (bytes):
        -220 : 83862.dasm (-15.15 % of base)
         -60 : 18973.dasm (-11.03 % of base)
         -56 : 159505.dasm (-13.86 % of base)
         -56 : 182705.dasm (-13.86 % of base)
          -4 : 220779.dasm (-0.19 % of base)

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

Top method regressions (bytes):
          12 (1.80 % of base) : 229594.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (bytes):
        -220 (-15.15 % of base) : 83862.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]],int):this (FullOpts)
         -60 (-11.03 % of base) : 18973.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (FullOpts)
         -56 (-13.86 % of base) : 159505.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -56 (-13.86 % of base) : 182705.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
          -4 (-0.19 % of base) : 220779.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

Top method regressions (percentages):
          12 (1.80 % of base) : 229594.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (percentages):
        -220 (-15.15 % of base) : 83862.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]],int):this (FullOpts)
         -56 (-13.86 % of base) : 159505.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -56 (-13.86 % of base) : 182705.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -60 (-11.03 % of base) : 18973.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (FullOpts)
          -4 (-0.19 % of base) : 220779.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

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


libraries.pmi.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 75995136 (overridden on cmd)
Total bytes of diff: 75995196 (overridden on cmd)
Total bytes of delta: 60 (0.00 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         332 : 268238.dasm (2.71 % of base)
          24 : 284422.dasm (3.97 % of base)

Top file improvements (bytes):
        -168 : 90079.dasm (-14.53 % of base)
         -56 : 209642.dasm (-11.97 % of base)
         -56 : 286168.dasm (-11.97 % of base)
         -12 : 83232.dasm (-0.71 % of base)
          -4 : 271536.dasm (-0.20 % of base)

7 total files with Code Size differences (5 improved, 2 regressed), 0 unchanged.

Top method regressions (bytes):
         332 (2.71 % of base) : 268238.dasm - R2RDump.TextDumper:DumpSectionContents(ILCompiler.Reflection.ReadyToRun.ReadyToRunSection):this (FullOpts)
          24 (3.97 % of base) : 284422.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (bytes):
        -168 (-14.53 % of base) : 90079.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]],int):this (FullOpts)
         -56 (-11.97 % of base) : 286168.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -56 (-11.97 % of base) : 209642.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -12 (-0.71 % of base) : 83232.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
          -4 (-0.20 % of base) : 271536.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

Top method regressions (percentages):
          24 (3.97 % of base) : 284422.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)
         332 (2.71 % of base) : 268238.dasm - R2RDump.TextDumper:DumpSectionContents(ILCompiler.Reflection.ReadyToRun.ReadyToRunSection):this (FullOpts)

Top method improvements (percentages):
        -168 (-14.53 % of base) : 90079.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]],int):this (FullOpts)
         -56 (-11.97 % of base) : 286168.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -56 (-11.97 % of base) : 209642.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -12 (-0.71 % of base) : 83232.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
          -4 (-0.20 % of base) : 271536.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

7 total methods with Code Size differences (5 improved, 2 regressed).


libraries_tests.run.linux.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 380612024 (overridden on cmd)
Total bytes of diff: 381263920 (overridden on cmd)
Total bytes of delta: 651896 (0.17 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        4952 : 170109.dasm (50.78 % of base)
        4952 : 591976.dasm (51.84 % of base)
        4948 : 480156.dasm (51.48 % of base)
        4928 : 583131.dasm (50.87 % of base)
        4920 : 186826.dasm (51.94 % of base)
        4920 : 133991.dasm (51.94 % of base)
        4900 : 485285.dasm (49.42 % of base)
        4900 : 342522.dasm (51.51 % of base)
        4888 : 628985.dasm (51.34 % of base)
        4888 : 222851.dasm (51.34 % of base)
        4888 : 433263.dasm (51.34 % of base)
        4880 : 514466.dasm (51.59 % of base)
        4872 : 108648.dasm (50.60 % of base)
        4872 : 558181.dasm (50.64 % of base)
        4868 : 283790.dasm (51.46 % of base)
        4868 : 420329.dasm (51.37 % of base)
        4864 : 205921.dasm (50.60 % of base)
        4864 : 68677.dasm (51.42 % of base)
        4856 : 489899.dasm (50.86 % of base)
        4852 : 733067.dasm (50.60 % of base)

Top file improvements (bytes):
        -228 : 693795.dasm (-14.50 % of base)
        -224 : 679267.dasm (-13.93 % of base)
        -192 : 679595.dasm (-21.62 % of base)
        -148 : 693836.dasm (-20.56 % of base)
        -140 : 693866.dasm (-22.01 % of base)
        -140 : 693883.dasm (-18.32 % of base)
        -120 : 523648.dasm (-15.87 % of base)
        -104 : 694081.dasm (-17.93 % of base)
         -80 : 706127.dasm (-14.93 % of base)
         -52 : 679594.dasm (-10.57 % of base)
         -44 : 530200.dasm (-6.47 % of base)
         -28 : 130561.dasm (-2.47 % of base)
         -28 : 155825.dasm (-3.21 % of base)
         -28 : 269117.dasm (-2.47 % of base)
         -28 : 270961.dasm (-1.98 % of base)
         -28 : 274949.dasm (-3.21 % of base)
         -28 : 130505.dasm (-2.47 % of base)
         -28 : 133965.dasm (-3.21 % of base)
         -28 : 122881.dasm (-3.21 % of base)
         -28 : 194597.dasm (-3.21 % of base)

61 total files with Code Size differences (29 improved, 32 regressed), 0 unchanged.

Top method regressions (bytes):
        4952 (50.78 % of base) : 170109.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4952 (51.84 % of base) : 591976.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4948 (51.48 % of base) : 480156.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4928 (50.87 % of base) : 583131.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4920 (51.94 % of base) : 186826.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4920 (51.94 % of base) : 133991.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4900 (49.42 % of base) : 485285.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4900 (51.51 % of base) : 342522.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4888 (51.34 % of base) : 628985.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4888 (51.34 % of base) : 222851.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4888 (51.34 % of base) : 433263.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4880 (51.59 % of base) : 514466.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4872 (50.60 % of base) : 108648.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4872 (50.64 % of base) : 558181.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4868 (51.46 % of base) : 283790.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4868 (51.37 % of base) : 420329.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4864 (50.60 % of base) : 205921.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4864 (51.42 % of base) : 68677.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4856 (50.86 % of base) : 489899.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4852 (50.60 % of base) : 733067.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)

Top method improvements (bytes):
        -228 (-14.50 % of base) : 693795.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4190_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -224 (-13.93 % of base) : 679267.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1420_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -192 (-21.62 % of base) : 679595.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1717_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -148 (-20.56 % of base) : 693836.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4221_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -140 (-22.01 % of base) : 693866.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4228_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -140 (-18.32 % of base) : 693883.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4235_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -120 (-15.87 % of base) : 523648.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (Instrumented Tier1)
        -104 (-17.93 % of base) : 694081.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4330_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -80 (-14.93 % of base) : 706127.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex7263_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -52 (-10.57 % of base) : 679594.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1716_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -44 (-6.47 % of base) : 530200.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (Tier1)
         -28 (-2.47 % of base) : 130561.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 155825.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 269117.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-1.98 % of base) : 270961.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 274949.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 130505.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 133965.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 122881.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 194597.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)

Top method regressions (percentages):
        4920 (51.94 % of base) : 186826.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4920 (51.94 % of base) : 133991.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4952 (51.84 % of base) : 591976.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4880 (51.59 % of base) : 514466.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4812 (51.54 % of base) : 135150.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4900 (51.51 % of base) : 342522.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4832 (51.51 % of base) : 579114.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4948 (51.48 % of base) : 480156.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4824 (51.47 % of base) : 390814.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4836 (51.47 % of base) : 308824.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4868 (51.46 % of base) : 283790.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4864 (51.42 % of base) : 68677.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4868 (51.37 % of base) : 420329.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4888 (51.34 % of base) : 628985.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4888 (51.34 % of base) : 222851.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4888 (51.34 % of base) : 433263.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4836 (51.34 % of base) : 272589.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4764 (51.29 % of base) : 107880.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4820 (51.10 % of base) : 96860.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4780 (50.94 % of base) : 498924.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)

Top method improvements (percentages):
        -140 (-22.01 % of base) : 693866.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4228_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -192 (-21.62 % of base) : 679595.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1717_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -148 (-20.56 % of base) : 693836.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4221_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -140 (-18.32 % of base) : 693883.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4235_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -104 (-17.93 % of base) : 694081.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4330_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -120 (-15.87 % of base) : 523648.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (Instrumented Tier1)
         -80 (-14.93 % of base) : 706127.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex7263_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -228 (-14.50 % of base) : 693795.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4190_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -224 (-13.93 % of base) : 679267.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1420_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -52 (-10.57 % of base) : 679594.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1716_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -44 (-6.47 % of base) : 530200.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (Tier1)
         -28 (-3.21 % of base) : 155825.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 274949.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 133965.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 122881.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 194597.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 281837.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 319753.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 329765.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 74077.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)


librariestestsnotieredcompilation.run.linux.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 162531948 (overridden on cmd)
Total bytes of diff: 162531060 (overridden on cmd)
Total bytes of delta: -888 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         148 : 269424.dasm (6.29 % of base)
          24 : 115724.dasm (3.97 % of base)

Top file improvements (bytes):
        -204 : 269381.dasm (-22.08 % of base)
        -172 : 275083.dasm (-22.75 % of base)
        -164 : 275109.dasm (-23.56 % of base)
        -160 : 275139.dasm (-18.60 % of base)
        -116 : 275594.dasm (-18.83 % of base)
         -68 : 283575.dasm (-12.98 % of base)
         -64 : 269380.dasm (-12.12 % of base)
         -56 : 61288.dasm (-11.97 % of base)
         -56 : 194828.dasm (-11.97 % of base)

11 total files with Code Size differences (9 improved, 2 regressed), 0 unchanged.

Top method regressions (bytes):
         148 (6.29 % of base) : 269424.dasm - System.Text.RegularExpressions.Tests.CustomDerivedRegex+CustomRegexRunnerFactory+CustomRegexRunner:Go():this (FullOpts)
          24 (3.97 % of base) : 115724.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (bytes):
        -204 (-22.08 % of base) : 269381.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex590_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -172 (-22.75 % of base) : 275083.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1997_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -164 (-23.56 % of base) : 275109.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2004_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -160 (-18.60 % of base) : 275139.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2011_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -116 (-18.83 % of base) : 275594.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2106_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -68 (-12.98 % of base) : 283575.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4895_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -64 (-12.12 % of base) : 269380.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex589_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -56 (-11.97 % of base) : 61288.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -56 (-11.97 % of base) : 194828.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)

Top method regressions (percentages):
         148 (6.29 % of base) : 269424.dasm - System.Text.RegularExpressions.Tests.CustomDerivedRegex+CustomRegexRunnerFactory+CustomRegexRunner:Go():this (FullOpts)
          24 (3.97 % of base) : 115724.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (percentages):
        -164 (-23.56 % of base) : 275109.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2004_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -172 (-22.75 % of base) : 275083.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1997_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -204 (-22.08 % of base) : 269381.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex590_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -116 (-18.83 % of base) : 275594.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2106_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -160 (-18.60 % of base) : 275139.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2011_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -68 (-12.98 % of base) : 283575.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4895_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -64 (-12.12 % of base) : 269380.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex589_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -56 (-11.97 % of base) : 61288.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -56 (-11.97 % of base) : 194828.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)

11 total methods with Code Size differences (9 improved, 2 regressed).


smoke_tests.nativeaot.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 2948924 (overridden on cmd)
Total bytes of diff: 2949052 (overridden on cmd)
Total bytes of delta: 128 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          64 : 5740.dasm (3.41 % of base)
          64 : 1474.dasm (3.09 % of base)

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

Top method regressions (bytes):
          64 (3.41 % of base) : 5740.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
          64 (3.09 % of base) : 1474.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)

Top method regressions (percentages):
          64 (3.41 % of base) : 5740.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
          64 (3.09 % of base) : 1474.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)

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



linux x64

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

MISSED contexts: base: 3,596 (0.14%), diff: 3,599 (0.14%)

Overall (+847,760 bytes)

Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.linux.x64.checked.mch 458,879,057 +28,626
libraries.crossgen2.linux.x64.checked.mch 38,668,832 -380
libraries.pmi.linux.x64.checked.mch 59,972,991 -79
libraries_tests.run.linux.x64.Release.mch 329,976,340 +820,648
librariestestsnotieredcompilation.run.linux.x64.Release.mch 130,000,373 -1,343
smoke_tests.nativeaot.linux.x64.checked.mch 4,197,516 +288

FullOpts (+847,760 bytes)

Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.linux.x64.checked.mch 132,320,922 +28,626
libraries.crossgen2.linux.x64.checked.mch 38,667,630 -380
libraries.pmi.linux.x64.checked.mch 59,860,121 -79
libraries_tests.run.linux.x64.Release.mch 145,586,819 +820,648
librariestestsnotieredcompilation.run.linux.x64.Release.mch 119,341,902 -1,343
smoke_tests.nativeaot.linux.x64.checked.mch 4,196,605 +288

Example diffs

coreclr_tests.run.linux.x64.checked.mch

-13 (-1.09%) : 690468.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)

@@ -10,72 +10,71 @@
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <ILCompiler.DevirtualizationManager>
 ;  V01 arg1         [V01,T00] ( 21, 26   )     ref  ->  rbx         class-hnd <Internal.TypeSystem.MethodDesc>
-;  V02 arg2         [V02,T16] ( 14,  8   )     ref  ->  r15         class-hnd single-def <Internal.TypeSystem.DefType>
-;  V03 arg3         [V03,T19] (  8,  5.50)   byref  ->  r14         single-def
+;  V02 arg2         [V02,T17] ( 14,  8   )     ref  ->  r15         class-hnd single-def <Internal.TypeSystem.DefType>
+;  V03 arg3         [V03,T20] (  8,  5.50)   byref  ->  r14         single-def
 ;  V04 loc0         [V04,T22] ( 11,  5.50)     ref  ->  r12         class-hnd <Internal.TypeSystem.MethodDesc>
 ;  V05 loc1         [V05,T23] (  3,  5   )     ref  ->  r12         class-hnd single-def <Internal.TypeSystem.DefType[]>
 ;  V06 loc2         [V06,T21] (  4,  6.50)     int  ->  [rbp-0x2C] 
-;  V07 loc3         [V07,T20] (  4,  7   )     ref  ->  [rbp-0x58]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
+;  V07 loc3         [V07,T16] (  4, 10.50)     ref  ->  [rbp-0x50]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
 ;  V08 loc4         [V08,T07] (  5, 16.50)     int  ->  [rbp-0x30] 
-;  V09 loc5         [V09,T04] (  7, 20   )     ref  ->  [rbp-0x60]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
-;  V10 loc6         [V10,T28] (  6,  4.50)     ref  ->  [rbp-0x68]  class-hnd <Internal.TypeSystem.MethodDesc>
-;  V11 loc7         [V11,T24] (  3,  5   )     ref  ->  [rbp-0x70]  class-hnd spill-single-def <Internal.TypeSystem.DefType[]>
+;  V09 loc5         [V09,T04] (  7, 20   )     ref  ->  [rbp-0x58]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
+;  V10 loc6         [V10,T28] (  6,  4.50)     ref  ->  [rbp-0x60]  class-hnd <Internal.TypeSystem.MethodDesc>
+;  V11 loc7         [V11,T24] (  3,  5   )     ref  ->  [rbp-0x68]  class-hnd spill-single-def <Internal.TypeSystem.DefType[]>
 ;  V12 loc8         [V12,T08] (  5, 16.50)     int  ->  [rbp-0x34] 
-;  V13 loc9         [V13,T05] (  6, 20   )     ref  ->  [rbp-0x78]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
+;  V13 loc9         [V13,T05] (  6, 20   )     ref  ->  [rbp-0x70]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
 ;  V14 loc10        [V14    ] (  4,  2   )     ref  ->  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <Internal.TypeSystem.MethodDesc>
-;  V15 loc11        [V15,T46] (  3,  1.50)     int  ->  rax         single-def
+;  V15 loc11        [V15,T45] (  3,  1.50)     int  ->  rax         single-def
 ;  V16 loc12        [V16,T03] ( 10, 20   )     ref  ->  r12         class-hnd <Internal.TypeSystem.TypeDesc>
 ;* V17 loc13        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Internal.TypeSystem.MethodDesc>
 ;* V18 loc14        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Internal.TypeSystem.MethodDesc>
 ;# V19 OutArgs      [V19    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V20 tmp1         [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
-;  V21 tmp2         [V21,T34] (  3,  2.25)     ref  ->  rax         single-def "CASTCLASS eval op1"
-;  V22 tmp3         [V22,T47] (  3,  1.25)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;  V23 tmp4         [V23,T31] (  5,  3.75)     ref  ->  registers   class-hnd "spilling QMark2" <Internal.TypeSystem.DefType>
+;  V21 tmp2         [V21,T33] (  3,  2.25)     ref  ->  rax         single-def "CASTCLASS eval op1"
+;  V22 tmp3         [V22,T46] (  3,  1.25)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V23 tmp4         [V23,T30] (  5,  3.75)     ref  ->  registers   class-hnd "spilling QMark2" <Internal.TypeSystem.DefType>
 ;  V24 tmp5         [V24,T25] (  3,  5   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
-;  V25 tmp6         [V25,T35] (  3,  2   )     int  ->  rcx         "Inline return value spill temp"
-;  V26 tmp7         [V26,T33] (  3,  2.50)     int  ->  rcx         single-def "Inline stloc first use temp"
-;  V27 tmp8         [V27,T42] (  3,  1.50)     ref  ->  r12         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
+;  V25 tmp6         [V25,T34] (  3,  2   )     int  ->  rcx         "Inline return value spill temp"
+;  V26 tmp7         [V26,T32] (  3,  2.50)     int  ->  rcx         single-def "Inline stloc first use temp"
+;  V27 tmp8         [V27,T41] (  3,  1.50)     ref  ->  r12         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
 ;* V28 tmp9         [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V29 tmp10        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
-;  V30 tmp11        [V30,T17] (  5, 10   )     ref  ->  [rbp-0x80]  class-hnd "Inline stloc first use temp" <Internal.TypeSystem.TypeDesc>
-;  V31 tmp12        [V31,T30] (  2,  4   )     ref  ->  rcx         class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
+;  V30 tmp11        [V30,T18] (  5, 10   )     ref  ->  [rbp-0x78]  class-hnd "Inline stloc first use temp" <Internal.TypeSystem.TypeDesc>
+;  V31 tmp12        [V31,T29] (  2,  4   )     ref  ->  rcx         class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
 ;* V32 tmp13        [V32    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V33 tmp14        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <<unknown class>>
 ;* V34 tmp15        [V34    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
 ;* V35 tmp16        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp17        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc>
-;  V37 tmp18        [V37,T43] (  3,  1.50)     ref  ->  registers   class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
-;  V38 tmp19        [V38,T01] (  3, 24   )     ref  ->  [rbp-0x88]  class-hnd spill-single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
+;  V37 tmp18        [V37,T42] (  3,  1.50)     ref  ->  registers   class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
+;  V38 tmp19        [V38,T01] (  3, 24   )     ref  ->  [rbp-0x80]  class-hnd spill-single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V39 tmp20        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V40 tmp21        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V41 tmp22        [V41    ] (  0,  0   )     int  ->  zero-ref   
-;  V42 tmp23        [V42,T02] (  3, 24   )     ref  ->  [rbp-0x90]  class-hnd spill-single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
+;  V42 tmp23        [V42,T02] (  3, 24   )     ref  ->  [rbp-0x88]  class-hnd spill-single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V43 tmp24        [V43    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V44 tmp25        [V44    ] (  0,  0   )     int  ->  zero-ref   
-;  V45 tmp26        [V45,T36] (  2,  2   )     ref  ->  rax         single-def "Single return block return value"
-;  V46 tmp27        [V46,T09] (  2, 16   )     ref  ->  [rbp-0x98]  spill-single-def "argument with side effect"
+;  V45 tmp26        [V45,T35] (  2,  2   )     ref  ->  rax         single-def "Single return block return value"
+;  V46 tmp27        [V46,T09] (  2, 16   )     ref  ->  [rbp-0x90]  spill-single-def "argument with side effect"
 ;  V47 tmp28        [V47,T10] (  2, 16   )     ref  ->  rsi         "argument with side effect"
-;  V48 tmp29        [V48,T37] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V49 tmp30        [V49,T38] (  2,  2   )     ref  ->  [rbp-0xA0]  spill-single-def "argument with side effect"
-;  V50 tmp31        [V50,T39] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
-;  V51 tmp32        [V51,T32] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
-;  V52 tmp33        [V52,T40] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V53 tmp34        [V53,T11] (  2, 16   )     ref  ->  [rbp-0xA8]  spill-single-def "argument with side effect"
+;  V48 tmp29        [V48,T36] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V49 tmp30        [V49,T37] (  2,  2   )     ref  ->  [rbp-0x98]  spill-single-def "argument with side effect"
+;  V50 tmp31        [V50,T38] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
+;  V51 tmp32        [V51,T31] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
+;  V52 tmp33        [V52,T39] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V53 tmp34        [V53,T11] (  2, 16   )     ref  ->  [rbp-0xA0]  spill-single-def "argument with side effect"
 ;  V54 tmp35        [V54,T12] (  2, 16   )     ref  ->  rsi         "argument with side effect"
 ;* V55 tmp36        [V55    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V56 tmp37        [V56    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V57 tmp38        [V57,T41] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
+;  V57 tmp38        [V57,T40] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
 ;  V58 tmp39        [V58,T13] (  2, 16   )     ref  ->  rsi         "argument with side effect"
-;  V59 tmp40        [V59,T14] (  2, 16   )     ref  ->  [rbp-0xB0]  spill-single-def "argument with side effect"
+;  V59 tmp40        [V59,T14] (  2, 16   )     ref  ->  [rbp-0xA8]  spill-single-def "argument with side effect"
 ;  V60 tmp41        [V60,T15] (  2, 16   )     ref  ->  rsi         "argument with side effect"
-;  V61 tmp42        [V61,T18] (  2,  8   )     ref  ->  rsi         "argument with side effect"
+;  V61 tmp42        [V61,T19] (  2,  8   )     ref  ->  rsi         "argument with side effect"
 ;  V62 cse0         [V62,T06] ( 10, 18   )    long  ->  r13         "CSE - aggressive"
-;  V63 cse1         [V63,T29] (  2,  4.50)    long  ->  [rbp-0x48]  spill-single-def hoist "CSE - moderate"
-;  V64 cse2         [V64,T44] (  3,  1.50)     ref  ->  r12         "CSE - conservative"
-;  V65 cse3         [V65,T45] (  3,  1.50)     ref  ->  rcx         "CSE - conservative"
-;  V66 cse4         [V66,T26] (  3,  5   )     int  ->  [rbp-0x4C]  spill-single-def "CSE - moderate"
-;  V67 cse5         [V67,T27] (  3,  5   )     int  ->  [rbp-0x50]  spill-single-def "CSE - moderate"
+;  V63 cse1         [V63,T43] (  3,  1.50)     ref  ->  r12         "CSE - conservative"
+;  V64 cse2         [V64,T44] (  3,  1.50)     ref  ->  rcx         "CSE - conservative"
+;  V65 cse3         [V65,T26] (  3,  5   )     int  ->  [rbp-0x44]  spill-single-def "CSE - moderate"
+;  V66 cse4         [V66,T27] (  3,  5   )     int  ->  [rbp-0x48]  spill-single-def "CSE - moderate"
 ;
 ; Lcl frame size = 136
 
@@ -201,32 +200,31 @@ G_M48343_IG11:        ; bbWeight=0.50, gcrefRegs=900A {rcx rbx r12 r15}, byrefRe
        ; gcrRegs -[rax]
        mov      rax, rcx
        ; gcrRegs +[rax]
-       mov      gword ptr [rbp-0x58], rax
+       mov      gword ptr [rbp-0x50], rax
        ; GC ptr vars +{V07}
        xor      ecx, ecx
        ; gcrRegs -[rcx]
        mov      edx, dword ptr [r12+0x08]
-       mov      dword ptr [rbp-0x4C], edx
+       mov      dword ptr [rbp-0x44], edx
        test     edx, edx
        jle      G_M48343_IG16
-       mov      rdi, qword ptr [rax]
-       mov      rsi, qword ptr [rdi+0x58]
-       mov      qword ptr [rbp-0x48], rsi
-                       ;; size=36 bbWeight=0.50 PerfScore 5.38
-G_M48343_IG12:        ; bbWeight=4, gcVars=0000000000100000 {V07}, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=4000 {r14}, gcvars, byref, isz
+                       ;; size=25 bbWeight=0.50 PerfScore 2.88
+G_M48343_IG12:        ; bbWeight=4, gcVars=0000000000010000 {V07}, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=4000 {r14}, gcvars, byref, isz
        mov      dword ptr [rbp-0x30], ecx
        mov      edi, ecx
-       mov      r8, gword ptr [r12+8*rdi+0x10]
-       ; gcrRegs +[r8]
-       mov      gword ptr [rbp-0x60], r8
+       mov      rsi, gword ptr [r12+8*rdi+0x10]
+       ; gcrRegs +[rsi]
+       mov      gword ptr [rbp-0x58], rsi
        ; GC ptr vars +{V09}
        mov      rdi, rax
        ; gcrRegs +[rdi]
-       call     [rsi+0x20]<unknown method>
-       ; gcrRegs -[rdi r8]
-       mov      gword ptr [rbp-0xA8], rax
+       mov      r8, qword ptr [rax]
+       mov      r8, qword ptr [r8+0x58]
+       call     [r8+0x20]<unknown method>
+       ; gcrRegs -[rsi rdi]
+       mov      gword ptr [rbp-0xA0], rax
        ; GC ptr vars +{V53}
-       mov      rdi, gword ptr [rbp-0x60]
+       mov      rdi, gword ptr [rbp-0x58]
        ; gcrRegs +[rdi]
        mov      rcx, qword ptr [rdi]
        mov      rcx, qword ptr [rcx+0x58]
@@ -234,29 +232,29 @@ G_M48343_IG12:        ; bbWeight=4, gcVars=0000000000100000 {V07}, gcrefRegs=900
        ; gcrRegs -[rdi]
        mov      rsi, rax
        ; gcrRegs +[rsi]
-       mov      rdi, gword ptr [rbp-0xA8]
+       mov      rdi, gword ptr [rbp-0xA0]
        ; gcrRegs +[rdi]
        ; GC ptr vars -{V53}
        call     [Internal.TypeSystem.TypeDesc:op_Equality(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc):ubyte]
        ; gcrRegs -[rax rsi rdi]
        test     eax, eax
        je       SHORT G_M48343_IG15
-                       ;; size=61 bbWeight=4 PerfScore 88.00
+                       ;; size=69 bbWeight=4 PerfScore 104.00
 G_M48343_IG13:        ; bbWeight=2, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=4000 {r14}, byref, isz
-       mov      rax, gword ptr [rbp-0x60]
+       mov      rax, gword ptr [rbp-0x58]
        ; gcrRegs +[rax]
        mov      rcx, gword ptr [rax+0x08]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x80], rcx
+       mov      gword ptr [rbp-0x78], rcx
        ; GC ptr vars +{V30}
        mov      edi, 1
        call     [<unknown method>]
        ; gcrRegs -[rax rcx]
-       mov      rax, gword ptr [rbp-0x80]
+       mov      rax, gword ptr [rbp-0x78]
        ; gcrRegs +[rax]
        test     rax, rax
        jne      SHORT G_M48343_IG14
-       mov      rdi, gword ptr [rbp-0x60]
+       mov      rdi, gword ptr [rbp-0x58]
        ; gcrRegs +[rdi]
        xor      esi, esi
        mov      rax, qword ptr [rdi]
@@ -265,9 +263,9 @@ G_M48343_IG13:        ; bbWeight=2, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=4000
        ; GC ptr vars -{V30}
        call     [rax+0x28]<unknown method>
        ; gcrRegs -[rdi] +[rax]
-       mov      rdi, gword ptr [rbp-0x60]
+       mov      rdi, gword ptr [rbp-0x58]
        ; gcrRegs +[rdi]
-       mov      gword ptr [rbp-0x80], rax
+       mov      gword ptr [rbp-0x78], rax
        ; GC ptr vars +{V30}
        mov      rdx, rax
        ; gcrRegs +[rdx]
@@ -275,14 +273,14 @@ G_M48343_IG13:        ; bbWeight=2, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=4000
        ; GC ptr vars -{V09}
        call     [Internal.TypeSystem.TypeDesc:SetCachedCanonValue(int,Internal.TypeSystem.TypeDesc):this]
        ; gcrRegs -[rax rdx rdi]
-       mov      rax, gword ptr [rbp-0x80]
+       mov      rax, gword ptr [rbp-0x78]
        ; gcrRegs +[rax]
                        ;; size=71 bbWeight=2 PerfScore 48.50
-G_M48343_IG14:        ; bbWeight=2, gcVars=0000000000100000 {V07}, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=4000 {r14}, gcvars, byref, isz
+G_M48343_IG14:        ; bbWeight=2, gcVars=0000000000010000 {V07}, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=4000 {r14}, gcvars, byref, isz
        ; GC ptr vars -{V30}
        mov      rdi, rax
        ; gcrRegs +[rdi]
-       mov      rsi, gword ptr [rbp-0x58]
+       mov      rsi, gword ptr [rbp-0x50]
        ; gcrRegs +[rsi]
        call     [Internal.TypeSystem.TypeDesc:op_Equality(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc):ubyte]
        ; gcrRegs -[rax rsi rdi]
@@ -297,13 +295,12 @@ G_M48343_IG14:        ; bbWeight=2, gcVars=0000000000100000 {V07}, gcrefRegs=900
 G_M48343_IG15:        ; bbWeight=4, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=4000 {r14}, byref
        mov      ecx, dword ptr [rbp-0x30]
        inc      ecx
-       mov      edi, dword ptr [rbp-0x4C]
+       mov      edi, dword ptr [rbp-0x44]
        cmp      edi, ecx
-       mov      rax, gword ptr [rbp-0x58]
+       mov      rax, gword ptr [rbp-0x50]
        ; gcrRegs +[rax]
-       mov      rsi, qword ptr [rbp-0x48]
        jg       G_M48343_IG12
-                       ;; size=24 bbWeight=4 PerfScore 22.00
+                       ;; size=20 bbWeight=4 PerfScore 18.00
 G_M48343_IG16:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=4000 {r14}, gcvars, byref, isz
        ; gcrRegs -[rax r12]
        ; GC ptr vars -{V07}
@@ -357,7 +354,7 @@ G_M48343_IG19:        ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=4
        ; byrRegs +[r14]
        xor      rax, rax
        ; gcrRegs +[rax]
-       mov      gword ptr [rbp-0x68], rax
+       mov      gword ptr [rbp-0x60], rax
        ; GC ptr vars +{V10}
        mov      rcx, gword ptr [r15+0x18]
        ; gcrRegs +[rcx]
@@ -376,11 +373,11 @@ G_M48343_IG20:        ; bbWeight=0.50, gcrefRegs=900A {rcx rbx r12 r15}, byrefRe
                        ;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M48343_IG21:        ; bbWeight=0.50, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=4000 {r14}, byref
        ; gcrRegs -[rcx]
-       mov      gword ptr [rbp-0x70], rax
...

-11 (-0.50%) : 224722.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Instrumented Tier1)

@@ -10,27 +10,27 @@
 ;
 ;  V00 this         [V00,T14] ( 11, 32.50)     ref  ->  [rbp-0x68]  this class-hnd EH-live single-def <System.Buffers.SharedArrayPool`1[System.__Canon]>
 ;  V01 loc0         [V01,T16] (  5, 33.50)     int  ->  rbx        
-;  V02 loc1         [V02,T36] (  5, 19   )     int  ->  r15        
+;  V02 loc1         [V02,T35] (  5, 19   )     int  ->  r15        
 ;  V03 loc2         [V03,T26] (  7, 27   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V04 loc3         [V04,T49] (  4, 10   )     ref  ->  r13         class-hnd exact single-def <<unknown class>>
-;  V05 loc4         [V05,T35] (  6, 19   )     int  ->  r12        
-;  V06 loc5         [V06,T43] (  8, 10.50)     ref  ->  [rbp-0x70]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V04 loc3         [V04,T48] (  4, 10   )     ref  ->  r13         class-hnd exact single-def <<unknown class>>
+;  V05 loc4         [V05,T34] (  6, 19   )     int  ->  r12        
+;  V06 loc5         [V06,T42] (  8, 10.50)     ref  ->  [rbp-0x70]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V07 loc6         [V07    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V08 loc7         [V08,T44] (  8, 10.50)     ref  ->  [rbp-0x78]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V08 loc7         [V08,T43] (  8, 10.50)     ref  ->  [rbp-0x78]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V09 loc8         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V10 loc9         [V10,T29] (  3, 20   )     ref  ->  r15         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V10 loc9         [V10,T28] (  3, 20   )     ref  ->  r15         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V11 loc10        [V11,T03] (  5, 66   )     int  ->  rbx        
 ;  V12 loc11        [V12,T01] (  6, 64   )     ref  ->  [rbp-0x80]  class-hnd spill-single-def <<unknown class>>
-;  V13 loc12        [V13,T52] (  2,  8.50)     int  ->  r15        
-;  V14 loc13        [V14,T75] (  3,  1.50)     int  ->  r15        
-;  V15 loc14        [V15,T45] (  8, 10.50)     ref  ->  [rbp-0x88]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V13 loc12        [V13,T51] (  2,  8.50)     int  ->  r15        
+;  V14 loc13        [V14,T74] (  3,  1.50)     int  ->  r15        
+;  V15 loc14        [V15,T44] (  8, 10.50)     ref  ->  [rbp-0x88]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V16 loc15        [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V17 loc16        [V17,T11] (  5, 36   )     ref  ->  r13         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V17 loc16        [V17,T10] (  6, 44   )     ref  ->  r13         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V18 loc17        [V18,T00] (  5,210   )     int  ->  r12        
-;  V19 loc18        [V19,T28] (  3, 24   )     int  ->  rsi        
+;  V19 loc18        [V19,T27] (  3, 24   )     int  ->  rdx        
 ;  V20 loc19        [V20,T07] (  6, 48   )     ref  ->  [rbp-0x90]  class-hnd spill-single-def <<unknown class>>
 ;# V21 OutArgs      [V21    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V22 tmp1         [V22,T30] (  3, 20   )     ref  ->  [rbp-0x98]  class-hnd exact spill-single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V22 tmp1         [V22,T29] (  3, 20   )     ref  ->  [rbp-0x98]  class-hnd exact spill-single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
 ;* V23 tmp2         [V23    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V24 tmp3         [V24,T12] (  2, 36   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
 ;* V25 tmp4         [V25    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
@@ -42,81 +42,80 @@
 ;  V31 tmp10        [V31,T21] (  2, 32   )     int  ->  [rbp-0x40]  spill-single-def "impAppendStmt"
 ;  V32 tmp11        [V32,T22] (  2, 32   )     int  ->  [rbp-0x44]  spill-single-def "impAppendStmt"
 ;* V33 tmp12        [V33    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V34 tmp13        [V34,T63] (  3,  3   )     ref  ->  r14         single-def "handle histogram profile tmp"
+;  V34 tmp13        [V34,T62] (  3,  3   )     ref  ->  r14         single-def "handle histogram profile tmp"
 ;* V35 tmp14        [V35    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V36 tmp15        [V36    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V37 tmp16        [V37    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V38 tmp17        [V38,T64] (  3,  3   )     ref  ->  r15         single-def "handle histogram profile tmp"
+;  V38 tmp17        [V38,T63] (  3,  3   )     ref  ->  r15         single-def "handle histogram profile tmp"
 ;* V39 tmp18        [V39    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V40 tmp19        [V40    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V41 tmp20        [V41    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V42 tmp21        [V42    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V43 tmp22        [V43,T65] (  3,  3   )     ref  ->  r12         single-def "handle histogram profile tmp"
+;  V43 tmp22        [V43,T64] (  3,  3   )     ref  ->  r12         single-def "handle histogram profile tmp"
 ;* V44 tmp23        [V44    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V45 tmp24        [V45    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V46 tmp25        [V46    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V47 tmp26        [V47    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V48 tmp27        [V48,T32] (  3, 20   )     int  ->  [rbp-0x48]  spill-single-def "Inline stloc first use temp"
+;  V48 tmp27        [V48,T31] (  3, 20   )     int  ->  [rbp-0x48]  spill-single-def "Inline stloc first use temp"
 ;* V49 tmp28        [V49    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V50 tmp29        [V50    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V51 tmp30        [V51,T31] (  3, 20   )     ref  ->  [rbp-0xA0]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;  V51 tmp30        [V51,T30] (  3, 20   )     ref  ->  [rbp-0xA0]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
 ;  V52 tmp31        [V52,T04] (  5, 66   )     int  ->  [rbp-0x4C]  "Inline stloc first use temp"
 ;  V53 tmp32        [V53,T23] (  2, 32   )     int  ->   r8         "Inlining Arg"
 ;  V54 tmp33        [V54,T24] (  2, 32   )     int  ->   r8         "Inlining Arg"
-;  V55 tmp34        [V55,T60] (  2,  4   )     ref  ->  rdi         "field V07.key (fldOffset=0x0)" P-INDEP
-;  V56 tmp35        [V56,T72] (  1,  2   )     ref  ->  rdx         "field V07.value (fldOffset=0x8)" P-INDEP
-;  V57 tmp36        [V57,T61] (  2,  4   )     ref  ->  r15         "field V09.key (fldOffset=0x0)" P-INDEP
-;  V58 tmp37        [V58,T73] (  1,  2   )     ref  ->  rdx         "field V09.value (fldOffset=0x8)" P-INDEP
-;  V59 tmp38        [V59,T62] (  2,  4   )     ref  ->  r13         "field V16.key (fldOffset=0x0)" P-INDEP
-;  V60 tmp39        [V60,T74] (  1,  2   )     ref  ->  rdx         "field V16.value (fldOffset=0x8)" P-INDEP
+;  V55 tmp34        [V55,T59] (  2,  4   )     ref  ->  rdi         "field V07.key (fldOffset=0x0)" P-INDEP
+;  V56 tmp35        [V56,T71] (  1,  2   )     ref  ->  rdx         "field V07.value (fldOffset=0x8)" P-INDEP
+;  V57 tmp36        [V57,T60] (  2,  4   )     ref  ->  r15         "field V09.key (fldOffset=0x0)" P-INDEP
+;  V58 tmp37        [V58,T72] (  1,  2   )     ref  ->  rdx         "field V09.value (fldOffset=0x8)" P-INDEP
+;  V59 tmp38        [V59,T61] (  2,  4   )     ref  ->  r13         "field V16.key (fldOffset=0x0)" P-INDEP
+;  V60 tmp39        [V60,T73] (  1,  2   )     ref  ->  rdx         "field V16.value (fldOffset=0x8)" P-INDEP
 ;* V61 tmp40        [V61    ] (  0,  0   )     ref  ->  zero-ref    "field V25.key (fldOffset=0x0)" P-DEP
 ;* V62 tmp41        [V62    ] (  0,  0   )     ref  ->  zero-ref    "field V25.value (fldOffset=0x8)" P-DEP
 ;* V63 tmp42        [V63    ] (  0,  0   )     ref  ->  zero-ref    "field V29.key (fldOffset=0x0)" P-DEP
 ;* V64 tmp43        [V64    ] (  0,  0   )     ref  ->  zero-ref    "field V29.value (fldOffset=0x8)" P-DEP
 ;* V65 tmp44        [V65    ] (  0,  0   )     ref  ->  zero-ref    "field V33.key (fldOffset=0x0)" P-DEP
 ;* V66 tmp45        [V66    ] (  0,  0   )     ref  ->  zero-ref    "field V33.value (fldOffset=0x8)" P-DEP
-;  V67 tmp46        [V67,T66] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V68 tmp47        [V68,T37] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V69 tmp48        [V69,T57] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;  V67 tmp46        [V67,T65] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V68 tmp47        [V68,T36] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V69 tmp48        [V69,T56] (  2,  8   )     ref  ->  rdi         "argument with side effect"
 ;  V70 tmp49        [V70,T25] (  2, 32   )    long  ->  rsi         "argument with side effect"
 ;  V71 tmp50        [V71,T18] (  2, 32   )     ref  ->  rdx         "argument with side effect"
-;* V72 tmp51        [V72,T40] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V73 tmp52        [V73,T77] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V74 tmp53        [V74,T67] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V75 tmp54        [V75,T68] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V76 tmp55        [V76,T38] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V77 tmp56        [V77,T58] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;* V72 tmp51        [V72,T39] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V73 tmp52        [V73,T76] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V74 tmp53        [V74,T66] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V75 tmp54        [V75,T67] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V76 tmp55        [V76,T37] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V77 tmp56        [V77,T57] (  2,  8   )     ref  ->  rdi         "argument with side effect"
 ;  V78 tmp57        [V78,T06] (  2, 64   )    long  ->  rsi         "argument with side effect"
 ;  V79 tmp58        [V79,T05] (  2, 64   )     ref  ->  rcx         "argument with side effect"
-;* V80 tmp59        [V80,T41] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V81 tmp60        [V81,T78] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V82 tmp61        [V82,T69] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V83 tmp62        [V83,T70] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V84 tmp63        [V84,T39] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V85 tmp64        [V85,T59] (  2,  8   )     ref  ->  rdi         "argument with side effect"
-;  V86 tmp65        [V86,T79] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V87 tmp66        [V87,T71] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V88 PSPSym       [V88,T76] (  1,  1   )    long  ->  [rbp-0xB0]  do-not-enreg[V] "PSPSym"
+;* V80 tmp59        [V80,T40] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V81 tmp60        [V81,T77] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V82 tmp61        [V82,T68] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V83 tmp62        [V83,T69] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V84 tmp63        [V84,T38] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V85 tmp64        [V85,T58] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;  V86 tmp65        [V86,T78] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V87 tmp66        [V87,T70] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V88 PSPSym       [V88,T75] (  1,  1   )    long  ->  [rbp-0xB0]  do-not-enreg[V] "PSPSym"
 ;  V89 cse0         [V89,T15] (  4, 34   )    long  ->  registers   hoist multi-def "CSE - moderate"
-;  V90 cse1         [V90,T53] (  4,  8   )     ref  ->  r14         multi-def "CSE - conservative"
-;  V91 cse2         [V91,T46] (  6, 10.50)     ref  ->  r14         multi-def "CSE - conservative"
-;  V92 cse3         [V92,T54] (  4,  8   )     ref  ->  r15         multi-def "CSE - conservative"
-;  V93 cse4         [V93,T47] (  6, 10.50)     ref  ->  r15         multi-def "CSE - conservative"
-;  V94 cse5         [V94,T55] (  4,  8   )     ref  ->  r13         multi-def "CSE - conservative"
-;  V95 cse6         [V95,T48] (  6, 10.50)     ref  ->  r13         multi-def "CSE - conservative"
-;  V96 cse7         [V96,T27] (  3, 24   )   byref  ->  [rbp-0xA8]  spill-single-def "CSE - moderate"
-;  V97 cse8         [V97,T08] (  4, 48   )    long  ->  [rbp-0x58]  spill-single-def "CSE - moderate"
-;  V98 cse9         [V98,T02] (  3, 68   )     int  ->  [rbp-0x5C]  spill-single-def "CSE - aggressive"
-;  V99 cse10        [V99,T33] (  3, 20   )     int  ->  [rbp-0x60]  spill-single-def "CSE - moderate"
-;  V100 cse11       [V100,T34] (  3, 20   )     int  ->  r13         "CSE - moderate"
-;  V101 rat0        [V101,T50] (  3,  9.44)    long  ->  rsi         "Spilling to split statement for tree"
-;  V102 rat1        [V102,T56] (  3,  8   )    long  ->  r12         "runtime lookup"
-;  V103 rat2        [V103,T42] (  3, 11.20)    long  ->  rax         "spilling expr"
-;  V104 rat3        [V104,T51] (  3,  8.96)    long  ->  r12         "fgMakeTemp is creating a new local variable"
-;  V105 rat4        [V105,T10] (  3, 37.76)    long  ->  rsi         "Spilling to split statement for tree"
-;  V106 rat5        [V106,T17] (  3, 32   )    long  ->  registers   "runtime lookup"
-;  V107 rat6        [V107,T09] (  3, 44.80)    long  ->  rdx         "spilling expr"
-;  V108 rat7        [V108,T13] (  3, 35.84)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V90 cse1         [V90,T52] (  4,  8   )     ref  ->  r14         multi-def "CSE - conservative"
+;  V91 cse2         [V91,T45] (  6, 10.50)     ref  ->  r14         multi-def "CSE - conservative"
+;  V92 cse3         [V92,T53] (  4,  8   )     ref  ->  r15         multi-def "CSE - conservative"
+;  V93 cse4         [V93,T46] (  6, 10.50)     ref  ->  r15         multi-def "CSE - conservative"
+;  V94 cse5         [V94,T54] (  4,  8   )     ref  ->  r13         multi-def "CSE - conservative"
+;  V95 cse6         [V95,T47] (  6, 10.50)     ref  ->  r13         multi-def "CSE - conservative"
+;  V96 cse7         [V96,T08] (  5, 56   )    long  ->  [rbp-0x58]  spill-single-def "CSE - aggressive"
+;  V97 cse8         [V97,T02] (  3, 68   )     int  ->  [rbp-0x5C]  spill-single-def "CSE - aggressive"
+;  V98 cse9         [V98,T32] (  3, 20   )     int  ->  [rbp-0x60]  spill-single-def "CSE - moderate"
+;  V99 cse10        [V99,T33] (  3, 20   )     int  ->  r13         "CSE - moderate"
+;  V100 rat0        [V100,T49] (  3,  9.44)    long  ->  rsi         "Spilling to split statement for tree"
+;  V101 rat1        [V101,T55] (  3,  8   )    long  ->  r12         "runtime lookup"
+;  V102 rat2        [V102,T41] (  3, 11.20)    long  ->  rax         "spilling expr"
+;  V103 rat3        [V103,T50] (  3,  8.96)    long  ->  r12         "fgMakeTemp is creating a new local variable"
+;  V104 rat4        [V104,T11] (  3, 37.76)    long  ->  rsi         "Spilling to split statement for tree"
+;  V105 rat5        [V105,T17] (  3, 32   )    long  ->  registers   "runtime lookup"
+;  V106 rat6        [V106,T09] (  3, 44.80)    long  ->  rdx         "spilling expr"
+;  V107 rat7        [V107,T13] (  3, 35.84)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 136
 
@@ -179,7 +178,7 @@ G_M16529_IG05:        ; bbWeight=4, gcrefRegs=6000 {r13 r14}, byrefRegs=0000 {},
        test     rax, rax
        je       G_M16529_IG09
                        ;; size=24 bbWeight=4 PerfScore 18.00
-G_M16529_IG06:        ; bbWeight=2, gcVars=00000000000000000000000040004000 {V00 V22}, gcrefRegs=6000 {r13 r14}, byrefRegs=0000 {}, gcvars, byref
+G_M16529_IG06:        ; bbWeight=2, gcVars=00000000000000000000000020004000 {V00 V22}, gcrefRegs=6000 {r13 r14}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
@@ -217,7 +216,7 @@ G_M16529_IG07:        ; bbWeight=2, gcrefRegs=6000 {r13 r14}, byrefRegs=0000 {},
        test     r11d, r11d
        jle      SHORT G_M16529_IG09
                        ;; size=34 bbWeight=2 PerfScore 17.00
-G_M16529_IG08:        ; bbWeight=16, gcVars=00000000000000000000000080004000 {V00 V51}, gcrefRegs=6200 {r9 r13 r14}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M16529_IG08:        ; bbWeight=16, gcVars=00000000000000000000000040004000 {V00 V51}, gcrefRegs=6200 {r9 r13 r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rdi]
        ; GC ptr vars -{V22}
        mov      dword ptr [rbp-0x4C], r10d
@@ -276,7 +275,7 @@ G_M16529_IG11:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {},
        mov      gword ptr [rbp-0x70], rax
        ; GC ptr vars +{V06}
                        ;; size=60 bbWeight=0.50 PerfScore 6.50
-G_M16529_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000080000004000 {V00 V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M16529_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000040000004000 {V00 V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
        jmp      SHORT G_M16529_IG14
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M16529_IG13:        ; bbWeight=2, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
@@ -348,7 +347,7 @@ G_M16529_IG15:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {},
        ; gcr arg pop 0
        jmp      G_M16529_IG49
                        ;; size=70 bbWeight=0.50 PerfScore 5.12
-G_M16529_IG16:        ; bbWeight=1, gcVars=00000000000000000000000040004000 {V00 V22}, gcrefRegs=6000 {r13 r14}, byrefRegs=0000 {}, gcvars, byref
+G_M16529_IG16:        ; bbWeight=1, gcVars=00000000000000000000000020004000 {V00 V22}, gcrefRegs=6000 {r13 r14}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[r13-r14]
        ; GC ptr vars +{V22}
        mov      eax, dword ptr [rbp-0x34]
@@ -375,7 +374,7 @@ G_M16529_IG17:        ; bbWeight=0.50, gcVars=00000000000000000000000000004000 {
        mov      gword ptr [rbp-0x78], rax
        ; GC ptr vars +{V08}
                        ;; size=46 bbWeight=0.50 PerfScore 4.50
-G_M16529_IG18:        ; bbWeight=0.50, gcVars=00000000000000000000100000004000 {V00 V08}, gcrefRegs=4001 {rax r14}, byrefRegs=0000 {}, gcvars, byref
+G_M16529_IG18:        ; bbWeight=0.50, gcVars=00000000000000000000080000004000 {V00 V08}, gcrefRegs=4001 {rax r14}, byrefRegs=0000 {}, gcvars, byref
        jmp      G_M16529_IG25
                        ;; size=5 bbWeight=0.50 PerfScore 1.00
 G_M16529_IG19:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref
@@ -434,7 +433,7 @@ G_M16529_IG21:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}
        test     rax, rax
        je       SHORT G_M16529_IG23
                        ;; size=39 bbWeight=16 PerfScore 416.00
-G_M16529_IG22:        ; bbWeight=8, gcVars=00000000000000000000100000004002 {V00 V08 V12}, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, gcvars, byref
+G_M16529_IG22:        ; bbWeight=8, gcVars=00000000000000000000080000004002 {V00 V08 V12}, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
@@ -581,7 +580,7 @@ G_M16529_IG31:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {},
        mov      gword ptr [rbp-0x88], rax
        ; GC ptr vars +{V15}
                        ;; size=49 bbWeight=0.50 PerfScore 4.50
-G_M16529_IG32:        ; bbWeight=0.50, gcVars=00000000000000000000200000004000 {V00 V15}, gcrefRegs=4001 {rax r14}, byrefRegs=0000 {}, gcvars, byref
+G_M16529_IG32:        ; bbWeight=0.50, gcVars=00000000000000000000100000004000 {V00 V15}, gcrefRegs=4001 {rax r14}, byrefRegs=0000 {}, gcvars, byref
        jmp      G_M16529_IG38
                        ;; size=5 bbWeight=0.50 PerfScore 1.00
 G_M16529_IG33:        ; bbWeight=2, gcrefRegs=6000 {r13 r14}, byrefRegs=0000 {}, byref, isz
@@ -616,24 +615,16 @@ G_M16529_IG34:        ; bbWeight=16, gcrefRegs=6000 {r13 r14}, byrefRegs=0000 {}
        je       SHORT G_M16529_IG36
                        ;; size=19 bbWeight=16 PerfScore 92.00
 G_M16529_IG35:        ; bbWeight=8, gcrefRegs=6000 {r13 r14}, byrefRegs=0000 {}, byref
-       lea      rdx, bword ptr [r13+rcx+0x10]
-       ; byrRegs +[rdx]
-       mov      bword ptr [rbp-0xA8], rdx
-       ; GC ptr vars +{V96}
-       mov      esi, dword ptr [rdx+0x08]
-       test     esi, esi
+       mov      edx, dword ptr [r13+rcx+0x18]
+       test     edx, edx
        jne      G_M16529_IG40
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
-       ; byrRegs -[rdx]
        ; gcr arg pop 0
-       mov      rdi, bword ptr [rbp-0xA8]
...

-4 (-0.24%) : 256501.dasm - System.Diagnostics.Tracing.EventSource:DebugCheckEvent(byref,System.Diagnostics.Tracing.EventSource+EventMetadata[],System.Reflection.MethodInfo,System.Diagnostics.Tracing.EventAttribute,System.Diagnostics.Tracing.ManifestBuilder,int) (Instrumented Tier1)

@@ -9,19 +9,19 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T14] (  6,  5.50)   byref  ->  r12         single-def
-;  V01 arg1         [V01,T03] (  7, 11.50)     ref  ->  rbx         class-hnd single-def <System.Diagnostics.Tracing.EventSource+EventMetadata[]>
+;  V01 arg1         [V01,T03] (  8, 13.50)     ref  ->  rbx         class-hnd single-def <System.Diagnostics.Tracing.EventSource+EventMetadata[]>
 ;  V02 arg2         [V02,T09] (  6,  6   )     ref  ->  r13         class-hnd single-def <System.Reflection.MethodInfo>
-;  V03 arg3         [V03,T04] (  9, 10   )     ref  ->  r15         class-hnd single-def <System.Diagnostics.Tracing.EventAttribute>
+;  V03 arg3         [V03,T05] (  9, 10   )     ref  ->  r15         class-hnd single-def <System.Diagnostics.Tracing.EventAttribute>
 ;  V04 arg4         [V04,T08] ( 12,  8.50)     ref  ->  r14         class-hnd single-def <System.Diagnostics.Tracing.ManifestBuilder>
-;  V05 arg5         [V05,T23] (  3,  4   )     int  ->  [rbp-0x2C]  single-def
+;  V05 arg5         [V05,T22] (  3,  4   )     int  ->  [rbp-0x2C]  single-def
 ;  V06 loc0         [V06,T13] ( 10,  7.50)     int  ->  [rbp-0x30]  spill-single-def
 ;  V07 loc1         [V07,T10] (  9,  8   )     ref  ->  [rbp-0x48]  class-hnd exact spill-single-def <System.String>
-;  V08 loc2         [V08,T25] (  4,  3   )     int  ->  r13        
+;  V08 loc2         [V08,T24] (  4,  3   )     int  ->  r13        
 ;  V09 loc3         [V09,T00] (  6, 55   )     int  ->  [rbp-0x34] 
-;* V10 loc4         [V10,T53] (  0,  0   )   ubyte  ->  zero-ref   
-;  V11 loc5         [V11,T54] (  2,  1   )     int  ->  rcx        
+;* V10 loc4         [V10,T52] (  0,  0   )   ubyte  ->  zero-ref   
+;  V11 loc5         [V11,T53] (  2,  1   )     int  ->  rcx        
 ;# V12 OutArgs      [V12    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V13 tmp1         [V13,T46] (  2,  1   )     int  ->  rdi        
+;  V13 tmp1         [V13,T45] (  2,  1   )     int  ->  rdi        
 ;* V14 tmp2         [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V15 tmp3         [V15    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V16 tmp4         [V16,T01] (  6, 24   )     ref  ->  [rbp-0x50]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
@@ -29,58 +29,57 @@
 ;  V18 tmp6         [V18,T06] (  3, 12   )     ref  ->  rax         class-hnd exact "Single-def Box Helper" <<unknown class>>
 ;  V19 tmp7         [V19,T12] (  2,  8   )     ref  ->  rsi         class-hnd exact "Strict ordering of exceptions for Array store" <System.String>
 ;  V20 tmp8         [V20,T07] (  3, 12   )     ref  ->  rax         class-hnd exact "Single-def Box Helper" <<unknown class>>
-;  V21 tmp9         [V21,T27] (  3,  3   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V22 tmp10        [V22,T28] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V23 tmp11        [V23,T36] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def "impImportAndPushBox" <System.String>
-;  V24 tmp12        [V24,T29] (  3,  3   )     ref  ->  [rbp-0x60]  class-hnd exact spill-single-def "Single-def Box Helper" <<unknown class>>
-;  V25 tmp13        [V25,T37] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def "impImportAndPushBox" <System.String>
-;  V26 tmp14        [V26,T30] (  3,  3   )     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def "Single-def Box Helper" <<unknown class>>
-;  V27 tmp15        [V27,T38] (  2,  2   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "impImportAndPushBox" <System.String>
-;  V28 tmp16        [V28,T31] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
+;  V21 tmp9         [V21,T26] (  3,  3   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V22 tmp10        [V22,T27] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
+;  V23 tmp11        [V23,T35] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def "impImportAndPushBox" <System.String>
+;  V24 tmp12        [V24,T28] (  3,  3   )     ref  ->  [rbp-0x60]  class-hnd exact spill-single-def "Single-def Box Helper" <<unknown class>>
+;  V25 tmp13        [V25,T36] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def "impImportAndPushBox" <System.String>
+;  V26 tmp14        [V26,T29] (  3,  3   )     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def "Single-def Box Helper" <<unknown class>>
+;  V27 tmp15        [V27,T37] (  2,  2   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "impImportAndPushBox" <System.String>
+;  V28 tmp16        [V28,T30] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
 ;* V29 tmp17        [V29    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
-;  V30 tmp18        [V30,T32] (  4,  2.91)     ref  ->  r13         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V31 tmp19        [V31,T60] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V30 tmp18        [V30,T31] (  4,  2.91)     ref  ->  r13         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V31 tmp19        [V31,T59] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V32 tmp20        [V32,T15] (  7,  6.91)     ref  ->  rdi         class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V33 tmp21        [V33,T48] (  3,  1.46)     ref  ->  rsi         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V34 tmp22        [V34,T41] (  4,  1.91)     int  ->  rax         "Inline stloc first use temp"
+;  V33 tmp21        [V33,T47] (  3,  1.46)     ref  ->  rsi         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V34 tmp22        [V34,T40] (  4,  1.91)     int  ->  rax         "Inline stloc first use temp"
 ;* V35 tmp23        [V35    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V36 tmp24        [V36,T33] (  4,  2.91)     ref  ->  [rbp-0x78]  class-hnd exact spill-single-def "Inlining Arg" <System.String>
-;  V37 tmp25        [V37,T61] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V36 tmp24        [V36,T32] (  4,  2.91)     ref  ->  [rbp-0x78]  class-hnd exact spill-single-def "Inlining Arg" <System.String>
+;  V37 tmp25        [V37,T60] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V38 tmp26        [V38,T16] (  7,  6.91)     ref  ->  rdi         class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V39 tmp27        [V39,T49] (  3,  1.46)     ref  ->  rsi         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V40 tmp28        [V40,T42] (  4,  1.91)     int  ->  rcx         "Inline stloc first use temp"
+;  V39 tmp27        [V39,T48] (  3,  1.46)     ref  ->  rsi         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V40 tmp28        [V40,T41] (  4,  1.91)     int  ->  rcx         "Inline stloc first use temp"
 ;* V41 tmp29        [V41    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V42 tmp30        [V42    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V43 tmp31        [V43    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V44 tmp32        [V44    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V45 tmp33        [V45,T24] (  3,  5   )     ref  ->  rax         class-hnd exact "Inlining Arg" <System.String>
+;  V45 tmp33        [V45,T23] (  3,  5   )     ref  ->  rax         class-hnd exact "Inlining Arg" <System.String>
 ;  V46 tmp34        [V46,T18] (  7,  6   )     ref  ->  rdi         class-hnd "Inlining Arg" <<unknown class>>
-;  V47 tmp35        [V47,T50] (  3,  1.46)     ref  ->  rsi         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V48 tmp36        [V48,T43] (  4,  1.91)     int  ->  rcx         "Inline stloc first use temp"
-;  V49 tmp37        [V49,T35] (  3,  2   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V47 tmp35        [V47,T49] (  3,  1.46)     ref  ->  rsi         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V48 tmp36        [V48,T42] (  4,  1.91)     int  ->  rcx         "Inline stloc first use temp"
+;  V49 tmp37        [V49,T34] (  3,  2   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V50 tmp38        [V50,T19] (  7,  6   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V51 tmp39        [V51,T51] (  3,  1.46)     ref  ->  rsi         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V52 tmp40        [V52,T44] (  4,  1.91)     int  ->  rcx         "Inline stloc first use temp"
+;  V51 tmp39        [V51,T50] (  3,  1.46)     ref  ->  rsi         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V52 tmp40        [V52,T43] (  4,  1.91)     int  ->  rcx         "Inline stloc first use temp"
 ;  V53 tmp41        [V53,T20] (  3,  6   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]>
-;  V54 tmp42        [V54,T34] (  4,  2.91)     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V55 tmp43        [V55,T62] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V54 tmp42        [V54,T33] (  4,  2.91)     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V55 tmp43        [V55,T61] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V56 tmp44        [V56,T17] (  7,  6.91)     ref  ->  rdi         class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V57 tmp45        [V57,T52] (  3,  1.46)     ref  ->  rsi         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V58 tmp46        [V58,T45] (  4,  1.91)     int  ->  rax         "Inline stloc first use temp"
+;  V57 tmp45        [V57,T51] (  3,  1.46)     ref  ->  rsi         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V58 tmp46        [V58,T44] (  4,  1.91)     int  ->  rax         "Inline stloc first use temp"
 ;  V59 tmp47        [V59,T21] (  3,  6   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]>
 ;* V60 tmp48        [V60    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V61 tmp49        [V61,T40] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V62 tmp50        [V62,T39] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V63 cse0         [V63,T22] (  3,  6   )   byref  ->  rdi         "CSE - moderate"
-;  V64 cse1         [V64,T05] (  4, 12   )    long  ->  [rbp-0x40]  spill-single-def "CSE - aggressive"
-;  V65 cse2         [V65,T55] (  2,  1   )     int  ->  rcx         "CSE - conservative"
+;* V61 tmp49        [V61,T39] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V62 tmp50        [V62,T38] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V63 cse0         [V63,T04] (  5, 14   )    long  ->  [rbp-0x40]  spill-single-def "CSE - aggressive"
+;  V64 cse1         [V64,T54] (  2,  1   )     int  ->  rcx         "CSE - conservative"
+;  V65 cse2         [V65,T55] (  2,  1   )     int  ->  rdx         "CSE - conservative"
 ;  V66 cse3         [V66,T56] (  2,  1   )     int  ->  rdx         "CSE - conservative"
 ;  V67 cse4         [V67,T57] (  2,  1   )     int  ->  rdx         "CSE - conservative"
-;  V68 cse5         [V68,T58] (  2,  1   )     int  ->  rdx         "CSE - conservative"
-;  V69 cse6         [V69,T59] (  2,  1   )     int  ->  rcx         "CSE - conservative"
-;  V70 cse7         [V70,T26] (  4,  3   )     int  ->  rbx         "CSE - conservative"
-;  V71 cse8         [V71,T47] (  3,  1.50)     int  ->  r13         "CSE - conservative"
-;  V72 cse9         [V72,T02] (  5, 19.50)     int  ->  r13         "CSE - aggressive"
+;  V68 cse5         [V68,T58] (  2,  1   )     int  ->  rcx         "CSE - conservative"
+;  V69 cse6         [V69,T25] (  4,  3   )     int  ->  rbx         "CSE - conservative"
+;  V70 cse7         [V70,T46] (  3,  1.50)     int  ->  r13         "CSE - conservative"
+;  V71 cse8         [V71,T02] (  5, 19.50)     int  ->  r13         "CSE - aggressive"
 ;
 ; Lcl frame size = 88
 
@@ -263,7 +262,7 @@ G_M46894_IG07:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=1
        cmp      edx, ecx
        jbe      SHORT G_M46894_IG09
                        ;; size=139 bbWeight=0.50 PerfScore 19.38
-G_M46894_IG08:        ; bbWeight=0.46, gcVars=0000000200000400 {V07 V36}, gcrefRegs=C0C9 {rax rbx rsi rdi r14 r15}, byrefRegs=1000 {r12}, gcvars, byref, isz
+G_M46894_IG08:        ; bbWeight=0.46, gcVars=0000000100000400 {V07 V36}, gcrefRegs=C0C9 {rax rbx rsi rdi r14 r15}, byrefRegs=1000 {r12}, gcvars, byref, isz
        lea      edx, [rcx+0x01]
        mov      dword ptr [rdi+0x10], edx
        mov      edi, ecx
@@ -278,12 +277,12 @@ G_M46894_IG08:        ; bbWeight=0.46, gcVars=0000000200000400 {V07 V36}, gcrefR
        mov      eax, dword ptr [rbp-0x30]
        jmp      SHORT G_M46894_IG10
                        ;; size=26 bbWeight=0.46 PerfScore 3.19
-G_M46894_IG09:        ; bbWeight=0.50, gcVars=0000000200000400 {V07 V36}, gcrefRegs=C089 {rax rbx rdi r14 r15}, byrefRegs=1000 {r12}, gcvars, byref
+G_M46894_IG09:        ; bbWeight=0.50, gcVars=0000000100000400 {V07 V36}, gcrefRegs=C089 {rax rbx rdi r14 r15}, byrefRegs=1000 {r12}, gcvars, byref
        ; gcrRegs +[rax rdi]
-       ; GC ptr vars +{V33 V36}
+       ; GC ptr vars +{V32 V36}
        mov      rsi, rax
        ; gcrRegs +[rsi]
-       ; GC ptr vars -{V33 V36}
+       ; GC ptr vars -{V32 V36}
        call     [<unknown method>]
        ; gcrRegs -[rax rsi rdi]
        ; gcr arg pop 0
@@ -345,14 +344,11 @@ G_M46894_IG17:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=1000
        je       G_M46894_IG22
                        ;; size=25 bbWeight=4 PerfScore 33.00
 G_M46894_IG18:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=1000 {r12}, byref
-       lea      rdi, bword ptr [rbx+rdx+0x10]
-       ; byrRegs +[rdi]
-       movzx    rsi, word  ptr [rdi+0x56]
-       mov      r8d, dword ptr [r15+0x20]
-       cmp      esi, r8d
+       movzx    rdi, word  ptr [rbx+rdx+0x66]
+       mov      esi, dword ptr [r15+0x20]
+       cmp      edi, esi
        jne      G_M46894_IG29
-       movzx    rdi, byte  ptr [rdi+0x55]
-       ; byrRegs -[rdi]
+       movzx    rdi, byte  ptr [rbx+rdx+0x65]
        mov      esi, dword ptr [r15+0x2C]
        cmp      edi, esi
        jne      G_M46894_IG28
@@ -420,7 +416,7 @@ G_M46894_IG18:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=1000
        ; gcrRegs +[rdi]
        mov      rsi, gword ptr [rbp-0x50]
        ; gcrRegs +[rsi]
-                       ;; size=200 bbWeight=2 PerfScore 80.50
+                       ;; size=196 bbWeight=2 PerfScore 78.50
 G_M46894_IG19:        ; bbWeight=2, isz, extend
        ; GC ptr vars -{V16 V17}
        call     [System.SR:Format(System.String,System.Object[]):System.String]
@@ -780,9 +776,9 @@ G_M46894_IG51:        ; bbWeight=0, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byr
        ; gcrRegs -[rbx rdi]
        ; gcr arg pop 0
                        ;; size=38 bbWeight=0 PerfScore 0.00
-G_M46894_IG52:        ; bbWeight=0, gcVars=0000000200000000 {V36}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref
+G_M46894_IG52:        ; bbWeight=0, gcVars=0000000100000000 {V36}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rax]
-       ; GC ptr vars +{V33 V36}
+       ; GC ptr vars +{V32 V36}
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcr arg pop 0
@@ -792,7 +788,7 @@ G_M46894_IG52:        ; bbWeight=0, gcVars=0000000200000000 {V36}, gcrefRegs=000
        ; gcrRegs +[rdi]
        mov      rsi, gword ptr [rbp-0x78]
        ; gcrRegs +[rsi]
-       ; GC ptr vars -{V33 V36}
+       ; GC ptr vars -{V32 V36}
        call     [<unknown method>]
        ; gcrRegs -[rax rsi rdi]
        ; gcr arg pop 0
@@ -825,7 +821,7 @@ G_M46894_IG53:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        int3     
                        ;; size=39 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1685, prolog size 41, PerfScore 414.36, instruction count 381, allocated bytes for code 1685 (MethodHash=3e2a48d1) for method System.Diagnostics.Tracing.EventSource:DebugCheckEvent(byref,System.Diagnostics.Tracing.EventSource+EventMetadata[],System.Reflection.MethodInfo,System.Diagnostics.Tracing.EventAttribute,System.Diagnostics.Tracing.ManifestBuilder,int) (Instrumented Tier1)
+; Total bytes of code 1681, prolog size 41, PerfScore 412.36, instruction count 380, allocated bytes for code 1681 (MethodHash=3e2a48d1) for method System.Diagnostics.Tracing.EventSource:DebugCheckEvent(byref,System.Diagnostics.Tracing.EventSource+EventMetadata[],System.Reflection.MethodInfo,System.Diagnostics.Tracing.EventAttribute,System.Diagnostics.Tracing.ManifestBuilder,int) (Instrumented Tier1)
 ; ============================================================
 
 Unwind Info:

+5 (+0.24%) : 224726.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Trim():ubyte:this (Instrumented Tier1)

@@ -10,27 +10,27 @@
 ;
 ;  V00 this         [V00,T21] (  9, 22.50)     ref  ->  rbx         this class-hnd single-def <System.Buffers.SharedArrayPool`1[ubyte]>
 ;  V01 loc0         [V01,T12] (  5, 33.50)     int  ->  r15        
-;  V02 loc1         [V02,T31] (  5, 19   )     int  ->  r14        
+;  V02 loc1         [V02,T30] (  5, 19   )     int  ->  r14        
 ;  V03 loc2         [V03,T20] (  7, 27   )     ref  ->  r13         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V04 loc3         [V04,T43] (  4, 10   )     ref  ->  r12         class-hnd exact single-def <<unknown class>>
-;  V05 loc4         [V05,T30] (  6, 19   )     int  ->  [rbp-0x2C] 
-;  V06 loc5         [V06,T37] (  8, 10.50)     ref  ->  [rbp-0x60]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V04 loc3         [V04,T42] (  4, 10   )     ref  ->  r12         class-hnd exact single-def <<unknown class>>
+;  V05 loc4         [V05,T29] (  6, 19   )     int  ->  [rbp-0x2C] 
+;  V06 loc5         [V06,T36] (  8, 10.50)     ref  ->  [rbp-0x68]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V07 loc6         [V07    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V08 loc7         [V08,T38] (  8, 10.50)     ref  ->  [rbp-0x68]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V08 loc7         [V08,T37] (  8, 10.50)     ref  ->  [rbp-0x70]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V09 loc8         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V10 loc9         [V10,T24] (  3, 20   )     ref  ->  r14         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V10 loc9         [V10,T23] (  3, 20   )     ref  ->  r14         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V11 loc10        [V11,T04] (  5, 66   )     int  ->  r15        
-;  V12 loc11        [V12,T02] (  6, 64   )     ref  ->  [rbp-0x70]  class-hnd spill-single-def <<unknown class>>
-;  V13 loc12        [V13,T44] (  2,  8.50)     int  ->  r14        
-;  V14 loc13        [V14,T66] (  3,  1.50)     int  ->  r14        
-;  V15 loc14        [V15,T39] (  8, 10.50)     ref  ->  [rbp-0x78]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V12 loc11        [V12,T02] (  6, 64   )     ref  ->  [rbp-0x78]  class-hnd spill-single-def <<unknown class>>
+;  V13 loc12        [V13,T43] (  2,  8.50)     int  ->  r14        
+;  V14 loc13        [V14,T65] (  3,  1.50)     int  ->  r14        
+;  V15 loc14        [V15,T38] (  8, 10.50)     ref  ->  [rbp-0x80]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V16 loc15        [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V17 loc16        [V17,T10] (  5, 36   )     ref  ->  r12         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V17 loc16        [V17,T10] (  6, 44   )     ref  ->  r12         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V18 loc17        [V18,T00] (  5,210   )     int  ->  [rbp-0x30] 
-;  V19 loc18        [V19,T23] (  3, 24   )     int  ->   r8        
-;  V20 loc19        [V20,T07] (  6, 48   )     ref  ->  [rbp-0x80]  class-hnd spill-single-def <<unknown class>>
+;  V19 loc18        [V19,T22] (  3, 24   )     int  ->  rsi        
+;  V20 loc19        [V20,T07] (  6, 48   )     ref  ->  [rbp-0x88]  class-hnd spill-single-def <<unknown class>>
 ;# V21 OutArgs      [V21    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V22 tmp1         [V22,T25] (  3, 20   )     ref  ->  [rbp-0x88]  class-hnd exact spill-single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V22 tmp1         [V22,T24] (  3, 20   )     ref  ->  [rbp-0x90]  class-hnd exact spill-single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
 ;* V23 tmp2         [V23    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V24 tmp3         [V24,T11] (  2, 36   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
 ;* V25 tmp4         [V25    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
@@ -40,72 +40,71 @@
 ;  V29 tmp8         [V29,T16] (  2, 32   )     int  ->  [rbp-0x40]  spill-single-def "impAppendStmt"
 ;  V30 tmp9         [V30,T17] (  2, 32   )     int  ->  [rbp-0x44]  spill-single-def "impAppendStmt"
 ;* V31 tmp10        [V31    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V32 tmp11        [V32,T54] (  3,  3   )     ref  ->  rbx         single-def "handle histogram profile tmp"
+;  V32 tmp11        [V32,T53] (  3,  3   )     ref  ->  rbx         single-def "handle histogram profile tmp"
 ;* V33 tmp12        [V33    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V34 tmp13        [V34    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V35 tmp14        [V35    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V36 tmp15        [V36,T55] (  3,  3   )     ref  ->  r14         single-def "handle histogram profile tmp"
+;  V36 tmp15        [V36,T54] (  3,  3   )     ref  ->  r14         single-def "handle histogram profile tmp"
 ;* V37 tmp16        [V37    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V38 tmp17        [V38,T01] (  3, 96   )     ref  ->  [rbp-0x90]  spill-single-def "handle histogram profile tmp"
+;  V38 tmp17        [V38,T01] (  3, 96   )     ref  ->  [rbp-0x98]  spill-single-def "handle histogram profile tmp"
 ;* V39 tmp18        [V39    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V40 tmp19        [V40    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V41 tmp20        [V41    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V42 tmp21        [V42,T56] (  3,  3   )     ref  ->  r12         single-def "handle histogram profile tmp"
+;  V42 tmp21        [V42,T55] (  3,  3   )     ref  ->  r12         single-def "handle histogram profile tmp"
 ;* V43 tmp22        [V43    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V44 tmp23        [V44,T09] (  3, 48   )     ref  ->  [rbp-0x98]  spill-single-def "handle histogram profile tmp"
+;  V44 tmp23        [V44,T09] (  3, 48   )     ref  ->  [rbp-0xA0]  spill-single-def "handle histogram profile tmp"
 ;* V45 tmp24        [V45    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V46 tmp25        [V46    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V47 tmp26        [V47    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V48 tmp27        [V48,T27] (  3, 20   )     int  ->  [rbp-0x48]  spill-single-def "Inline stloc first use temp"
+;  V48 tmp27        [V48,T26] (  3, 20   )     int  ->  [rbp-0x48]  spill-single-def "Inline stloc first use temp"
 ;* V49 tmp28        [V49    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V50 tmp29        [V50    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V51 tmp30        [V51,T26] (  3, 20   )     ref  ->  [rbp-0xA0]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;  V51 tmp30        [V51,T25] (  3, 20   )     ref  ->  [rbp-0xA8]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
 ;  V52 tmp31        [V52,T05] (  5, 66   )     int  ->  [rbp-0x4C]  "Inline stloc first use temp"
 ;  V53 tmp32        [V53,T18] (  2, 32   )     int  ->   r8         "Inlining Arg"
 ;  V54 tmp33        [V54,T19] (  2, 32   )     int  ->   r8         "Inlining Arg"
-;  V55 tmp34        [V55,T51] (  2,  4   )     ref  ->  rdi         "field V07.key (fldOffset=0x0)" P-INDEP
-;  V56 tmp35        [V56,T63] (  1,  2   )     ref  ->  rdx         "field V07.value (fldOffset=0x8)" P-INDEP
-;  V57 tmp36        [V57,T52] (  2,  4   )     ref  ->  r14         "field V09.key (fldOffset=0x0)" P-INDEP
-;  V58 tmp37        [V58,T64] (  1,  2   )     ref  ->  rdx         "field V09.value (fldOffset=0x8)" P-INDEP
-;  V59 tmp38        [V59,T53] (  2,  4   )     ref  ->  r12         "field V16.key (fldOffset=0x0)" P-INDEP
-;  V60 tmp39        [V60,T65] (  1,  2   )     ref  ->  rdx         "field V16.value (fldOffset=0x8)" P-INDEP
+;  V55 tmp34        [V55,T50] (  2,  4   )     ref  ->  rdi         "field V07.key (fldOffset=0x0)" P-INDEP
+;  V56 tmp35        [V56,T62] (  1,  2   )     ref  ->  rdx         "field V07.value (fldOffset=0x8)" P-INDEP
+;  V57 tmp36        [V57,T51] (  2,  4   )     ref  ->  r14         "field V09.key (fldOffset=0x0)" P-INDEP
+;  V58 tmp37        [V58,T63] (  1,  2   )     ref  ->  rdx         "field V09.value (fldOffset=0x8)" P-INDEP
+;  V59 tmp38        [V59,T52] (  2,  4   )     ref  ->  r12         "field V16.key (fldOffset=0x0)" P-INDEP
+;  V60 tmp39        [V60,T64] (  1,  2   )     ref  ->  rdx         "field V16.value (fldOffset=0x8)" P-INDEP
 ;* V61 tmp40        [V61    ] (  0,  0   )     ref  ->  zero-ref    "field V25.key (fldOffset=0x0)" P-DEP
 ;* V62 tmp41        [V62    ] (  0,  0   )     ref  ->  zero-ref    "field V25.value (fldOffset=0x8)" P-DEP
 ;* V63 tmp42        [V63    ] (  0,  0   )     ref  ->  zero-ref    "field V28.key (fldOffset=0x0)" P-DEP
 ;* V64 tmp43        [V64    ] (  0,  0   )     ref  ->  zero-ref    "field V28.value (fldOffset=0x8)" P-DEP
 ;* V65 tmp44        [V65    ] (  0,  0   )     ref  ->  zero-ref    "field V31.key (fldOffset=0x0)" P-DEP
 ;* V66 tmp45        [V66    ] (  0,  0   )     ref  ->  zero-ref    "field V31.value (fldOffset=0x8)" P-DEP
-;  V67 tmp46        [V67,T57] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V68 tmp47        [V68,T32] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V69 tmp48        [V69,T48] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;  V67 tmp46        [V67,T56] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V68 tmp47        [V68,T31] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V69 tmp48        [V69,T47] (  2,  8   )     ref  ->  rdi         "argument with side effect"
 ;  V70 tmp49        [V70,T13] (  2, 32   )     ref  ->  rsi         "argument with side effect"
-;* V71 tmp50        [V71,T35] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V72 tmp51        [V72,T68] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V73 tmp52        [V73,T58] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V74 tmp53        [V74,T59] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V75 tmp54        [V75,T33] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V76 tmp55        [V76,T49] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;* V71 tmp50        [V71,T34] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V72 tmp51        [V72,T67] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V73 tmp52        [V73,T57] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V74 tmp53        [V74,T58] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V75 tmp54        [V75,T32] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V76 tmp55        [V76,T48] (  2,  8   )     ref  ->  rdi         "argument with side effect"
 ;  V77 tmp56        [V77,T06] (  2, 64   )     ref  ->  rsi         "argument with side effect"
-;* V78 tmp57        [V78,T36] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V79 tmp58        [V79,T69] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V80 tmp59        [V80,T60] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V81 tmp60        [V81,T61] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V82 tmp61        [V82,T34] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V83 tmp62        [V83,T50] (  2,  8   )     ref  ->  rdi         "argument with side effect"
-;  V84 tmp63        [V84,T70] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V85 tmp64        [V85,T62] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V86 PSPSym       [V86,T67] (  1,  1   )    long  ->  [rbp-0xB0]  do-not-enreg[V] "PSPSym"
-;  V87 cse0         [V87,T45] (  4,  8   )     ref  ->  rbx         multi-def "CSE - conservative"
-;  V88 cse1         [V88,T40] (  6, 10.50)     ref  ->  rbx         multi-def "CSE - conservative"
-;  V89 cse2         [V89,T46] (  4,  8   )     ref  ->  r14         multi-def "CSE - conservative"
-;  V90 cse3         [V90,T41] (  6, 10.50)     ref  ->  r14         multi-def "CSE - conservative"
-;  V91 cse4         [V91,T47] (  4,  8   )     ref  ->  r12         multi-def "CSE - conservative"
-;  V92 cse5         [V92,T42] (  6, 10.50)     ref  ->  r12         multi-def "CSE - conservative"
-;  V93 cse6         [V93,T22] (  3, 24   )   byref  ->  [rbp-0xA8]  spill-single-def "CSE - moderate"
-;  V94 cse7         [V94,T08] (  4, 48   )    long  ->  rdx         "CSE - moderate"
-;  V95 cse8         [V95,T03] (  3, 68   )     int  ->  [rbp-0x50]  spill-single-def "CSE - aggressive"
-;  V96 cse9         [V96,T28] (  3, 20   )     int  ->  [rbp-0x54]  spill-single-def "CSE - moderate"
-;  V97 cse10        [V97,T29] (  3, 20   )     int  ->  r12         "CSE - moderate"
+;* V78 tmp57        [V78,T35] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V79 tmp58        [V79,T68] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V80 tmp59        [V80,T59] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V81 tmp60        [V81,T60] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V82 tmp61        [V82,T33] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V83 tmp62        [V83,T49] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;  V84 tmp63        [V84,T69] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V85 tmp64        [V85,T61] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V86 PSPSym       [V86,T66] (  1,  1   )    long  ->  [rbp-0xB0]  do-not-enreg[V] "PSPSym"
+;  V87 cse0         [V87,T44] (  4,  8   )     ref  ->  rbx         multi-def "CSE - conservative"
+;  V88 cse1         [V88,T39] (  6, 10.50)     ref  ->  rbx         multi-def "CSE - conservative"
+;  V89 cse2         [V89,T45] (  4,  8   )     ref  ->  r14         multi-def "CSE - conservative"
+;  V90 cse3         [V90,T40] (  6, 10.50)     ref  ->  r14         multi-def "CSE - conservative"
+;  V91 cse4         [V91,T46] (  4,  8   )     ref  ->  r12         multi-def "CSE - conservative"
+;  V92 cse5         [V92,T41] (  6, 10.50)     ref  ->  r12         multi-def "CSE - conservative"
+;  V93 cse6         [V93,T08] (  5, 56   )    long  ->  [rbp-0x58]  spill-single-def "CSE - aggressive"
+;  V94 cse7         [V94,T03] (  3, 68   )     int  ->  [rbp-0x5C]  spill-single-def "CSE - aggressive"
+;  V95 cse8         [V95,T27] (  3, 20   )     int  ->  [rbp-0x60]  spill-single-def "CSE - moderate"
+;  V96 cse9         [V96,T28] (  3, 20   )     int  ->  r12         "CSE - moderate"
 ;
 ; Lcl frame size = 136
 
@@ -160,12 +159,12 @@ G_M18152_IG05:        ; bbWeight=4, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000
        mov      edi, eax
        mov      rcx, gword ptr [r12+8*rdi+0x10]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x88], rcx
+       mov      gword ptr [rbp-0x90], rcx
        ; GC ptr vars +{V22}
        test     rcx, rcx
        je       G_M18152_IG09
                        ;; size=26 bbWeight=4 PerfScore 22.00
-G_M18152_IG06:        ; bbWeight=2, gcVars=00000000000000000000000002000000 {V22}, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, gcvars, byref
+G_M18152_IG06:        ; bbWeight=2, gcVars=00000000000000000000000001000000 {V22}, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rcx]
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
@@ -192,19 +191,19 @@ G_M18152_IG06:        ; bbWeight=2, gcVars=00000000000000000000000002000000 {V22
        mov      eax, dword ptr [rbp-0x34]
                        ;; size=79 bbWeight=2 PerfScore 24.00
 G_M18152_IG07:        ; bbWeight=2, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, byref, isz
-       mov      rdi, gword ptr [rbp-0x88]
+       mov      rdi, gword ptr [rbp-0x90]
        ; gcrRegs +[rdi]
        mov      r9, gword ptr [rdi+0x08]
        ; gcrRegs +[r9]
-       mov      gword ptr [rbp-0xA0], r9
+       mov      gword ptr [rbp-0xA8], r9
        ; GC ptr vars +{V51}
        xor      r10d, r10d
        mov      r11d, dword ptr [r9+0x08]
-       mov      dword ptr [rbp-0x54], r11d
+       mov      dword ptr [rbp-0x60], r11d
        test     r11d, r11d
        jle      SHORT G_M18152_IG09
                        ;; size=34 bbWeight=2 PerfScore 17.00
-G_M18152_IG08:        ; bbWeight=16, gcVars=00000000000000000000000004000000 {V51}, gcrefRegs=3208 {rbx r9 r12 r13}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M18152_IG08:        ; bbWeight=16, gcVars=00000000000000000000000002000000 {V51}, gcrefRegs=3208 {rbx r9 r12 r13}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rdi]
        ; GC ptr vars -{V22}
        mov      dword ptr [rbp-0x4C], r10d
@@ -221,10 +220,10 @@ G_M18152_IG08:        ; bbWeight=16, gcVars=00000000000000000000000004000000 {V5
        ; gcr arg pop 0
        mov      r10d, dword ptr [rbp-0x4C]
        inc      r10d
-       mov      edi, dword ptr [rbp-0x54]
+       mov      edi, dword ptr [rbp-0x60]
        cmp      edi, r10d
        mov      eax, dword ptr [rbp-0x34]
-       mov      r9, gword ptr [rbp-0xA0]
+       mov      r9, gword ptr [rbp-0xA8]
        ; gcrRegs +[r9]
        jg       SHORT G_M18152_IG08
                        ;; size=57 bbWeight=16 PerfScore 264.00
@@ -261,10 +260,10 @@ G_M18152_IG11:        ; bbWeight=0.50, gcrefRegs=2008 {rbx r13}, byrefRegs=0000
        call     [r11]<unknown method>
        ; gcrRegs -[rbx rdi] +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rbp-0x60], rax
+       mov      gword ptr [rbp-0x68], rax
        ; GC ptr vars +{V06}
                        ;; size=56 bbWeight=0.50 PerfScore 6.00
-G_M18152_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000002000000000 {V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M18152_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000001000000000 {V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
        jmp      SHORT G_M18152_IG14
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M18152_IG13:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
@@ -272,7 +271,7 @@ G_M18152_IG13:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       mov      rdi, gword ptr [rbp-0x60]
+       mov      rdi, gword ptr [rbp-0x68]
        ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
@@ -289,7 +288,7 @@ G_M18152_IG13:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        call     [System.Array:Clear(System.Array)]
        ; gcrRegs -[rax rdx rdi]
        ; gcr arg pop 0
-       mov      rax, gword ptr [rbp-0x60]
+       mov      rax, gword ptr [rbp-0x68]
        ; gcrRegs +[rax]
                        ;; size=63 bbWeight=2 PerfScore 22.50
 G_M18152_IG14:        ; bbWeight=4, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
@@ -299,7 +298,7 @@ G_M18152_IG14:        ; bbWeight=4, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byr
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rax rdi]
        ; gcr arg pop 0
-       mov      rdi, gword ptr [rbp-0x60]
+       mov      rdi, gword ptr [rbp-0x68]
        ; gcrRegs +[rdi]
        mov      rbx, rdi
        ; gcrRegs +[rbx]
@@ -318,7 +317,7 @@ G_M18152_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        mov      rdi, 0xD1FFAB1E
...

+5 (+0.24%) : 224724.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Instrumented Tier1)

@@ -10,27 +10,27 @@
 ;
 ;  V00 this         [V00,T21] (  9, 22.50)     ref  ->  rbx         this class-hnd single-def <System.Buffers.SharedArrayPool`1[ushort]>
 ;  V01 loc0         [V01,T12] (  5, 33.50)     int  ->  r15        
-;  V02 loc1         [V02,T31] (  5, 19   )     int  ->  r14        
+;  V02 loc1         [V02,T30] (  5, 19   )     int  ->  r14        
 ;  V03 loc2         [V03,T20] (  7, 27   )     ref  ->  r13         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V04 loc3         [V04,T43] (  4, 10   )     ref  ->  r12         class-hnd exact single-def <<unknown class>>
-;  V05 loc4         [V05,T30] (  6, 19   )     int  ->  [rbp-0x2C] 
-;  V06 loc5         [V06,T37] (  8, 10.50)     ref  ->  [rbp-0x60]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V04 loc3         [V04,T42] (  4, 10   )     ref  ->  r12         class-hnd exact single-def <<unknown class>>
+;  V05 loc4         [V05,T29] (  6, 19   )     int  ->  [rbp-0x2C] 
+;  V06 loc5         [V06,T36] (  8, 10.50)     ref  ->  [rbp-0x68]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V07 loc6         [V07    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V08 loc7         [V08,T38] (  8, 10.50)     ref  ->  [rbp-0x68]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V08 loc7         [V08,T37] (  8, 10.50)     ref  ->  [rbp-0x70]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V09 loc8         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V10 loc9         [V10,T24] (  3, 20   )     ref  ->  r14         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V10 loc9         [V10,T23] (  3, 20   )     ref  ->  r14         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V11 loc10        [V11,T04] (  5, 66   )     int  ->  r15        
-;  V12 loc11        [V12,T02] (  6, 64   )     ref  ->  [rbp-0x70]  class-hnd spill-single-def <<unknown class>>
-;  V13 loc12        [V13,T44] (  2,  8.50)     int  ->  r14        
-;  V14 loc13        [V14,T66] (  3,  1.50)     int  ->  r14        
-;  V15 loc14        [V15,T39] (  8, 10.50)     ref  ->  [rbp-0x78]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V12 loc11        [V12,T02] (  6, 64   )     ref  ->  [rbp-0x78]  class-hnd spill-single-def <<unknown class>>
+;  V13 loc12        [V13,T43] (  2,  8.50)     int  ->  r14        
+;  V14 loc13        [V14,T65] (  3,  1.50)     int  ->  r14        
+;  V15 loc14        [V15,T38] (  8, 10.50)     ref  ->  [rbp-0x80]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V16 loc15        [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V17 loc16        [V17,T10] (  5, 36   )     ref  ->  r12         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V17 loc16        [V17,T10] (  6, 44   )     ref  ->  r12         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V18 loc17        [V18,T00] (  5,210   )     int  ->  [rbp-0x30] 
-;  V19 loc18        [V19,T23] (  3, 24   )     int  ->   r8        
-;  V20 loc19        [V20,T07] (  6, 48   )     ref  ->  [rbp-0x80]  class-hnd spill-single-def <<unknown class>>
+;  V19 loc18        [V19,T22] (  3, 24   )     int  ->  rsi        
+;  V20 loc19        [V20,T07] (  6, 48   )     ref  ->  [rbp-0x88]  class-hnd spill-single-def <<unknown class>>
 ;# V21 OutArgs      [V21    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V22 tmp1         [V22,T25] (  3, 20   )     ref  ->  [rbp-0x88]  class-hnd exact spill-single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V22 tmp1         [V22,T24] (  3, 20   )     ref  ->  [rbp-0x90]  class-hnd exact spill-single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
 ;* V23 tmp2         [V23    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V24 tmp3         [V24,T11] (  2, 36   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
 ;* V25 tmp4         [V25    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
@@ -40,72 +40,71 @@
 ;  V29 tmp8         [V29,T16] (  2, 32   )     int  ->  [rbp-0x40]  spill-single-def "impAppendStmt"
 ;  V30 tmp9         [V30,T17] (  2, 32   )     int  ->  [rbp-0x44]  spill-single-def "impAppendStmt"
 ;* V31 tmp10        [V31    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V32 tmp11        [V32,T54] (  3,  3   )     ref  ->  rbx         single-def "handle histogram profile tmp"
+;  V32 tmp11        [V32,T53] (  3,  3   )     ref  ->  rbx         single-def "handle histogram profile tmp"
 ;* V33 tmp12        [V33    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V34 tmp13        [V34    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V35 tmp14        [V35    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V36 tmp15        [V36,T55] (  3,  3   )     ref  ->  r14         single-def "handle histogram profile tmp"
+;  V36 tmp15        [V36,T54] (  3,  3   )     ref  ->  r14         single-def "handle histogram profile tmp"
 ;* V37 tmp16        [V37    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V38 tmp17        [V38,T01] (  3, 96   )     ref  ->  [rbp-0x90]  spill-single-def "handle histogram profile tmp"
+;  V38 tmp17        [V38,T01] (  3, 96   )     ref  ->  [rbp-0x98]  spill-single-def "handle histogram profile tmp"
 ;* V39 tmp18        [V39    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V40 tmp19        [V40    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V41 tmp20        [V41    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V42 tmp21        [V42,T56] (  3,  3   )     ref  ->  r12         single-def "handle histogram profile tmp"
+;  V42 tmp21        [V42,T55] (  3,  3   )     ref  ->  r12         single-def "handle histogram profile tmp"
 ;* V43 tmp22        [V43    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V44 tmp23        [V44,T09] (  3, 48   )     ref  ->  [rbp-0x98]  spill-single-def "handle histogram profile tmp"
+;  V44 tmp23        [V44,T09] (  3, 48   )     ref  ->  [rbp-0xA0]  spill-single-def "handle histogram profile tmp"
 ;* V45 tmp24        [V45    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V46 tmp25        [V46    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V47 tmp26        [V47    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V48 tmp27        [V48,T27] (  3, 20   )     int  ->  [rbp-0x48]  spill-single-def "Inline stloc first use temp"
+;  V48 tmp27        [V48,T26] (  3, 20   )     int  ->  [rbp-0x48]  spill-single-def "Inline stloc first use temp"
 ;* V49 tmp28        [V49    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V50 tmp29        [V50    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V51 tmp30        [V51,T26] (  3, 20   )     ref  ->  [rbp-0xA0]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;  V51 tmp30        [V51,T25] (  3, 20   )     ref  ->  [rbp-0xA8]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
 ;  V52 tmp31        [V52,T05] (  5, 66   )     int  ->  [rbp-0x4C]  "Inline stloc first use temp"
 ;  V53 tmp32        [V53,T18] (  2, 32   )     int  ->   r8         "Inlining Arg"
 ;  V54 tmp33        [V54,T19] (  2, 32   )     int  ->   r8         "Inlining Arg"
-;  V55 tmp34        [V55,T51] (  2,  4   )     ref  ->  rdi         "field V07.key (fldOffset=0x0)" P-INDEP
-;  V56 tmp35        [V56,T63] (  1,  2   )     ref  ->  rdx         "field V07.value (fldOffset=0x8)" P-INDEP
-;  V57 tmp36        [V57,T52] (  2,  4   )     ref  ->  r14         "field V09.key (fldOffset=0x0)" P-INDEP
-;  V58 tmp37        [V58,T64] (  1,  2   )     ref  ->  rdx         "field V09.value (fldOffset=0x8)" P-INDEP
-;  V59 tmp38        [V59,T53] (  2,  4   )     ref  ->  r12         "field V16.key (fldOffset=0x0)" P-INDEP
-;  V60 tmp39        [V60,T65] (  1,  2   )     ref  ->  rdx         "field V16.value (fldOffset=0x8)" P-INDEP
+;  V55 tmp34        [V55,T50] (  2,  4   )     ref  ->  rdi         "field V07.key (fldOffset=0x0)" P-INDEP
+;  V56 tmp35        [V56,T62] (  1,  2   )     ref  ->  rdx         "field V07.value (fldOffset=0x8)" P-INDEP
+;  V57 tmp36        [V57,T51] (  2,  4   )     ref  ->  r14         "field V09.key (fldOffset=0x0)" P-INDEP
+;  V58 tmp37        [V58,T63] (  1,  2   )     ref  ->  rdx         "field V09.value (fldOffset=0x8)" P-INDEP
+;  V59 tmp38        [V59,T52] (  2,  4   )     ref  ->  r12         "field V16.key (fldOffset=0x0)" P-INDEP
+;  V60 tmp39        [V60,T64] (  1,  2   )     ref  ->  rdx         "field V16.value (fldOffset=0x8)" P-INDEP
 ;* V61 tmp40        [V61    ] (  0,  0   )     ref  ->  zero-ref    "field V25.key (fldOffset=0x0)" P-DEP
 ;* V62 tmp41        [V62    ] (  0,  0   )     ref  ->  zero-ref    "field V25.value (fldOffset=0x8)" P-DEP
 ;* V63 tmp42        [V63    ] (  0,  0   )     ref  ->  zero-ref    "field V28.key (fldOffset=0x0)" P-DEP
 ;* V64 tmp43        [V64    ] (  0,  0   )     ref  ->  zero-ref    "field V28.value (fldOffset=0x8)" P-DEP
 ;* V65 tmp44        [V65    ] (  0,  0   )     ref  ->  zero-ref    "field V31.key (fldOffset=0x0)" P-DEP
 ;* V66 tmp45        [V66    ] (  0,  0   )     ref  ->  zero-ref    "field V31.value (fldOffset=0x8)" P-DEP
-;  V67 tmp46        [V67,T57] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V68 tmp47        [V68,T32] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V69 tmp48        [V69,T48] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;  V67 tmp46        [V67,T56] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V68 tmp47        [V68,T31] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V69 tmp48        [V69,T47] (  2,  8   )     ref  ->  rdi         "argument with side effect"
 ;  V70 tmp49        [V70,T13] (  2, 32   )     ref  ->  rsi         "argument with side effect"
-;* V71 tmp50        [V71,T35] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V72 tmp51        [V72,T68] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V73 tmp52        [V73,T58] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V74 tmp53        [V74,T59] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V75 tmp54        [V75,T33] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V76 tmp55        [V76,T49] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;* V71 tmp50        [V71,T34] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V72 tmp51        [V72,T67] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V73 tmp52        [V73,T57] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V74 tmp53        [V74,T58] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V75 tmp54        [V75,T32] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V76 tmp55        [V76,T48] (  2,  8   )     ref  ->  rdi         "argument with side effect"
 ;  V77 tmp56        [V77,T06] (  2, 64   )     ref  ->  rsi         "argument with side effect"
-;* V78 tmp57        [V78,T36] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V79 tmp58        [V79,T69] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V80 tmp59        [V80,T60] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V81 tmp60        [V81,T61] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V82 tmp61        [V82,T34] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V83 tmp62        [V83,T50] (  2,  8   )     ref  ->  rdi         "argument with side effect"
-;  V84 tmp63        [V84,T70] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V85 tmp64        [V85,T62] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V86 PSPSym       [V86,T67] (  1,  1   )    long  ->  [rbp-0xB0]  do-not-enreg[V] "PSPSym"
-;  V87 cse0         [V87,T45] (  4,  8   )     ref  ->  rbx         multi-def "CSE - conservative"
-;  V88 cse1         [V88,T40] (  6, 10.50)     ref  ->  rbx         multi-def "CSE - conservative"
-;  V89 cse2         [V89,T46] (  4,  8   )     ref  ->  r14         multi-def "CSE - conservative"
-;  V90 cse3         [V90,T41] (  6, 10.50)     ref  ->  r14         multi-def "CSE - conservative"
-;  V91 cse4         [V91,T47] (  4,  8   )     ref  ->  r12         multi-def "CSE - conservative"
-;  V92 cse5         [V92,T42] (  6, 10.50)     ref  ->  r12         multi-def "CSE - conservative"
-;  V93 cse6         [V93,T22] (  3, 24   )   byref  ->  [rbp-0xA8]  spill-single-def "CSE - moderate"
-;  V94 cse7         [V94,T08] (  4, 48   )    long  ->  rdx         "CSE - moderate"
-;  V95 cse8         [V95,T03] (  3, 68   )     int  ->  [rbp-0x50]  spill-single-def "CSE - aggressive"
-;  V96 cse9         [V96,T28] (  3, 20   )     int  ->  [rbp-0x54]  spill-single-def "CSE - moderate"
-;  V97 cse10        [V97,T29] (  3, 20   )     int  ->  r12         "CSE - moderate"
+;* V78 tmp57        [V78,T35] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V79 tmp58        [V79,T68] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V80 tmp59        [V80,T59] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V81 tmp60        [V81,T60] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V82 tmp61        [V82,T33] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V83 tmp62        [V83,T49] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;  V84 tmp63        [V84,T69] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V85 tmp64        [V85,T61] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V86 PSPSym       [V86,T66] (  1,  1   )    long  ->  [rbp-0xB0]  do-not-enreg[V] "PSPSym"
+;  V87 cse0         [V87,T44] (  4,  8   )     ref  ->  rbx         multi-def "CSE - conservative"
+;  V88 cse1         [V88,T39] (  6, 10.50)     ref  ->  rbx         multi-def "CSE - conservative"
+;  V89 cse2         [V89,T45] (  4,  8   )     ref  ->  r14         multi-def "CSE - conservative"
+;  V90 cse3         [V90,T40] (  6, 10.50)     ref  ->  r14         multi-def "CSE - conservative"
+;  V91 cse4         [V91,T46] (  4,  8   )     ref  ->  r12         multi-def "CSE - conservative"
+;  V92 cse5         [V92,T41] (  6, 10.50)     ref  ->  r12         multi-def "CSE - conservative"
+;  V93 cse6         [V93,T08] (  5, 56   )    long  ->  [rbp-0x58]  spill-single-def "CSE - aggressive"
+;  V94 cse7         [V94,T03] (  3, 68   )     int  ->  [rbp-0x5C]  spill-single-def "CSE - aggressive"
+;  V95 cse8         [V95,T27] (  3, 20   )     int  ->  [rbp-0x60]  spill-single-def "CSE - moderate"
+;  V96 cse9         [V96,T28] (  3, 20   )     int  ->  r12         "CSE - moderate"
 ;
 ; Lcl frame size = 136
 
@@ -160,12 +159,12 @@ G_M16016_IG05:        ; bbWeight=4, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000
        mov      edi, eax
        mov      rcx, gword ptr [r12+8*rdi+0x10]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x88], rcx
+       mov      gword ptr [rbp-0x90], rcx
        ; GC ptr vars +{V22}
        test     rcx, rcx
        je       G_M16016_IG09
                        ;; size=26 bbWeight=4 PerfScore 22.00
-G_M16016_IG06:        ; bbWeight=2, gcVars=00000000000000000000000002000000 {V22}, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, gcvars, byref
+G_M16016_IG06:        ; bbWeight=2, gcVars=00000000000000000000000001000000 {V22}, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rcx]
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
@@ -192,19 +191,19 @@ G_M16016_IG06:        ; bbWeight=2, gcVars=00000000000000000000000002000000 {V22
        mov      eax, dword ptr [rbp-0x34]
                        ;; size=79 bbWeight=2 PerfScore 24.00
 G_M16016_IG07:        ; bbWeight=2, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, byref, isz
-       mov      rdi, gword ptr [rbp-0x88]
+       mov      rdi, gword ptr [rbp-0x90]
        ; gcrRegs +[rdi]
        mov      r9, gword ptr [rdi+0x08]
        ; gcrRegs +[r9]
-       mov      gword ptr [rbp-0xA0], r9
+       mov      gword ptr [rbp-0xA8], r9
        ; GC ptr vars +{V51}
        xor      r10d, r10d
        mov      r11d, dword ptr [r9+0x08]
-       mov      dword ptr [rbp-0x54], r11d
+       mov      dword ptr [rbp-0x60], r11d
        test     r11d, r11d
        jle      SHORT G_M16016_IG09
                        ;; size=34 bbWeight=2 PerfScore 17.00
-G_M16016_IG08:        ; bbWeight=16, gcVars=00000000000000000000000004000000 {V51}, gcrefRegs=3208 {rbx r9 r12 r13}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M16016_IG08:        ; bbWeight=16, gcVars=00000000000000000000000002000000 {V51}, gcrefRegs=3208 {rbx r9 r12 r13}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rdi]
        ; GC ptr vars -{V22}
        mov      dword ptr [rbp-0x4C], r10d
@@ -221,10 +220,10 @@ G_M16016_IG08:        ; bbWeight=16, gcVars=00000000000000000000000004000000 {V5
        ; gcr arg pop 0
        mov      r10d, dword ptr [rbp-0x4C]
        inc      r10d
-       mov      edi, dword ptr [rbp-0x54]
+       mov      edi, dword ptr [rbp-0x60]
        cmp      edi, r10d
        mov      eax, dword ptr [rbp-0x34]
-       mov      r9, gword ptr [rbp-0xA0]
+       mov      r9, gword ptr [rbp-0xA8]
        ; gcrRegs +[r9]
        jg       SHORT G_M16016_IG08
                        ;; size=57 bbWeight=16 PerfScore 264.00
@@ -261,10 +260,10 @@ G_M16016_IG11:        ; bbWeight=0.50, gcrefRegs=2008 {rbx r13}, byrefRegs=0000
        call     [r11]<unknown method>
        ; gcrRegs -[rbx rdi] +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rbp-0x60], rax
+       mov      gword ptr [rbp-0x68], rax
        ; GC ptr vars +{V06}
                        ;; size=56 bbWeight=0.50 PerfScore 6.00
-G_M16016_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000002000000000 {V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M16016_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000001000000000 {V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
        jmp      SHORT G_M16016_IG14
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M16016_IG13:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
@@ -272,7 +271,7 @@ G_M16016_IG13:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       mov      rdi, gword ptr [rbp-0x60]
+       mov      rdi, gword ptr [rbp-0x68]
        ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
@@ -289,7 +288,7 @@ G_M16016_IG13:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        call     [System.Array:Clear(System.Array)]
        ; gcrRegs -[rax rdx rdi]
        ; gcr arg pop 0
-       mov      rax, gword ptr [rbp-0x60]
+       mov      rax, gword ptr [rbp-0x68]
        ; gcrRegs +[rax]
                        ;; size=63 bbWeight=2 PerfScore 22.50
 G_M16016_IG14:        ; bbWeight=4, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
@@ -299,7 +298,7 @@ G_M16016_IG14:        ; bbWeight=4, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byr
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rax rdi]
        ; gcr arg pop 0
-       mov      rdi, gword ptr [rbp-0x60]
+       mov      rdi, gword ptr [rbp-0x68]
        ; gcrRegs +[rdi]
        mov      rbx, rdi
        ; gcrRegs +[rbx]
@@ -318,7 +317,7 @@ G_M16016_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        mov      rdi, 0xD1FFAB1E
...

+28 (+1.48%) : 622880.dasm - JitTestarray1refany_il.Test:Main():int (FullOpts)

@@ -9,91 +9,89 @@
 ; Final local variable assignments
 ;
 ;  V00 loc0         [V00    ] (  4, 10   )     ref  ->  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Array>
-;  V01 loc1         [V01,T07] (  6, 21   )     int  ->  r15        
+;  V01 loc1         [V01,T06] (  6, 21   )     int  ->  r15        
 ;  V02 loc2         [V02    ] (  8,  4   )     ref  ->  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <<unknown class>>
 ;  V03 loc3         [V03    ] ( 38, 13   )     ref  ->  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <ulong[,]>
-;* V04 loc4         [V04,T57] (  0,  0   )     int  ->  zero-ref   
-;* V05 loc5         [V05,T48] (  0,  0   )     int  ->  zero-ref   
-;  V06 loc6         [V06    ] (  4, 33   )     ref  ->  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <<unknown class>>
-;  V07 loc7         [V07,T02] (  7, 72.50)     int  ->  rdi        
-;  V08 loc8         [V08,T00] (  7,100   )     int  ->  rax        
-;  V09 loc9         [V09,T31] (  5,  2.50)     ref  ->  rax         class-hnd exact single-def <<unknown class>>
-;  V10 loc10        [V10,T17] ( 14,  7   )     ref  ->  rax         class-hnd single-def <ulong[,]>
-;  V11 loc11        [V11,T32] (  4,  2   )     ref  ->  rbx         class-hnd exact single-def <<unknown class>>
-;  V12 loc12        [V12,T24] ( 10,  5   )     ref  ->  rax         class-hnd <<unknown class>>
+;* V04 loc4         [V04,T54] (  0,  0   )     int  ->  zero-ref   
+;* V05 loc5         [V05,T45] (  0,  0   )     int  ->  zero-ref   
+;  V06 loc6         [V06    ] (  6,  9   )     ref  ->  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <<unknown class>>
+;* V07 loc7         [V07,T55] (  0,  0   )     int  ->  zero-ref   
+;  V08 loc8         [V08,T02] ( 14, 26.50)     int  ->  rdi        
+;  V09 loc9         [V09,T28] (  5,  2.50)     ref  ->  rax         class-hnd exact single-def <<unknown class>>
+;  V10 loc10        [V10,T14] ( 14,  7   )     ref  ->  rax         class-hnd single-def <ulong[,]>
+;  V11 loc11        [V11,T29] (  4,  2   )     ref  ->  rbx         class-hnd exact single-def <<unknown class>>
+;  V12 loc12        [V12,T21] ( 10,  5   )     ref  ->  rax         class-hnd <<unknown class>>
 ;  V13 OutArgs      [V13    ] (  1,  1   )  struct ( 8) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V14 tmp1         [V14    ] (  3,  1.50)  struct ( 8) [rbp-0x50]  do-not-enreg[XSF] addr-exposed "NewObjArrayArgs"
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
 ;  V16 tmp3         [V16    ] (  3,  6   )     int  ->  [rbp-0x58]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    single-def "CASTCLASS eval op1"
 ;* V18 tmp5         [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType>
-;* V19 tmp6         [V19,T49] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-;  V20 tmp7         [V20,T26] (  3,  4   )     int  ->  r15         "Inlining Arg"
-;  V21 tmp8         [V21,T38] (  2,  2   )     ref  ->  rdi         class-hnd single-def "Inline return value spill temp" <System.Array>
+;* V19 tmp6         [V19,T46] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
+;  V20 tmp7         [V20,T23] (  3,  4   )     int  ->  r15         "Inlining Arg"
+;  V21 tmp8         [V21,T35] (  2,  2   )     ref  ->  rdi         class-hnd single-def "Inline return value spill temp" <System.Array>
 ;  V22 tmp9         [V22    ] (  4,  4   )     ref  ->  [rbp-0x60]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline stloc first use temp" <System.Array>
 ;  V23 tmp10        [V23    ] (  3,  6   )     ref  ->  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.RuntimeType>
 ;  V24 tmp11        [V24    ] (  4,  8   )  struct (16) [rbp-0x78]  do-not-enreg[XSF] addr-exposed ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.QCallTypeHandle>
-;  V25 tmp12        [V25,T20] (  3,  6   )  struct (16) [rbp-0x88]  do-not-enreg[SFA] multireg-arg "impAppendStmt" <System.Runtime.CompilerServices.QCallTypeHandle>
+;  V25 tmp12        [V25,T17] (  3,  6   )  struct (16) [rbp-0x88]  do-not-enreg[SFA] multireg-arg "impAppendStmt" <System.Runtime.CompilerServices.QCallTypeHandle>
 ;* V26 tmp13        [V26    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Runtime.CompilerServices.ObjectHandleOnStack>
-;  V27 tmp14        [V27,T23] (  3,  5.01)     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.RuntimeType>
-;  V28 tmp15        [V28,T39] (  2,  2   )   byref  ->  rsi         single-def
+;  V27 tmp14        [V27,T20] (  3,  5.01)     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.RuntimeType>
+;  V28 tmp15        [V28,T36] (  2,  2   )   byref  ->  rsi         single-def
 ;* V29 tmp16        [V29    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V30 tmp17        [V30    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V31 tmp18        [V31,T41] (  3,  1.50)    long  ->  rcx        
-;  V32 tmp19        [V32,T27] (  2,  4   )  struct ( 8) [rbp-0x90]  do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ObjectHandleOnStack>
+;  V31 tmp18        [V31,T38] (  3,  1.50)    long  ->  rcx        
+;  V32 tmp19        [V32,T24] (  2,  4   )  struct ( 8) [rbp-0x90]  do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ObjectHandleOnStack>
 ;* V33 tmp20        [V33    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp21        [V34    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V35 tmp22        [V35,T03] (  5, 40   )     ref  ->  rbx         class-hnd "Inlining Arg" <System.Array>
-;  V36 tmp23        [V36,T21] (  2,  4   )     int  ->  rdi         "Inline return value spill temp"
+;  V35 tmp22        [V35,T00] (  5, 40   )     ref  ->  rbx         class-hnd "Inlining Arg" <System.Array>
+;  V36 tmp23        [V36,T18] (  2,  4   )     int  ->  rdi         "Inline return value spill temp"
 ;* V37 tmp24        [V37    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V38 tmp25        [V38,T15] (  3, 10   )     int  ->  rdi         "Inline stloc first use temp"
-;  V39 tmp26        [V39,T05] (  3, 24   )   byref  ->  r14         "Inlining Arg"
+;  V38 tmp25        [V38,T12] (  3, 10   )     int  ->  rdi         "Inline stloc first use temp"
+;  V39 tmp26        [V39,T04] (  3, 24   )   byref  ->  r14         "Inlining Arg"
 ;* V40 tmp27        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V41 tmp28        [V41,T04] (  5, 40   )     ref  ->  rbx         class-hnd "Inlining Arg" <System.Array>
-;  V42 tmp29        [V42,T22] (  2,  4   )     int  ->  rdi         "Inline return value spill temp"
+;  V41 tmp28        [V41,T01] (  5, 40   )     ref  ->  rbx         class-hnd "Inlining Arg" <System.Array>
+;  V42 tmp29        [V42,T19] (  2,  4   )     int  ->  rdi         "Inline return value spill temp"
 ;* V43 tmp30        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V44 tmp31        [V44,T16] (  3, 10   )     int  ->  rdi         "Inline stloc first use temp"
-;  V45 tmp32        [V45,T06] (  3, 24   )   byref  ->  r14         "Inlining Arg"
+;  V44 tmp31        [V44,T13] (  3, 10   )     int  ->  rdi         "Inline stloc first use temp"
+;  V45 tmp32        [V45,T05] (  3, 24   )   byref  ->  r14         "Inlining Arg"
 ;* V46 tmp33        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V47 tmp34        [V47,T19] (  5,  6   )     int  ->  rax         "Single return block return value"
-;  V48 FramesRoot   [V48,T18] (  6,  6   )    long  ->  rbx         "Pinvoke FrameListRoot"
+;  V47 tmp34        [V47,T16] (  5,  6   )     int  ->  rax         "Single return block return value"
+;  V48 FramesRoot   [V48,T15] (  6,  6   )    long  ->  rbx         "Pinvoke FrameListRoot"
 ;  V49 PInvokeFrame [V49    ] (  8,  8   )  struct (72) [rbp-0x118]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
-;  V50 tmp37        [V50,T58] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V50 tmp37        [V50,T56] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
 ;  V51 tmp38        [V51    ] (  4,  8   )  struct (16) [rbp-0xA0]  do-not-enreg[XSA] multireg-arg must-init addr-exposed "by-value mkrefany struct argument" <System.TypedReference>
-;  V52 tmp39        [V52,T10] (  2, 16   )    long  ->  rsi         "argument with side effect"
-;  V53 tmp40        [V53,T11] (  2, 16   )    long  ->  rsi         "argument with side effect"
+;  V52 tmp39        [V52,T07] (  2, 16   )    long  ->  rsi         "argument with side effect"
+;  V53 tmp40        [V53,T08] (  2, 16   )    long  ->  rsi         "argument with side effect"
 ;  V54 tmp41        [V54    ] (  4,  4   )  struct (16) [rbp-0xB0]  do-not-enreg[XSA] multireg-arg must-init addr-exposed "by-value mkrefany struct argument" <System.TypedReference>
-;  V55 tmp42        [V55,T40] (  2,  2   )    long  ->  rdx         "argument with side effect"
+;  V55 tmp42        [V55,T37] (  2,  2   )    long  ->  rdx         "argument with side effect"
 ;  V56 tmp43        [V56    ] (  4,  4   )  struct (16) [rbp-0xC0]  do-not-enreg[XSA] multireg-arg must-init addr-exposed "by-value mkrefany struct argument" <System.TypedReference>
 ;  V57 tmp44        [V57    ] (  4,  4   )  struct (16) [rbp-0xD0]  do-not-enreg[XSA] multireg-arg must-init addr-exposed "by-value mkrefany struct argument" <System.TypedReference>
-;  V58 tmp45        [V58,T01] (  3, 96   )     ref  ->  rsi         "arr expr"
-;  V59 tmp46        [V59,T12] ( 21, 15   )     int  ->  rdi         "MD array shared temp"
-;  V60 tmp47        [V60,T13] ( 21, 15   )     int  ->   r8         "MD array shared temp"
-;* V61 tmp48        [V61,T50] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;  V62 tmp49        [V62,T28] (  3,  3   )     int  ->   r9         "MD array shared temp"
-;* V63 tmp50        [V63,T51] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;  V64 tmp51        [V64,T29] (  3,  3   )     int  ->  rcx         "MD array shared temp"
-;  V65 tmp52        [V65,T30] (  3,  3   )     int  ->  rdi         "MD array shared temp"
-;* V66 tmp53        [V66,T52] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;* V67 tmp54        [V67,T53] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;* V68 tmp55        [V68,T54] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;* V69 tmp56        [V69,T55] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;* V70 tmp57        [V70,T56] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;  V71 cse0         [V71,T33] (  4,  2   )     int  ->  rdi         "CSE - conservative"
-;  V72 cse1         [V72,T34] (  4,  2   )     int  ->  rdi         "CSE - conservative"
-;  V73 cse2         [V73,T42] (  3,  1.50)     int  ->   r8         "CSE - conservative"
-;  V74 cse3         [V74,T43] (  3,  1.50)     int  ->   r9         "CSE - conservative"
-;  V75 cse4         [V75,T44] (  3,  1.50)     int  ->  rcx         "CSE - conservative"
-;  V76 cse5         [V76,T08] (  2, 20   )     int  ->  rdx         hoist "CSE - moderate"
-;  V77 cse6         [V77,T35] (  2,  1   )     int  ->  rdi         "CSE - conservative"
-;  V78 cse7         [V78,T36] (  2,  1   )     int  ->  rdi         "CSE - conservative"
-;  V79 cse8         [V79,T45] (  2,  1   )     int  ->   r8         "CSE - conservative"
-;  V80 cse9         [V80,T46] (  2,  1   )     int  ->   r9         "CSE - conservative"
-;  V81 cse10        [V81,T47] (  2,  1   )     int  ->  rcx         "CSE - conservative"
-;  V82 cse11        [V82,T25] ( 10,  5   )     int  ->  rsi         "CSE - moderate"
-;  V83 cse12        [V83,T14] (  6, 12   )     ref  ->  rsi         multi-def "CSE - moderate"
-;  V84 cse13        [V84,T37] (  4,  2   )     int  ->  rdx         "CSE - conservative"
-;  V85 cse14        [V85,T09] (  2, 20   )    long  ->  rcx         hoist "CSE - moderate"
+;  V58 tmp45        [V58,T03] (  6, 24   )     ref  ->  rax         "arr expr"
+;  V59 tmp46        [V59,T09] ( 21, 15   )     int  ->  rdi         "MD array shared temp"
+;  V60 tmp47        [V60,T10] ( 21, 15   )     int  ->   r8         "MD array shared temp"
+;* V61 tmp48        [V61,T47] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;  V62 tmp49        [V62,T25] (  3,  3   )     int  ->   r9         "MD array shared temp"
+;* V63 tmp50        [V63,T48] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;  V64 tmp51        [V64,T26] (  3,  3   )     int  ->  rcx         "MD array shared temp"
+;  V65 tmp52        [V65,T27] (  3,  3   )     int  ->  rdi         "MD array shared temp"
+;* V66 tmp53        [V66,T49] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;* V67 tmp54        [V67,T50] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;* V68 tmp55        [V68,T51] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;* V69 tmp56        [V69,T52] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;* V70 tmp57        [V70,T53] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;  V71 cse0         [V71,T30] (  4,  2   )     int  ->  rdi         "CSE - conservative"
+;  V72 cse1         [V72,T31] (  4,  2   )     int  ->  rdi         "CSE - conservative"
+;  V73 cse2         [V73,T39] (  3,  1.50)     int  ->   r8         "CSE - conservative"
+;  V74 cse3         [V74,T40] (  3,  1.50)     int  ->   r9         "CSE - conservative"
+;  V75 cse4         [V75,T41] (  3,  1.50)     int  ->  rcx         "CSE - conservative"
+;  V76 cse5         [V76,T32] (  2,  1   )     int  ->  rdi         "CSE - conservative"
+;  V77 cse6         [V77,T33] (  2,  1   )     int  ->  rdi         "CSE - conservative"
+;  V78 cse7         [V78,T42] (  2,  1   )     int  ->   r8         "CSE - conservative"
+;  V79 cse8         [V79,T43] (  2,  1   )     int  ->   r9         "CSE - conservative"
+;  V80 cse9         [V80,T44] (  2,  1   )     int  ->  rcx         "CSE - conservative"
+;  V81 cse10        [V81,T22] ( 10,  5   )     int  ->  rsi         "CSE - moderate"
+;  V82 cse11        [V82,T11] (  6, 12   )     ref  ->  rsi         multi-def "CSE - moderate"
+;  V83 cse12        [V83,T34] (  4,  2   )     int  ->  rdx         "CSE - conservative"
 ;
 ; Lcl frame size = 248
 
@@ -609,7 +607,7 @@ G_M55471_IG29:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        cmp      qword ptr [rsi+8*rdi+0x20], 5
        jne      G_M55471_IG35
                        ;; size=167 bbWeight=0.25 PerfScore 15.06
-G_M55471_IG30:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M55471_IG30:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rsi]
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        mov      esi, 2
@@ -661,35 +659,9 @@ G_M55471_IG30:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ; gcrRegs -[rbx]
        ; byrRegs -[rdi]
        ; gcr arg pop 0
-       xor      edi, edi
-                       ;; size=189 bbWeight=0.50 PerfScore 11.62
-G_M55471_IG31:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       xor      eax, eax
-       jmp      SHORT G_M55471_IG34
-                       ;; size=4 bbWeight=4 PerfScore 9.00
-G_M55471_IG32:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       mov      rsi, gword ptr [rbp-0x48]
-       ; gcrRegs +[rsi]
-       cmp      edi, dword ptr [rsi+0x08]
-       jae      SHORT G_M55471_IG37
-       mov      rsi, gword ptr [rbp-0x48]
-       mov      rsi, gword ptr [rsi+8*rcx+0x10]
-       cmp      eax, dword ptr [rsi+0x08]
-       jae      SHORT G_M55471_IG37
-       mov      r8d, eax
-       lea      r9d, [rdx+rax]
-       movsxd   r9, r9d
-       cmp      qword ptr [rsi+8*r8+0x10], r9
-       jne      SHORT G_M55471_IG35
-       inc      eax
-       cmp      eax, 3
-       jl       SHORT G_M55471_IG32
-       inc      edi
-       cmp      edi, 2
-       jl       SHORT G_M55471_IG31
-                       ;; size=54 bbWeight=16 PerfScore 320.00
-G_M55471_IG33:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rsi]
+       jmp      SHORT G_M55471_IG32
+                       ;; size=189 bbWeight=0.50 PerfScore 12.50
+G_M55471_IG31:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      rdi, 0xD1FFAB1E
        ; gcrRegs +[rdi]
        call     [<unknown method>]
@@ -698,12 +670,49 @@ G_M55471_IG33:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        mov      eax, 100
        jmp      SHORT G_M55471_IG36
                        ;; size=23 bbWeight=0.50 PerfScore 2.75
-G_M55471_IG34:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M55471_IG32:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       xor      edi, edi
+                       ;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M55471_IG33:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       mov      rax, gword ptr [rbp-0x48]
+       ; gcrRegs +[rax]
+       cmp      dword ptr [rax+0x08], 0
+       jbe      SHORT G_M55471_IG37
+       mov      rax, gword ptr [rbp-0x48]
+       mov      rax, gword ptr [rax+0x10]
+       cmp      edi, dword ptr [rax+0x08]
+       jae      SHORT G_M55471_IG37
        mov      ecx, edi
-       lea      edx, [rdi+2*rdi]
-       jmp      SHORT G_M55471_IG32
-                       ;; size=7 bbWeight=4 PerfScore 11.00
+       movsxd   rdx, edi
+       cmp      qword ptr [rax+8*rcx+0x10], rdx
+       jne      SHORT G_M55471_IG35
+       inc      edi
+       cmp      edi, 3
+       jl       SHORT G_M55471_IG33
+       xor      edi, edi
+                       ;; size=44 bbWeight=2 PerfScore 36.50
+G_M55471_IG34:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rax]
+       mov      rax, gword ptr [rbp-0x48]
+       ; gcrRegs +[rax]
+       cmp      dword ptr [rax+0x08], 1
+       jbe      SHORT G_M55471_IG37
+       mov      rax, gword ptr [rbp-0x48]
+       mov      rax, gword ptr [rax+0x18]
+       cmp      edi, dword ptr [rax+0x08]
+       jae      SHORT G_M55471_IG37
+       mov      ecx, edi
+       lea      edx, [rdi+0x03]
+       movsxd   rdx, edx
+       cmp      qword ptr [rax+8*rcx+0x10], rdx
+       jne      SHORT G_M55471_IG35
+       inc      edi
+       cmp      edi, 3
+       jl       SHORT G_M55471_IG34
+       jmp      SHORT G_M55471_IG31
+                       ;; size=47 bbWeight=2 PerfScore 41.00
 G_M55471_IG35:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax]
        mov      eax, 3
...

libraries.crossgen2.linux.x64.checked.mch

-47 (-15.26%) : 117955.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)

@@ -8,14 +8,14 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T06] (  5,  4.50)     ref  ->  rbx         class-hnd single-def <System.String>
-;  V01 loc0         [V01,T00] ( 16, 26   )     int  ->  r15        
+;  V00 arg0         [V00,T05] (  5,  4.50)     ref  ->  rbx         class-hnd single-def <System.String>
+;  V01 loc0         [V01,T00] ( 14, 25.50)     int  ->  r15        
 ;  V02 loc1         [V02,T01] ( 14, 25.50)     int  ->  r13        
-;  V03 loc2         [V03,T04] ( 10, 16   )     ref  ->  r12         class-hnd <System.String>
-;  V04 loc3         [V04,T05] (  7,  6.50)     int  ->  rdx        
-;  V05 loc4         [V05,T02] ( 14, 18.54)     int  ->  rdi        
+;  V03 loc2         [V03,T04] (  9, 16   )     ref  ->  r12         class-hnd <System.String>
+;  V04 loc3         [V04,T06] (  4,  6.50)     int  ->  rdx        
+;  V05 loc4         [V05,T02] (  8, 21.50)     int  ->  rdi        
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 cse0         [V07,T03] (  9, 16.04)     int  ->  r14         "CSE - aggressive"
+;  V07 cse0         [V07,T03] (  8, 19.50)     int  ->  r14         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -66,7 +66,7 @@ G_M41923_IG08:        ; bbWeight=8, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {},
                        ;; size=5 bbWeight=8 PerfScore 10.00
 G_M41923_IG09:        ; bbWeight=4, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
        cmp      r13d, r14d
-       jae      G_M41923_IG24
+       jae      G_M41923_IG20
        mov      edi, r13d
        movzx    rdi, word  ptr [r12+2*rdi+0x0C]
        call     [<unknown method>]
@@ -76,80 +76,55 @@ G_M41923_IG09:        ; bbWeight=4, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {},
                        ;; size=28 bbWeight=4 PerfScore 31.00
 G_M41923_IG10:        ; bbWeight=1, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref
        cmp      r15d, r13d
-       jge      G_M41923_IG22
+       jge      G_M41923_IG18
                        ;; size=9 bbWeight=1 PerfScore 1.25
 G_M41923_IG11:        ; bbWeight=0.50, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
        cmp      r15d, r14d
-       jae      G_M41923_IG24
+       jae      G_M41923_IG20
        mov      edx, r15d
        cmp      word  ptr [r12+2*rdx+0x0C], 91
        jne      SHORT G_M41923_IG12
        cmp      r13d, r14d
-       jae      G_M41923_IG24
+       jae      SHORT G_M41923_IG20
        mov      edx, r13d
        cmp      word  ptr [r12+2*rdx+0x0C], 93
        jne      SHORT G_M41923_IG12
        inc      r15d
        dec      r13d
-                       ;; size=48 bbWeight=0.50 PerfScore 5.75
+                       ;; size=44 bbWeight=0.50 PerfScore 5.75
 G_M41923_IG12:        ; bbWeight=0.50, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
        cmp      r13d, r14d
-       jae      G_M41923_IG24
+       jae      SHORT G_M41923_IG20
        mov      edx, r13d
        cmp      word  ptr [r12+2*rdx+0x0C], 93
-       je       SHORT G_M41923_IG22
+       je       SHORT G_M41923_IG18
        xor      edx, edx
        mov      edi, r13d
        cmp      edi, r15d
-       jl       SHORT G_M41923_IG22
-       mov      esi, edi
-       or       esi, r15d
-       jl       SHORT G_M41923_IG17
-       cmp      r14d, edi
-       jle      SHORT G_M41923_IG17
-                       ;; size=43 bbWeight=0.50 PerfScore 5.00
-G_M41923_IG13:        ; bbWeight=3.96, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
+       jl       SHORT G_M41923_IG18
+                       ;; size=27 bbWeight=0.50 PerfScore 3.62
+G_M41923_IG13:        ; bbWeight=4, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
+       cmp      edi, r14d
+       jae      SHORT G_M41923_IG20
        mov      esi, edi
        cmp      word  ptr [r12+2*rsi+0x0C], 44
        jne      SHORT G_M41923_IG15
-                       ;; size=11 bbWeight=3.96 PerfScore 16.83
-G_M41923_IG14:        ; bbWeight=1.98, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
+                       ;; size=16 bbWeight=4 PerfScore 22.00
+G_M41923_IG14:        ; bbWeight=2, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
        inc      edx
        cmp      edx, 4
-       je       SHORT G_M41923_IG21
-                       ;; size=7 bbWeight=1.98 PerfScore 2.97
-G_M41923_IG15:        ; bbWeight=3.96, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
+       je       SHORT G_M41923_IG17
+                       ;; size=7 bbWeight=2 PerfScore 3.00
+G_M41923_IG15:        ; bbWeight=4, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
        dec      edi
        cmp      edi, r15d
        jge      SHORT G_M41923_IG13
-                       ;; size=7 bbWeight=3.96 PerfScore 5.94
+                       ;; size=7 bbWeight=4 PerfScore 6.00
 G_M41923_IG16:        ; bbWeight=0.50, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbx]
-       jmp      SHORT G_M41923_IG22
+       jmp      SHORT G_M41923_IG18
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M41923_IG17:        ; bbWeight=0.04, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx]
-       cmp      edi, r14d
-       jae      SHORT G_M41923_IG24
-       mov      esi, edi
-       cmp      word  ptr [r12+2*rsi+0x0C], 44
-       jne      SHORT G_M41923_IG19
-                       ;; size=16 bbWeight=0.04 PerfScore 0.22
-G_M41923_IG18:        ; bbWeight=0.02, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
-       inc      edx
-       cmp      edx, 4
-       je       SHORT G_M41923_IG21
-                       ;; size=7 bbWeight=0.02 PerfScore 0.03
-G_M41923_IG19:        ; bbWeight=0.04, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
-       dec      edi
-       cmp      edi, r15d
-       jge      SHORT G_M41923_IG17
-                       ;; size=7 bbWeight=0.04 PerfScore 0.06
-G_M41923_IG20:        ; bbWeight=0.50, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx]
-       jmp      SHORT G_M41923_IG22
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M41923_IG21:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M41923_IG17:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r12] +[rbx]
        mov      edx, edi
        sub      edx, r15d
@@ -163,12 +138,12 @@ G_M41923_IG21:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        mov      r12, rax
        ; gcrRegs +[r12]
                        ;; size=24 bbWeight=0.50 PerfScore 2.38
-G_M41923_IG22:        ; bbWeight=1, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref
+G_M41923_IG18:        ; bbWeight=1, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rax, r12
        ; gcrRegs +[rax]
                        ;; size=3 bbWeight=1 PerfScore 0.25
-G_M41923_IG23:        ; bbWeight=1, epilog, nogc, extend
+G_M41923_IG19:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
        pop      r12
@@ -178,14 +153,14 @@ G_M41923_IG23:        ; bbWeight=1, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=1 PerfScore 4.25
-G_M41923_IG24:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M41923_IG20:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax r12]
        call     [CORINFO_HELP_RNGCHKFAIL]
        ; gcr arg pop 0
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 308, prolog size 19, PerfScore 139.67, instruction count 101, allocated bytes for code 308 (MethodHash=49705c3c) for method System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
+; Total bytes of code 261, prolog size 19, PerfScore 142.25, instruction count 86, allocated bytes for code 261 (MethodHash=49705c3c) for method System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:

-47 (-15.26%) : 131208.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)

@@ -8,14 +8,14 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T06] (  5,  4.50)     ref  ->  rbx         class-hnd single-def <System.String>
-;  V01 loc0         [V01,T00] ( 16, 26   )     int  ->  r15        
+;  V00 arg0         [V00,T05] (  5,  4.50)     ref  ->  rbx         class-hnd single-def <System.String>
+;  V01 loc0         [V01,T00] ( 14, 25.50)     int  ->  r15        
 ;  V02 loc1         [V02,T01] ( 14, 25.50)     int  ->  r13        
-;  V03 loc2         [V03,T04] ( 10, 16   )     ref  ->  r12         class-hnd <System.String>
-;  V04 loc3         [V04,T05] (  7,  6.50)     int  ->  rdx        
-;  V05 loc4         [V05,T02] ( 14, 18.54)     int  ->  rdi        
+;  V03 loc2         [V03,T04] (  9, 16   )     ref  ->  r12         class-hnd <System.String>
+;  V04 loc3         [V04,T06] (  4,  6.50)     int  ->  rdx        
+;  V05 loc4         [V05,T02] (  8, 21.50)     int  ->  rdi        
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 cse0         [V07,T03] (  9, 16.04)     int  ->  r14         "CSE - aggressive"
+;  V07 cse0         [V07,T03] (  8, 19.50)     int  ->  r14         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -66,7 +66,7 @@ G_M5940_IG08:        ; bbWeight=8, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {},
                        ;; size=5 bbWeight=8 PerfScore 10.00
 G_M5940_IG09:        ; bbWeight=4, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
        cmp      r13d, r14d
-       jae      G_M5940_IG24
+       jae      G_M5940_IG20
        mov      edi, r13d
        movzx    rdi, word  ptr [r12+2*rdi+0x0C]
        call     [<unknown method>]
@@ -76,80 +76,55 @@ G_M5940_IG09:        ; bbWeight=4, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {},
                        ;; size=28 bbWeight=4 PerfScore 31.00
 G_M5940_IG10:        ; bbWeight=1, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref
        cmp      r15d, r13d
-       jge      G_M5940_IG22
+       jge      G_M5940_IG18
                        ;; size=9 bbWeight=1 PerfScore 1.25
 G_M5940_IG11:        ; bbWeight=0.50, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
        cmp      r15d, r14d
-       jae      G_M5940_IG24
+       jae      G_M5940_IG20
        mov      edx, r15d
        cmp      word  ptr [r12+2*rdx+0x0C], 91
        jne      SHORT G_M5940_IG12
        cmp      r13d, r14d
-       jae      G_M5940_IG24
+       jae      SHORT G_M5940_IG20
        mov      edx, r13d
        cmp      word  ptr [r12+2*rdx+0x0C], 93
        jne      SHORT G_M5940_IG12
        inc      r15d
        dec      r13d
-                       ;; size=48 bbWeight=0.50 PerfScore 5.75
+                       ;; size=44 bbWeight=0.50 PerfScore 5.75
 G_M5940_IG12:        ; bbWeight=0.50, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
        cmp      r13d, r14d
-       jae      G_M5940_IG24
+       jae      SHORT G_M5940_IG20
        mov      edx, r13d
        cmp      word  ptr [r12+2*rdx+0x0C], 93
-       je       SHORT G_M5940_IG22
+       je       SHORT G_M5940_IG18
        xor      edx, edx
        mov      edi, r13d
        cmp      edi, r15d
-       jl       SHORT G_M5940_IG22
-       mov      esi, edi
-       or       esi, r15d
-       jl       SHORT G_M5940_IG17
-       cmp      r14d, edi
-       jle      SHORT G_M5940_IG17
-                       ;; size=43 bbWeight=0.50 PerfScore 5.00
-G_M5940_IG13:        ; bbWeight=3.96, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
+       jl       SHORT G_M5940_IG18
+                       ;; size=27 bbWeight=0.50 PerfScore 3.62
+G_M5940_IG13:        ; bbWeight=4, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
+       cmp      edi, r14d
+       jae      SHORT G_M5940_IG20
        mov      esi, edi
        cmp      word  ptr [r12+2*rsi+0x0C], 44
        jne      SHORT G_M5940_IG15
-                       ;; size=11 bbWeight=3.96 PerfScore 16.83
-G_M5940_IG14:        ; bbWeight=1.98, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
+                       ;; size=16 bbWeight=4 PerfScore 22.00
+G_M5940_IG14:        ; bbWeight=2, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
        inc      edx
        cmp      edx, 4
-       je       SHORT G_M5940_IG21
-                       ;; size=7 bbWeight=1.98 PerfScore 2.97
-G_M5940_IG15:        ; bbWeight=3.96, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
+       je       SHORT G_M5940_IG17
+                       ;; size=7 bbWeight=2 PerfScore 3.00
+G_M5940_IG15:        ; bbWeight=4, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
        dec      edi
        cmp      edi, r15d
        jge      SHORT G_M5940_IG13
-                       ;; size=7 bbWeight=3.96 PerfScore 5.94
+                       ;; size=7 bbWeight=4 PerfScore 6.00
 G_M5940_IG16:        ; bbWeight=0.50, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbx]
-       jmp      SHORT G_M5940_IG22
+       jmp      SHORT G_M5940_IG18
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M5940_IG17:        ; bbWeight=0.04, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx]
-       cmp      edi, r14d
-       jae      SHORT G_M5940_IG24
-       mov      esi, edi
-       cmp      word  ptr [r12+2*rsi+0x0C], 44
-       jne      SHORT G_M5940_IG19
-                       ;; size=16 bbWeight=0.04 PerfScore 0.22
-G_M5940_IG18:        ; bbWeight=0.02, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
-       inc      edx
-       cmp      edx, 4
-       je       SHORT G_M5940_IG21
-                       ;; size=7 bbWeight=0.02 PerfScore 0.03
-G_M5940_IG19:        ; bbWeight=0.04, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
-       dec      edi
-       cmp      edi, r15d
-       jge      SHORT G_M5940_IG17
-                       ;; size=7 bbWeight=0.04 PerfScore 0.06
-G_M5940_IG20:        ; bbWeight=0.50, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx]
-       jmp      SHORT G_M5940_IG22
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M5940_IG21:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M5940_IG17:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r12] +[rbx]
        mov      edx, edi
        sub      edx, r15d
@@ -163,12 +138,12 @@ G_M5940_IG21:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b
        mov      r12, rax
        ; gcrRegs +[r12]
                        ;; size=24 bbWeight=0.50 PerfScore 2.38
-G_M5940_IG22:        ; bbWeight=1, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref
+G_M5940_IG18:        ; bbWeight=1, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rax, r12
        ; gcrRegs +[rax]
                        ;; size=3 bbWeight=1 PerfScore 0.25
-G_M5940_IG23:        ; bbWeight=1, epilog, nogc, extend
+G_M5940_IG19:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
        pop      r12
@@ -178,14 +153,14 @@ G_M5940_IG23:        ; bbWeight=1, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=1 PerfScore 4.25
-G_M5940_IG24:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M5940_IG20:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax r12]
        call     [CORINFO_HELP_RNGCHKFAIL]
        ; gcr arg pop 0
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 308, prolog size 19, PerfScore 139.67, instruction count 101, allocated bytes for code 308 (MethodHash=714fe8cb) for method System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
+; Total bytes of code 261, prolog size 19, PerfScore 142.25, instruction count 86, allocated bytes for code 261 (MethodHash=714fe8cb) for method System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:

-43 (-10.67%) : 7195.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (FullOpts)

@@ -4,60 +4,60 @@
 ; ReadyToRun compilation
 ; optimized code
 ; rbp based frame
-; partially interruptible
+; fully interruptible
 ; No matching PGO data
 ; 0 inlinees with PGO data; 19 single block inlinees; 7 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ubyte]>
-;  V01 arg1         [V01,T02] (  7,  4.50)   byref  ->  rbx         single-def
-;  V02 arg2         [V02,T03] (  7,  4.50)   byref  ->  r15         single-def
-;  V03 loc0         [V03,T00] ( 20, 11   )     int  ->  r14        
-;  V04 loc1         [V04,T09] (  5,  2.50)     int  ->  r13        
-;  V05 loc2         [V05,T14] (  2,  1   )     int  ->  rax        
+;  V01 arg1         [V01,T04] (  7,  4.50)   byref  ->  rbx         single-def
+;  V02 arg2         [V02,T05] (  7,  4.50)   byref  ->  r15         single-def
+;  V03 loc0         [V03,T00] ( 11, 20.50)     int  ->  r14        
+;  V04 loc1         [V04,T10] (  5,  2.50)     int  ->  r13        
+;  V05 loc2         [V05,T15] (  2,  1   )     int  ->  rax        
 ;  V06 loc3         [V06    ] (  2,  1   )  struct ( 8) [rbp-0x30]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Text.Rune>
 ;  V07 loc4         [V07    ] (  3,  1.50)     int  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed ld-addr-op
-;* V08 loc5         [V08,T18] (  0,  0   )     int  ->  zero-ref   
+;  V08 loc5         [V08,T01] (  4, 12.50)     int  ->  rax        
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V11 tmp2         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Rune>
 ;* V12 tmp3         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V13 tmp4         [V13,T07] (  3,  3   )     int  ->  r12         "Inlining Arg"
-;  V14 tmp5         [V14,T10] (  2,  2   )   byref  ->  r13         single-def "Inlining Arg"
+;  V13 tmp4         [V13,T08] (  3,  3   )     int  ->  r12         "Inlining Arg"
+;  V14 tmp5         [V14,T11] (  2,  2   )   byref  ->  r13         single-def "Inlining Arg"
 ;* V15 tmp6         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp7         [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp8         [V17    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Rune>
 ;* V18 tmp9         [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
 ;* V19 tmp10        [V19    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V20 tmp11        [V20,T05] (  5,  5   )     int  ->  r12         "Inlining Arg"
-;  V21 tmp12        [V21,T11] (  2,  2   )   byref  ->  r13         "Inlining Arg"
+;  V20 tmp11        [V20,T06] (  5,  5   )     int  ->  r12         "Inlining Arg"
+;  V21 tmp12        [V21,T12] (  2,  2   )   byref  ->  r13         "Inlining Arg"
 ;* V22 tmp13        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp14        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp15        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp16        [V25    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Rune>
 ;* V26 tmp17        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V27 tmp18        [V27,T08] (  3,  3   )     int  ->  rax         "Single return block return value"
-;  V28 tmp19        [V28,T04] (  7,  4   )   byref  ->  rdi         "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V29 tmp20        [V29,T01] (  9,  6   )     int  ->  rsi         "field V00._length (fldOffset=0x8)" P-INDEP
+;  V27 tmp18        [V27,T09] (  3,  3   )     int  ->  rax         "Single return block return value"
+;  V28 tmp19        [V28,T03] (  5,  6.50)   byref  ->  rdi         "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V29 tmp20        [V29,T02] (  6,  8   )     int  ->  rsi         "field V00._length (fldOffset=0x8)" P-INDEP
 ;  V30 tmp21        [V30    ] (  2,  1   )     int  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed "field V06._value (fldOffset=0x0)" P-DEP
 ;* V31 tmp22        [V31    ] (  0,  0   )   byref  ->  zero-ref    "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
-;  V33 tmp24        [V33,T15] (  2,  1   )     int  ->  r13         "field V11._value (fldOffset=0x0)" P-INDEP
-;  V34 tmp25        [V34,T12] (  2,  1   )   byref  ->  rdi         single-def "field V12._reference (fldOffset=0x0)" P-INDEP
-;  V35 tmp26        [V35,T16] (  2,  1   )     int  ->  rsi         "field V12._length (fldOffset=0x8)" P-INDEP
+;  V33 tmp24        [V33,T16] (  2,  1   )     int  ->  r13         "field V11._value (fldOffset=0x0)" P-INDEP
+;  V34 tmp25        [V34,T13] (  2,  1   )   byref  ->  rdi         single-def "field V12._reference (fldOffset=0x0)" P-INDEP
+;  V35 tmp26        [V35,T17] (  2,  1   )     int  ->  rsi         "field V12._length (fldOffset=0x8)" P-INDEP
 ;* V36 tmp27        [V36,T19] (  0,  0   )     int  ->  zero-ref    "field V17._value (fldOffset=0x0)" P-INDEP
-;  V37 tmp28        [V37,T13] (  2,  1   )   byref  ->  r13         "field V19._reference (fldOffset=0x0)" P-INDEP
-;  V38 tmp29        [V38,T17] (  2,  1   )     int  ->  rdi         "field V19._length (fldOffset=0x8)" P-INDEP
+;  V37 tmp28        [V37,T14] (  2,  1   )   byref  ->  r13         "field V19._reference (fldOffset=0x0)" P-INDEP
+;  V38 tmp29        [V38,T18] (  2,  1   )     int  ->  rdi         "field V19._length (fldOffset=0x8)" P-INDEP
 ;* V39 tmp30        [V39,T20] (  0,  0   )     int  ->  zero-ref    "field V25._value (fldOffset=0x0)" P-INDEP
 ;* V40 tmp31        [V40    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V41 tmp32        [V41    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V42 tmp33        [V42    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V43 tmp34        [V43    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V44 cse0         [V44,T06] (  8,  4   )     ref  ->  rsi         multi-def "CSE - aggressive"
+;  V44 cse0         [V44,T07] (  8,  4   )     ref  ->  rsi         multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 24
 
-G_M6810_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M6810_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
        push     r14
@@ -75,7 +75,7 @@ G_M6810_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r1
        ; byrRegs +[rdi]
        lea      r14d, [rsi-0x01]
        cmp      r14d, esi
-       jae      G_M6810_IG14
+       jae      G_M6810_IG15
                        ;; size=13 bbWeight=1 PerfScore 1.75
 G_M6810_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, byref, isz
        mov      eax, r14d
@@ -87,6 +87,7 @@ G_M6810_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi
        ; byrRegs -[rdi]
        call     [System.Text.UnicodeDebug:AssertIsValidScalar(uint)]
        ; byrRegs -[r15]
+       ; gcr arg pop 0
        mov      dword ptr [rbx], r13d
        xor      eax, eax
                        ;; size=35 bbWeight=0.50 PerfScore 4.50
@@ -118,6 +119,7 @@ G_M6810_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000
        ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
+       ; gcr arg pop 0
                        ;; size=39 bbWeight=0.50 PerfScore 5.25
 G_M6810_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A008 {rbx r13 r15}, byref
        mov      rdi, r13
@@ -129,36 +131,31 @@ G_M6810_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A008 {rbx r13
        ; byrRegs +[rcx]
        call     [<unknown method>]
        ; byrRegs -[rcx rdx rbx rdi r13 r15]
-       jmp      G_M6810_IG13
+       ; gcr arg pop 0
+       jmp      G_M6810_IG14
                        ;; size=23 bbWeight=0.50 PerfScore 3.00
-G_M6810_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, byref, isz
+G_M6810_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, byref
        ; byrRegs +[rbx rdi r15]
+       mov      eax, 3
+                       ;; size=5 bbWeight=0.50 PerfScore 0.12
+G_M6810_IG08:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, byref, isz
        dec      r14d
        cmp      r14d, esi
-       jae      SHORT G_M6810_IG08
-       mov      eax, r14d
-       cmp      byte  ptr [rdi+rax], -64
-       jge      SHORT G_M6810_IG10
-       dec      r14d
-       cmp      r14d, esi
-       jae      SHORT G_M6810_IG08
-       mov      eax, r14d
-       cmp      byte  ptr [rdi+rax], -64
-       jge      SHORT G_M6810_IG10
-       dec      r14d
-       cmp      r14d, esi
-       jae      SHORT G_M6810_IG08
-       mov      eax, r14d
-       cmp      byte  ptr [rdi+rax], -64
-       jge      SHORT G_M6810_IG10
-                       ;; size=51 bbWeight=0.50 PerfScore 8.62
-G_M6810_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
+       jae      SHORT G_M6810_IG09
+       mov      ecx, r14d
+       cmp      byte  ptr [rdi+rcx], -64
+       jge      SHORT G_M6810_IG11
+       dec      eax
+       test     eax, eax
+       jg       SHORT G_M6810_IG08
+                       ;; size=23 bbWeight=4 PerfScore 29.00
+G_M6810_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
        ; byrRegs -[rdi]
        mov      dword ptr [rbx], 0xFFFD
        mov      dword ptr [r15], 1
        mov      eax, 3
                        ;; size=18 bbWeight=0.50 PerfScore 1.12
-G_M6810_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+G_M6810_IG10:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 24
        pop      rbx
        pop      r12
@@ -168,16 +165,14 @@ G_M6810_IG09:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M6810_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, gcvars, byref, isz
+G_M6810_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, gcvars, byref, isz
        ; byrRegs +[rdi]
-       cmp      r14d, esi
-       ja       G_M6810_IG16
        mov      r13d, r14d
        add      r13, rdi
        ; byrRegs +[r13]
        mov      r12d, esi
        sub      r12d, r14d
-       jns      SHORT G_M6810_IG11
+       jns      SHORT G_M6810_IG12
        mov      rdi, qword ptr [(reloc)]      ; const ptr
        ; byrRegs -[rdi]
        mov      rsi, gword ptr [rdi]
@@ -186,11 +181,12 @@ G_M6810_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000
        ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
-                       ;; size=42 bbWeight=0.50 PerfScore 5.25
-G_M6810_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A008 {rbx r13 r15}, byref, isz
+       ; gcr arg pop 0
+                       ;; size=33 bbWeight=0.50 PerfScore 4.62
+G_M6810_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A008 {rbx r13 r15}, byref, isz
        mov      edi, r12d
        test     edi, edi
-       jne      SHORT G_M6810_IG12
+       jne      SHORT G_M6810_IG13
        mov      rdi, qword ptr [(reloc)]      ; const ptr
        mov      rdi, gword ptr [rdi]
        ; gcrRegs +[rdi]
@@ -199,8 +195,9 @@ G_M6810_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A008 {rbx r13
        ; gcrRegs +[rsi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
+       ; gcr arg pop 0
                        ;; size=33 bbWeight=0.50 PerfScore 6.25
-G_M6810_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A008 {rbx r13 r15}, byref
+G_M6810_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A008 {rbx r13 r15}, byref, isz
        mov      rdi, r13
        ; byrRegs +[rdi]
        mov      esi, r12d
@@ -208,14 +205,15 @@ G_M6810_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A008 {rbx r13
        lea      rcx, [rbp-0x38]
        call     [<unknown method>]
        ; byrRegs -[rdi r13]
+       ; gcr arg pop 0
        cmp      dword ptr [rbp-0x38], r12d
-       jne      G_M6810_IG08
+       jne      SHORT G_M6810_IG09
        mov      ecx, dword ptr [rbp-0x38]
        mov      dword ptr [r15], ecx
        mov      ecx, dword ptr [rbp-0x30]
        mov      dword ptr [rbx], ecx
-                       ;; size=41 bbWeight=0.50 PerfScore 5.75
-G_M6810_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+                       ;; size=37 bbWeight=0.50 PerfScore 5.75
+G_M6810_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        ; byrRegs -[rbx r15]
        add      rsp, 24
        pop      rbx
@@ -226,14 +224,14 @@ G_M6810_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M6810_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, gcvars, byref
+G_M6810_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, gcvars, byref
        ; byrRegs +[rbx r15]
        mov      dword ptr [rbx], 0xFFFD
        xor      eax, eax
        mov      dword ptr [r15], eax
        mov      eax, 2
                        ;; size=16 bbWeight=0.50 PerfScore 1.25
-G_M6810_IG15:        ; bbWeight=0.50, epilog, nogc, extend
+G_M6810_IG16:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 24
        pop      rbx
        pop      r12
@@ -243,13 +241,8 @@ G_M6810_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M6810_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; byrRegs -[rbx r15]
-       call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
-       int3     
...

-24 (-1.62%) : 224454.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

@@ -9,25 +9,25 @@
 ; 0 inlinees with PGO data; 18 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T22] ( 18, 19   )     ref  ->  [rbp-0x68]  this class-hnd EH-live single-def <System.Runtime.Caching.ExpiresBucket>
+;  V00 this         [V00,T22] ( 18, 19   )     ref  ->  [rbp-0x58]  this class-hnd EH-live single-def <System.Runtime.Caching.ExpiresBucket>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.DateTime>
 ;  V02 arg2         [V02,T29] (  8,  7   )   ubyte  ->  [rbp-0x2C]  EH-live single-def
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V04 loc1         [V04,T01] ( 12,132   )     ref  ->  [rbp-0x70]  class-hnd <<unknown class>>
+;  V04 loc1         [V04,T06] (  8, 68   )     ref  ->  [rbp-0x60]  class-hnd <<unknown class>>
 ;  V05 loc2         [V05,T27] (  3, 12   )     int  ->  rdi        
-;  V06 loc3         [V06,T03] (  7,108   )     ref  ->  [rbp-0x78]  class-hnd <System.Runtime.Caching.MemoryCacheEntry>
+;  V06 loc3         [V06,T02] (  7,108   )     ref  ->  [rbp-0x68]  class-hnd <System.Runtime.Caching.MemoryCacheEntry>
 ;  V07 loc4         [V07,T14] (  5, 35   )     int  ->  [rbp-0x30]  do-not-enreg[Z] EH-live
 ;  V08 loc5         [V08,T33] (  2,  5   )     ref  ->  rbx         class-hnd exact single-def <System.Runtime.Caching.MemoryCacheStore>
 ;* V09 loc6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Runtime.Caching.ExpiresEntryRef>
 ;* V10 loc7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V11 loc8         [V11,T05] ( 13, 71   )     ref  ->  [rbp-0x80]  class-hnd exact EH-live spill-single-def <System.Runtime.Caching.ExpiresBucket>
+;  V11 loc8         [V11,T04] ( 13, 71   )     ref  ->  [rbp-0x70]  class-hnd exact EH-live spill-single-def <System.Runtime.Caching.ExpiresBucket>
 ;  V12 loc9         [V12    ] (  4,  4   )   ubyte  ->  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;  V13 loc10        [V13,T25] (  4, 13   )     int  ->  r13        
 ;* V14 loc11        [V14,T34] (  0,  0   )     int  ->  zero-ref    do-not-enreg[M] EH-live
 ;  V15 loc12        [V15,T07] (  7, 57   )     int  ->  r12        
 ;  V16 loc13        [V16,T08] (  4, 52   )     int  ->  [rbp-0x3C] 
 ;  V17 loc14        [V17,T00] (  6,148   )     int  ->  [rbp-0x40] 
-;  V18 loc15        [V18,T13] (  8, 35   )     ref  ->  [rbp-0x88]  class-hnd exact EH-live spill-single-def <System.Runtime.Caching.ExpiresBucket>
+;  V18 loc15        [V18,T13] (  8, 35   )     ref  ->  [rbp-0x78]  class-hnd exact EH-live spill-single-def <System.Runtime.Caching.ExpiresBucket>
 ;  V19 loc16        [V19    ] (  4,  3   )   ubyte  ->  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;# V20 OutArgs      [V20    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V21 tmp1         [V21    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.Caching.ExpiresEntryRef>
@@ -45,7 +45,7 @@
 ;  V33 tmp13        [V33,T30] (  6,  6   )     ref  ->  rbx         class-hnd exact "Inlining Arg" <System.Runtime.Caching.MemoryCacheStore>
 ;  V34 tmp14        [V34,T21] (  5, 20   )    long  ->  rbx         single-def "field V01._dateData (fldOffset=0x0)" P-INDEP
 ;  V35 tmp15        [V35,T15] (  5, 35   )     int  ->  [rbp-0x4C]  do-not-enreg[Z] EH-live "field V03._ref (fldOffset=0x0)" P-INDEP
-;  V36 tmp16        [V36,T06] ( 13, 71   )     int  ->  rsi         "field V09._ref (fldOffset=0x0)" P-INDEP
+;  V36 tmp16        [V36,T05] ( 13, 71   )     int  ->  rsi         "field V09._ref (fldOffset=0x0)" P-INDEP
 ;  V37 tmp17        [V37,T18] (  4, 24   )     int  ->  r15         "field V10._ref (fldOffset=0x0)" P-INDEP
 ;  V38 tmp18        [V38,T16] (  2, 32   )     int  ->  rdi         "field V21._ref (fldOffset=0x0)" P-INDEP
 ;  V39 tmp19        [V39,T17] (  2, 32   )     int  ->  rdi         "field V26._ref (fldOffset=0x0)" P-INDEP
@@ -55,10 +55,10 @@
 ;  V43 tmp23        [V43,T11] (  3, 48   )     ref  ->  rdi         "arr expr"
 ;  V44 PSPSym       [V44,T35] (  1,  1   )    long  ->  [rbp-0x90]  do-not-enreg[V] "PSPSym"
 ;  V45 cse0         [V45,T23] (  3, 18   )     ref  ->  r15         "CSE - moderate"
-;  V46 cse1         [V46,T24] (  4, 16   )   byref  ->  rdi         "CSE - moderate"
-;  V47 cse2         [V47,T02] (  6,128   )    long  ->  [rbp-0x58]  spill-single-def "CSE - aggressive"
-;  V48 cse3         [V48,T12] (  4, 44   )     int  ->  [rbp-0x5C]  spill-single-def "CSE - moderate"
-;  V49 cse4         [V49,T04] (  6, 72   )    long  ->  rcx         multi-def "CSE - aggressive"
+;  V46 cse1         [V46,T01] (  6,128   )   byref  ->  [rbp-0x80]  spill-single-def "CSE - aggressive"
+;  V47 cse2         [V47,T24] (  4, 16   )   byref  ->  rdi         "CSE - moderate"
+;  V48 cse3         [V48,T12] (  4, 44   )     int  ->  [rbp-0x50]  spill-single-def "CSE - aggressive"
+;  V49 cse4         [V49,T03] (  6, 72   )    long  ->  rax         multi-def "CSE - aggressive"
 ;  V50 cse5         [V50,T20] (  3, 24   )     int  ->  rax         "CSE - moderate"
 ;  V51 cse6         [V51,T28] (  3, 12   )     int  ->  rdx         "CSE - moderate"
 ;
@@ -77,7 +77,7 @@ G_M744_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, n
        mov      qword ptr [rbp-0x38], rax
        mov      qword ptr [rbp-0x48], rax
        mov      qword ptr [rbp-0x90], rsp
-       mov      gword ptr [rbp-0x68], rdi
+       mov      gword ptr [rbp-0x58], rdi
        ; GC ptr vars +{V00}
        mov      dword ptr [rbp-0x2C], edx
        mov      rbx, rsi
@@ -125,7 +125,7 @@ G_M744_IG06:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
        cmp      byte  ptr [rbp-0x2C], 0
        je       SHORT G_M744_IG07
        mov      rdi, qword ptr [(reloc)]      ; const ptr
-       mov      rax, gword ptr [rbp-0x68]
+       mov      rax, gword ptr [rbp-0x58]
        ; gcrRegs +[rax]
        mov      rdi, gword ptr [rax+rdi]
        ; gcrRegs +[rdi]
@@ -142,23 +142,23 @@ G_M744_IG06:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
                        ;; size=53 bbWeight=1 PerfScore 21.50
 G_M744_IG07:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r14]
-       mov      rax, gword ptr [rbp-0x68]
+       mov      rax, gword ptr [rbp-0x58]
        ; gcrRegs +[rax]
        mov      rdi, rax
        ; gcrRegs +[rdi]
-       mov      gword ptr [rbp-0x80], rdi
+       mov      gword ptr [rbp-0x70], rdi
        ; GC ptr vars +{V11}
        xor      esi, esi
        mov      dword ptr [rbp-0x38], esi
                        ;; size=16 bbWeight=1 PerfScore 3.50
-G_M744_IG08:        ; bbWeight=1, gcVars=0000000000400020 {V00 V11}, gcrefRegs=8080 {rdi r15}, byrefRegs=0000 {}, gcvars, byref
+G_M744_IG08:        ; bbWeight=1, gcVars=0000000000400010 {V00 V11}, gcrefRegs=8080 {rdi r15}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
        lea      rsi, [rbp-0x38]
        call     [<unknown method>]
        ; gcrRegs -[rdi]
        ; gcr arg pop 0
        mov      rdi, qword ptr [(reloc)]      ; const ptr
-       mov      r14, gword ptr [rbp-0x80]
+       mov      r14, gword ptr [rbp-0x70]
        ; gcrRegs +[r14]
        cmp      dword ptr [r14+rdi], 0
        je       G_M744_IG21
@@ -202,7 +202,7 @@ G_M744_IG09:        ; bbWeight=8, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, b
 G_M744_IG10:        ; bbWeight=4, gcrefRegs=C001 {rax r14 r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdi]
        mov      ecx, dword ptr [rax+0x08]
-       mov      dword ptr [rbp-0x5C], ecx
+       mov      dword ptr [rbp-0x50], ecx
        test     ecx, ecx
        je       G_M744_IG18
        mov      edi, dword ptr [rax+0x14]
@@ -216,56 +216,59 @@ G_M744_IG10:        ; bbWeight=4, gcrefRegs=C001 {rax r14 r15}, byrefRegs=0000 {
                        ;; size=38 bbWeight=4 PerfScore 38.00
 G_M744_IG11:        ; bbWeight=32, gcrefRegs=C001 {rax r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      dword ptr [rbp-0x40], r8d
-       mov      r9d, r8d
-       shl      r9, 4
-       mov      qword ptr [rbp-0x58], r9
-       mov      r10, gword ptr [rax+r9+0x18]
+       mov      edi, r8d
+       shl      rdi, 4
+       mov      gword ptr [rbp-0x60], rax
+       ; GC ptr vars +{V04}
+       lea      r9, bword ptr [rax+rdi+0x10]
+       ; byrRegs +[r9]
+       mov      bword ptr [rbp-0x80], r9
+       ; GC ptr vars +{V46}
+       mov      r10, gword ptr [r9+0x08]
        ; gcrRegs +[r10]
-       mov      gword ptr [rbp-0x78], r10
+       mov      gword ptr [rbp-0x68], r10
        ; GC ptr vars +{V06}
        test     r10, r10
        je       SHORT G_M744_IG14
-                       ;; size=29 bbWeight=32 PerfScore 224.00
-G_M744_IG12:        ; bbWeight=16, gcVars=0000000000400028 {V00 V06 V11}, gcrefRegs=C001 {rax r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[r10]
-       mov      gword ptr [rbp-0x70], rax
-       ; GC ptr vars +{V04}
-       mov      rdi, qword ptr [rax+r9+0x10]
+                       ;; size=37 bbWeight=32 PerfScore 288.00
+G_M744_IG12:        ; bbWeight=16, gcVars=0000000000400056 {V00 V04 V06 V11 V46}, gcrefRegs=C000 {r14 r15}, byrefRegs=0200 {r9}, gcvars, byref, isz
+       ; gcrRegs -[rax r10]
+       mov      rdi, qword ptr [r9]
        mov      rsi, rbx
        call     [<unknown method>]
-       ; gcrRegs -[rax]
+       ; byrRegs -[r9]
        ; gcr arg pop 0
        test     eax, eax
        je       SHORT G_M744_IG19
-       mov      rax, gword ptr [rbp-0x70]
-       ; gcrRegs +[rax]
-       mov      rcx, qword ptr [rbp-0x58]
-       mov      rsi, qword ptr [rax+rcx+0x10]
+       mov      rax, bword ptr [rbp-0x80]
+       ; byrRegs +[rax]
+       mov      rsi, qword ptr [rax]
        mov      rdi, r14
        ; gcrRegs +[rdi]
-       ; GC ptr vars -{V06}
+       ; GC ptr vars -{V06 V46}
        call     [System.Runtime.Caching.ExpiresBucket:AddCount(System.DateTime):this]
-       ; gcrRegs -[rax rdi]
+       ; gcrRegs -[rdi]
+       ; byrRegs -[rax]
        ; gcr arg pop 0
-                       ;; size=44 bbWeight=16 PerfScore 236.00
+                       ;; size=32 bbWeight=16 PerfScore 204.00
 G_M744_IG13:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      edx, dword ptr [rbp-0x3C]
        dec      edx
        mov      dword ptr [rbp-0x3C], edx
-       mov      rax, gword ptr [rbp-0x70]
-       ; gcrRegs +[rax]
        je       SHORT G_M744_IG15
-                       ;; size=14 bbWeight=16 PerfScore 68.00
-G_M744_IG14:        ; bbWeight=32, gcVars=0000000000400020 {V00 V11}, gcrefRegs=C001 {rax r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; GC ptr vars -{V04}
+                       ;; size=10 bbWeight=16 PerfScore 52.00
+G_M744_IG14:        ; bbWeight=32, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      r8d, dword ptr [rbp-0x40]
        inc      r8d
-       mov      ecx, dword ptr [rbp-0x5C]
+       mov      ecx, dword ptr [rbp-0x50]
        cmp      ecx, r8d
+       mov      rax, gword ptr [rbp-0x60]
+       ; gcrRegs +[rax]
        jg       SHORT G_M744_IG11
-                       ;; size=15 bbWeight=32 PerfScore 112.00
-G_M744_IG15:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref, isz
+                       ;; size=19 bbWeight=32 PerfScore 144.00
+G_M744_IG15:        ; bbWeight=4, gcVars=0000000000400010 {V00 V11}, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax]
+       ; GC ptr vars -{V04}
        dec      r13d
        je       SHORT G_M744_IG17
                        ;; size=5 bbWeight=4 PerfScore 5.00
@@ -291,42 +294,43 @@ G_M744_IG18:        ; bbWeight=0, gcVars=0000000000400000 {V00}, gcrefRegs=0000
        call     [CORINFO_HELP_RNGCHKFAIL]
        ; gcr arg pop 0
                        ;; size=6 bbWeight=0 PerfScore 0.00
-G_M744_IG19:        ; bbWeight=16, gcVars=000000000040002A {V00 V04 V06 V11}, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, gcvars, byref
+G_M744_IG19:        ; bbWeight=16, gcVars=0000000000400056 {V00 V04 V06 V11 V46}, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[r14-r15]
-       ; GC ptr vars +{V04 V05 V06 V11}
+       ; GC ptr vars +{V02 V04 V06 V11 V46}
        mov      rdi, qword ptr [(reloc)]      ; const ptr
-       mov      rax, gword ptr [rbp-0x78]
+       mov      rax, gword ptr [rbp-0x68]
        ; gcrRegs +[rax]
        mov      byte  ptr [rax+rdi], 255
        mov      edi, dword ptr [r15+0x08]
        mov      rcx, qword ptr [(reloc)]      ; const ptr
        mov      dword ptr [rax+rcx], edi
-       mov      rax, gword ptr [rbp-0x70]
-       mov      rdi, qword ptr [rbp-0x58]
-       mov      dword ptr [rax+rdi+0x14], 1
-       mov      ecx, dword ptr [rbp-0x4C]
-       mov      dword ptr [rax+rdi+0x10], ecx
+       mov      rdi, bword ptr [rbp-0x80]
+       ; byrRegs +[rdi]
+       mov      dword ptr [rdi+0x04], 1
+       mov      eax, dword ptr [rbp-0x4C]
+       ; gcrRegs -[rax]
+       mov      dword ptr [rdi], eax
        mov      edi, r12d
+       ; byrRegs -[rdi]
        shl      edi, 8
        mov      r8d, dword ptr [rbp-0x40]
-       movzx    rcx, r8b
-       or       edi, ecx
+       movzx    rax, r8b
+       or       edi, eax
        mov      dword ptr [rbp-0x4C], edi
        mov      edi, dword ptr [rbp-0x30]
        inc      edi
        mov      dword ptr [rbp-0x30], edi
-       mov      rcx, qword ptr [(reloc)]      ; const ptr
-       inc      dword ptr [r14+rcx]
+       mov      rax, qword ptr [(reloc)]      ; const ptr
+       inc      dword ptr [r14+rax]
        mov      dword ptr [rbp-0x40], r8d
-       mov      gword ptr [rbp-0x70], rax
        jmp      G_M744_IG13
-                       ;; size=103 bbWeight=16 PerfScore 456.00
+                       ;; size=92 bbWeight=16 PerfScore 424.00
 G_M744_IG20:        ; bbWeight=1, gcVars=0000000000400000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax r14-r15]
-       ; GC ptr vars -{V04 V05 V06 V11}
+       ; gcrRegs -[r14-r15]
...

+3 (+0.61%) : 219795.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

@@ -4,44 +4,43 @@
 ; ReadyToRun compilation
 ; optimized code
 ; rbp based frame
-; fully interruptible
+; partially interruptible
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T07] (  3,  3   )   byref  ->  rdi         this single-def
-;  V01 arg1         [V01,T05] (  4,  4   )  struct (16) [rbp-0x48]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
+;  V00 this         [V00,T04] (  3,  3   )   byref  ->  rdi         this single-def
+;  V01 arg1         [V01,T02] (  4,  4   )  struct (16) [rbp-0x48]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op <System.Span`1[int]>
-;  V03 loc1         [V03,T01] (  9, 12   )     int  ->  r13        
+;  V03 loc1         [V03,T05] (  9,  4.75)     int  ->  r13        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[int]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [rbp-0x38]  do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
-;  V07 tmp2         [V07    ] (  4,  8   )  struct (16) [rbp-0x58]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
-;  V08 tmp3         [V08,T06] (  3,  6   )  struct (16) [rbp-0x68]  do-not-enreg[SAR] multireg-arg multireg-ret "Return value temp for multireg return" <System.Decimal>
-;  V09 tmp4         [V09,T08] (  3,  3   )     ref  ->  rax         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V10 tmp5         [V10,T11] (  2,  2   )     int  ->  rcx         "Strict ordering of exceptions for Array store"
+;  V07 tmp2         [V07    ] (  4,  8   )  struct (16) [rbp-0x58]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
+;  V08 tmp3         [V08,T03] (  3,  6   )  struct (16) [rbp-0x68]  do-not-enreg[SAR] multireg-arg multireg-ret "Return value temp for multireg return" <System.Decimal>
+;  V09 tmp4         [V09,T07] (  3,  3   )     ref  ->  rax         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V10 tmp5         [V10,T10] (  2,  2   )     int  ->  rcx         "Strict ordering of exceptions for Array store"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
-;  V13 tmp8         [V13,T16] (  2,  1   )     int  ->  rax        
-;  V14 tmp9         [V14,T09] (  3,  3   )     ref  ->  rax         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V15 tmp10        [V15,T12] (  2,  2   )     int  ->  rcx         "Strict ordering of exceptions for Array store"
-;  V16 tmp11        [V16,T10] (  3,  3   )     ref  ->  rax         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V17 tmp12        [V17,T13] (  2,  2   )     int  ->  rcx         "Strict ordering of exceptions for Array store"
-;  V18 tmp13        [V18,T14] (  2,  2   )     int  ->  rdi         "impAppendStmt"
+;  V13 tmp8         [V13,T15] (  2,  1   )     int  ->  rax        
+;  V14 tmp9         [V14,T08] (  3,  3   )     ref  ->  rax         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V15 tmp10        [V15,T11] (  2,  2   )     int  ->  rcx         "Strict ordering of exceptions for Array store"
+;  V16 tmp11        [V16,T09] (  3,  3   )     ref  ->  rax         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V17 tmp12        [V17,T12] (  2,  2   )     int  ->  rcx         "Strict ordering of exceptions for Array store"
+;  V18 tmp13        [V18,T13] (  2,  2   )     int  ->  rdi         "impAppendStmt"
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    ptr
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp18        [V23,T17] (  2,  1   )     int  ->  rax        
-;  V24 tmp19        [V24,T02] (  9,  9   )   byref  ->  r15         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V25 tmp20        [V25,T03] (  7,  8   )     int  ->  r14         "field V02._length (fldOffset=0x8)" P-INDEP
+;  V23 tmp18        [V23,T16] (  2,  1   )     int  ->  rax        
+;  V24 tmp19        [V24,T00] ( 11,  6.50)   byref  ->  r15         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V25 tmp20        [V25,T06] (  5,  3.50)     int  ->  r14         "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V26 tmp21        [V26    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V27 tmp22        [V27    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V28 tmp23        [V28    ] (  3,  5   )   byref  ->  [rbp-0x58]  do-not-enreg[X] addr-exposed ptr "field V07._reference (fldOffset=0x0)" P-DEP
 ;  V29 tmp24        [V29    ] (  3,  5   )     int  ->  [rbp-0x50]  do-not-enreg[X] addr-exposed ptr "field V07._length (fldOffset=0x8)" P-DEP
 ;  V30 GsCookie     [V30    ] (  1,  1   )    long  ->  [rbp-0x28]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V31 tmp26        [V31,T04] ( 11,  6   )   byref  ->  rbx         single-def "shadowVar"
-;  V32 cse0         [V32,T15] (  3,  1.50)     int  ->  rdi         "CSE - moderate"
-;  V33 cse1         [V33,T00] (  4, 14   )     int  ->  rax         "CSE - aggressive"
+;  V31 tmp26        [V31,T01] ( 11,  6   )   byref  ->  rbx         single-def "shadowVar"
+;  V32 cse0         [V32,T14] (  3,  1.50)     int  ->  rdi         "CSE - moderate"
 ;
 ; Lcl frame size = 80
 
@@ -53,13 +52,11 @@ G_M46478_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rbx
        sub      rsp, 80
        lea      rbp, [rsp+0x70]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x58], rax
        mov      rax, qword ptr [(reloc)]
        mov      qword ptr [rbp-0x28], rax
        mov      qword ptr [rbp-0x48], rsi
        mov      qword ptr [rbp-0x40], rdx
-                       ;; size=42 bbWeight=1 PerfScore 12.00
+                       ;; size=36 bbWeight=1 PerfScore 10.75
 G_M46478_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
        ; byrRegs +[rdi]
        mov      rbx, rdi
@@ -71,14 +68,12 @@ G_M46478_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byr
        lea      rsi, [rbp-0x38]
        mov      edx, 4
        call     [<unknown method>]
-       ; gcr arg pop 0
        mov      r15, bword ptr [rbp-0x58]
        ; byrRegs +[r15]
        mov      r14d, dword ptr [rbp-0x50]
        mov      rdi, qword ptr [rbp-0x48]
        mov      rsi, qword ptr [rbp-0x40]
        call     [<unknown method>]
-       ; gcr arg pop 0
        mov      qword ptr [rbp-0x68], rax
        mov      qword ptr [rbp-0x60], rdx
        mov      rdi, qword ptr [rbp-0x68]
@@ -88,32 +83,49 @@ G_M46478_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byr
        mov      ecx, r14d
        call     [<unknown method>]
        ; byrRegs -[rdx]
-       ; gcr arg pop 0
        mov      r13d, 3
        jmp      SHORT G_M46478_IG04
                        ;; size=87 bbWeight=1 PerfScore 22.58
-G_M46478_IG03:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
-       mov      r13d, eax
-       test     r13d, r13d
-       jle      SHORT G_M46478_IG05
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M46478_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
-       lea      eax, [r13-0x01]
-       cmp      eax, r14d
-       jae      G_M46478_IG17
-       mov      ecx, eax
-       cmp      dword ptr [r15+4*rcx], 0
+G_M46478_IG03:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       mov      r13d, 2
+       jmp      SHORT G_M46478_IG07
+                       ;; size=8 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       cmp      r14d, 2
+       jbe      G_M46478_IG23
+       cmp      dword ptr [r15+0x08], 0
        je       SHORT G_M46478_IG03
-                       ;; size=22 bbWeight=4 PerfScore 24.00
-G_M46478_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+                       ;; size=17 bbWeight=0.50 PerfScore 2.62
+G_M46478_IG05:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       jmp      SHORT G_M46478_IG11
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M46478_IG06:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       mov      r13d, 1
+       jmp      SHORT G_M46478_IG10
+                       ;; size=8 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       cmp      dword ptr [r15+0x04], 0
+       je       SHORT G_M46478_IG06
+                       ;; size=7 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG08:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       jmp      SHORT G_M46478_IG11
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M46478_IG09:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       xor      r13d, r13d
+       jmp      SHORT G_M46478_IG11
+                       ;; size=5 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       cmp      dword ptr [r15], 0
+       je       SHORT G_M46478_IG09
+                       ;; size=6 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
        test     r13d, r13d
-       jne      SHORT G_M46478_IG09
+       jne      SHORT G_M46478_IG15
                        ;; size=5 bbWeight=1 PerfScore 1.25
-G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        ; byrRegs -[r15]
        call     [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
        ; byrRegs +[rax]
-       ; gcr arg pop 0
        mov      rsi, gword ptr [rax+0x50]
        ; gcrRegs +[rsi]
        add      rsi, 8
@@ -128,15 +140,14 @@ G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
        ; byrRegs -[rdi]
        mov      rdi, qword ptr [rdi]
        cmp      qword ptr [rbp-0x28], rdi
-       je       SHORT G_M46478_IG07
+       je       SHORT G_M46478_IG13
        call     [CORINFO_HELP_FAIL_FAST]
        ; byrRegs -[rsi]
-       ; gcr arg pop 0
                        ;; size=47 bbWeight=0.50 PerfScore 9.00
-G_M46478_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46478_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M46478_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M46478_IG14:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 80
        pop      rbx
        pop      r13
@@ -145,17 +156,17 @@ G_M46478_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M46478_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, gcvars, byref, isz
+G_M46478_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, gcvars, byref, isz
        ; byrRegs +[rbx r15]
        cmp      r13d, 1
-       jne      SHORT G_M46478_IG12
+       jne      SHORT G_M46478_IG18
        mov      edi, dword ptr [r15]
        test     edi, edi
-       jle      SHORT G_M46478_IG12
+       jle      SHORT G_M46478_IG18
        mov      dword ptr [rbx+0x08], edi
        mov      edi, dword ptr [rbx+0x08]
        cmp      r14d, 3
-       jbe      G_M46478_IG17
+       jbe      G_M46478_IG23
        mov      eax, -1
        mov      ecx, 1
        test     dword ptr [r15+0x0C], 0xD1FFAB1E
@@ -169,15 +180,14 @@ G_M46478_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        ; gcrRegs -[rdi]
        mov      rdi, qword ptr [rdi]
        cmp      qword ptr [rbp-0x28], rdi
-       je       SHORT G_M46478_IG10
+       je       SHORT G_M46478_IG16
        call     [CORINFO_HELP_FAIL_FAST]
        ; byrRegs -[rbx r15]
-       ; gcr arg pop 0
                        ;; size=83 bbWeight=0.50 PerfScore 12.62
-G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M46478_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+G_M46478_IG17:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 80
        pop      rbx
        pop      r13
@@ -186,12 +196,11 @@ G_M46478_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M46478_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, gcvars, byref, isz
+G_M46478_IG18:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, gcvars, byref, isz
        ; byrRegs +[rbx r15]
        movsxd   rdi, r13d
        call     [CORINFO_HELP_READYTORUN_NEWARR_1]
        ; gcrRegs +[rax]
-       ; gcr arg pop 0
        mov      rsi, rax
        ; gcrRegs +[rsi]
        mov      rdi, rbx
@@ -203,35 +212,31 @@ G_M46478_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        ; gcrRegs +[rax]
        mov      ecx, dword ptr [r15]
        cmp      dword ptr [rax+0x08], 0
-       jbe      G_M46478_IG17
+       jbe      SHORT G_M46478_IG23
        mov      dword ptr [rax+0x10], ecx
        cmp      r13d, 1
-       jle      SHORT G_M46478_IG13
+       jle      SHORT G_M46478_IG19
        mov      rax, gword ptr [rbx]
-       cmp      r14d, 1
-       jbe      SHORT G_M46478_IG17
        mov      ecx, dword ptr [r15+0x04]
        cmp      dword ptr [rax+0x08], 1
...

libraries.pmi.linux.x64.checked.mch

-13 (-1.09%) : 82114.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)

@@ -10,70 +10,69 @@
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <ILCompiler.DevirtualizationManager>
 ;  V01 arg1         [V01,T00] ( 21, 26   )     ref  ->  rbx         class-hnd <Internal.TypeSystem.MethodDesc>
-;  V02 arg2         [V02,T16] ( 14,  8   )     ref  ->  r15         class-hnd single-def <Internal.TypeSystem.DefType>
-;  V03 arg3         [V03,T19] (  8,  5.50)   byref  ->  r14         single-def
+;  V02 arg2         [V02,T17] ( 14,  8   )     ref  ->  r15         class-hnd single-def <Internal.TypeSystem.DefType>
+;  V03 arg3         [V03,T20] (  8,  5.50)   byref  ->  r14         single-def
 ;  V04 loc0         [V04,T22] ( 11,  5.50)     ref  ->  r12         class-hnd <Internal.TypeSystem.MethodDesc>
 ;  V05 loc1         [V05,T23] (  3,  5   )     ref  ->  r12         class-hnd single-def <Internal.TypeSystem.DefType[]>
 ;  V06 loc2         [V06,T21] (  4,  6.50)     int  ->  [rbp-0x2C] 
-;  V07 loc3         [V07,T20] (  4,  7   )     ref  ->  [rbp-0x58]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
+;  V07 loc3         [V07,T16] (  4, 10.50)     ref  ->  [rbp-0x50]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
 ;  V08 loc4         [V08,T07] (  5, 16.50)     int  ->  [rbp-0x30] 
-;  V09 loc5         [V09,T04] (  7, 20   )     ref  ->  [rbp-0x60]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
-;  V10 loc6         [V10,T28] (  6,  4.50)     ref  ->  [rbp-0x68]  class-hnd <Internal.TypeSystem.MethodDesc>
-;  V11 loc7         [V11,T24] (  3,  5   )     ref  ->  [rbp-0x70]  class-hnd spill-single-def <Internal.TypeSystem.DefType[]>
+;  V09 loc5         [V09,T04] (  7, 20   )     ref  ->  [rbp-0x58]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
+;  V10 loc6         [V10,T28] (  6,  4.50)     ref  ->  [rbp-0x60]  class-hnd <Internal.TypeSystem.MethodDesc>
+;  V11 loc7         [V11,T24] (  3,  5   )     ref  ->  [rbp-0x68]  class-hnd spill-single-def <Internal.TypeSystem.DefType[]>
 ;  V12 loc8         [V12,T08] (  5, 16.50)     int  ->  [rbp-0x34] 
-;  V13 loc9         [V13,T05] (  6, 20   )     ref  ->  [rbp-0x78]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
+;  V13 loc9         [V13,T05] (  6, 20   )     ref  ->  [rbp-0x70]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
 ;  V14 loc10        [V14    ] (  4,  2   )     ref  ->  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <Internal.TypeSystem.MethodDesc>
-;  V15 loc11        [V15,T46] (  3,  1.50)     int  ->  rax         single-def
+;  V15 loc11        [V15,T45] (  3,  1.50)     int  ->  rax         single-def
 ;  V16 loc12        [V16,T03] ( 10, 20   )     ref  ->  r12         class-hnd <Internal.TypeSystem.TypeDesc>
 ;* V17 loc13        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Internal.TypeSystem.MethodDesc>
 ;* V18 loc14        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Internal.TypeSystem.MethodDesc>
 ;# V19 OutArgs      [V19    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V20 tmp1         [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
-;  V21 tmp2         [V21,T34] (  3,  2.25)     ref  ->  rax         single-def "CASTCLASS eval op1"
-;  V22 tmp3         [V22,T47] (  3,  1.25)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;  V23 tmp4         [V23,T31] (  5,  3.75)     ref  ->  registers   class-hnd "spilling QMark2" <Internal.TypeSystem.DefType>
+;  V21 tmp2         [V21,T33] (  3,  2.25)     ref  ->  rax         single-def "CASTCLASS eval op1"
+;  V22 tmp3         [V22,T46] (  3,  1.25)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V23 tmp4         [V23,T30] (  5,  3.75)     ref  ->  registers   class-hnd "spilling QMark2" <Internal.TypeSystem.DefType>
 ;  V24 tmp5         [V24,T25] (  3,  5   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
-;  V25 tmp6         [V25,T35] (  3,  2   )     int  ->  rcx         "Inline return value spill temp"
-;  V26 tmp7         [V26,T33] (  3,  2.50)     int  ->  rcx         single-def "Inline stloc first use temp"
-;  V27 tmp8         [V27,T42] (  3,  1.50)     ref  ->  r12         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
+;  V25 tmp6         [V25,T34] (  3,  2   )     int  ->  rcx         "Inline return value spill temp"
+;  V26 tmp7         [V26,T32] (  3,  2.50)     int  ->  rcx         single-def "Inline stloc first use temp"
+;  V27 tmp8         [V27,T41] (  3,  1.50)     ref  ->  r12         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
 ;* V28 tmp9         [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V29 tmp10        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
-;  V30 tmp11        [V30,T17] (  5, 10   )     ref  ->  [rbp-0x80]  class-hnd "Inline stloc first use temp" <Internal.TypeSystem.TypeDesc>
-;  V31 tmp12        [V31,T30] (  2,  4   )     ref  ->  rcx         class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
+;  V30 tmp11        [V30,T18] (  5, 10   )     ref  ->  [rbp-0x78]  class-hnd "Inline stloc first use temp" <Internal.TypeSystem.TypeDesc>
+;  V31 tmp12        [V31,T29] (  2,  4   )     ref  ->  rcx         class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
 ;* V32 tmp13        [V32    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V33 tmp14        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <<unknown class>>
 ;* V34 tmp15        [V34    ] (  0,  0   )     int  ->  zero-ref   
 ;* V35 tmp16        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc>
-;  V36 tmp17        [V36,T43] (  3,  1.50)     ref  ->  registers   class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
-;  V37 tmp18        [V37,T01] (  3, 24   )     ref  ->  [rbp-0x88]  class-hnd spill-single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
+;  V36 tmp17        [V36,T42] (  3,  1.50)     ref  ->  registers   class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
+;  V37 tmp18        [V37,T01] (  3, 24   )     ref  ->  [rbp-0x80]  class-hnd spill-single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V38 tmp19        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V39 tmp20        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V40 tmp21        [V40    ] (  0,  0   )     int  ->  zero-ref   
-;  V41 tmp22        [V41,T02] (  3, 24   )     ref  ->  [rbp-0x90]  class-hnd spill-single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
+;  V41 tmp22        [V41,T02] (  3, 24   )     ref  ->  [rbp-0x88]  class-hnd spill-single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V42 tmp23        [V42    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V43 tmp24        [V43    ] (  0,  0   )     int  ->  zero-ref   
-;  V44 tmp25        [V44,T36] (  2,  2   )     ref  ->  rax         single-def "Single return block return value"
-;  V45 tmp26        [V45,T09] (  2, 16   )     ref  ->  [rbp-0x98]  spill-single-def "argument with side effect"
+;  V44 tmp25        [V44,T35] (  2,  2   )     ref  ->  rax         single-def "Single return block return value"
+;  V45 tmp26        [V45,T09] (  2, 16   )     ref  ->  [rbp-0x90]  spill-single-def "argument with side effect"
 ;  V46 tmp27        [V46,T10] (  2, 16   )     ref  ->  rsi         "argument with side effect"
-;  V47 tmp28        [V47,T37] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V48 tmp29        [V48,T38] (  2,  2   )     ref  ->  [rbp-0xA0]  spill-single-def "argument with side effect"
-;  V49 tmp30        [V49,T39] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
-;  V50 tmp31        [V50,T32] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
-;  V51 tmp32        [V51,T40] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V52 tmp33        [V52,T11] (  2, 16   )     ref  ->  [rbp-0xA8]  spill-single-def "argument with side effect"
+;  V47 tmp28        [V47,T36] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V48 tmp29        [V48,T37] (  2,  2   )     ref  ->  [rbp-0x98]  spill-single-def "argument with side effect"
+;  V49 tmp30        [V49,T38] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
+;  V50 tmp31        [V50,T31] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
+;  V51 tmp32        [V51,T39] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V52 tmp33        [V52,T11] (  2, 16   )     ref  ->  [rbp-0xA0]  spill-single-def "argument with side effect"
 ;  V53 tmp34        [V53,T12] (  2, 16   )     ref  ->  rsi         "argument with side effect"
 ;* V54 tmp35        [V54    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V55 tmp36        [V55,T41] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
+;  V55 tmp36        [V55,T40] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
 ;  V56 tmp37        [V56,T13] (  2, 16   )     ref  ->  rsi         "argument with side effect"
-;  V57 tmp38        [V57,T14] (  2, 16   )     ref  ->  [rbp-0xB0]  spill-single-def "argument with side effect"
+;  V57 tmp38        [V57,T14] (  2, 16   )     ref  ->  [rbp-0xA8]  spill-single-def "argument with side effect"
 ;  V58 tmp39        [V58,T15] (  2, 16   )     ref  ->  rsi         "argument with side effect"
-;  V59 tmp40        [V59,T18] (  2,  8   )     ref  ->  rsi         "argument with side effect"
+;  V59 tmp40        [V59,T19] (  2,  8   )     ref  ->  rsi         "argument with side effect"
 ;  V60 cse0         [V60,T06] ( 10, 18   )    long  ->  r13         "CSE - aggressive"
-;  V61 cse1         [V61,T29] (  2,  4.50)    long  ->  [rbp-0x48]  spill-single-def hoist "CSE - moderate"
-;  V62 cse2         [V62,T44] (  3,  1.50)     ref  ->  r12         "CSE - conservative"
-;  V63 cse3         [V63,T45] (  3,  1.50)     ref  ->  rcx         "CSE - conservative"
-;  V64 cse4         [V64,T26] (  3,  5   )     int  ->  [rbp-0x4C]  spill-single-def "CSE - moderate"
-;  V65 cse5         [V65,T27] (  3,  5   )     int  ->  [rbp-0x50]  spill-single-def "CSE - moderate"
+;  V61 cse1         [V61,T43] (  3,  1.50)     ref  ->  r12         "CSE - conservative"
+;  V62 cse2         [V62,T44] (  3,  1.50)     ref  ->  rcx         "CSE - conservative"
+;  V63 cse3         [V63,T26] (  3,  5   )     int  ->  [rbp-0x44]  spill-single-def "CSE - moderate"
+;  V64 cse4         [V64,T27] (  3,  5   )     int  ->  [rbp-0x48]  spill-single-def "CSE - moderate"
 ;
 ; Lcl frame size = 136
 
@@ -199,32 +198,31 @@ G_M48343_IG11:        ; bbWeight=0.50, gcrefRegs=900A {rcx rbx r12 r15}, byrefRe
        ; gcrRegs -[rax]
        mov      rax, rcx
        ; gcrRegs +[rax]
-       mov      gword ptr [rbp-0x58], rax
+       mov      gword ptr [rbp-0x50], rax
        ; GC ptr vars +{V07}
        xor      ecx, ecx
        ; gcrRegs -[rcx]
        mov      edx, dword ptr [r12+0x08]
-       mov      dword ptr [rbp-0x4C], edx
+       mov      dword ptr [rbp-0x44], edx
        test     edx, edx
        jle      G_M48343_IG16
-       mov      rdi, qword ptr [rax]
-       mov      rsi, qword ptr [rdi+0x58]
-       mov      qword ptr [rbp-0x48], rsi
-                       ;; size=36 bbWeight=0.50 PerfScore 5.38
-G_M48343_IG12:        ; bbWeight=4, gcVars=0000000000100000 {V07}, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=4000 {r14}, gcvars, byref, isz
+                       ;; size=25 bbWeight=0.50 PerfScore 2.88
+G_M48343_IG12:        ; bbWeight=4, gcVars=0000000000010000 {V07}, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=4000 {r14}, gcvars, byref, isz
        mov      dword ptr [rbp-0x30], ecx
        mov      edi, ecx
-       mov      r8, gword ptr [r12+8*rdi+0x10]
-       ; gcrRegs +[r8]
-       mov      gword ptr [rbp-0x60], r8
+       mov      rsi, gword ptr [r12+8*rdi+0x10]
+       ; gcrRegs +[rsi]
+       mov      gword ptr [rbp-0x58], rsi
        ; GC ptr vars +{V09}
        mov      rdi, rax
        ; gcrRegs +[rdi]
-       call     [rsi+0x20]<unknown method>
-       ; gcrRegs -[rdi r8]
-       mov      gword ptr [rbp-0xA8], rax
+       mov      r8, qword ptr [rax]
+       mov      r8, qword ptr [r8+0x58]
+       call     [r8+0x20]<unknown method>
+       ; gcrRegs -[rsi rdi]
+       mov      gword ptr [rbp-0xA0], rax
        ; GC ptr vars +{V52}
-       mov      rdi, gword ptr [rbp-0x60]
+       mov      rdi, gword ptr [rbp-0x58]
        ; gcrRegs +[rdi]
        mov      rcx, qword ptr [rdi]
        mov      rcx, qword ptr [rcx+0x58]
@@ -232,29 +230,29 @@ G_M48343_IG12:        ; bbWeight=4, gcVars=0000000000100000 {V07}, gcrefRegs=900
        ; gcrRegs -[rdi]
        mov      rsi, rax
        ; gcrRegs +[rsi]
-       mov      rdi, gword ptr [rbp-0xA8]
+       mov      rdi, gword ptr [rbp-0xA0]
        ; gcrRegs +[rdi]
        ; GC ptr vars -{V52}
        call     [Internal.TypeSystem.TypeDesc:op_Equality(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc):ubyte]
        ; gcrRegs -[rax rsi rdi]
        test     eax, eax
        je       SHORT G_M48343_IG15
-                       ;; size=61 bbWeight=4 PerfScore 88.00
+                       ;; size=69 bbWeight=4 PerfScore 104.00
 G_M48343_IG13:        ; bbWeight=2, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=4000 {r14}, byref, isz
-       mov      rax, gword ptr [rbp-0x60]
+       mov      rax, gword ptr [rbp-0x58]
        ; gcrRegs +[rax]
        mov      rcx, gword ptr [rax+0x08]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x80], rcx
+       mov      gword ptr [rbp-0x78], rcx
        ; GC ptr vars +{V30}
        mov      edi, 1
        call     [<unknown method>]
        ; gcrRegs -[rax rcx]
-       mov      rax, gword ptr [rbp-0x80]
+       mov      rax, gword ptr [rbp-0x78]
        ; gcrRegs +[rax]
        test     rax, rax
        jne      SHORT G_M48343_IG14
-       mov      rdi, gword ptr [rbp-0x60]
+       mov      rdi, gword ptr [rbp-0x58]
        ; gcrRegs +[rdi]
        xor      esi, esi
        mov      rax, qword ptr [rdi]
@@ -263,9 +261,9 @@ G_M48343_IG13:        ; bbWeight=2, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=4000
        ; GC ptr vars -{V30}
        call     [rax+0x28]<unknown method>
        ; gcrRegs -[rdi] +[rax]
-       mov      rdi, gword ptr [rbp-0x60]
+       mov      rdi, gword ptr [rbp-0x58]
        ; gcrRegs +[rdi]
-       mov      gword ptr [rbp-0x80], rax
+       mov      gword ptr [rbp-0x78], rax
        ; GC ptr vars +{V30}
        mov      rdx, rax
        ; gcrRegs +[rdx]
@@ -273,14 +271,14 @@ G_M48343_IG13:        ; bbWeight=2, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=4000
        ; GC ptr vars -{V09}
        call     [Internal.TypeSystem.TypeDesc:SetCachedCanonValue(int,Internal.TypeSystem.TypeDesc):this]
        ; gcrRegs -[rax rdx rdi]
-       mov      rax, gword ptr [rbp-0x80]
+       mov      rax, gword ptr [rbp-0x78]
        ; gcrRegs +[rax]
                        ;; size=71 bbWeight=2 PerfScore 48.50
-G_M48343_IG14:        ; bbWeight=2, gcVars=0000000000100000 {V07}, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=4000 {r14}, gcvars, byref, isz
+G_M48343_IG14:        ; bbWeight=2, gcVars=0000000000010000 {V07}, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=4000 {r14}, gcvars, byref, isz
        ; GC ptr vars -{V30}
        mov      rdi, rax
        ; gcrRegs +[rdi]
-       mov      rsi, gword ptr [rbp-0x58]
+       mov      rsi, gword ptr [rbp-0x50]
        ; gcrRegs +[rsi]
        call     [Internal.TypeSystem.TypeDesc:op_Equality(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc):ubyte]
        ; gcrRegs -[rax rsi rdi]
@@ -295,13 +293,12 @@ G_M48343_IG14:        ; bbWeight=2, gcVars=0000000000100000 {V07}, gcrefRegs=900
 G_M48343_IG15:        ; bbWeight=4, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=4000 {r14}, byref
        mov      ecx, dword ptr [rbp-0x30]
        inc      ecx
-       mov      edi, dword ptr [rbp-0x4C]
+       mov      edi, dword ptr [rbp-0x44]
        cmp      edi, ecx
-       mov      rax, gword ptr [rbp-0x58]
+       mov      rax, gword ptr [rbp-0x50]
        ; gcrRegs +[rax]
-       mov      rsi, qword ptr [rbp-0x48]
        jg       G_M48343_IG12
-                       ;; size=24 bbWeight=4 PerfScore 22.00
+                       ;; size=20 bbWeight=4 PerfScore 18.00
 G_M48343_IG16:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=4000 {r14}, gcvars, byref, isz
        ; gcrRegs -[rax r12]
        ; GC ptr vars -{V07}
@@ -355,7 +352,7 @@ G_M48343_IG19:        ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=4
        ; byrRegs +[r14]
        xor      rax, rax
        ; gcrRegs +[rax]
-       mov      gword ptr [rbp-0x68], rax
+       mov      gword ptr [rbp-0x60], rax
        ; GC ptr vars +{V10}
        mov      rcx, gword ptr [r15+0x18]
        ; gcrRegs +[rcx]
@@ -374,11 +371,11 @@ G_M48343_IG20:        ; bbWeight=0.50, gcrefRegs=900A {rcx rbx r12 r15}, byrefRe
                        ;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M48343_IG21:        ; bbWeight=0.50, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=4000 {r14}, byref
        ; gcrRegs -[rcx]
-       mov      gword ptr [rbp-0x70], rax
+       mov      gword ptr [rbp-0x68], rax
        ; GC ptr vars +{V11}
...

-13 (-0.90%) : 270702.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

@@ -12,14 +12,14 @@
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.DateTime>
 ;  V02 arg2         [V02,T30] (  8,  7   )   ubyte  ->  [rbp-0x2C]  EH-live single-def
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V04 loc1         [V04,T01] ( 11,116   )     ref  ->  [rbp-0x60]  class-hnd <<unknown class>>
+;  V04 loc1         [V04,T05] (  8, 68   )     ref  ->  [rbp-0x60]  class-hnd <<unknown class>>
 ;  V05 loc2         [V05,T28] (  3, 12   )     int  ->  rsi        
-;  V06 loc3         [V06,T03] (  7,108   )     ref  ->  registers   class-hnd <System.Runtime.Caching.MemoryCacheEntry>
+;  V06 loc3         [V06,T02] (  7,108   )     ref  ->  registers   class-hnd <System.Runtime.Caching.MemoryCacheEntry>
 ;  V07 loc4         [V07,T14] (  5, 35   )     int  ->  [rbp-0x30]  do-not-enreg[Z] EH-live
 ;  V08 loc5         [V08,T38] (  2,  5   )     ref  ->  rbx         class-hnd exact single-def <System.Runtime.Caching.MemoryCacheStore>
 ;* V09 loc6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Runtime.Caching.ExpiresEntryRef>
 ;* V10 loc7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V11 loc8         [V11,T04] ( 16, 74   )     ref  ->  [rbp-0x68]  class-hnd exact EH-live single-def <System.Runtime.Caching.ExpiresBucket>
+;  V11 loc8         [V11,T03] ( 16, 74   )     ref  ->  [rbp-0x68]  class-hnd exact EH-live single-def <System.Runtime.Caching.ExpiresBucket>
 ;  V12 loc9         [V12    ] (  6,  6   )   ubyte  ->  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;  V13 loc10        [V13,T26] (  4, 13   )     int  ->  rbx        
 ;* V14 loc11        [V14,T47] (  0,  0   )     int  ->  zero-ref    do-not-enreg[M] EH-live
@@ -59,7 +59,7 @@
 ;  V48 tmp28        [V48,T32] (  6,  6   )     ref  ->  rbx         class-hnd exact "Inlining Arg" <System.Runtime.Caching.MemoryCacheStore>
 ;  V49 tmp29        [V49,T31] (  5,  5   )    long  ->  rbx         single-def "field V01._dateData (fldOffset=0x0)" P-INDEP
 ;  V50 tmp30        [V50,T15] (  5, 35   )     int  ->  [rbp-0x4C]  do-not-enreg[Z] EH-live "field V03._ref (fldOffset=0x0)" P-INDEP
-;  V51 tmp31        [V51,T05] ( 13, 71   )     int  ->  rsi         "field V09._ref (fldOffset=0x0)" P-INDEP
+;  V51 tmp31        [V51,T04] ( 13, 71   )     int  ->  rsi         "field V09._ref (fldOffset=0x0)" P-INDEP
 ;  V52 tmp32        [V52,T20] (  4, 24   )     int  ->  r15         "field V10._ref (fldOffset=0x0)" P-INDEP
 ;  V53 tmp33        [V53,T16] (  2, 32   )     int  ->  rdi         "field V21._ref (fldOffset=0x0)" P-INDEP
 ;* V54 tmp34        [V54    ] (  0,  0   )    long  ->  zero-ref    single-def "field V26._dateData (fldOffset=0x0)" P-INDEP
@@ -77,13 +77,13 @@
 ;  V66 tmp46        [V66,T10] (  3, 48   )     ref  ->  rdi         "arr expr"
 ;  V67 PSPSym       [V67,T50] (  1,  1   )    long  ->  [rbp-0x80]  do-not-enreg[V] "PSPSym"
 ;* V68 cse0         [V68,T51] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
-;  V69 cse1         [V69,T25] (  4, 16   )   byref  ->  rsi         "CSE - moderate"
-;  V70 cse2         [V70,T11] (  3, 48   )    long  ->  rdi         "CSE - moderate"
-;  V71 cse3         [V71,T02] (  5,112   )    long  ->   r9         "CSE - aggressive"
+;  V69 cse1         [V69,T11] (  3, 48   )    long  ->  rdi         "CSE - moderate"
+;  V70 cse2         [V70,T01] (  5,112   )   byref  ->   r9         "CSE - aggressive"
+;  V71 cse3         [V71,T25] (  4, 16   )   byref  ->  rsi         "CSE - moderate"
 ;  V72 cse4         [V72,T23] (  4, 19   )    long  ->  r15         "CSE - moderate"
 ;  V73 cse5         [V73,T45] (  3,  3   )     ref  ->  rcx         "CSE - conservative"
 ;  V74 cse6         [V74,T46] (  3,  3   )     ref  ->  rdi         "CSE - conservative"
-;  V75 cse7         [V75,T12] (  4, 44   )     int  ->  [rbp-0x50]  spill-single-def "CSE - moderate"
+;  V75 cse7         [V75,T12] (  4, 44   )     int  ->  [rbp-0x50]  spill-single-def "CSE - aggressive"
 ;  V76 cse8         [V76,T24] (  3, 18   )    long  ->  r14         "CSE - moderate"
 ;  V77 cse9         [V77,T22] (  3, 24   )     int  ->  rax         "CSE - moderate"
 ;  V78 cse10        [V78,T29] (  3, 12   )     int  ->  rcx         "CSE - moderate"
@@ -197,7 +197,7 @@ G_M744_IG10:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
        xor      esi, esi
        mov      dword ptr [rbp-0x38], esi
                        ;; size=12 bbWeight=1 PerfScore 2.50
-G_M744_IG11:        ; bbWeight=1, gcVars=0000000000080010 {V00 V11}, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M744_IG11:        ; bbWeight=1, gcVars=0000000000080008 {V00 V11}, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rdi]
        cmp      byte  ptr [rbp-0x38], 0
        je       SHORT G_M744_IG14
@@ -213,9 +213,9 @@ G_M744_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M744_IG14:        ; bbWeight=1, gcVars=0000000000080010 {V00 V11}, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M744_IG14:        ; bbWeight=1, gcVars=0000000000080008 {V00 V11}, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[r13]
-       ; GC ptr vars +{V04 V11}
+       ; GC ptr vars +{V11}
        lea      rsi, [rbp-0x38]
        mov      rdi, r13
        ; gcrRegs +[rdi]
@@ -305,18 +305,22 @@ G_M744_IG19:        ; bbWeight=4, gcrefRegs=2001 {rax r13}, byrefRegs=0000 {}, b
        cmp      ecx, 1
        jle      G_M744_IG25
                        ;; size=42 bbWeight=4 PerfScore 38.00
-G_M744_IG20:        ; bbWeight=32, gcrefRegs=2001 {rax r13}, byrefRegs=0000 {}, byref
+G_M744_IG20:        ; bbWeight=32, gcrefRegs=2001 {rax r13}, byrefRegs=0000 {}, byref, isz
        mov      dword ptr [rbp-0x40], r8d
-       mov      r9d, r8d
-       shl      r9, 4
-       mov      rsi, gword ptr [rax+r9+0x18]
+       mov      esi, r8d
+       shl      rsi, 4
+       mov      gword ptr [rbp-0x60], rax
+       ; GC ptr vars +{V04}
+       lea      r9, bword ptr [rax+rsi+0x10]
+       ; byrRegs +[r9]
+       mov      rsi, gword ptr [r9+0x08]
        ; gcrRegs +[rsi]
        test     rsi, rsi
-       je       G_M744_IG24
-                       ;; size=25 bbWeight=32 PerfScore 160.00
-G_M744_IG21:        ; bbWeight=16, gcrefRegs=2041 {rax rsi r13}, byrefRegs=0000 {}, byref, isz
-       mov      gword ptr [rbp-0x60], rax
-       mov      rdi, qword ptr [rax+r9+0x10]
+       je       SHORT G_M744_IG24
+                       ;; size=29 bbWeight=32 PerfScore 224.00
+G_M744_IG21:        ; bbWeight=16, gcVars=0000000000080028 {V00 V04 V11}, gcrefRegs=2040 {rsi r13}, byrefRegs=0200 {r9}, gcvars, byref, isz
+       ; gcrRegs -[rax]
+       mov      rdi, qword ptr [r9]
        mov      r10, rdi
        mov      r11, 0xD1FFAB1E
        and      r10, r11
@@ -327,20 +331,20 @@ G_M744_IG21:        ; bbWeight=16, gcrefRegs=2041 {rax rsi r13}, byrefRegs=0000
        mov      rdi, r13
        ; gcrRegs +[rdi]
        call     [System.Runtime.Caching.ExpiresBucket:AddCount(System.DateTime):this]
-       ; gcrRegs -[rax rdi]
+       ; gcrRegs -[rdi]
+       ; byrRegs -[r9]
        ; gcr arg pop 0
        jmp      SHORT G_M744_IG23
-                       ;; size=44 bbWeight=16 PerfScore 168.00
-G_M744_IG22:        ; bbWeight=16, gcrefRegs=2040 {rsi r13}, byrefRegs=0000 {}, byref
+                       ;; size=38 bbWeight=16 PerfScore 152.00
+G_M744_IG22:        ; bbWeight=16, gcrefRegs=2040 {rsi r13}, byrefRegs=0200 {r9}, byref
        ; gcrRegs +[rsi]
+       ; byrRegs +[r9]
        mov      byte  ptr [rsi+0x30], 255
        mov      edi, dword ptr [r14]
        mov      dword ptr [rsi+0x50], edi
-       mov      rax, gword ptr [rbp-0x60]
-       ; gcrRegs +[rax]
-       mov      dword ptr [rax+r9+0x14], 1
+       mov      dword ptr [r9+0x04], 1
        mov      edi, dword ptr [rbp-0x4C]
-       mov      dword ptr [rax+r9+0x10], edi
+       mov      dword ptr [r9], edi
        mov      edi, r12d
        shl      edi, 8
        mov      r8d, dword ptr [rbp-0x40]
@@ -353,27 +357,26 @@ G_M744_IG22:        ; bbWeight=16, gcrefRegs=2040 {rsi r13}, byrefRegs=0000 {},
        mov      dword ptr [rbp-0x30], edi
        inc      dword ptr [r13+0x28]
        mov      dword ptr [rbp-0x40], r8d
-       mov      gword ptr [rbp-0x60], rax
-                       ;; size=70 bbWeight=16 PerfScore 296.00
+                       ;; size=59 bbWeight=16 PerfScore 264.00
 G_M744_IG23:        ; bbWeight=16, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
+       ; byrRegs -[r9]
        mov      edx, dword ptr [rbp-0x3C]
        dec      edx
        mov      dword ptr [rbp-0x3C], edx
-       mov      rax, gword ptr [rbp-0x60]
-       ; gcrRegs +[rax]
        je       SHORT G_M744_IG25
-                       ;; size=14 bbWeight=16 PerfScore 68.00
-G_M744_IG24:        ; bbWeight=32, gcVars=0000000000080010 {V00 V11}, gcrefRegs=2001 {rax r13}, byrefRegs=0000 {}, gcvars, byref
-       ; GC ptr vars -{V04}
+                       ;; size=10 bbWeight=16 PerfScore 52.00
+G_M744_IG24:        ; bbWeight=32, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref
        mov      r8d, dword ptr [rbp-0x40]
        inc      r8d
        mov      ecx, dword ptr [rbp-0x50]
        cmp      ecx, r8d
+       mov      rax, gword ptr [rbp-0x60]
+       ; gcrRegs +[rax]
        jg       G_M744_IG20
-                       ;; size=19 bbWeight=32 PerfScore 112.00
-G_M744_IG25:        ; bbWeight=4, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref, isz
+                       ;; size=23 bbWeight=32 PerfScore 144.00
+G_M744_IG25:        ; bbWeight=4, gcVars=0000000000080008 {V00 V11}, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax]
+       ; GC ptr vars -{V04}
        dec      ebx
        je       SHORT G_M744_IG27
                        ;; size=4 bbWeight=4 PerfScore 5.00
@@ -807,7 +810,7 @@ G_M744_IG69:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=15 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1450, prolog size 46, PerfScore 1580.50, instruction count 430, allocated bytes for code 1450 (MethodHash=d871fd17) for method System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)
+; Total bytes of code 1437, prolog size 46, PerfScore 1612.50, instruction count 429, allocated bytes for code 1437 (MethodHash=d871fd17) for method System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+15 (+3.05%) : 268408.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

@@ -3,48 +3,48 @@
 ; FullOpts code
 ; optimized code
 ; rbp based frame
-; fully interruptible
+; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T04] (  3,  3   )   byref  ->  rdi         this single-def
-;  V01 arg1         [V01,T05] (  3,  3   )  struct (16) [rbp-0x40]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
+;  V00 this         [V00,T02] (  3,  3   )   byref  ->  rdi         this single-def
+;  V01 arg1         [V01,T03] (  3,  3   )  struct (16) [rbp-0x40]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
-;  V03 loc1         [V03,T02] (  9, 12   )     int  ->  r14        
+;  V03 loc1         [V03,T04] (  9,  4.75)     int  ->  r14        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[int]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [rbp-0x30]  do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Decimal>
-;  V09 tmp4         [V09,T06] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V10 tmp5         [V10,T12] (  2,  2   )     int  ->  rsi         "Strict ordering of exceptions for Array store"
+;  V09 tmp4         [V09,T05] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V10 tmp5         [V10,T11] (  2,  2   )     int  ->  rsi         "Strict ordering of exceptions for Array store"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
-;  V13 tmp8         [V13,T19] (  2,  1   )     int  ->  rdi        
-;  V14 tmp9         [V14,T07] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V15 tmp10        [V15,T13] (  2,  2   )     int  ->  rsi         "Strict ordering of exceptions for Array store"
-;  V16 tmp11        [V16,T08] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V17 tmp12        [V17,T14] (  2,  2   )     int  ->  rsi         "Strict ordering of exceptions for Array store"
-;  V18 tmp13        [V18,T15] (  2,  2   )     int  ->  rsi         "impAppendStmt"
+;  V13 tmp8         [V13,T18] (  2,  1   )     int  ->  rdi        
+;  V14 tmp9         [V14,T06] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V15 tmp10        [V15,T12] (  2,  2   )     int  ->  rsi         "Strict ordering of exceptions for Array store"
+;  V16 tmp11        [V16,T07] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V17 tmp12        [V17,T13] (  2,  2   )     int  ->  rsi         "Strict ordering of exceptions for Array store"
+;  V18 tmp13        [V18,T14] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    ptr
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp18        [V23,T20] (  2,  1   )     int  ->  rdi        
+;  V23 tmp18        [V23,T19] (  2,  1   )     int  ->  rdi        
 ;  V24 tmp19        [V24    ] (  6, 11   )  struct (16) [rbp-0x50]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
-;  V25 tmp20        [V25,T10] (  3,  2.50)     int  ->  rsi         "Inline stloc first use temp"
+;  V25 tmp20        [V25,T09] (  3,  2.50)     int  ->  rsi         "Inline stloc first use temp"
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Decimal>
 ;* V28 tmp23        [V28    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V29 tmp24        [V29    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V30 tmp25        [V30    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;  V31 tmp26        [V31,T01] ( 12, 12   )   byref  ->  r15         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V32 tmp27        [V32,T21] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp26        [V31,T00] ( 14,  9.50)   byref  ->  r15         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V32 tmp27        [V32,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp28        [V33    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V34 tmp29        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V35 tmp30        [V35,T11] (  2,  2   )   byref  ->  r15         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V36 tmp31        [V36,T22] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
+;  V35 tmp30        [V35,T10] (  2,  2   )   byref  ->  r15         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V36 tmp31        [V36,T21] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V37 tmp32        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V08._flags (fldOffset=0x0)" P-INDEP
 ;* V38 tmp33        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V08._hi32 (fldOffset=0x4)" P-INDEP
 ;* V39 tmp34        [V39    ] (  0,  0   )    long  ->  zero-ref    "field V08._lo64 (fldOffset=0x8)" P-INDEP
@@ -53,13 +53,12 @@
 ;  V42 tmp37        [V42    ] (  3,  4   )    long  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V24._lo64 (fldOffset=0x8)" P-DEP
 ;* V43 tmp38        [V43    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V44 tmp39        [V44    ] (  0,  0   )     int  ->  zero-ref    ptr "field V26._length (fldOffset=0x8)" P-INDEP
-;  V45 tmp40        [V45,T16] (  2,  2   )     int  ->  rdi         "field V27._flags (fldOffset=0x0)" P-INDEP
-;  V46 tmp41        [V46,T17] (  2,  2   )     int  ->  rsi         "field V27._hi32 (fldOffset=0x4)" P-INDEP
-;  V47 tmp42        [V47,T09] (  3,  3   )    long  ->  rax         "field V27._lo64 (fldOffset=0x8)" P-INDEP
+;  V45 tmp40        [V45,T15] (  2,  2   )     int  ->  rdi         "field V27._flags (fldOffset=0x0)" P-INDEP
+;  V46 tmp41        [V46,T16] (  2,  2   )     int  ->  rsi         "field V27._hi32 (fldOffset=0x4)" P-INDEP
+;  V47 tmp42        [V47,T08] (  3,  3   )    long  ->  rax         "field V27._lo64 (fldOffset=0x8)" P-INDEP
 ;  V48 GsCookie     [V48    ] (  1,  1   )    long  ->  [rbp-0x20]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V49 tmp44        [V49,T03] ( 11,  6   )   byref  ->  rbx         single-def "shadowVar"
-;  V50 cse0         [V50,T18] (  3,  1.50)     int  ->  rsi         "CSE - moderate"
-;  V51 cse1         [V51,T00] (  4, 14   )     int  ->  rdi         "CSE - aggressive"
+;  V49 tmp44        [V49,T01] ( 11,  6   )   byref  ->  rbx         single-def "shadowVar"
+;  V50 cse0         [V50,T17] (  3,  1.50)     int  ->  rsi         "CSE - moderate"
 ;
 ; Lcl frame size = 56
 
@@ -93,7 +92,6 @@ G_M46478_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r1
        lea      rdi, [rbp-0x50]
        mov      edx, 2
        call     [<unknown method>]
-       ; gcr arg pop 0
                        ;; size=22 bbWeight=0.50 PerfScore 2.25
 G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
        mov      edi, dword ptr [rbp-0x50]
@@ -107,29 +105,46 @@ G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15},
        mov      r14d, 3
        jmp      SHORT G_M46478_IG06
                        ;; size=37 bbWeight=1 PerfScore 9.75
-G_M46478_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
-       mov      r14d, edi
-       test     r14d, r14d
-       jle      SHORT G_M46478_IG07
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M46478_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
-       lea      edi, [r14-0x01]
-       cmp      edi, 4
-       jae      G_M46478_IG20
-       mov      esi, edi
-       cmp      dword ptr [r15+4*rsi], 0
+G_M46478_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       mov      r14d, 2
+       jmp      SHORT G_M46478_IG09
+                       ;; size=8 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       cmp      dword ptr [r15+0x08], 0
        je       SHORT G_M46478_IG05
-                       ;; size=22 bbWeight=4 PerfScore 24.00
-G_M46478_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+                       ;; size=7 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG07:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       jmp      SHORT G_M46478_IG13
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M46478_IG08:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       mov      r14d, 1
+       jmp      SHORT G_M46478_IG12
+                       ;; size=8 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       cmp      dword ptr [r15+0x04], 0
+       je       SHORT G_M46478_IG08
+                       ;; size=7 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG10:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       jmp      SHORT G_M46478_IG13
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M46478_IG11:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       xor      r14d, r14d
+       jmp      SHORT G_M46478_IG13
+                       ;; size=5 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       cmp      dword ptr [r15], 0
+       je       SHORT G_M46478_IG11
+                       ;; size=6 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
        test     r14d, r14d
-       jne      SHORT G_M46478_IG12
+       jne      SHORT G_M46478_IG18
                        ;; size=5 bbWeight=1 PerfScore 1.25
-G_M46478_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        ; byrRegs -[r15]
        test     byte  ptr [(reloc)], 1      ; global ptr
-       je       G_M46478_IG21
+       je       G_M46478_IG27
                        ;; size=13 bbWeight=0.50 PerfScore 2.00
-G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+G_M46478_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        mov      rdi, 0xD1FFAB1E      ; box for <unknown class>:<unknown field>
        mov      rsi, gword ptr [rdi]
        ; gcrRegs +[rsi]
@@ -144,15 +159,14 @@ G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
        mov      rdi, 0xD1FFAB1E
        ; byrRegs -[rdi]
        cmp      qword ptr [rbp-0x20], rdi
-       je       SHORT G_M46478_IG10
+       je       SHORT G_M46478_IG16
        call     CORINFO_HELP_FAIL_FAST
        ; byrRegs -[rsi]
-       ; gcr arg pop 0
                        ;; size=48 bbWeight=0.50 PerfScore 4.50
-G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M46478_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+G_M46478_IG17:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 56
        pop      rbx
        pop      r14
@@ -160,13 +174,13 @@ G_M46478_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M46478_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, gcvars, byref, isz
+G_M46478_IG18:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, gcvars, byref, isz
        ; byrRegs +[rbx r15]
        cmp      r14d, 1
-       jne      SHORT G_M46478_IG15
+       jne      SHORT G_M46478_IG21
        mov      esi, dword ptr [r15]
        test     esi, esi
-       jle      SHORT G_M46478_IG15
+       jle      SHORT G_M46478_IG21
        mov      dword ptr [rbx+0x08], esi
        mov      esi, dword ptr [rbx+0x08]
        mov      edi, -1
@@ -180,16 +194,15 @@ G_M46478_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        mov      gword ptr [rbx], rsi
        mov      rdi, 0xD1FFAB1E
        cmp      qword ptr [rbp-0x20], rdi
-       je       SHORT G_M46478_IG13
+       je       SHORT G_M46478_IG19
        call     CORINFO_HELP_FAIL_FAST
        ; gcrRegs -[rsi]
        ; byrRegs -[rbx r15]
-       ; gcr arg pop 0
                        ;; size=72 bbWeight=0.50 PerfScore 9.88
-G_M46478_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46478_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M46478_IG14:        ; bbWeight=0.50, epilog, nogc, extend
+G_M46478_IG20:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 56
        pop      rbx
        pop      r14
@@ -197,13 +210,12 @@ G_M46478_IG14:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M46478_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, gcvars, byref, isz
+G_M46478_IG21:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, gcvars, byref, isz
        ; byrRegs +[rbx r15]
        movsxd   rsi, r14d
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWARR_1_VC
        ; gcrRegs +[rax]
-       ; gcr arg pop 0
        mov      rsi, rax
        ; gcrRegs +[rsi]
        mov      rdi, rbx
@@ -215,28 +227,28 @@ G_M46478_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        ; gcrRegs +[rdi]
        mov      esi, dword ptr [r15]
        cmp      dword ptr [rdi+0x08], 0
-       jbe      SHORT G_M46478_IG20
+       jbe      SHORT G_M46478_IG26
        mov      dword ptr [rdi+0x10], esi
        cmp      r14d, 1
-       jle      SHORT G_M46478_IG16
+       jle      SHORT G_M46478_IG22
        mov      rdi, gword ptr [rbx]
        mov      esi, dword ptr [r15+0x04]
        cmp      dword ptr [rdi+0x08], 1
-       jbe      SHORT G_M46478_IG20
+       jbe      SHORT G_M46478_IG26
        mov      dword ptr [rdi+0x14], esi
                        ;; size=66 bbWeight=0.50 PerfScore 11.12
-G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+G_M46478_IG22:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
        ; gcrRegs -[rdi]
        cmp      r14d, 2
...

libraries_tests.run.linux.x64.Release.mch

-33 (-8.51%) : 552766.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (Tier1)

@@ -4,34 +4,34 @@
 ; optimized code
 ; optimized using Dynamic PGO
 ; rbp based frame
-; partially interruptible
+; fully interruptible
 ; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 13
 ; 3 inlinees with PGO data; 13 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ubyte]>
-;  V01 arg1         [V01,T02] (  7,  3   )   byref  ->  rbx         single-def
-;  V02 arg2         [V02,T03] (  7,  3   )   byref  ->  r15         single-def
-;  V03 loc0         [V03,T00] ( 20,  7.88)     int  ->  r14        
-;  V04 loc1         [V04,T06] (  5,  2.92)     int  ->  r13        
-;  V05 loc2         [V05,T13] (  2,  0.62)     int  ->  rax        
+;  V01 arg1         [V01,T04] (  7,  3   )   byref  ->  rbx         single-def
+;  V02 arg2         [V02,T05] (  7,  3   )   byref  ->  r15         single-def
+;  V03 loc0         [V03,T00] ( 11,  9.69)     int  ->  r14        
+;  V04 loc1         [V04,T07] (  5,  2.92)     int  ->  r13        
+;  V05 loc2         [V05,T14] (  2,  0.62)     int  ->  rax        
 ;  V06 loc3         [V06    ] (  2,  0.62)  struct ( 8) [rbp-0x30]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Text.Rune>
 ;  V07 loc4         [V07    ] (  3,  1.00)     int  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed ld-addr-op
-;* V08 loc5         [V08,T14] (  0,  0   )     int  ->  zero-ref   
+;  V08 loc5         [V08,T03] (  4,  5.23)     int  ->  rax        
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V11 tmp2         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Rune>
 ;* V12 tmp3         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V13 tmp4         [V13,T09] (  3,  0.92)     int  ->  r12         "Inlining Arg"
-;  V14 tmp5         [V14,T12] (  2,  0.62)   byref  ->  r13         single-def "Inlining Arg"
+;  V13 tmp4         [V13,T10] (  3,  0.92)     int  ->  r12         "Inlining Arg"
+;  V14 tmp5         [V14,T13] (  2,  0.62)   byref  ->  r13         single-def "Inlining Arg"
 ;* V15 tmp6         [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Rune>
 ;* V16 tmp7         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V17 tmp8         [V17,T05] (  5,  3.85)     int  ->  r12         "Inlining Arg"
-;  V18 tmp9         [V18,T08] (  2,  1.54)   byref  ->  r13         "Inlining Arg"
+;  V17 tmp8         [V17,T06] (  5,  3.85)     int  ->  r12         "Inlining Arg"
+;  V18 tmp9         [V18,T09] (  2,  1.54)   byref  ->  r13         "Inlining Arg"
 ;* V19 tmp10        [V19    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Rune>
-;  V20 tmp11        [V20,T07] (  3,  1.54)     int  ->  rax         "Single return block return value"
-;  V21 tmp12        [V21,T04] (  7,  2.95)   byref  ->  rdi         "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V22 tmp13        [V22,T01] (  9,  4.92)     int  ->  rsi         "field V00._length (fldOffset=0x8)" P-INDEP
+;  V20 tmp11        [V20,T08] (  3,  1.54)     int  ->  rax         "Single return block return value"
+;  V21 tmp12        [V21,T02] (  5,  3.77)   byref  ->  rdi         "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V22 tmp13        [V22,T01] (  6,  5.00)     int  ->  rsi         "field V00._length (fldOffset=0x8)" P-INDEP
 ;  V23 tmp14        [V23    ] (  2,  0.62)     int  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed "field V06._value (fldOffset=0x0)" P-DEP
 ;* V24 tmp15        [V24    ] (  0,  0   )   byref  ->  zero-ref    "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V25 tmp16        [V25    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
@@ -39,14 +39,14 @@
 ;  V27 tmp18        [V27,T16] (  2,  0.31)   byref  ->  rdi         single-def "field V12._reference (fldOffset=0x0)" P-INDEP
 ;  V28 tmp19        [V28,T18] (  2,  0.31)     int  ->  rsi         "field V12._length (fldOffset=0x8)" P-INDEP
 ;* V29 tmp20        [V29,T15] (  0,  0   )     int  ->  zero-ref    "field V15._value (fldOffset=0x0)" P-INDEP
-;  V30 tmp21        [V30,T10] (  2,  0.77)   byref  ->  r13         "field V16._reference (fldOffset=0x0)" P-INDEP
-;  V31 tmp22        [V31,T11] (  2,  0.77)     int  ->  rdi         "field V16._length (fldOffset=0x8)" P-INDEP
+;  V30 tmp21        [V30,T11] (  2,  0.77)   byref  ->  r13         "field V16._reference (fldOffset=0x0)" P-INDEP
+;  V31 tmp22        [V31,T12] (  2,  0.77)     int  ->  rdi         "field V16._length (fldOffset=0x8)" P-INDEP
 ;* V32 tmp23        [V32,T19] (  0,  0   )     int  ->  zero-ref    "field V19._value (fldOffset=0x0)" P-INDEP
 ;* V33 tmp24        [V33    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;
 ; Lcl frame size = 24
 
-G_M6810_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M6810_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
        push     r14
@@ -64,13 +64,13 @@ G_M6810_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r1
        ; byrRegs +[rdi]
        lea      r14d, [rsi-0x01]
        cmp      r14d, esi
-       jae      G_M6810_IG21
+       jae      G_M6810_IG18
                        ;; size=13 bbWeight=1 PerfScore 1.75
 G_M6810_IG03:        ; bbWeight=0.92, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, byref, isz
        mov      eax, r14d
        movzx    r13, byte  ptr [rdi+rax]
        cmp      r13d, 127
-       ja       SHORT G_M6810_IG06
+       ja       SHORT G_M6810_IG12
                        ;; size=14 bbWeight=0.92 PerfScore 3.23
 G_M6810_IG04:        ; bbWeight=0.15, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
        ; byrRegs -[rdi]
@@ -78,6 +78,7 @@ G_M6810_IG04:        ; bbWeight=0.15, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15
        mov      edi, r13d
        call     [System.Text.UnicodeDebug:AssertIsValidScalar(uint)]
        ; byrRegs -[r15]
+       ; gcr arg pop 0
        mov      dword ptr [rbx], r13d
        xor      eax, eax
                        ;; size=21 bbWeight=0.15 PerfScore 0.85
@@ -91,12 +92,47 @@ G_M6810_IG05:        ; bbWeight=0.15, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.15 PerfScore 0.65
-G_M6810_IG06:        ; bbWeight=0.77, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, gcvars, byref, isz
+G_M6810_IG06:        ; bbWeight=0.62, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, gcvars, byref
        ; byrRegs +[rdi r15]
+       mov      eax, 3
+                       ;; size=5 bbWeight=0.62 PerfScore 0.15
+G_M6810_IG07:        ; bbWeight=1.46, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, byref, isz
+       dec      r14d
+       cmp      r14d, esi
+       jae      SHORT G_M6810_IG10
+                       ;; size=8 bbWeight=1.46 PerfScore 2.19
+G_M6810_IG08:        ; bbWeight=1.31, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, byref, isz
+       mov      ecx, r14d
+       cmp      byte  ptr [rdi+rcx], -64
+       jge      SHORT G_M6810_IG16
+                       ;; size=9 bbWeight=1.31 PerfScore 5.56
+G_M6810_IG09:        ; bbWeight=1.54, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, byref, isz
+       dec      eax
+       test     eax, eax
+       jg       SHORT G_M6810_IG07
+                       ;; size=6 bbWeight=1.54 PerfScore 2.31
+G_M6810_IG10:        ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
+       ; byrRegs -[rdi]
+       mov      dword ptr [rbx], 0xFFFD
+       mov      dword ptr [r15], 1
+       mov      eax, 3
+                       ;; size=18 bbWeight=0.38 PerfScore 0.87
+G_M6810_IG11:        ; bbWeight=0.38, epilog, nogc, extend
+       add      rsp, 24
+       pop      rbx
+       pop      r12
+       pop      r13
+       pop      r14
+       pop      r15
+       pop      rbp
+       ret      
+                       ;; size=15 bbWeight=0.38 PerfScore 1.63
+G_M6810_IG12:        ; bbWeight=0.77, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, gcvars, byref, isz
+       ; byrRegs +[rdi]
        test     r13b, 64
-       je       SHORT G_M6810_IG08
+       je       SHORT G_M6810_IG06
                        ;; size=6 bbWeight=0.77 PerfScore 0.96
-G_M6810_IG07:        ; bbWeight=0.15, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, byref
+G_M6810_IG13:        ; bbWeight=0.15, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, byref
        mov      r13d, r14d
        add      r13, rdi
        ; byrRegs +[r13]
@@ -107,6 +143,7 @@ G_M6810_IG07:        ; bbWeight=0.15, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi
        not      edi
        shr      edi, 31
        call     [<unknown method>]
+       ; gcr arg pop 0
        mov      rdi, r13
        ; byrRegs +[rdi]
        mov      esi, r12d
@@ -116,45 +153,11 @@ G_M6810_IG07:        ; bbWeight=0.15, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi
        ; byrRegs +[rcx]
        call     [<unknown method>]
        ; byrRegs -[rcx rdx rbx rdi r13 r15]
-       jmp      G_M6810_IG20
-                       ;; size=49 bbWeight=0.15 PerfScore 1.69
-G_M6810_IG08:        ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, byref, isz
-       ; byrRegs +[rbx rdi r15]
-       dec      r14d
-       cmp      r14d, esi
-       jae      SHORT G_M6810_IG14
-                       ;; size=8 bbWeight=0.62 PerfScore 0.92
-G_M6810_IG09:        ; bbWeight=0.16, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, byref, isz
-       mov      eax, r14d
-       cmp      byte  ptr [rdi+rax], -64
-       jge      SHORT G_M6810_IG16
-                       ;; size=9 bbWeight=0.16 PerfScore 0.69
-G_M6810_IG10:        ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, byref, isz
-       dec      r14d
-       cmp      r14d, esi
-       jae      SHORT G_M6810_IG14
-                       ;; size=8 bbWeight=0.19 PerfScore 0.29
-G_M6810_IG11:        ; bbWeight=0.16, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, byref, isz
-       mov      eax, r14d
-       cmp      byte  ptr [rdi+rax], -64
-       jge      SHORT G_M6810_IG16
-                       ;; size=9 bbWeight=0.16 PerfScore 0.69
-G_M6810_IG12:        ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, byref, isz
-       dec      r14d
-       cmp      r14d, esi
-       jae      SHORT G_M6810_IG14
-                       ;; size=8 bbWeight=0.19 PerfScore 0.29
-G_M6810_IG13:        ; bbWeight=0.16, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, byref, isz
-       mov      eax, r14d
-       cmp      byte  ptr [rdi+rax], -64
-       jge      SHORT G_M6810_IG16
-                       ;; size=9 bbWeight=0.16 PerfScore 0.69
-G_M6810_IG14:        ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
-       ; byrRegs -[rdi]
-       mov      dword ptr [rbx], 0xFFFD
-       mov      dword ptr [r15], 1
-       mov      eax, 3
-                       ;; size=18 bbWeight=0.38 PerfScore 0.87
+       ; gcr arg pop 0
+                       ;; size=44 bbWeight=0.15 PerfScore 1.38
+G_M6810_IG14:        ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       nop      
+                       ;; size=1 bbWeight=0.38 PerfScore 0.10
 G_M6810_IG15:        ; bbWeight=0.38, epilog, nogc, extend
        add      rsp, 24
        pop      rbx
@@ -165,17 +168,7 @@ G_M6810_IG15:        ; bbWeight=0.38, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.38 PerfScore 1.63
-G_M6810_IG16:        ; bbWeight=0.38, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, gcvars, byref, isz
-       ; byrRegs +[rdi]
-       cmp      r14d, esi
-       jbe      SHORT G_M6810_IG18
-                       ;; size=5 bbWeight=0.38 PerfScore 0.48
-G_M6810_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rbx rdi r15]
-       call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
-       int3     
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M6810_IG18:        ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, byref, isz
+G_M6810_IG16:        ; bbWeight=0.38, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi r15}, gcvars, byref
        ; byrRegs +[rbx rdi r15]
        mov      r13d, r14d
        add      r13, rdi
@@ -187,6 +180,7 @@ G_M6810_IG18:        ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi
        not      edi
        shr      edi, 31
        call     [<unknown method>]
+       ; gcr arg pop 0
        mov      edi, r12d
        test     edi, edi
        setne    dil
@@ -195,6 +189,7 @@ G_M6810_IG18:        ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi
        ; gcrRegs +[rsi]
        call     [<unknown method>]
        ; gcrRegs -[rsi]
+       ; gcr arg pop 0
        mov      rdi, r13
        ; byrRegs +[rdi]
        mov      esi, r12d
@@ -202,36 +197,27 @@ G_M6810_IG18:        ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=8088 {rbx rdi
        lea      rcx, [rbp-0x38]
        call     [<unknown method>]
        ; byrRegs -[rdi r13]
+       ; gcr arg pop 0
        cmp      dword ptr [rbp-0x38], r12d
-       jne      SHORT G_M6810_IG14
-                       ;; size=81 bbWeight=0.38 PerfScore 6.73
-G_M6810_IG19:        ; bbWeight=0.23, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
+       jne      G_M6810_IG10
+                       ;; size=85 bbWeight=0.38 PerfScore 6.73
+G_M6810_IG17:        ; bbWeight=0.23, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
        mov      edi, dword ptr [rbp-0x38]
        mov      dword ptr [r15], edi
...

-6 (-0.54%) : 35552.dasm - System.IO.Path:Combine(System.String[]):System.String (Instrumented Tier1)

@@ -8,12 +8,12 @@
 ; 19 inlinees with PGO data; 13 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T02] ( 13, 24   )     ref  ->  rbx         class-hnd single-def <System.String[]>
+;  V00 arg0         [V00,T02] ( 12, 36   )     ref  ->  rbx         class-hnd single-def <System.String[]>
 ;  V01 loc0         [V01,T08] (  9, 13.50)     int  ->  r15        
 ;  V02 loc1         [V02,T28] (  4,  6   )     int  ->  r14        
 ;  V03 loc2         [V03    ] ( 42, 52.98)  struct (32) [rbp-0x48]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Text.ValueStringBuilder>
 ;  V04 loc3         [V04,T00] (  8, 59   )     int  ->  r13        
-;  V05 loc4         [V05,T34] (  2,  4   )  ushort  ->  [rbp-0x4C]  spill-single-def
+;  V05 loc4         [V05,T34] (  2,  4   )  ushort  ->  r12        
 ;* V06 loc5         [V06    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[ushort]>
 ;  V07 loc6         [V07,T03] (  8, 21   )     int  ->  r14        
 ;  V08 loc7         [V08,T35] (  2,  4   )  ushort  ->  r15        
@@ -26,17 +26,17 @@
 ;* V15 tmp6         [V15    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V16 tmp7         [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V17 tmp8         [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V18 tmp9         [V18,T22] (  2,  8   )     int  ->  [rbp-0x50]  spill-single-def "Inlining Arg"
+;  V18 tmp9         [V18,T22] (  2,  8   )     int  ->  [rbp-0x4C]  spill-single-def "Inlining Arg"
 ;  V19 tmp10        [V19,T20] (  2,  8   )   byref  ->  r12         "Inlining Arg"
 ;  V20 tmp11        [V20,T30] (  3,  4   )   ubyte  ->  r12         "Inline return value spill temp"
 ;* V21 tmp12        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V22 tmp13        [V22,T37] (  2,  4   )    long  ->  rdi         "Inlining Arg"
 ;  V23 tmp14        [V23,T04] (  5, 16.01)     ref  ->  r15         class-hnd exact "Inlining Arg" <System.String>
 ;  V24 tmp15        [V24,T41] (  5,  2.02)     int  ->  rdi         "Inline stloc first use temp"
-;  V25 tmp16        [V25,T16] (  5,  9.98)     int  ->  [rbp-0x54]  spill-single-def "Inline stloc first use temp"
+;  V25 tmp16        [V25,T16] (  5,  9.98)     int  ->  [rbp-0x50]  spill-single-def "Inline stloc first use temp"
 ;* V26 tmp17        [V26    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V27 tmp18        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V28 tmp19        [V28,T14] (  3, 11.98)     int  ->  [rbp-0x58]  spill-single-def "Inlining Arg"
+;  V28 tmp19        [V28,T14] (  3, 11.98)     int  ->  [rbp-0x54]  spill-single-def "Inlining Arg"
 ;  V29 tmp20        [V29,T24] (  2,  7.99)   byref  ->  [rbp-0x68]  spill-single-def "Inlining Arg"
 ;* V30 tmp21        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V31 tmp22        [V31    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -48,10 +48,10 @@
 ;* V37 tmp28        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;  V38 tmp29        [V38,T05] (  5, 16   )     ref  ->  r15         class-hnd exact "Inlining Arg" <System.String>
 ;  V39 tmp30        [V39,T42] (  5,  2.02)     int  ->  rdi         "Inline stloc first use temp"
-;  V40 tmp31        [V40,T17] (  5,  9.98)     int  ->  [rbp-0x5C]  spill-single-def "Inline stloc first use temp"
+;  V40 tmp31        [V40,T17] (  5,  9.98)     int  ->  [rbp-0x58]  spill-single-def "Inline stloc first use temp"
 ;* V41 tmp32        [V41    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V42 tmp33        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V43 tmp34        [V43,T15] (  3, 11.98)     int  ->  [rbp-0x60]  spill-single-def "Inlining Arg"
+;  V43 tmp34        [V43,T15] (  3, 11.98)     int  ->  [rbp-0x5C]  spill-single-def "Inlining Arg"
 ;  V44 tmp35        [V44,T25] (  2,  7.98)   byref  ->  [rbp-0x70]  spill-single-def "Inlining Arg"
 ;* V45 tmp36        [V45    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V46 tmp37        [V46    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -91,7 +91,7 @@
 ;  V80 GsCookie     [V80    ] (  1,  1   )    long  ->  [rbp-0x78]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V81 cse0         [V81,T07] (  4, 14   )     ref  ->  rdi         "CSE - moderate"
 ;  V82 cse1         [V82,T29] (  3,  6   )     ref  ->  rdi         "CSE - moderate"
-;  V83 cse2         [V83,T01] (  7, 32   )     int  ->  r12         multi-def "CSE - aggressive"
+;  V83 cse2         [V83,T01] (  6, 44   )     int  ->  r12         multi-def "CSE - aggressive"
 ;  V84 cse3         [V84,T12] (  7, 11.99)     int  ->  r13         "CSE - moderate"
 ;  V85 cse4         [V85,T13] (  7, 11.98)     int  ->  r13         "CSE - moderate"
 ;  V86 cse5         [V86,T19] (  4,  8   )     int  ->  r15         "CSE - moderate"
@@ -157,12 +157,12 @@ G_M29298_IG06:        ; bbWeight=2, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {},
        lea      r12, bword ptr [rdi+0x0C]
        ; byrRegs +[r12]
        mov      eax, dword ptr [rdi+0x08]
-       mov      dword ptr [rbp-0x50], eax
+       mov      dword ptr [rbp-0x4C], eax
        mov      edi, 1
        ; gcrRegs -[rdi]
        call     [<unknown method>]
        ; gcr arg pop 0
-       mov      edi, dword ptr [rbp-0x50]
+       mov      edi, dword ptr [rbp-0x4C]
        test     edi, edi
        jg       SHORT G_M29298_IG09
                        ;; size=28 bbWeight=2 PerfScore 18.00
@@ -174,13 +174,12 @@ G_M29298_IG08:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        test     r12d, r12d
        je       SHORT G_M29298_IG10
        mov      r14d, r13d
-       mov      r12d, dword ptr [rbx+0x08]
        mov      edi, r14d
        mov      rdi, gword ptr [rbx+8*rdi+0x10]
        ; gcrRegs +[rdi]
        mov      r15d, dword ptr [rdi+0x08]
        jmp      SHORT G_M29298_IG11
-                       ;; size=26 bbWeight=2 PerfScore 19.50
+                       ;; size=22 bbWeight=2 PerfScore 15.50
 G_M29298_IG09:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=1000 {r12}, byref, isz
        ; gcrRegs -[rdi]
        ; byrRegs +[r12]
@@ -194,12 +193,11 @@ G_M29298_IG10:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       mov      r12d, dword ptr [rbx+0x08]
        mov      edi, r13d
        mov      rdi, gword ptr [rbx+8*rdi+0x10]
        ; gcrRegs +[rdi]
        add      r15d, dword ptr [rdi+0x08]
-                       ;; size=31 bbWeight=2 PerfScore 17.00
+                       ;; size=27 bbWeight=2 PerfScore 13.00
 G_M29298_IG11:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdi]
        mov      edi, r13d
@@ -212,27 +210,27 @@ G_M29298_IG11:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        dec      edi
        cmp      edi, dword ptr [rax+0x08]
        jae      G_M29298_IG41
-       movzx    rax, word  ptr [rax+2*rdi+0x0C]
-       ; gcrRegs -[rax]
-       mov      dword ptr [rbp-0x4C], eax
+       movzx    r12, word  ptr [rax+2*rdi+0x0C]
        mov      edi, 1
        call     [<unknown method>]
+       ; gcrRegs -[rax]
        ; gcr arg pop 0
-       cmp      dword ptr [rbp-0x4C], 47
+       cmp      r12d, 47
        je       SHORT G_M29298_IG14
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
        inc      r15d
-                       ;; size=68 bbWeight=2 PerfScore 39.00
+                       ;; size=66 bbWeight=2 PerfScore 33.50
 G_M29298_IG12:        ; bbWeight=16, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
        inc      r13d
+       mov      r12d, dword ptr [rbx+0x08]
        cmp      r12d, r13d
        jg       G_M29298_IG05
-                       ;; size=27 bbWeight=16 PerfScore 44.00
+                       ;; size=31 bbWeight=16 PerfScore 76.00
 G_M29298_IG13:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        jmp      SHORT G_M29298_IG15
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
@@ -315,7 +313,7 @@ G_M29298_IG20:        ; bbWeight=0.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
 G_M29298_IG21:        ; bbWeight=2.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rax]
        mov      eax, dword ptr [rbp-0x40]
-       mov      dword ptr [rbp-0x54], eax
+       mov      dword ptr [rbp-0x50], eax
        mov      edi, dword ptr [rbp-0x30]
        sub      edi, r13d
        cmp      edi, eax
@@ -326,7 +324,7 @@ G_M29298_IG22:        ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
        lea      rdi, [rbp-0x48]
        call     [<unknown method>]
        ; gcr arg pop 0
-       mov      eax, dword ptr [rbp-0x54]
+       mov      eax, dword ptr [rbp-0x50]
                        ;; size=16 bbWeight=0 PerfScore 0.00
 G_M29298_IG23:        ; bbWeight=2.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        cmp      eax, dword ptr [rbp-0x30]
@@ -350,7 +348,7 @@ G_M29298_IG25:        ; bbWeight=2.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
        mov      edx, dword ptr [rbp-0x30]
        sub      edx, eax
        mov      eax, edx
-       mov      dword ptr [rbp-0x58], eax
+       mov      dword ptr [rbp-0x54], eax
        mov      edi, eax
        ; byrRegs -[rdi]
        not      edi
@@ -358,7 +356,7 @@ G_M29298_IG25:        ; bbWeight=2.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
        call     [<unknown method>]
        ; byrRegs -[rcx]
        ; gcr arg pop 0
-       mov      edx, dword ptr [rbp-0x58]
+       mov      edx, dword ptr [rbp-0x54]
        cmp      r13d, edx
        jbe      SHORT G_M29298_IG27
                        ;; size=45 bbWeight=2.00 PerfScore 22.96
@@ -468,7 +466,7 @@ G_M29298_IG33:        ; bbWeight=2.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
                        ;; size=11 bbWeight=2.00 PerfScore 9.98
 G_M29298_IG34:        ; bbWeight=2.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        mov      eax, dword ptr [rbp-0x40]
-       mov      dword ptr [rbp-0x5C], eax
+       mov      dword ptr [rbp-0x58], eax
        mov      edi, dword ptr [rbp-0x30]
        sub      edi, r13d
        cmp      edi, eax
@@ -486,7 +484,7 @@ G_M29298_IG35:        ; bbWeight=2.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
        mov      edx, dword ptr [rbp-0x30]
        sub      edx, eax
        mov      eax, edx
-       mov      dword ptr [rbp-0x60], eax
+       mov      dword ptr [rbp-0x5C], eax
        mov      edi, eax
        ; byrRegs -[rdi]
        not      edi
@@ -494,7 +492,7 @@ G_M29298_IG35:        ; bbWeight=2.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
        call     [<unknown method>]
        ; byrRegs -[rcx]
        ; gcr arg pop 0
-       mov      edx, dword ptr [rbp-0x60]
+       mov      edx, dword ptr [rbp-0x5C]
        cmp      r13d, edx
        ja       G_M29298_IG26
        lea      rsi, bword ptr [r15+0x0C]
@@ -562,11 +560,11 @@ G_M29298_IG42:        ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
        lea      rdi, [rbp-0x48]
        call     [<unknown method>]
        ; gcr arg pop 0
-       mov      eax, dword ptr [rbp-0x5C]
+       mov      eax, dword ptr [rbp-0x58]
        jmp      G_M29298_IG33
                        ;; size=21 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1111, prolog size 59, PerfScore 479.12, instruction count 286, allocated bytes for code 1111 (MethodHash=be4d8d8d) for method System.IO.Path:Combine(System.String[]):System.String (Instrumented Tier1)
+; Total bytes of code 1105, prolog size 59, PerfScore 497.62, instruction count 284, allocated bytes for code 1105 (MethodHash=be4d8d8d) for method System.IO.Path:Combine(System.String[]):System.String (Instrumented Tier1)
 ; ============================================================
 
 Unwind Info:

-11 (-0.51%) : 29381.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Instrumented Tier1)

@@ -10,27 +10,27 @@
 ;
 ;  V00 this         [V00,T14] ( 11, 32.50)     ref  ->  [rbp-0x68]  this class-hnd EH-live single-def <System.Buffers.SharedArrayPool`1[System.__Canon]>
 ;  V01 loc0         [V01,T16] (  5, 33.50)     int  ->  rbx        
-;  V02 loc1         [V02,T36] (  5, 19   )     int  ->  r15        
+;  V02 loc1         [V02,T35] (  5, 19   )     int  ->  r15        
 ;  V03 loc2         [V03,T26] (  7, 27   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V04 loc3         [V04,T49] (  4, 10   )     ref  ->  r13         class-hnd exact single-def <<unknown class>>
-;  V05 loc4         [V05,T35] (  6, 19   )     int  ->  r12        
-;  V06 loc5         [V06,T43] (  8, 10.50)     ref  ->  [rbp-0x70]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V04 loc3         [V04,T48] (  4, 10   )     ref  ->  r13         class-hnd exact single-def <<unknown class>>
+;  V05 loc4         [V05,T34] (  6, 19   )     int  ->  r12        
+;  V06 loc5         [V06,T42] (  8, 10.50)     ref  ->  [rbp-0x70]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V07 loc6         [V07    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V08 loc7         [V08,T44] (  8, 10.50)     ref  ->  [rbp-0x78]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V08 loc7         [V08,T43] (  8, 10.50)     ref  ->  [rbp-0x78]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V09 loc8         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V10 loc9         [V10,T29] (  3, 20   )     ref  ->  r15         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V10 loc9         [V10,T28] (  3, 20   )     ref  ->  r15         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V11 loc10        [V11,T03] (  5, 66   )     int  ->  rbx        
 ;  V12 loc11        [V12,T01] (  6, 64   )     ref  ->  [rbp-0x80]  class-hnd spill-single-def <<unknown class>>
-;  V13 loc12        [V13,T52] (  2,  8.50)     int  ->  r15        
-;  V14 loc13        [V14,T75] (  3,  1.50)     int  ->  r15        
-;  V15 loc14        [V15,T45] (  8, 10.50)     ref  ->  [rbp-0x88]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V13 loc12        [V13,T51] (  2,  8.50)     int  ->  r15        
+;  V14 loc13        [V14,T74] (  3,  1.50)     int  ->  r15        
+;  V15 loc14        [V15,T44] (  8, 10.50)     ref  ->  [rbp-0x88]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V16 loc15        [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V17 loc16        [V17,T11] (  5, 36   )     ref  ->  r13         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V17 loc16        [V17,T10] (  6, 44   )     ref  ->  r13         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V18 loc17        [V18,T00] (  5,210   )     int  ->  r12        
-;  V19 loc18        [V19,T28] (  3, 24   )     int  ->  rsi        
+;  V19 loc18        [V19,T27] (  3, 24   )     int  ->  rdx        
 ;  V20 loc19        [V20,T07] (  6, 48   )     ref  ->  [rbp-0x90]  class-hnd spill-single-def <<unknown class>>
 ;# V21 OutArgs      [V21    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V22 tmp1         [V22,T30] (  3, 20   )     ref  ->  [rbp-0x98]  class-hnd exact spill-single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V22 tmp1         [V22,T29] (  3, 20   )     ref  ->  [rbp-0x98]  class-hnd exact spill-single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
 ;* V23 tmp2         [V23    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V24 tmp3         [V24,T12] (  2, 36   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
 ;* V25 tmp4         [V25    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
@@ -42,79 +42,78 @@
 ;  V31 tmp10        [V31,T21] (  2, 32   )     int  ->  [rbp-0x40]  spill-single-def "impAppendStmt"
 ;  V32 tmp11        [V32,T22] (  2, 32   )     int  ->  [rbp-0x44]  spill-single-def "impAppendStmt"
 ;* V33 tmp12        [V33    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V34 tmp13        [V34,T63] (  3,  3   )     ref  ->  r14         single-def "handle histogram profile tmp"
+;  V34 tmp13        [V34,T62] (  3,  3   )     ref  ->  r14         single-def "handle histogram profile tmp"
 ;* V35 tmp14        [V35    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V36 tmp15        [V36    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V37 tmp16        [V37    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V38 tmp17        [V38,T64] (  3,  3   )     ref  ->  r15         single-def "handle histogram profile tmp"
+;  V38 tmp17        [V38,T63] (  3,  3   )     ref  ->  r15         single-def "handle histogram profile tmp"
 ;* V39 tmp18        [V39    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V40 tmp19        [V40    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V41 tmp20        [V41    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V42 tmp21        [V42    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V43 tmp22        [V43,T65] (  3,  3   )     ref  ->  r12         single-def "handle histogram profile tmp"
+;  V43 tmp22        [V43,T64] (  3,  3   )     ref  ->  r12         single-def "handle histogram profile tmp"
 ;* V44 tmp23        [V44    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V45 tmp24        [V45    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V46 tmp25        [V46    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V47 tmp26        [V47    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V48 tmp27        [V48,T32] (  3, 20   )     int  ->  [rbp-0x48]  spill-single-def "Inline stloc first use temp"
-;  V49 tmp28        [V49,T31] (  3, 20   )     ref  ->  [rbp-0xA0]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;  V48 tmp27        [V48,T31] (  3, 20   )     int  ->  [rbp-0x48]  spill-single-def "Inline stloc first use temp"
+;  V49 tmp28        [V49,T30] (  3, 20   )     ref  ->  [rbp-0xA0]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
 ;  V50 tmp29        [V50,T04] (  5, 66   )     int  ->  [rbp-0x4C]  "Inline stloc first use temp"
 ;  V51 tmp30        [V51,T23] (  2, 32   )     int  ->   r8         "Inlining Arg"
 ;  V52 tmp31        [V52,T24] (  2, 32   )     int  ->   r8         "Inlining Arg"
-;  V53 tmp32        [V53,T60] (  2,  4   )     ref  ->  rdi         "field V07.key (fldOffset=0x0)" P-INDEP
-;  V54 tmp33        [V54,T72] (  1,  2   )     ref  ->  rdx         "field V07.value (fldOffset=0x8)" P-INDEP
-;  V55 tmp34        [V55,T61] (  2,  4   )     ref  ->  r15         "field V09.key (fldOffset=0x0)" P-INDEP
-;  V56 tmp35        [V56,T73] (  1,  2   )     ref  ->  rdx         "field V09.value (fldOffset=0x8)" P-INDEP
-;  V57 tmp36        [V57,T62] (  2,  4   )     ref  ->  r13         "field V16.key (fldOffset=0x0)" P-INDEP
-;  V58 tmp37        [V58,T74] (  1,  2   )     ref  ->  rdx         "field V16.value (fldOffset=0x8)" P-INDEP
+;  V53 tmp32        [V53,T59] (  2,  4   )     ref  ->  rdi         "field V07.key (fldOffset=0x0)" P-INDEP
+;  V54 tmp33        [V54,T71] (  1,  2   )     ref  ->  rdx         "field V07.value (fldOffset=0x8)" P-INDEP
+;  V55 tmp34        [V55,T60] (  2,  4   )     ref  ->  r15         "field V09.key (fldOffset=0x0)" P-INDEP
+;  V56 tmp35        [V56,T72] (  1,  2   )     ref  ->  rdx         "field V09.value (fldOffset=0x8)" P-INDEP
+;  V57 tmp36        [V57,T61] (  2,  4   )     ref  ->  r13         "field V16.key (fldOffset=0x0)" P-INDEP
+;  V58 tmp37        [V58,T73] (  1,  2   )     ref  ->  rdx         "field V16.value (fldOffset=0x8)" P-INDEP
 ;* V59 tmp38        [V59    ] (  0,  0   )     ref  ->  zero-ref    "field V25.key (fldOffset=0x0)" P-DEP
 ;* V60 tmp39        [V60    ] (  0,  0   )     ref  ->  zero-ref    "field V25.value (fldOffset=0x8)" P-DEP
 ;* V61 tmp40        [V61    ] (  0,  0   )     ref  ->  zero-ref    "field V29.key (fldOffset=0x0)" P-DEP
 ;* V62 tmp41        [V62    ] (  0,  0   )     ref  ->  zero-ref    "field V29.value (fldOffset=0x8)" P-DEP
 ;* V63 tmp42        [V63    ] (  0,  0   )     ref  ->  zero-ref    "field V33.key (fldOffset=0x0)" P-DEP
 ;* V64 tmp43        [V64    ] (  0,  0   )     ref  ->  zero-ref    "field V33.value (fldOffset=0x8)" P-DEP
-;  V65 tmp44        [V65,T66] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V66 tmp45        [V66,T37] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V67 tmp46        [V67,T57] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;  V65 tmp44        [V65,T65] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V66 tmp45        [V66,T36] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V67 tmp46        [V67,T56] (  2,  8   )     ref  ->  rdi         "argument with side effect"
 ;  V68 tmp47        [V68,T25] (  2, 32   )    long  ->  rsi         "argument with side effect"
 ;  V69 tmp48        [V69,T18] (  2, 32   )     ref  ->  rdx         "argument with side effect"
-;* V70 tmp49        [V70,T40] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V71 tmp50        [V71,T77] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V72 tmp51        [V72,T67] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V73 tmp52        [V73,T68] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V74 tmp53        [V74,T38] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V75 tmp54        [V75,T58] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;* V70 tmp49        [V70,T39] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V71 tmp50        [V71,T76] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V72 tmp51        [V72,T66] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V73 tmp52        [V73,T67] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V74 tmp53        [V74,T37] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V75 tmp54        [V75,T57] (  2,  8   )     ref  ->  rdi         "argument with side effect"
 ;  V76 tmp55        [V76,T06] (  2, 64   )    long  ->  rsi         "argument with side effect"
 ;  V77 tmp56        [V77,T05] (  2, 64   )     ref  ->  rcx         "argument with side effect"
-;* V78 tmp57        [V78,T41] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V79 tmp58        [V79,T78] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V80 tmp59        [V80,T69] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V81 tmp60        [V81,T70] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V82 tmp61        [V82,T39] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V83 tmp62        [V83,T59] (  2,  8   )     ref  ->  rdi         "argument with side effect"
-;  V84 tmp63        [V84,T79] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V85 tmp64        [V85,T71] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V86 PSPSym       [V86,T76] (  1,  1   )    long  ->  [rbp-0xB0]  do-not-enreg[V] "PSPSym"
+;* V78 tmp57        [V78,T40] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V79 tmp58        [V79,T77] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V80 tmp59        [V80,T68] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V81 tmp60        [V81,T69] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V82 tmp61        [V82,T38] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V83 tmp62        [V83,T58] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;  V84 tmp63        [V84,T78] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V85 tmp64        [V85,T70] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V86 PSPSym       [V86,T75] (  1,  1   )    long  ->  [rbp-0xB0]  do-not-enreg[V] "PSPSym"
 ;  V87 cse0         [V87,T15] (  4, 34   )    long  ->  registers   hoist multi-def "CSE - moderate"
-;  V88 cse1         [V88,T53] (  4,  8   )     ref  ->  r14         multi-def "CSE - conservative"
-;  V89 cse2         [V89,T46] (  6, 10.50)     ref  ->  r14         multi-def "CSE - conservative"
-;  V90 cse3         [V90,T54] (  4,  8   )     ref  ->  r15         multi-def "CSE - conservative"
-;  V91 cse4         [V91,T47] (  6, 10.50)     ref  ->  r15         multi-def "CSE - conservative"
-;  V92 cse5         [V92,T55] (  4,  8   )     ref  ->  r13         multi-def "CSE - conservative"
-;  V93 cse6         [V93,T48] (  6, 10.50)     ref  ->  r13         multi-def "CSE - conservative"
-;  V94 cse7         [V94,T27] (  3, 24   )   byref  ->  [rbp-0xA8]  spill-single-def "CSE - moderate"
-;  V95 cse8         [V95,T08] (  4, 48   )    long  ->  [rbp-0x58]  spill-single-def "CSE - moderate"
-;  V96 cse9         [V96,T02] (  3, 68   )     int  ->  [rbp-0x5C]  spill-single-def "CSE - aggressive"
-;  V97 cse10        [V97,T33] (  3, 20   )     int  ->  [rbp-0x60]  spill-single-def "CSE - moderate"
-;  V98 cse11        [V98,T34] (  3, 20   )     int  ->  r13         "CSE - moderate"
-;  V99 rat0         [V99,T50] (  3,  9.44)    long  ->  rsi         "Spilling to split statement for tree"
-;  V100 rat1        [V100,T56] (  3,  8   )    long  ->  r12         "runtime lookup"
-;  V101 rat2        [V101,T42] (  3, 11.20)    long  ->  rax         "spilling expr"
-;  V102 rat3        [V102,T51] (  3,  8.96)    long  ->  r12         "fgMakeTemp is creating a new local variable"
-;  V103 rat4        [V103,T10] (  3, 37.76)    long  ->  rsi         "Spilling to split statement for tree"
-;  V104 rat5        [V104,T17] (  3, 32   )    long  ->  registers   "runtime lookup"
-;  V105 rat6        [V105,T09] (  3, 44.80)    long  ->  rdx         "spilling expr"
-;  V106 rat7        [V106,T13] (  3, 35.84)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V88 cse1         [V88,T52] (  4,  8   )     ref  ->  r14         multi-def "CSE - conservative"
+;  V89 cse2         [V89,T45] (  6, 10.50)     ref  ->  r14         multi-def "CSE - conservative"
+;  V90 cse3         [V90,T53] (  4,  8   )     ref  ->  r15         multi-def "CSE - conservative"
+;  V91 cse4         [V91,T46] (  6, 10.50)     ref  ->  r15         multi-def "CSE - conservative"
+;  V92 cse5         [V92,T54] (  4,  8   )     ref  ->  r13         multi-def "CSE - conservative"
+;  V93 cse6         [V93,T47] (  6, 10.50)     ref  ->  r13         multi-def "CSE - conservative"
+;  V94 cse7         [V94,T08] (  5, 56   )    long  ->  [rbp-0x58]  spill-single-def "CSE - aggressive"
+;  V95 cse8         [V95,T02] (  3, 68   )     int  ->  [rbp-0x5C]  spill-single-def "CSE - aggressive"
+;  V96 cse9         [V96,T32] (  3, 20   )     int  ->  [rbp-0x60]  spill-single-def "CSE - moderate"
+;  V97 cse10        [V97,T33] (  3, 20   )     int  ->  r13         "CSE - moderate"
+;  V98 rat0         [V98,T49] (  3,  9.44)    long  ->  rsi         "Spilling to split statement for tree"
+;  V99 rat1         [V99,T55] (  3,  8   )    long  ->  r12         "runtime lookup"
+;  V100 rat2        [V100,T41] (  3, 11.20)    long  ->  rax         "spilling expr"
+;  V101 rat3        [V101,T50] (  3,  8.96)    long  ->  r12         "fgMakeTemp is creating a new local variable"
+;  V102 rat4        [V102,T11] (  3, 37.76)    long  ->  rsi         "Spilling to split statement for tree"
+;  V103 rat5        [V103,T17] (  3, 32   )    long  ->  registers   "runtime lookup"
+;  V104 rat6        [V104,T09] (  3, 44.80)    long  ->  rdx         "spilling expr"
+;  V105 rat7        [V105,T13] (  3, 35.84)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 136
 
@@ -177,7 +176,7 @@ G_M16529_IG05:        ; bbWeight=4, gcrefRegs=6000 {r13 r14}, byrefRegs=0000 {},
        test     rax, rax
        je       G_M16529_IG08
                        ;; size=24 bbWeight=4 PerfScore 18.00
-G_M16529_IG06:        ; bbWeight=2, gcVars=00000000000000000000000040004000 {V00 V22}, gcrefRegs=6000 {r13 r14}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M16529_IG06:        ; bbWeight=2, gcVars=00000000000000000000000020004000 {V00 V22}, gcrefRegs=6000 {r13 r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax]
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
@@ -208,7 +207,7 @@ G_M16529_IG06:        ; bbWeight=2, gcVars=00000000000000000000000040004000 {V00
        test     r10d, r10d
        jle      SHORT G_M16529_IG08
                        ;; size=87 bbWeight=2 PerfScore 37.00
-G_M16529_IG07:        ; bbWeight=16, gcVars=00000000000000000000000080004000 {V00 V49}, gcrefRegs=6001 {rax r13 r14}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M16529_IG07:        ; bbWeight=16, gcVars=00000000000000000000000040004000 {V00 V49}, gcrefRegs=6001 {rax r13 r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rdi]
        ; GC ptr vars -{V22}
        mov      dword ptr [rbp-0x4C], r9d
@@ -266,7 +265,7 @@ G_M16529_IG10:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {},
        mov      gword ptr [rbp-0x70], rax
        ; GC ptr vars +{V06}
                        ;; size=60 bbWeight=0.50 PerfScore 6.50
-G_M16529_IG11:        ; bbWeight=0.50, gcVars=00000000000000000000080000004000 {V00 V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M16529_IG11:        ; bbWeight=0.50, gcVars=00000000000000000000040000004000 {V00 V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
        jmp      SHORT G_M16529_IG13
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M16529_IG12:        ; bbWeight=2, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
@@ -358,7 +357,7 @@ G_M16529_IG15:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {},
        mov      gword ptr [rbp-0x78], rax
        ; GC ptr vars +{V08}
                        ;; size=46 bbWeight=0.50 PerfScore 4.50
-G_M16529_IG16:        ; bbWeight=0.50, gcVars=00000000000000000000100000004000 {V00 V08}, gcrefRegs=4001 {rax r14}, byrefRegs=0000 {}, gcvars, byref
+G_M16529_IG16:        ; bbWeight=0.50, gcVars=00000000000000000000080000004000 {V00 V08}, gcrefRegs=4001 {rax r14}, byrefRegs=0000 {}, gcvars, byref
        jmp      G_M16529_IG23
                        ;; size=5 bbWeight=0.50 PerfScore 1.00
 G_M16529_IG17:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref
@@ -417,7 +416,7 @@ G_M16529_IG19:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}
        test     rax, rax
        je       SHORT G_M16529_IG21
                        ;; size=39 bbWeight=16 PerfScore 416.00
-G_M16529_IG20:        ; bbWeight=8, gcVars=00000000000000000000100000004002 {V00 V08 V12}, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, gcvars, byref
+G_M16529_IG20:        ; bbWeight=8, gcVars=00000000000000000000080000004002 {V00 V08 V12}, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
@@ -564,7 +563,7 @@ G_M16529_IG29:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {},
        mov      gword ptr [rbp-0x88], rax
        ; GC ptr vars +{V15}
                        ;; size=49 bbWeight=0.50 PerfScore 4.50
-G_M16529_IG30:        ; bbWeight=0.50, gcVars=00000000000000000000200000004000 {V00 V15}, gcrefRegs=4001 {rax r14}, byrefRegs=0000 {}, gcvars, byref
+G_M16529_IG30:        ; bbWeight=0.50, gcVars=00000000000000000000100000004000 {V00 V15}, gcrefRegs=4001 {rax r14}, byrefRegs=0000 {}, gcvars, byref
        jmp      G_M16529_IG36
                        ;; size=5 bbWeight=0.50 PerfScore 1.00
 G_M16529_IG31:        ; bbWeight=2, gcrefRegs=6000 {r13 r14}, byrefRegs=0000 {}, byref, isz
@@ -599,24 +598,16 @@ G_M16529_IG32:        ; bbWeight=16, gcrefRegs=6000 {r13 r14}, byrefRegs=0000 {}
        je       SHORT G_M16529_IG34
                        ;; size=19 bbWeight=16 PerfScore 92.00
 G_M16529_IG33:        ; bbWeight=8, gcrefRegs=6000 {r13 r14}, byrefRegs=0000 {}, byref
-       lea      rdx, bword ptr [r13+rcx+0x10]
-       ; byrRegs +[rdx]
-       mov      bword ptr [rbp-0xA8], rdx
-       ; GC ptr vars +{V94}
-       mov      esi, dword ptr [rdx+0x08]
-       test     esi, esi
+       mov      edx, dword ptr [r13+rcx+0x18]
+       test     edx, edx
        jne      G_M16529_IG38
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
-       ; byrRegs -[rdx]
        ; gcr arg pop 0
-       mov      rdi, bword ptr [rbp-0xA8]
-       ; byrRegs +[rdi]
-       mov      dword ptr [rdi+0x08], ebx
-                       ;; size=48 bbWeight=8 PerfScore 76.00
-G_M16529_IG34:        ; bbWeight=64, gcVars=00000000000000000000200000004000 {V00 V15}, gcrefRegs=6000 {r13 r14}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; byrRegs -[rdi]
-       ; GC ptr vars -{V94}
+       mov      rax, qword ptr [rbp-0x58]
+       mov      dword ptr [r13+rax+0x18], ebx
+                       ;; size=37 bbWeight=8 PerfScore 52.00
+G_M16529_IG34:        ; bbWeight=64, gcrefRegs=6000 {r13 r14}, byrefRegs=0000 {}, byref, isz
        mov      rdi, 0xD1FFAB1E
...

+5 (+0.25%) : 711871.dasm - System.Buffers.SharedArrayPool1[System.ReadOnlyMemory1[ushort]]:Trim():ubyte:this (Instrumented Tier1)

@@ -10,27 +10,27 @@
 ;
 ;  V00 this         [V00,T21] (  9, 22.50)     ref  ->  rbx         this class-hnd single-def <System.Buffers.SharedArrayPool`1[System.ReadOnlyMemory`1[ushort]]>
 ;  V01 loc0         [V01,T12] (  5, 33.50)     int  ->  r15        
-;  V02 loc1         [V02,T31] (  5, 19   )     int  ->  r14        
+;  V02 loc1         [V02,T30] (  5, 19   )     int  ->  r14        
 ;  V03 loc2         [V03,T20] (  7, 27   )     ref  ->  r13         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V04 loc3         [V04,T41] (  4, 10   )     ref  ->  r12         class-hnd exact single-def <<unknown class>>
-;  V05 loc4         [V05,T30] (  6, 19   )     int  ->  [rbp-0x2C] 
-;  V06 loc5         [V06,T35] (  8, 10.50)     ref  ->  [rbp-0x60]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V04 loc3         [V04,T40] (  4, 10   )     ref  ->  r12         class-hnd exact single-def <<unknown class>>
+;  V05 loc4         [V05,T29] (  6, 19   )     int  ->  [rbp-0x2C] 
+;  V06 loc5         [V06,T34] (  8, 10.50)     ref  ->  [rbp-0x68]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V07 loc6         [V07    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V08 loc7         [V08,T36] (  8, 10.50)     ref  ->  [rbp-0x68]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V08 loc7         [V08,T35] (  8, 10.50)     ref  ->  [rbp-0x70]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V09 loc8         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V10 loc9         [V10,T24] (  3, 20   )     ref  ->  r14         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V10 loc9         [V10,T23] (  3, 20   )     ref  ->  r14         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V11 loc10        [V11,T02] (  5, 66   )     int  ->  r15        
-;  V12 loc11        [V12,T05] (  6, 60   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def <<unknown class>>
-;  V13 loc12        [V13,T42] (  2,  8.50)     int  ->  r14        
-;  V14 loc13        [V14,T64] (  3,  1.50)     int  ->  r14        
-;  V15 loc14        [V15,T37] (  8, 10.50)     ref  ->  [rbp-0x78]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V12 loc11        [V12,T05] (  6, 60   )     ref  ->  [rbp-0x78]  class-hnd exact spill-single-def <<unknown class>>
+;  V13 loc12        [V13,T41] (  2,  8.50)     int  ->  r14        
+;  V14 loc13        [V14,T63] (  3,  1.50)     int  ->  r14        
+;  V15 loc14        [V15,T36] (  8, 10.50)     ref  ->  [rbp-0x80]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V16 loc15        [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V17 loc16        [V17,T10] (  5, 36   )     ref  ->  r12         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V17 loc16        [V17,T10] (  6, 44   )     ref  ->  r12         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V18 loc17        [V18,T00] (  5,210   )     int  ->  [rbp-0x30] 
-;  V19 loc18        [V19,T23] (  3, 24   )     int  ->   r8        
-;  V20 loc19        [V20,T09] (  6, 44   )     ref  ->  [rbp-0x80]  class-hnd exact spill-single-def <<unknown class>>
+;  V19 loc18        [V19,T22] (  3, 24   )     int  ->  rsi        
+;  V20 loc19        [V20,T09] (  6, 44   )     ref  ->  [rbp-0x88]  class-hnd exact spill-single-def <<unknown class>>
 ;# V21 OutArgs      [V21    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V22 tmp1         [V22,T25] (  3, 20   )     ref  ->  [rbp-0x88]  class-hnd exact spill-single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V22 tmp1         [V22,T24] (  3, 20   )     ref  ->  [rbp-0x90]  class-hnd exact spill-single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
 ;* V23 tmp2         [V23    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V24 tmp3         [V24,T11] (  2, 36   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
 ;* V25 tmp4         [V25    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
@@ -44,66 +44,65 @@
 ;  V33 tmp12        [V33,T16] (  2, 32   )     int  ->  [rbp-0x40]  spill-single-def "impAppendStmt"
 ;  V34 tmp13        [V34,T17] (  2, 32   )     int  ->  [rbp-0x44]  spill-single-def "impAppendStmt"
 ;* V35 tmp14        [V35    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V36 tmp15        [V36,T52] (  3,  3   )     ref  ->  rbx         single-def "handle histogram profile tmp"
+;  V36 tmp15        [V36,T51] (  3,  3   )     ref  ->  rbx         single-def "handle histogram profile tmp"
 ;* V37 tmp16        [V37    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V38 tmp17        [V38    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V39 tmp18        [V39    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V40 tmp19        [V40,T53] (  3,  3   )     ref  ->  r14         single-def "handle histogram profile tmp"
+;  V40 tmp19        [V40,T52] (  3,  3   )     ref  ->  r14         single-def "handle histogram profile tmp"
 ;* V41 tmp20        [V41    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V42 tmp21        [V42    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V43 tmp22        [V43    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V44 tmp23        [V44    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V45 tmp24        [V45,T54] (  3,  3   )     ref  ->  r12         single-def "handle histogram profile tmp"
+;  V45 tmp24        [V45,T53] (  3,  3   )     ref  ->  r12         single-def "handle histogram profile tmp"
 ;* V46 tmp25        [V46    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V47 tmp26        [V47    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V48 tmp27        [V48    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V49 tmp28        [V49    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V50 tmp29        [V50,T27] (  3, 20   )     int  ->  [rbp-0x48]  spill-single-def "Inline stloc first use temp"
-;  V51 tmp30        [V51,T26] (  3, 20   )     ref  ->  [rbp-0x90]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;  V50 tmp29        [V50,T26] (  3, 20   )     int  ->  [rbp-0x48]  spill-single-def "Inline stloc first use temp"
+;  V51 tmp30        [V51,T25] (  3, 20   )     ref  ->  [rbp-0x98]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
 ;  V52 tmp31        [V52,T03] (  5, 66   )     int  ->  [rbp-0x4C]  "Inline stloc first use temp"
 ;  V53 tmp32        [V53,T18] (  2, 32   )     int  ->   r8         "Inlining Arg"
 ;  V54 tmp33        [V54,T19] (  2, 32   )     int  ->   r8         "Inlining Arg"
-;  V55 tmp34        [V55,T49] (  2,  4   )     ref  ->  rdi         "field V07.key (fldOffset=0x0)" P-INDEP
-;  V56 tmp35        [V56,T61] (  1,  2   )     ref  ->  rdx         "field V07.value (fldOffset=0x8)" P-INDEP
-;  V57 tmp36        [V57,T50] (  2,  4   )     ref  ->  r14         "field V09.key (fldOffset=0x0)" P-INDEP
-;  V58 tmp37        [V58,T62] (  1,  2   )     ref  ->  rdx         "field V09.value (fldOffset=0x8)" P-INDEP
-;  V59 tmp38        [V59,T51] (  2,  4   )     ref  ->  r12         "field V16.key (fldOffset=0x0)" P-INDEP
-;  V60 tmp39        [V60,T63] (  1,  2   )     ref  ->  rdx         "field V16.value (fldOffset=0x8)" P-INDEP
+;  V55 tmp34        [V55,T48] (  2,  4   )     ref  ->  rdi         "field V07.key (fldOffset=0x0)" P-INDEP
+;  V56 tmp35        [V56,T60] (  1,  2   )     ref  ->  rdx         "field V07.value (fldOffset=0x8)" P-INDEP
+;  V57 tmp36        [V57,T49] (  2,  4   )     ref  ->  r14         "field V09.key (fldOffset=0x0)" P-INDEP
+;  V58 tmp37        [V58,T61] (  1,  2   )     ref  ->  rdx         "field V09.value (fldOffset=0x8)" P-INDEP
+;  V59 tmp38        [V59,T50] (  2,  4   )     ref  ->  r12         "field V16.key (fldOffset=0x0)" P-INDEP
+;  V60 tmp39        [V60,T62] (  1,  2   )     ref  ->  rdx         "field V16.value (fldOffset=0x8)" P-INDEP
 ;* V61 tmp40        [V61    ] (  0,  0   )     ref  ->  zero-ref    "field V25.key (fldOffset=0x0)" P-DEP
 ;* V62 tmp41        [V62    ] (  0,  0   )     ref  ->  zero-ref    "field V25.value (fldOffset=0x8)" P-DEP
 ;* V63 tmp42        [V63    ] (  0,  0   )     ref  ->  zero-ref    "field V30.key (fldOffset=0x0)" P-DEP
 ;* V64 tmp43        [V64    ] (  0,  0   )     ref  ->  zero-ref    "field V30.value (fldOffset=0x8)" P-DEP
 ;* V65 tmp44        [V65    ] (  0,  0   )     ref  ->  zero-ref    "field V35.key (fldOffset=0x0)" P-DEP
 ;* V66 tmp45        [V66    ] (  0,  0   )     ref  ->  zero-ref    "field V35.value (fldOffset=0x8)" P-DEP
-;  V67 tmp46        [V67,T55] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V68 tmp47        [V68,T32] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V69 tmp48        [V69,T46] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;  V67 tmp46        [V67,T54] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V68 tmp47        [V68,T31] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V69 tmp48        [V69,T45] (  2,  8   )     ref  ->  rdi         "argument with side effect"
 ;  V70 tmp49        [V70,T07] (  3, 48   )     ref  ->  rdi         "argument with side effect"
-;  V71 tmp50        [V71,T66] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V72 tmp51        [V72,T56] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V73 tmp52        [V73,T57] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V74 tmp53        [V74,T33] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V75 tmp54        [V75,T47] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;  V71 tmp50        [V71,T65] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V72 tmp51        [V72,T55] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V73 tmp52        [V73,T56] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V74 tmp53        [V74,T32] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V75 tmp54        [V75,T46] (  2,  8   )     ref  ->  rdi         "argument with side effect"
 ;  V76 tmp55        [V76,T08] (  3, 48   )     ref  ->  rdi         "argument with side effect"
-;  V77 tmp56        [V77,T67] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V78 tmp57        [V78,T58] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V79 tmp58        [V79,T59] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V80 tmp59        [V80,T34] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V81 tmp60        [V81,T48] (  2,  8   )     ref  ->  rdi         "argument with side effect"
-;  V82 tmp61        [V82,T68] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V83 tmp62        [V83,T60] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V84 PSPSym       [V84,T65] (  1,  1   )    long  ->  [rbp-0xA0]  do-not-enreg[V] "PSPSym"
-;  V85 cse0         [V85,T43] (  4,  8   )     ref  ->  rbx         multi-def "CSE - conservative"
-;  V86 cse1         [V86,T38] (  6, 10.50)     ref  ->  rbx         multi-def "CSE - conservative"
-;  V87 cse2         [V87,T44] (  4,  8   )     ref  ->  r14         multi-def "CSE - conservative"
-;  V88 cse3         [V88,T39] (  6, 10.50)     ref  ->  r14         multi-def "CSE - conservative"
-;  V89 cse4         [V89,T45] (  4,  8   )     ref  ->  r12         multi-def "CSE - conservative"
-;  V90 cse5         [V90,T40] (  6, 10.50)     ref  ->  r12         multi-def "CSE - conservative"
-;  V91 cse6         [V91,T22] (  3, 24   )   byref  ->  [rbp-0x98]  spill-single-def "CSE - moderate"
-;  V92 cse7         [V92,T06] (  4, 48   )    long  ->  rdx         "CSE - moderate"
-;  V93 cse8         [V93,T01] (  3, 68   )     int  ->  [rbp-0x50]  spill-single-def "CSE - aggressive"
-;  V94 cse9         [V94,T28] (  3, 20   )     int  ->  [rbp-0x54]  spill-single-def "CSE - moderate"
-;  V95 cse10        [V95,T29] (  3, 20   )     int  ->  r12         "CSE - moderate"
+;  V77 tmp56        [V77,T66] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V78 tmp57        [V78,T57] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V79 tmp58        [V79,T58] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V80 tmp59        [V80,T33] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V81 tmp60        [V81,T47] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;  V82 tmp61        [V82,T67] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V83 tmp62        [V83,T59] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V84 PSPSym       [V84,T64] (  1,  1   )    long  ->  [rbp-0xA0]  do-not-enreg[V] "PSPSym"
+;  V85 cse0         [V85,T42] (  4,  8   )     ref  ->  rbx         multi-def "CSE - conservative"
+;  V86 cse1         [V86,T37] (  6, 10.50)     ref  ->  rbx         multi-def "CSE - conservative"
+;  V87 cse2         [V87,T43] (  4,  8   )     ref  ->  r14         multi-def "CSE - conservative"
+;  V88 cse3         [V88,T38] (  6, 10.50)     ref  ->  r14         multi-def "CSE - conservative"
+;  V89 cse4         [V89,T44] (  4,  8   )     ref  ->  r12         multi-def "CSE - conservative"
+;  V90 cse5         [V90,T39] (  6, 10.50)     ref  ->  r12         multi-def "CSE - conservative"
+;  V91 cse6         [V91,T06] (  5, 56   )    long  ->  [rbp-0x58]  spill-single-def "CSE - aggressive"
+;  V92 cse7         [V92,T01] (  3, 68   )     int  ->  [rbp-0x5C]  spill-single-def "CSE - aggressive"
+;  V93 cse8         [V93,T27] (  3, 20   )     int  ->  [rbp-0x60]  spill-single-def "CSE - moderate"
+;  V94 cse9         [V94,T28] (  3, 20   )     int  ->  r12         "CSE - moderate"
 ;
 ; Lcl frame size = 120
 
@@ -158,12 +157,12 @@ G_M59307_IG05:        ; bbWeight=4, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000
        mov      edi, eax
        mov      rcx, gword ptr [r12+8*rdi+0x10]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x88], rcx
+       mov      gword ptr [rbp-0x90], rcx
        ; GC ptr vars +{V22}
        test     rcx, rcx
        je       G_M59307_IG08
                        ;; size=26 bbWeight=4 PerfScore 22.00
-G_M59307_IG06:        ; bbWeight=2, gcVars=00000000000000000000000002000000 {V22}, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M59307_IG06:        ; bbWeight=2, gcVars=00000000000000000000000001000000 {V22}, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rcx]
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
@@ -183,19 +182,19 @@ G_M59307_IG06:        ; bbWeight=2, gcVars=00000000000000000000000002000000 {V22
        shr      edi, 31
        call     [<unknown method>]
        ; gcr arg pop 0
-       mov      rdi, gword ptr [rbp-0x88]
+       mov      rdi, gword ptr [rbp-0x90]
        ; gcrRegs +[rdi]
        mov      rax, gword ptr [rdi+0x08]
        ; gcrRegs +[rax]
-       mov      gword ptr [rbp-0x90], rax
+       mov      gword ptr [rbp-0x98], rax
        ; GC ptr vars +{V51}
        xor      r9d, r9d
        mov      r10d, dword ptr [rax+0x08]
-       mov      dword ptr [rbp-0x54], r10d
+       mov      dword ptr [rbp-0x60], r10d
        test     r10d, r10d
        jle      SHORT G_M59307_IG08
                        ;; size=89 bbWeight=2 PerfScore 37.50
-G_M59307_IG07:        ; bbWeight=16, gcVars=00000000000000000000000004000000 {V51}, gcrefRegs=3009 {rax rbx r12 r13}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M59307_IG07:        ; bbWeight=16, gcVars=00000000000000000000000002000000 {V51}, gcrefRegs=3009 {rax rbx r12 r13}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rdi]
        ; GC ptr vars -{V22}
        mov      dword ptr [rbp-0x4C], r9d
@@ -212,9 +211,9 @@ G_M59307_IG07:        ; bbWeight=16, gcVars=00000000000000000000000004000000 {V5
        ; gcr arg pop 0
        mov      r9d, dword ptr [rbp-0x4C]
        inc      r9d
-       mov      edi, dword ptr [rbp-0x54]
+       mov      edi, dword ptr [rbp-0x60]
        cmp      edi, r9d
-       mov      rax, gword ptr [rbp-0x90]
+       mov      rax, gword ptr [rbp-0x98]
        ; gcrRegs +[rax]
        jg       SHORT G_M59307_IG07
                        ;; size=55 bbWeight=16 PerfScore 260.00
@@ -251,10 +250,10 @@ G_M59307_IG10:        ; bbWeight=0.50, gcrefRegs=2008 {rbx r13}, byrefRegs=0000
        call     [r11]<unknown method>
        ; gcrRegs -[rbx rdi] +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rbp-0x60], rax
+       mov      gword ptr [rbp-0x68], rax
        ; GC ptr vars +{V06}
                        ;; size=56 bbWeight=0.50 PerfScore 6.00
-G_M59307_IG11:        ; bbWeight=0.50, gcVars=00000000000000000000000800000000 {V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M59307_IG11:        ; bbWeight=0.50, gcVars=00000000000000000000000400000000 {V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
        jmp      SHORT G_M59307_IG13
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M59307_IG12:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
@@ -262,7 +261,7 @@ G_M59307_IG12:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       mov      rdi, gword ptr [rbp-0x60]
+       mov      rdi, gword ptr [rbp-0x68]
        ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
@@ -279,7 +278,7 @@ G_M59307_IG12:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        call     [System.Array:Clear(System.Array)]
        ; gcrRegs -[rax rdx rdi]
        ; gcr arg pop 0
-       mov      rax, gword ptr [rbp-0x60]
+       mov      rax, gword ptr [rbp-0x68]
        ; gcrRegs +[rax]
                        ;; size=63 bbWeight=2 PerfScore 22.50
 G_M59307_IG13:        ; bbWeight=4, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
@@ -289,7 +288,7 @@ G_M59307_IG13:        ; bbWeight=4, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byr
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rax rdi]
        ; gcr arg pop 0
-       mov      rdi, gword ptr [rbp-0x60]
+       mov      rdi, gword ptr [rbp-0x68]
        ; gcrRegs +[rdi]
        mov      rbx, rdi
        ; gcrRegs +[rbx]
@@ -308,7 +307,7 @@ G_M59307_IG14:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       mov      rdi, gword ptr [rbp-0x60]
+       mov      rdi, gword ptr [rbp-0x68]
        ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; GC ptr vars -{V06}
@@ -342,15 +341,15 @@ G_M59307_IG15:        ; bbWeight=0.50, gcrefRegs=2008 {rbx r13}, byrefRegs=0000
        call     [r11]<unknown method>
        ; gcrRegs -[rdi r14] +[rax]
        ; gcr arg pop 0
...

+5 (+0.25%) : 383440.dasm - System.Buffers.SharedArrayPool`1[System.Buffers.AhoCorasickNode]:Trim():ubyte:this (Instrumented Tier1)

@@ -10,27 +10,27 @@
 ;
 ;  V00 this         [V00,T21] (  9, 22.50)     ref  ->  rbx         this class-hnd single-def <System.Buffers.SharedArrayPool`1[System.Buffers.AhoCorasickNode]>
 ;  V01 loc0         [V01,T12] (  5, 33.50)     int  ->  r15        
-;  V02 loc1         [V02,T31] (  5, 19   )     int  ->  r14        
+;  V02 loc1         [V02,T30] (  5, 19   )     int  ->  r14        
 ;  V03 loc2         [V03,T20] (  7, 27   )     ref  ->  r13         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V04 loc3         [V04,T41] (  4, 10   )     ref  ->  r12         class-hnd exact single-def <<unknown class>>
-;  V05 loc4         [V05,T30] (  6, 19   )     int  ->  [rbp-0x2C] 
-;  V06 loc5         [V06,T35] (  8, 10.50)     ref  ->  [rbp-0x60]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V04 loc3         [V04,T40] (  4, 10   )     ref  ->  r12         class-hnd exact single-def <<unknown class>>
+;  V05 loc4         [V05,T29] (  6, 19   )     int  ->  [rbp-0x2C] 
+;  V06 loc5         [V06,T34] (  8, 10.50)     ref  ->  [rbp-0x68]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V07 loc6         [V07    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V08 loc7         [V08,T36] (  8, 10.50)     ref  ->  [rbp-0x68]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V08 loc7         [V08,T35] (  8, 10.50)     ref  ->  [rbp-0x70]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V09 loc8         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V10 loc9         [V10,T24] (  3, 20   )     ref  ->  r14         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V10 loc9         [V10,T23] (  3, 20   )     ref  ->  r14         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V11 loc10        [V11,T02] (  5, 66   )     int  ->  r15        
-;  V12 loc11        [V12,T05] (  6, 60   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def <<unknown class>>
-;  V13 loc12        [V13,T42] (  2,  8.50)     int  ->  r14        
-;  V14 loc13        [V14,T64] (  3,  1.50)     int  ->  r14        
-;  V15 loc14        [V15,T37] (  8, 10.50)     ref  ->  [rbp-0x78]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V12 loc11        [V12,T05] (  6, 60   )     ref  ->  [rbp-0x78]  class-hnd exact spill-single-def <<unknown class>>
+;  V13 loc12        [V13,T41] (  2,  8.50)     int  ->  r14        
+;  V14 loc13        [V14,T63] (  3,  1.50)     int  ->  r14        
+;  V15 loc14        [V15,T36] (  8, 10.50)     ref  ->  [rbp-0x80]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V16 loc15        [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V17 loc16        [V17,T10] (  5, 36   )     ref  ->  r12         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V17 loc16        [V17,T10] (  6, 44   )     ref  ->  r12         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V18 loc17        [V18,T00] (  5,210   )     int  ->  [rbp-0x30] 
-;  V19 loc18        [V19,T23] (  3, 24   )     int  ->   r8        
-;  V20 loc19        [V20,T09] (  6, 44   )     ref  ->  [rbp-0x80]  class-hnd exact spill-single-def <<unknown class>>
+;  V19 loc18        [V19,T22] (  3, 24   )     int  ->  rsi        
+;  V20 loc19        [V20,T09] (  6, 44   )     ref  ->  [rbp-0x88]  class-hnd exact spill-single-def <<unknown class>>
 ;# V21 OutArgs      [V21    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V22 tmp1         [V22,T25] (  3, 20   )     ref  ->  [rbp-0x88]  class-hnd exact spill-single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V22 tmp1         [V22,T24] (  3, 20   )     ref  ->  [rbp-0x90]  class-hnd exact spill-single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
 ;* V23 tmp2         [V23    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V24 tmp3         [V24,T11] (  2, 36   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
 ;* V25 tmp4         [V25    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
@@ -44,66 +44,65 @@
 ;  V33 tmp12        [V33,T16] (  2, 32   )     int  ->  [rbp-0x40]  spill-single-def "impAppendStmt"
 ;  V34 tmp13        [V34,T17] (  2, 32   )     int  ->  [rbp-0x44]  spill-single-def "impAppendStmt"
 ;* V35 tmp14        [V35    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V36 tmp15        [V36,T52] (  3,  3   )     ref  ->  rbx         single-def "handle histogram profile tmp"
+;  V36 tmp15        [V36,T51] (  3,  3   )     ref  ->  rbx         single-def "handle histogram profile tmp"
 ;* V37 tmp16        [V37    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V38 tmp17        [V38    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V39 tmp18        [V39    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V40 tmp19        [V40,T53] (  3,  3   )     ref  ->  r14         single-def "handle histogram profile tmp"
+;  V40 tmp19        [V40,T52] (  3,  3   )     ref  ->  r14         single-def "handle histogram profile tmp"
 ;* V41 tmp20        [V41    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V42 tmp21        [V42    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V43 tmp22        [V43    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V44 tmp23        [V44    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V45 tmp24        [V45,T54] (  3,  3   )     ref  ->  r12         single-def "handle histogram profile tmp"
+;  V45 tmp24        [V45,T53] (  3,  3   )     ref  ->  r12         single-def "handle histogram profile tmp"
 ;* V46 tmp25        [V46    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V47 tmp26        [V47    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V48 tmp27        [V48    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V49 tmp28        [V49    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V50 tmp29        [V50,T27] (  3, 20   )     int  ->  [rbp-0x48]  spill-single-def "Inline stloc first use temp"
-;  V51 tmp30        [V51,T26] (  3, 20   )     ref  ->  [rbp-0x90]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;  V50 tmp29        [V50,T26] (  3, 20   )     int  ->  [rbp-0x48]  spill-single-def "Inline stloc first use temp"
+;  V51 tmp30        [V51,T25] (  3, 20   )     ref  ->  [rbp-0x98]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
 ;  V52 tmp31        [V52,T03] (  5, 66   )     int  ->  [rbp-0x4C]  "Inline stloc first use temp"
 ;  V53 tmp32        [V53,T18] (  2, 32   )     int  ->   r8         "Inlining Arg"
 ;  V54 tmp33        [V54,T19] (  2, 32   )     int  ->   r8         "Inlining Arg"
-;  V55 tmp34        [V55,T49] (  2,  4   )     ref  ->  rdi         "field V07.key (fldOffset=0x0)" P-INDEP
-;  V56 tmp35        [V56,T61] (  1,  2   )     ref  ->  rdx         "field V07.value (fldOffset=0x8)" P-INDEP
-;  V57 tmp36        [V57,T50] (  2,  4   )     ref  ->  r14         "field V09.key (fldOffset=0x0)" P-INDEP
-;  V58 tmp37        [V58,T62] (  1,  2   )     ref  ->  rdx         "field V09.value (fldOffset=0x8)" P-INDEP
-;  V59 tmp38        [V59,T51] (  2,  4   )     ref  ->  r12         "field V16.key (fldOffset=0x0)" P-INDEP
-;  V60 tmp39        [V60,T63] (  1,  2   )     ref  ->  rdx         "field V16.value (fldOffset=0x8)" P-INDEP
+;  V55 tmp34        [V55,T48] (  2,  4   )     ref  ->  rdi         "field V07.key (fldOffset=0x0)" P-INDEP
+;  V56 tmp35        [V56,T60] (  1,  2   )     ref  ->  rdx         "field V07.value (fldOffset=0x8)" P-INDEP
+;  V57 tmp36        [V57,T49] (  2,  4   )     ref  ->  r14         "field V09.key (fldOffset=0x0)" P-INDEP
+;  V58 tmp37        [V58,T61] (  1,  2   )     ref  ->  rdx         "field V09.value (fldOffset=0x8)" P-INDEP
+;  V59 tmp38        [V59,T50] (  2,  4   )     ref  ->  r12         "field V16.key (fldOffset=0x0)" P-INDEP
+;  V60 tmp39        [V60,T62] (  1,  2   )     ref  ->  rdx         "field V16.value (fldOffset=0x8)" P-INDEP
 ;* V61 tmp40        [V61    ] (  0,  0   )     ref  ->  zero-ref    "field V25.key (fldOffset=0x0)" P-DEP
 ;* V62 tmp41        [V62    ] (  0,  0   )     ref  ->  zero-ref    "field V25.value (fldOffset=0x8)" P-DEP
 ;* V63 tmp42        [V63    ] (  0,  0   )     ref  ->  zero-ref    "field V30.key (fldOffset=0x0)" P-DEP
 ;* V64 tmp43        [V64    ] (  0,  0   )     ref  ->  zero-ref    "field V30.value (fldOffset=0x8)" P-DEP
 ;* V65 tmp44        [V65    ] (  0,  0   )     ref  ->  zero-ref    "field V35.key (fldOffset=0x0)" P-DEP
 ;* V66 tmp45        [V66    ] (  0,  0   )     ref  ->  zero-ref    "field V35.value (fldOffset=0x8)" P-DEP
-;  V67 tmp46        [V67,T55] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V68 tmp47        [V68,T32] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V69 tmp48        [V69,T46] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;  V67 tmp46        [V67,T54] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V68 tmp47        [V68,T31] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V69 tmp48        [V69,T45] (  2,  8   )     ref  ->  rdi         "argument with side effect"
 ;  V70 tmp49        [V70,T07] (  3, 48   )     ref  ->  rdi         "argument with side effect"
-;  V71 tmp50        [V71,T66] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V72 tmp51        [V72,T56] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V73 tmp52        [V73,T57] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V74 tmp53        [V74,T33] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V75 tmp54        [V75,T47] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;  V71 tmp50        [V71,T65] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V72 tmp51        [V72,T55] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V73 tmp52        [V73,T56] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V74 tmp53        [V74,T32] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V75 tmp54        [V75,T46] (  2,  8   )     ref  ->  rdi         "argument with side effect"
 ;  V76 tmp55        [V76,T08] (  3, 48   )     ref  ->  rdi         "argument with side effect"
-;  V77 tmp56        [V77,T67] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V78 tmp57        [V78,T58] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V79 tmp58        [V79,T59] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V80 tmp59        [V80,T34] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V81 tmp60        [V81,T48] (  2,  8   )     ref  ->  rdi         "argument with side effect"
-;  V82 tmp61        [V82,T68] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V83 tmp62        [V83,T60] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V84 PSPSym       [V84,T65] (  1,  1   )    long  ->  [rbp-0xA0]  do-not-enreg[V] "PSPSym"
-;  V85 cse0         [V85,T43] (  4,  8   )     ref  ->  rbx         multi-def "CSE - conservative"
-;  V86 cse1         [V86,T38] (  6, 10.50)     ref  ->  rbx         multi-def "CSE - conservative"
-;  V87 cse2         [V87,T44] (  4,  8   )     ref  ->  r14         multi-def "CSE - conservative"
-;  V88 cse3         [V88,T39] (  6, 10.50)     ref  ->  r14         multi-def "CSE - conservative"
-;  V89 cse4         [V89,T45] (  4,  8   )     ref  ->  r12         multi-def "CSE - conservative"
-;  V90 cse5         [V90,T40] (  6, 10.50)     ref  ->  r12         multi-def "CSE - conservative"
-;  V91 cse6         [V91,T22] (  3, 24   )   byref  ->  [rbp-0x98]  spill-single-def "CSE - moderate"
-;  V92 cse7         [V92,T06] (  4, 48   )    long  ->  rdx         "CSE - moderate"
-;  V93 cse8         [V93,T01] (  3, 68   )     int  ->  [rbp-0x50]  spill-single-def "CSE - aggressive"
-;  V94 cse9         [V94,T28] (  3, 20   )     int  ->  [rbp-0x54]  spill-single-def "CSE - moderate"
-;  V95 cse10        [V95,T29] (  3, 20   )     int  ->  r12         "CSE - moderate"
+;  V77 tmp56        [V77,T66] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V78 tmp57        [V78,T57] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V79 tmp58        [V79,T58] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V80 tmp59        [V80,T33] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V81 tmp60        [V81,T47] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;  V82 tmp61        [V82,T67] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V83 tmp62        [V83,T59] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V84 PSPSym       [V84,T64] (  1,  1   )    long  ->  [rbp-0xA0]  do-not-enreg[V] "PSPSym"
+;  V85 cse0         [V85,T42] (  4,  8   )     ref  ->  rbx         multi-def "CSE - conservative"
+;  V86 cse1         [V86,T37] (  6, 10.50)     ref  ->  rbx         multi-def "CSE - conservative"
+;  V87 cse2         [V87,T43] (  4,  8   )     ref  ->  r14         multi-def "CSE - conservative"
+;  V88 cse3         [V88,T38] (  6, 10.50)     ref  ->  r14         multi-def "CSE - conservative"
+;  V89 cse4         [V89,T44] (  4,  8   )     ref  ->  r12         multi-def "CSE - conservative"
+;  V90 cse5         [V90,T39] (  6, 10.50)     ref  ->  r12         multi-def "CSE - conservative"
+;  V91 cse6         [V91,T06] (  5, 56   )    long  ->  [rbp-0x58]  spill-single-def "CSE - aggressive"
+;  V92 cse7         [V92,T01] (  3, 68   )     int  ->  [rbp-0x5C]  spill-single-def "CSE - aggressive"
+;  V93 cse8         [V93,T27] (  3, 20   )     int  ->  [rbp-0x60]  spill-single-def "CSE - moderate"
+;  V94 cse9         [V94,T28] (  3, 20   )     int  ->  r12         "CSE - moderate"
 ;
 ; Lcl frame size = 120
 
@@ -158,12 +157,12 @@ G_M35178_IG05:        ; bbWeight=4, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000
        mov      edi, eax
        mov      rcx, gword ptr [r12+8*rdi+0x10]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x88], rcx
+       mov      gword ptr [rbp-0x90], rcx
        ; GC ptr vars +{V22}
        test     rcx, rcx
        je       G_M35178_IG08
                        ;; size=26 bbWeight=4 PerfScore 22.00
-G_M35178_IG06:        ; bbWeight=2, gcVars=00000000000000000000000002000000 {V22}, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M35178_IG06:        ; bbWeight=2, gcVars=00000000000000000000000001000000 {V22}, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rcx]
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
@@ -183,19 +182,19 @@ G_M35178_IG06:        ; bbWeight=2, gcVars=00000000000000000000000002000000 {V22
        shr      edi, 31
        call     [<unknown method>]
        ; gcr arg pop 0
-       mov      rdi, gword ptr [rbp-0x88]
+       mov      rdi, gword ptr [rbp-0x90]
        ; gcrRegs +[rdi]
        mov      rax, gword ptr [rdi+0x08]
        ; gcrRegs +[rax]
-       mov      gword ptr [rbp-0x90], rax
+       mov      gword ptr [rbp-0x98], rax
        ; GC ptr vars +{V51}
        xor      r9d, r9d
        mov      r10d, dword ptr [rax+0x08]
-       mov      dword ptr [rbp-0x54], r10d
+       mov      dword ptr [rbp-0x60], r10d
        test     r10d, r10d
        jle      SHORT G_M35178_IG08
                        ;; size=89 bbWeight=2 PerfScore 37.50
-G_M35178_IG07:        ; bbWeight=16, gcVars=00000000000000000000000004000000 {V51}, gcrefRegs=3009 {rax rbx r12 r13}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M35178_IG07:        ; bbWeight=16, gcVars=00000000000000000000000002000000 {V51}, gcrefRegs=3009 {rax rbx r12 r13}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rdi]
        ; GC ptr vars -{V22}
        mov      dword ptr [rbp-0x4C], r9d
@@ -212,9 +211,9 @@ G_M35178_IG07:        ; bbWeight=16, gcVars=00000000000000000000000004000000 {V5
        ; gcr arg pop 0
        mov      r9d, dword ptr [rbp-0x4C]
        inc      r9d
-       mov      edi, dword ptr [rbp-0x54]
+       mov      edi, dword ptr [rbp-0x60]
        cmp      edi, r9d
-       mov      rax, gword ptr [rbp-0x90]
+       mov      rax, gword ptr [rbp-0x98]
        ; gcrRegs +[rax]
        jg       SHORT G_M35178_IG07
                        ;; size=55 bbWeight=16 PerfScore 260.00
@@ -251,10 +250,10 @@ G_M35178_IG10:        ; bbWeight=0.50, gcrefRegs=2008 {rbx r13}, byrefRegs=0000
        call     [r11]<unknown method>
        ; gcrRegs -[rbx rdi] +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rbp-0x60], rax
+       mov      gword ptr [rbp-0x68], rax
        ; GC ptr vars +{V06}
                        ;; size=56 bbWeight=0.50 PerfScore 6.00
-G_M35178_IG11:        ; bbWeight=0.50, gcVars=00000000000000000000000800000000 {V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M35178_IG11:        ; bbWeight=0.50, gcVars=00000000000000000000000400000000 {V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
        jmp      SHORT G_M35178_IG13
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M35178_IG12:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
@@ -262,7 +261,7 @@ G_M35178_IG12:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       mov      rdi, gword ptr [rbp-0x60]
+       mov      rdi, gword ptr [rbp-0x68]
        ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
@@ -279,7 +278,7 @@ G_M35178_IG12:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        call     [System.Array:Clear(System.Array)]
        ; gcrRegs -[rax rdx rdi]
        ; gcr arg pop 0
-       mov      rax, gword ptr [rbp-0x60]
+       mov      rax, gword ptr [rbp-0x68]
        ; gcrRegs +[rax]
                        ;; size=63 bbWeight=2 PerfScore 22.50
 G_M35178_IG13:        ; bbWeight=4, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
@@ -289,7 +288,7 @@ G_M35178_IG13:        ; bbWeight=4, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byr
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rax rdi]
        ; gcr arg pop 0
-       mov      rdi, gword ptr [rbp-0x60]
+       mov      rdi, gword ptr [rbp-0x68]
        ; gcrRegs +[rdi]
        mov      rbx, rdi
        ; gcrRegs +[rbx]
@@ -308,7 +307,7 @@ G_M35178_IG14:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       mov      rdi, gword ptr [rbp-0x60]
+       mov      rdi, gword ptr [rbp-0x68]
        ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; GC ptr vars -{V06}
@@ -342,15 +341,15 @@ G_M35178_IG15:        ; bbWeight=0.50, gcrefRegs=2008 {rbx r13}, byrefRegs=0000
        call     [r11]<unknown method>
        ; gcrRegs -[rdi r14] +[rax]
        ; gcr arg pop 0
...

+15 (+3.05%) : 314768.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (Tier0-FullOpts)

@@ -3,48 +3,48 @@
 ; Tier-0 switched to FullOpts code
 ; optimized code
 ; rbp based frame
-; fully interruptible
+; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T04] (  3,  3   )   byref  ->  rdi         this single-def
-;  V01 arg1         [V01,T05] (  3,  3   )  struct (16) [rbp-0x40]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
+;  V00 this         [V00,T02] (  3,  3   )   byref  ->  rdi         this single-def
+;  V01 arg1         [V01,T03] (  3,  3   )  struct (16) [rbp-0x40]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
-;  V03 loc1         [V03,T02] (  9, 12   )     int  ->  r14        
+;  V03 loc1         [V03,T04] (  9,  4.75)     int  ->  r14        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[int]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [rbp-0x30]  do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Decimal>
-;  V09 tmp4         [V09,T06] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V10 tmp5         [V10,T12] (  2,  2   )     int  ->  rsi         "Strict ordering of exceptions for Array store"
+;  V09 tmp4         [V09,T05] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V10 tmp5         [V10,T11] (  2,  2   )     int  ->  rsi         "Strict ordering of exceptions for Array store"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
-;  V13 tmp8         [V13,T19] (  2,  1   )     int  ->  rdi        
-;  V14 tmp9         [V14,T07] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V15 tmp10        [V15,T13] (  2,  2   )     int  ->  rsi         "Strict ordering of exceptions for Array store"
-;  V16 tmp11        [V16,T08] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V17 tmp12        [V17,T14] (  2,  2   )     int  ->  rsi         "Strict ordering of exceptions for Array store"
-;  V18 tmp13        [V18,T15] (  2,  2   )     int  ->  rsi         "impAppendStmt"
+;  V13 tmp8         [V13,T18] (  2,  1   )     int  ->  rdi        
+;  V14 tmp9         [V14,T06] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V15 tmp10        [V15,T12] (  2,  2   )     int  ->  rsi         "Strict ordering of exceptions for Array store"
+;  V16 tmp11        [V16,T07] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V17 tmp12        [V17,T13] (  2,  2   )     int  ->  rsi         "Strict ordering of exceptions for Array store"
+;  V18 tmp13        [V18,T14] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    ptr
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp18        [V23,T20] (  2,  1   )     int  ->  rdi        
+;  V23 tmp18        [V23,T19] (  2,  1   )     int  ->  rdi        
 ;  V24 tmp19        [V24    ] (  6, 11   )  struct (16) [rbp-0x50]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
-;  V25 tmp20        [V25,T10] (  3,  2.50)     int  ->  rsi         "Inline stloc first use temp"
+;  V25 tmp20        [V25,T09] (  3,  2.50)     int  ->  rsi         "Inline stloc first use temp"
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Decimal>
 ;* V28 tmp23        [V28    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V29 tmp24        [V29    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V30 tmp25        [V30    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;  V31 tmp26        [V31,T01] ( 12, 12   )   byref  ->  r15         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V32 tmp27        [V32,T21] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp26        [V31,T00] ( 14,  9.50)   byref  ->  r15         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V32 tmp27        [V32,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp28        [V33    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V34 tmp29        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V35 tmp30        [V35,T11] (  2,  2   )   byref  ->  r15         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V36 tmp31        [V36,T22] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
+;  V35 tmp30        [V35,T10] (  2,  2   )   byref  ->  r15         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V36 tmp31        [V36,T21] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V37 tmp32        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V08._flags (fldOffset=0x0)" P-INDEP
 ;* V38 tmp33        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V08._hi32 (fldOffset=0x4)" P-INDEP
 ;* V39 tmp34        [V39    ] (  0,  0   )    long  ->  zero-ref    "field V08._lo64 (fldOffset=0x8)" P-INDEP
@@ -53,13 +53,12 @@
 ;  V42 tmp37        [V42    ] (  3,  4   )    long  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V24._lo64 (fldOffset=0x8)" P-DEP
 ;* V43 tmp38        [V43    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V44 tmp39        [V44    ] (  0,  0   )     int  ->  zero-ref    ptr "field V26._length (fldOffset=0x8)" P-INDEP
-;  V45 tmp40        [V45,T16] (  2,  2   )     int  ->  rdi         "field V27._flags (fldOffset=0x0)" P-INDEP
-;  V46 tmp41        [V46,T17] (  2,  2   )     int  ->  rsi         "field V27._hi32 (fldOffset=0x4)" P-INDEP
-;  V47 tmp42        [V47,T09] (  3,  3   )    long  ->  rax         "field V27._lo64 (fldOffset=0x8)" P-INDEP
+;  V45 tmp40        [V45,T15] (  2,  2   )     int  ->  rdi         "field V27._flags (fldOffset=0x0)" P-INDEP
+;  V46 tmp41        [V46,T16] (  2,  2   )     int  ->  rsi         "field V27._hi32 (fldOffset=0x4)" P-INDEP
+;  V47 tmp42        [V47,T08] (  3,  3   )    long  ->  rax         "field V27._lo64 (fldOffset=0x8)" P-INDEP
 ;  V48 GsCookie     [V48    ] (  1,  1   )    long  ->  [rbp-0x20]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V49 tmp44        [V49,T03] ( 11,  6   )   byref  ->  rbx         single-def "shadowVar"
-;  V50 cse0         [V50,T18] (  3,  1.50)     int  ->  rsi         "CSE - moderate"
-;  V51 cse1         [V51,T00] (  4, 14   )     int  ->  rdi         "CSE - aggressive"
+;  V49 tmp44        [V49,T01] ( 11,  6   )   byref  ->  rbx         single-def "shadowVar"
+;  V50 cse0         [V50,T17] (  3,  1.50)     int  ->  rsi         "CSE - moderate"
 ;
 ; Lcl frame size = 56
 
@@ -93,7 +92,6 @@ G_M46478_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r1
        lea      rdi, [rbp-0x50]
        mov      edx, 2
        call     [<unknown method>]
-       ; gcr arg pop 0
                        ;; size=22 bbWeight=0.50 PerfScore 2.25
 G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
        mov      edi, dword ptr [rbp-0x50]
@@ -107,29 +105,46 @@ G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15},
        mov      r14d, 3
        jmp      SHORT G_M46478_IG06
                        ;; size=37 bbWeight=1 PerfScore 9.75
-G_M46478_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
-       mov      r14d, edi
-       test     r14d, r14d
-       jle      SHORT G_M46478_IG07
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M46478_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
-       lea      edi, [r14-0x01]
-       cmp      edi, 4
-       jae      G_M46478_IG20
-       mov      esi, edi
-       cmp      dword ptr [r15+4*rsi], 0
+G_M46478_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       mov      r14d, 2
+       jmp      SHORT G_M46478_IG09
+                       ;; size=8 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       cmp      dword ptr [r15+0x08], 0
        je       SHORT G_M46478_IG05
-                       ;; size=22 bbWeight=4 PerfScore 24.00
-G_M46478_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+                       ;; size=7 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG07:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       jmp      SHORT G_M46478_IG13
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M46478_IG08:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       mov      r14d, 1
+       jmp      SHORT G_M46478_IG12
+                       ;; size=8 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       cmp      dword ptr [r15+0x04], 0
+       je       SHORT G_M46478_IG08
+                       ;; size=7 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG10:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       jmp      SHORT G_M46478_IG13
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M46478_IG11:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       xor      r14d, r14d
+       jmp      SHORT G_M46478_IG13
+                       ;; size=5 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       cmp      dword ptr [r15], 0
+       je       SHORT G_M46478_IG11
+                       ;; size=6 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
        test     r14d, r14d
-       jne      SHORT G_M46478_IG12
+       jne      SHORT G_M46478_IG18
                        ;; size=5 bbWeight=1 PerfScore 1.25
-G_M46478_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        ; byrRegs -[r15]
        test     byte  ptr [(reloc)], 1      ; global ptr
-       je       G_M46478_IG21
+       je       G_M46478_IG27
                        ;; size=13 bbWeight=0.50 PerfScore 2.00
-G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+G_M46478_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        mov      rdi, 0xD1FFAB1E      ; box for <unknown class>:<unknown field>
        mov      rsi, gword ptr [rdi]
        ; gcrRegs +[rsi]
@@ -144,15 +159,14 @@ G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
        mov      rdi, 0xD1FFAB1E
        ; byrRegs -[rdi]
        cmp      qword ptr [rbp-0x20], rdi
-       je       SHORT G_M46478_IG10
+       je       SHORT G_M46478_IG16
        call     CORINFO_HELP_FAIL_FAST
        ; byrRegs -[rsi]
-       ; gcr arg pop 0
                        ;; size=48 bbWeight=0.50 PerfScore 4.50
-G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M46478_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+G_M46478_IG17:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 56
        pop      rbx
        pop      r14
@@ -160,13 +174,13 @@ G_M46478_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M46478_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, gcvars, byref, isz
+G_M46478_IG18:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, gcvars, byref, isz
        ; byrRegs +[rbx r15]
        cmp      r14d, 1
-       jne      SHORT G_M46478_IG15
+       jne      SHORT G_M46478_IG21
        mov      esi, dword ptr [r15]
        test     esi, esi
-       jle      SHORT G_M46478_IG15
+       jle      SHORT G_M46478_IG21
        mov      dword ptr [rbx+0x08], esi
        mov      esi, dword ptr [rbx+0x08]
        mov      edi, -1
@@ -180,16 +194,15 @@ G_M46478_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        mov      gword ptr [rbx], rsi
        mov      rdi, 0xD1FFAB1E
        cmp      qword ptr [rbp-0x20], rdi
-       je       SHORT G_M46478_IG13
+       je       SHORT G_M46478_IG19
        call     CORINFO_HELP_FAIL_FAST
        ; gcrRegs -[rsi]
        ; byrRegs -[rbx r15]
-       ; gcr arg pop 0
                        ;; size=72 bbWeight=0.50 PerfScore 9.88
-G_M46478_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46478_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M46478_IG14:        ; bbWeight=0.50, epilog, nogc, extend
+G_M46478_IG20:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 56
        pop      rbx
        pop      r14
@@ -197,13 +210,12 @@ G_M46478_IG14:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M46478_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, gcvars, byref, isz
+G_M46478_IG21:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, gcvars, byref, isz
        ; byrRegs +[rbx r15]
        movsxd   rsi, r14d
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWARR_1_VC
        ; gcrRegs +[rax]
-       ; gcr arg pop 0
        mov      rsi, rax
        ; gcrRegs +[rsi]
        mov      rdi, rbx
@@ -215,28 +227,28 @@ G_M46478_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        ; gcrRegs +[rdi]
        mov      esi, dword ptr [r15]
        cmp      dword ptr [rdi+0x08], 0
-       jbe      SHORT G_M46478_IG20
+       jbe      SHORT G_M46478_IG26
        mov      dword ptr [rdi+0x10], esi
        cmp      r14d, 1
-       jle      SHORT G_M46478_IG16
+       jle      SHORT G_M46478_IG22
        mov      rdi, gword ptr [rbx]
        mov      esi, dword ptr [r15+0x04]
        cmp      dword ptr [rdi+0x08], 1
-       jbe      SHORT G_M46478_IG20
+       jbe      SHORT G_M46478_IG26
        mov      dword ptr [rdi+0x14], esi
                        ;; size=66 bbWeight=0.50 PerfScore 11.12
-G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+G_M46478_IG22:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
        ; gcrRegs -[rdi]
        cmp      r14d, 2
...

librariestestsnotieredcompilation.run.linux.x64.Release.mch

-2 (-0.15%) : 185652.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

@@ -12,14 +12,14 @@
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.DateTime>
 ;  V02 arg2         [V02,T29] (  8,  7   )   ubyte  ->  [rbp-0x2C]  EH-live single-def
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V04 loc1         [V04,T01] ( 11,116   )     ref  ->  r12         class-hnd <<unknown class>>
+;  V04 loc1         [V04,T05] (  8, 68   )     ref  ->  r12         class-hnd <<unknown class>>
 ;  V05 loc2         [V05,T27] (  3, 12   )     int  ->  rsi        
-;  V06 loc3         [V06,T03] (  7,108   )     ref  ->  registers   class-hnd <System.Runtime.Caching.MemoryCacheEntry>
+;  V06 loc3         [V06,T02] (  7,108   )     ref  ->  registers   class-hnd <System.Runtime.Caching.MemoryCacheEntry>
 ;  V07 loc4         [V07,T14] (  5, 35   )     int  ->  [rbp-0x30]  do-not-enreg[Z] EH-live
 ;  V08 loc5         [V08,T37] (  2,  5   )     ref  ->  rbx         class-hnd exact single-def <System.Runtime.Caching.MemoryCacheStore>
 ;* V09 loc6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Runtime.Caching.ExpiresEntryRef>
 ;* V10 loc7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V11 loc8         [V11,T04] ( 16, 74   )     ref  ->  [rbp-0x60]  class-hnd exact EH-live single-def <System.Runtime.Caching.ExpiresBucket>
+;  V11 loc8         [V11,T03] ( 16, 74   )     ref  ->  [rbp-0x60]  class-hnd exact EH-live single-def <System.Runtime.Caching.ExpiresBucket>
 ;  V12 loc9         [V12    ] (  6,  6   )   ubyte  ->  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;  V13 loc10        [V13,T25] (  4, 13   )     int  ->  rbx        
 ;* V14 loc11        [V14,T46] (  0,  0   )     int  ->  zero-ref    do-not-enreg[M] EH-live
@@ -60,7 +60,7 @@
 ;  V49 tmp29        [V49,T31] (  6,  6   )     ref  ->  rbx         class-hnd exact "Inlining Arg" <System.Runtime.Caching.MemoryCacheStore>
 ;  V50 tmp30        [V50,T30] (  5,  5   )    long  ->  rbx         single-def "field V01._dateData (fldOffset=0x0)" P-INDEP
 ;  V51 tmp31        [V51,T15] (  5, 35   )     int  ->  [rbp-0x4C]  do-not-enreg[Z] EH-live "field V03._ref (fldOffset=0x0)" P-INDEP
-;  V52 tmp32        [V52,T05] ( 13, 71   )     int  ->  rsi         "field V09._ref (fldOffset=0x0)" P-INDEP
+;  V52 tmp32        [V52,T04] ( 13, 71   )     int  ->  rsi         "field V09._ref (fldOffset=0x0)" P-INDEP
 ;  V53 tmp33        [V53,T19] (  4, 24   )     int  ->  r15         "field V10._ref (fldOffset=0x0)" P-INDEP
 ;* V54 tmp34        [V54,T49] (  0,  0   )     int  ->  zero-ref    single-def "field V21._ref (fldOffset=0x0)" P-INDEP
 ;* V55 tmp35        [V55,T24] (  0,  0   )     int  ->  zero-ref    "field V22._ref (fldOffset=0x0)" P-INDEP
@@ -78,13 +78,13 @@
 ;  V67 tmp47        [V67,T09] (  3, 48   )     ref  ->  rdi         "arr expr"
 ;  V68 tmp48        [V68,T10] (  3, 48   )     ref  ->  rdi         "arr expr"
 ;  V69 PSPSym       [V69,T50] (  1,  1   )    long  ->  [rbp-0x70]  do-not-enreg[V] "PSPSym"
-;  V70 cse0         [V70,T23] (  4, 16   )   byref  ->  rsi         "CSE - moderate"
-;  V71 cse1         [V71,T11] (  3, 48   )    long  ->  rdi         "CSE - moderate"
-;  V72 cse2         [V72,T02] (  5,112   )    long  ->   r8         "CSE - aggressive"
+;  V70 cse0         [V70,T11] (  3, 48   )    long  ->  rdi         "CSE - moderate"
+;  V71 cse1         [V71,T01] (  5,112   )   byref  ->   r8         "CSE - aggressive"
+;  V72 cse2         [V72,T23] (  4, 16   )   byref  ->  rsi         "CSE - moderate"
 ;  V73 cse3         [V73,T22] (  4, 19   )    long  ->  r15         "CSE - moderate"
 ;  V74 cse4         [V74,T44] (  3,  3   )     ref  ->  rcx         "CSE - conservative"
 ;  V75 cse5         [V75,T45] (  3,  3   )     ref  ->  rdi         "CSE - conservative"
-;  V76 cse6         [V76,T12] (  4, 44   )     int  ->  [rbp-0x50]  spill-single-def "CSE - moderate"
+;  V76 cse6         [V76,T12] (  4, 44   )     int  ->  [rbp-0x50]  spill-single-def "CSE - aggressive"
 ;  V77 cse7         [V77,T21] (  3, 24   )     int  ->  rax         "CSE - moderate"
 ;  V78 cse8         [V78,T28] (  3, 12   )     int  ->  rcx         "CSE - moderate"
 ;  V79 cse9         [V79,T32] (  6,  6   )     ref  ->  rsi         multi-def "CSE - moderate"
@@ -193,7 +193,7 @@ G_M744_IG10:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
        xor      esi, esi
        mov      dword ptr [rbp-0x38], esi
                        ;; size=12 bbWeight=1 PerfScore 2.50
-G_M744_IG11:        ; bbWeight=1, gcVars=0000000000040010 {V00 V11}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M744_IG11:        ; bbWeight=1, gcVars=0000000000040008 {V00 V11}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rdi]
        ; GC ptr vars -{V18}
        cmp      byte  ptr [rbp-0x38], 0
@@ -210,9 +210,9 @@ G_M744_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M744_IG14:        ; bbWeight=1, gcVars=0000000000040010 {V00 V11}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M744_IG14:        ; bbWeight=1, gcVars=0000000000040008 {V00 V11}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[r14]
-       ; GC ptr vars +{V04 V11}
+       ; GC ptr vars +{V11}
        lea      rsi, [rbp-0x38]
        mov      rdi, r14
        ; gcrRegs +[rdi]
@@ -304,15 +304,17 @@ G_M744_IG19:        ; bbWeight=4, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {}, b
                        ;; size=45 bbWeight=4 PerfScore 38.00
 G_M744_IG20:        ; bbWeight=32, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {}, byref, isz
        mov      dword ptr [rbp-0x40], edx
-       mov      r8d, edx
-       shl      r8, 4
-       mov      rsi, gword ptr [r12+r8+0x18]
+       mov      esi, edx
+       shl      rsi, 4
+       lea      r8, bword ptr [r12+rsi+0x10]
+       ; byrRegs +[r8]
+       mov      rsi, gword ptr [r8+0x08]
        ; gcrRegs +[rsi]
        test     rsi, rsi
        je       SHORT G_M744_IG24
-                       ;; size=20 bbWeight=32 PerfScore 160.00
-G_M744_IG21:        ; bbWeight=16, gcrefRegs=5040 {rsi r12 r14}, byrefRegs=0000 {}, byref, isz
-       mov      rdi, qword ptr [r12+r8+0x10]
+                       ;; size=23 bbWeight=32 PerfScore 192.00
+G_M744_IG21:        ; bbWeight=16, gcrefRegs=5040 {rsi r12 r14}, byrefRegs=0100 {r8}, byref, isz
+       mov      rdi, qword ptr [r8]
        mov      r9, rdi
        mov      r10, 0xD1FFAB1E
        and      r9, r10
@@ -324,17 +326,19 @@ G_M744_IG21:        ; bbWeight=16, gcrefRegs=5040 {rsi r12 r14}, byrefRegs=0000
        ; gcrRegs +[rdi]
        call     [System.Runtime.Caching.ExpiresBucket:AddCount(System.DateTime):this]
        ; gcrRegs -[rdi]
+       ; byrRegs -[r8]
        ; gcr arg pop 0
        jmp      SHORT G_M744_IG23
-                       ;; size=40 bbWeight=16 PerfScore 152.00
-G_M744_IG22:        ; bbWeight=16, gcrefRegs=5040 {rsi r12 r14}, byrefRegs=0000 {}, byref
+                       ;; size=38 bbWeight=16 PerfScore 152.00
+G_M744_IG22:        ; bbWeight=16, gcrefRegs=5040 {rsi r12 r14}, byrefRegs=0100 {r8}, byref
        ; gcrRegs +[rsi]
+       ; byrRegs +[r8]
        mov      byte  ptr [rsi+0x30], 255
        xor      edi, edi
        mov      dword ptr [rsi+0x50], edi
-       mov      dword ptr [r12+r8+0x14], 1
+       mov      dword ptr [r8+0x04], 1
        mov      edi, dword ptr [rbp-0x4C]
-       mov      dword ptr [r12+r8+0x10], edi
+       mov      dword ptr [r8], edi
        mov      edi, r13d
        shl      edi, 8
        mov      edx, dword ptr [rbp-0x40]
@@ -347,8 +351,9 @@ G_M744_IG22:        ; bbWeight=16, gcrefRegs=5040 {rsi r12 r14}, byrefRegs=0000
        mov      dword ptr [rbp-0x30], edi
        inc      dword ptr [r14+0x28]
        mov      dword ptr [rbp-0x40], edx
-                       ;; size=59 bbWeight=16 PerfScore 236.00
+                       ;; size=56 bbWeight=16 PerfScore 236.00
 G_M744_IG23:        ; bbWeight=16, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {}, byref, isz
+       ; byrRegs -[r8]
        mov      ecx, dword ptr [rbp-0x3C]
        dec      ecx
        mov      dword ptr [rbp-0x3C], ecx
@@ -381,7 +386,7 @@ G_M744_IG27:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
                        ;; size=11 bbWeight=1 PerfScore 4.00
 G_M744_IG28:        ; bbWeight=1, gcVars=0000000000040000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[r14]
-       ; GC ptr vars -{V04 V11}
+       ; GC ptr vars -{V11}
        cmp      byte  ptr [rbp-0x38], 0
        je       SHORT G_M744_IG32
        mov      rdi, gword ptr [rbp-0x58]
@@ -783,7 +788,7 @@ G_M744_IG68:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=15 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1359, prolog size 43, PerfScore 1481.25, instruction count 417, allocated bytes for code 1359 (MethodHash=d871fd17) for method System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)
+; Total bytes of code 1357, prolog size 43, PerfScore 1513.25, instruction count 418, allocated bytes for code 1357 (MethodHash=d871fd17) for method System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+15 (+3.05%) : 116902.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

@@ -3,48 +3,48 @@
 ; FullOpts code
 ; optimized code
 ; rbp based frame
-; fully interruptible
+; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T04] (  3,  3   )   byref  ->  rdi         this single-def
-;  V01 arg1         [V01,T05] (  3,  3   )  struct (16) [rbp-0x40]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
+;  V00 this         [V00,T02] (  3,  3   )   byref  ->  rdi         this single-def
+;  V01 arg1         [V01,T03] (  3,  3   )  struct (16) [rbp-0x40]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
-;  V03 loc1         [V03,T02] (  9, 12   )     int  ->  r14        
+;  V03 loc1         [V03,T04] (  9,  4.75)     int  ->  r14        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[int]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [rbp-0x30]  do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Decimal>
-;  V09 tmp4         [V09,T06] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V10 tmp5         [V10,T12] (  2,  2   )     int  ->  rsi         "Strict ordering of exceptions for Array store"
+;  V09 tmp4         [V09,T05] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V10 tmp5         [V10,T11] (  2,  2   )     int  ->  rsi         "Strict ordering of exceptions for Array store"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
-;  V13 tmp8         [V13,T19] (  2,  1   )     int  ->  rdi        
-;  V14 tmp9         [V14,T07] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V15 tmp10        [V15,T13] (  2,  2   )     int  ->  rsi         "Strict ordering of exceptions for Array store"
-;  V16 tmp11        [V16,T08] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V17 tmp12        [V17,T14] (  2,  2   )     int  ->  rsi         "Strict ordering of exceptions for Array store"
-;  V18 tmp13        [V18,T15] (  2,  2   )     int  ->  rsi         "impAppendStmt"
+;  V13 tmp8         [V13,T18] (  2,  1   )     int  ->  rdi        
+;  V14 tmp9         [V14,T06] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V15 tmp10        [V15,T12] (  2,  2   )     int  ->  rsi         "Strict ordering of exceptions for Array store"
+;  V16 tmp11        [V16,T07] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V17 tmp12        [V17,T13] (  2,  2   )     int  ->  rsi         "Strict ordering of exceptions for Array store"
+;  V18 tmp13        [V18,T14] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    ptr
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp18        [V23,T20] (  2,  1   )     int  ->  rdi        
+;  V23 tmp18        [V23,T19] (  2,  1   )     int  ->  rdi        
 ;  V24 tmp19        [V24    ] (  6, 11   )  struct (16) [rbp-0x50]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
-;  V25 tmp20        [V25,T10] (  3,  2.50)     int  ->  rsi         "Inline stloc first use temp"
+;  V25 tmp20        [V25,T09] (  3,  2.50)     int  ->  rsi         "Inline stloc first use temp"
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Decimal>
 ;* V28 tmp23        [V28    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V29 tmp24        [V29    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V30 tmp25        [V30    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;  V31 tmp26        [V31,T01] ( 12, 12   )   byref  ->  r15         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V32 tmp27        [V32,T21] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp26        [V31,T00] ( 14,  9.50)   byref  ->  r15         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V32 tmp27        [V32,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp28        [V33    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V34 tmp29        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V35 tmp30        [V35,T11] (  2,  2   )   byref  ->  r15         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V36 tmp31        [V36,T22] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
+;  V35 tmp30        [V35,T10] (  2,  2   )   byref  ->  r15         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V36 tmp31        [V36,T21] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V37 tmp32        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V08._flags (fldOffset=0x0)" P-INDEP
 ;* V38 tmp33        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V08._hi32 (fldOffset=0x4)" P-INDEP
 ;* V39 tmp34        [V39    ] (  0,  0   )    long  ->  zero-ref    "field V08._lo64 (fldOffset=0x8)" P-INDEP
@@ -53,13 +53,12 @@
 ;  V42 tmp37        [V42    ] (  3,  4   )    long  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V24._lo64 (fldOffset=0x8)" P-DEP
 ;* V43 tmp38        [V43    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V44 tmp39        [V44    ] (  0,  0   )     int  ->  zero-ref    ptr "field V26._length (fldOffset=0x8)" P-INDEP
-;  V45 tmp40        [V45,T16] (  2,  2   )     int  ->  rdi         "field V27._flags (fldOffset=0x0)" P-INDEP
-;  V46 tmp41        [V46,T17] (  2,  2   )     int  ->  rsi         "field V27._hi32 (fldOffset=0x4)" P-INDEP
-;  V47 tmp42        [V47,T09] (  3,  3   )    long  ->  rax         "field V27._lo64 (fldOffset=0x8)" P-INDEP
+;  V45 tmp40        [V45,T15] (  2,  2   )     int  ->  rdi         "field V27._flags (fldOffset=0x0)" P-INDEP
+;  V46 tmp41        [V46,T16] (  2,  2   )     int  ->  rsi         "field V27._hi32 (fldOffset=0x4)" P-INDEP
+;  V47 tmp42        [V47,T08] (  3,  3   )    long  ->  rax         "field V27._lo64 (fldOffset=0x8)" P-INDEP
 ;  V48 GsCookie     [V48    ] (  1,  1   )    long  ->  [rbp-0x20]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V49 tmp44        [V49,T03] ( 11,  6   )   byref  ->  rbx         single-def "shadowVar"
-;  V50 cse0         [V50,T18] (  3,  1.50)     int  ->  rsi         "CSE - moderate"
-;  V51 cse1         [V51,T00] (  4, 14   )     int  ->  rdi         "CSE - aggressive"
+;  V49 tmp44        [V49,T01] ( 11,  6   )   byref  ->  rbx         single-def "shadowVar"
+;  V50 cse0         [V50,T17] (  3,  1.50)     int  ->  rsi         "CSE - moderate"
 ;
 ; Lcl frame size = 56
 
@@ -93,7 +92,6 @@ G_M46478_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r1
        lea      rdi, [rbp-0x50]
        mov      edx, 2
        call     [<unknown method>]
-       ; gcr arg pop 0
                        ;; size=22 bbWeight=0.50 PerfScore 2.25
 G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
        mov      edi, dword ptr [rbp-0x50]
@@ -107,29 +105,46 @@ G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15},
        mov      r14d, 3
        jmp      SHORT G_M46478_IG06
                        ;; size=37 bbWeight=1 PerfScore 9.75
-G_M46478_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
-       mov      r14d, edi
-       test     r14d, r14d
-       jle      SHORT G_M46478_IG07
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M46478_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
-       lea      edi, [r14-0x01]
-       cmp      edi, 4
-       jae      G_M46478_IG20
-       mov      esi, edi
-       cmp      dword ptr [r15+4*rsi], 0
+G_M46478_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       mov      r14d, 2
+       jmp      SHORT G_M46478_IG09
+                       ;; size=8 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       cmp      dword ptr [r15+0x08], 0
        je       SHORT G_M46478_IG05
-                       ;; size=22 bbWeight=4 PerfScore 24.00
-G_M46478_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+                       ;; size=7 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG07:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       jmp      SHORT G_M46478_IG13
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M46478_IG08:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       mov      r14d, 1
+       jmp      SHORT G_M46478_IG12
+                       ;; size=8 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       cmp      dword ptr [r15+0x04], 0
+       je       SHORT G_M46478_IG08
+                       ;; size=7 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG10:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       jmp      SHORT G_M46478_IG13
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M46478_IG11:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       xor      r14d, r14d
+       jmp      SHORT G_M46478_IG13
+                       ;; size=5 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+       cmp      dword ptr [r15], 0
+       je       SHORT G_M46478_IG11
+                       ;; size=6 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
        test     r14d, r14d
-       jne      SHORT G_M46478_IG12
+       jne      SHORT G_M46478_IG18
                        ;; size=5 bbWeight=1 PerfScore 1.25
-G_M46478_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        ; byrRegs -[r15]
        test     byte  ptr [(reloc)], 1      ; global ptr
-       je       G_M46478_IG21
+       je       G_M46478_IG27
                        ;; size=13 bbWeight=0.50 PerfScore 2.00
-G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+G_M46478_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        mov      rdi, 0xD1FFAB1E      ; box for <unknown class>:<unknown field>
        mov      rsi, gword ptr [rdi]
        ; gcrRegs +[rsi]
@@ -144,15 +159,14 @@ G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
        mov      rdi, 0xD1FFAB1E
        ; byrRegs -[rdi]
        cmp      qword ptr [rbp-0x20], rdi
-       je       SHORT G_M46478_IG10
+       je       SHORT G_M46478_IG16
        call     CORINFO_HELP_FAIL_FAST
        ; byrRegs -[rsi]
-       ; gcr arg pop 0
                        ;; size=48 bbWeight=0.50 PerfScore 4.50
-G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M46478_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+G_M46478_IG17:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 56
        pop      rbx
        pop      r14
@@ -160,13 +174,13 @@ G_M46478_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M46478_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, gcvars, byref, isz
+G_M46478_IG18:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, gcvars, byref, isz
        ; byrRegs +[rbx r15]
        cmp      r14d, 1
-       jne      SHORT G_M46478_IG15
+       jne      SHORT G_M46478_IG21
        mov      esi, dword ptr [r15]
        test     esi, esi
-       jle      SHORT G_M46478_IG15
+       jle      SHORT G_M46478_IG21
        mov      dword ptr [rbx+0x08], esi
        mov      esi, dword ptr [rbx+0x08]
        mov      edi, -1
@@ -180,16 +194,15 @@ G_M46478_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        mov      gword ptr [rbx], rsi
        mov      rdi, 0xD1FFAB1E
        cmp      qword ptr [rbp-0x20], rdi
-       je       SHORT G_M46478_IG13
+       je       SHORT G_M46478_IG19
        call     CORINFO_HELP_FAIL_FAST
        ; gcrRegs -[rsi]
        ; byrRegs -[rbx r15]
-       ; gcr arg pop 0
                        ;; size=72 bbWeight=0.50 PerfScore 9.88
-G_M46478_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46478_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M46478_IG14:        ; bbWeight=0.50, epilog, nogc, extend
+G_M46478_IG20:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 56
        pop      rbx
        pop      r14
@@ -197,13 +210,12 @@ G_M46478_IG14:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M46478_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, gcvars, byref, isz
+G_M46478_IG21:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, gcvars, byref, isz
        ; byrRegs +[rbx r15]
        movsxd   rsi, r14d
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWARR_1_VC
        ; gcrRegs +[rax]
-       ; gcr arg pop 0
        mov      rsi, rax
        ; gcrRegs +[rsi]
        mov      rdi, rbx
@@ -215,28 +227,28 @@ G_M46478_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        ; gcrRegs +[rdi]
        mov      esi, dword ptr [r15]
        cmp      dword ptr [rdi+0x08], 0
-       jbe      SHORT G_M46478_IG20
+       jbe      SHORT G_M46478_IG26
        mov      dword ptr [rdi+0x10], esi
        cmp      r14d, 1
-       jle      SHORT G_M46478_IG16
+       jle      SHORT G_M46478_IG22
        mov      rdi, gword ptr [rbx]
        mov      esi, dword ptr [r15+0x04]
        cmp      dword ptr [rdi+0x08], 1
-       jbe      SHORT G_M46478_IG20
+       jbe      SHORT G_M46478_IG26
        mov      dword ptr [rdi+0x14], esi
                        ;; size=66 bbWeight=0.50 PerfScore 11.12
-G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+G_M46478_IG22:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
        ; gcrRegs -[rdi]
        cmp      r14d, 2
...

smoke_tests.nativeaot.linux.x64.checked.mch

+58 (+2.80%) : 21693.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)

@@ -9,11 +9,11 @@
 ;
 ;  V00 this         [V00,T02] ( 30,250.50)   byref  ->  rbx         this single-def
 ;  V01 arg1         [V01,T26] ( 11, 12.33)     ref  ->  r14         class-hnd single-def <System.IFormatProvider>
-;  V02 arg2         [V02,T04] ( 18,127   )     ref  ->  r15         class-hnd exact single-def <System.String>
+;  V02 arg2         [V02,T04] ( 20,127   )     ref  ->  r15         class-hnd exact single-def <System.String>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Object]>
 ;  V04 loc0         [V04,T48] (  3,  7   )     ref  ->  [rbp-0x70]  class-hnd spill-single-def <<unknown class>>
-;  V05 loc1         [V05,T00] ( 62,459   )     int  ->  [rbp-0x2C]  ld-addr-op
-;  V06 loc2         [V06,T01] ( 31,260   )  ushort  ->  [rbp-0x30] 
+;  V05 loc1         [V05,T00] ( 72,463   )     int  ->  [rbp-0x2C]  ld-addr-op
+;  V06 loc2         [V06,T01] ( 35,260   )  ushort  ->  [rbp-0x30] 
 ;  V07 loc3         [V07,T06] ( 12,102   )     int  ->  [rbp-0x34] 
 ;  V08 loc4         [V08,T13] (  5, 46   )   ubyte  ->  [rbp-0x38] 
 ;* V09 loc5         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op <System.ReadOnlySpan`1[ushort]>
@@ -128,7 +128,7 @@
 ;  V118 tmp97       [V118,T39] (  2,  8   )   byref  ->  rsi         "field V75._reference (fldOffset=0x0)" P-INDEP
 ;  V119 tmp98       [V119,T43] (  2,  8   )     int  ->  rdx         "field V75._length (fldOffset=0x8)" P-INDEP
 ;  V120 cse0        [V120,T35] (  3, 12   )     int  ->  rcx         "CSE - conservative"
-;  V121 cse1        [V121,T03] ( 18,142   )     int  ->  [rbp-0x64]  spill-single-def "CSE - aggressive"
+;  V121 cse1        [V121,T03] ( 20,142   )     int  ->  [rbp-0x64]  spill-single-def "CSE - aggressive"
 ;  V122 cse2        [V122,T05] (  7,108   )     int  ->  [rbp-0x68]  spill-single-def "CSE - aggressive"
 ;
 ; Lcl frame size = 168
@@ -154,7 +154,7 @@ G_M36935_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=40 bbWeight=1 PerfScore 8.00
 G_M36935_IG02:        ; bbWeight=1, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        test     r15, r15
-       je       G_M36935_IG72
+       je       G_M36935_IG75
        test     r14, r14
        jne      SHORT G_M36935_IG04
                        ;; size=14 bbWeight=1 PerfScore 2.50
@@ -222,7 +222,7 @@ G_M36935_IG10:        ; bbWeight=8, gcVars=0001000000000000 {V04}, gcrefRegs=C00
        mov      edx, dword ptr [r15+0x08]
        mov      dword ptr [rbp-0x64], edx
        cmp      edx, ecx
-       jbe      G_M36935_IG68
+       jbe      G_M36935_IG71
                        ;; size=15 bbWeight=8 PerfScore 34.00
 G_M36935_IG11:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        mov      edi, ecx
@@ -267,9 +267,9 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
        ; gcr arg pop 0
        mov      dword ptr [rbp-0x50], eax
        test     eax, eax
-       jl       G_M36935_IG69
+       jl       G_M36935_IG72
        cmp      eax, dword ptr [rbp-0x60]
-       ja       G_M36935_IG79
+       ja       G_M36935_IG82
        mov      rsi, bword ptr [rbp-0xC0]
        ; byrRegs +[rsi]
        mov      edx, eax
@@ -283,12 +283,12 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
        add      ecx, dword ptr [rbp-0x50]
        mov      eax, dword ptr [rbp-0x64]
        cmp      ecx, eax
-       jae      G_M36935_IG71
+       jae      G_M36935_IG74
        mov      edi, ecx
        movzx    rdx, word  ptr [r15+2*rdi+0x0C]
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      dword ptr [rbp-0x2C], ecx
        mov      edi, ecx
        movzx    r8, word  ptr [r15+2*rdi+0x0C]
@@ -324,7 +324,7 @@ G_M36935_IG16:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
                        ;; size=10 bbWeight=4 PerfScore 13.00
 G_M36935_IG17:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      edx, 123
-       jne      G_M36935_IG73
+       jne      G_M36935_IG76
        xor      edx, edx
        mov      dword ptr [rbp-0x34], edx
        xor      r9d, r9d
@@ -338,7 +338,7 @@ G_M36935_IG17:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
        mov      ecx, dword ptr [rbp-0x2C]
        lea      edi, [rcx-0x01]
        cmp      edi, eax
-       jae      G_M36935_IG71
+       jae      G_M36935_IG74
        mov      dword ptr [rbp-0x2C], ecx
        lea      edi, [rcx-0x01]
        cmp      word  ptr [r15+2*rdi+0x0C], 123
@@ -379,7 +379,7 @@ G_M36935_IG21:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
        inc      ecx
        mov      eax, dword ptr [rbp-0x64]
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      r8d, ecx
        movzx    r8, word  ptr [r15+2*r8+0x0C]
        mov      edi, r8d
@@ -392,14 +392,14 @@ G_M36935_IG22:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
 G_M36935_IG23:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref
        mov      r10, bword ptr [rbp-0xB8]
        ; byrRegs +[r10]
-       jmp      G_M36935_IG42
+       jmp      G_M36935_IG45
                        ;; size=12 bbWeight=2 PerfScore 6.00
 G_M36935_IG24:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[r14-r15]
        ; byrRegs -[rbx r10 r13]
        ; GC ptr vars -{V04 V88}
        mov      ecx, dword ptr [rbp-0x2C]
-       jmp      G_M36935_IG74
+       jmp      G_M36935_IG77
                        ;; size=8 bbWeight=2 PerfScore 6.00
 G_M36935_IG25:        ; bbWeight=8, gcVars=0001000010000000 {V04 V88}, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, gcvars, byref
        ; gcrRegs +[r14-r15]
@@ -410,7 +410,7 @@ G_M36935_IG25:        ; bbWeight=8, gcVars=0001000010000000 {V04 V88}, gcrefRegs
        mov      dword ptr [rbp-0x3C], esi
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
        mov      esi, dword ptr [rbp-0x3C]
@@ -424,102 +424,118 @@ G_M36935_IG26:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {r
                        ;; size=18 bbWeight=16 PerfScore 48.00
 G_M36935_IG27:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      edi, 32
-       jne      SHORT G_M36935_IG29
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M36935_IG28:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+       jne      SHORT G_M36935_IG31
+       test     ecx, ecx
+       jl       SHORT G_M36935_IG30
+                       ;; size=9 bbWeight=2 PerfScore 5.00
+G_M36935_IG28:        ; bbWeight=15.84, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
        cmp      edi, 32
        je       SHORT G_M36935_IG28
-                       ;; size=23 bbWeight=16 PerfScore 80.00
-G_M36935_IG29:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref
-       cmp      edi, 44
-       mov      edx, dword ptr [rbp-0x34]
-       jne      G_M36935_IG36
-                       ;; size=12 bbWeight=2 PerfScore 4.50
-G_M36935_IG30:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+                       ;; size=23 bbWeight=15.84 PerfScore 79.20
+G_M36935_IG29:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+       jmp      SHORT G_M36935_IG31
+                       ;; size=2 bbWeight=2 PerfScore 4.00
+G_M36935_IG30:        ; bbWeight=0.16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
        cmp      edi, 32
        je       SHORT G_M36935_IG30
+                       ;; size=23 bbWeight=0.16 PerfScore 0.80
+G_M36935_IG31:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref
+       cmp      edi, 44
+       mov      edx, dword ptr [rbp-0x34]
+       jne      G_M36935_IG38
+                       ;; size=12 bbWeight=2 PerfScore 4.50
+G_M36935_IG32:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+       inc      ecx
+       cmp      eax, ecx
+       jbe      G_M36935_IG78
+       mov      edi, ecx
+       movzx    rdi, word  ptr [r15+2*rdi+0x0C]
+       cmp      edi, 32
+       je       SHORT G_M36935_IG32
                        ;; size=23 bbWeight=16 PerfScore 80.00
-G_M36935_IG31:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+G_M36935_IG33:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      edi, 45
-       jne      SHORT G_M36935_IG32
+       jne      SHORT G_M36935_IG34
        mov      dword ptr [rbp-0x38], 1
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
                        ;; size=30 bbWeight=2 PerfScore 12.00
-G_M36935_IG32:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref
+G_M36935_IG34:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref
        lea      edx, [rdi-0x30]
        cmp      edx, 10
-       jae      G_M36935_IG74
+       jae      G_M36935_IG77
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
                        ;; size=22 bbWeight=2 PerfScore 6.50
-G_M36935_IG33:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+G_M36935_IG35:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      ecx, eax
-       jae      G_M36935_IG71
+       jae      G_M36935_IG74
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
        lea      r8d, [rdi-0x30]
        cmp      r8d, 9
-       ja       SHORT G_M36935_IG34
+       ja       SHORT G_M36935_IG36
        cmp      edx, 0xD1FFAB1E
-       jl       SHORT G_M36935_IG39
+       jl       SHORT G_M36935_IG41
                        ;; size=34 bbWeight=16 PerfScore 104.00
-G_M36935_IG34:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+G_M36935_IG36:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      edi, 32
-       jne      SHORT G_M36935_IG36
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M36935_IG35:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+       jne      SHORT G_M36935_IG38
+       test     ecx, ecx
+       jl       SHORT G_M36935_IG42
+                       ;; size=9 bbWeight=2 PerfScore 5.00
+G_M36935_IG37:        ; bbWeight=15.84, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
        cmp      edi, 32
-       je       SHORT G_M36935_IG35
-                       ;; size=23 bbWeight=16 PerfScore 80.00
-G_M36935_IG36:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+       je       SHORT G_M36935_IG37
+                       ;; size=23 bbWeight=15.84 PerfScore 79.20
+G_M36935_IG38:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      edi, 125
        mov      r10, bword ptr [rbp-0xB8]
        ; byrRegs +[r10]
-       je       SHORT G_M36935_IG38
+       je       SHORT G_M36935_IG40
        cmp      edi, 58
-       jne      G_M36935_IG76
+       jne      G_M36935_IG79
        mov      r8d, ecx
                        ;; size=24 bbWeight=2 PerfScore 7.50
...

+58 (+2.80%) : 2923.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)

@@ -9,11 +9,11 @@
 ;
 ;  V00 this         [V00,T02] ( 30,250.50)   byref  ->  rbx         this single-def
 ;  V01 arg1         [V01,T26] ( 11, 12.33)     ref  ->  r14         class-hnd single-def <System.IFormatProvider>
-;  V02 arg2         [V02,T04] ( 18,127   )     ref  ->  r15         class-hnd exact single-def <System.String>
+;  V02 arg2         [V02,T04] ( 20,127   )     ref  ->  r15         class-hnd exact single-def <System.String>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Object]>
 ;  V04 loc0         [V04,T48] (  3,  7   )     ref  ->  [rbp-0x70]  class-hnd spill-single-def <<unknown class>>
-;  V05 loc1         [V05,T00] ( 62,459   )     int  ->  [rbp-0x2C]  ld-addr-op
-;  V06 loc2         [V06,T01] ( 31,260   )  ushort  ->  [rbp-0x30] 
+;  V05 loc1         [V05,T00] ( 72,463   )     int  ->  [rbp-0x2C]  ld-addr-op
+;  V06 loc2         [V06,T01] ( 35,260   )  ushort  ->  [rbp-0x30] 
 ;  V07 loc3         [V07,T06] ( 12,102   )     int  ->  [rbp-0x34] 
 ;  V08 loc4         [V08,T13] (  5, 46   )   ubyte  ->  [rbp-0x38] 
 ;* V09 loc5         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op <System.ReadOnlySpan`1[ushort]>
@@ -128,7 +128,7 @@
 ;  V118 tmp97       [V118,T39] (  2,  8   )   byref  ->  rsi         "field V75._reference (fldOffset=0x0)" P-INDEP
 ;  V119 tmp98       [V119,T43] (  2,  8   )     int  ->  rdx         "field V75._length (fldOffset=0x8)" P-INDEP
 ;  V120 cse0        [V120,T35] (  3, 12   )     int  ->  rcx         "CSE - conservative"
-;  V121 cse1        [V121,T03] ( 18,142   )     int  ->  [rbp-0x64]  spill-single-def "CSE - aggressive"
+;  V121 cse1        [V121,T03] ( 20,142   )     int  ->  [rbp-0x64]  spill-single-def "CSE - aggressive"
 ;  V122 cse2        [V122,T05] (  7,108   )     int  ->  [rbp-0x68]  spill-single-def "CSE - aggressive"
 ;
 ; Lcl frame size = 168
@@ -154,7 +154,7 @@ G_M36935_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=40 bbWeight=1 PerfScore 8.00
 G_M36935_IG02:        ; bbWeight=1, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        test     r15, r15
-       je       G_M36935_IG72
+       je       G_M36935_IG75
        test     r14, r14
        jne      SHORT G_M36935_IG04
                        ;; size=14 bbWeight=1 PerfScore 2.50
@@ -222,7 +222,7 @@ G_M36935_IG10:        ; bbWeight=8, gcVars=0001000000000000 {V04}, gcrefRegs=C00
        mov      edx, dword ptr [r15+0x08]
        mov      dword ptr [rbp-0x64], edx
        cmp      edx, ecx
-       jbe      G_M36935_IG68
+       jbe      G_M36935_IG71
                        ;; size=15 bbWeight=8 PerfScore 34.00
 G_M36935_IG11:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        mov      edi, ecx
@@ -267,9 +267,9 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
        ; gcr arg pop 0
        mov      dword ptr [rbp-0x50], eax
        test     eax, eax
-       jl       G_M36935_IG69
+       jl       G_M36935_IG72
        cmp      eax, dword ptr [rbp-0x60]
-       ja       G_M36935_IG79
+       ja       G_M36935_IG82
        mov      rsi, bword ptr [rbp-0xC0]
        ; byrRegs +[rsi]
        mov      edx, eax
@@ -283,12 +283,12 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
        add      ecx, dword ptr [rbp-0x50]
        mov      eax, dword ptr [rbp-0x64]
        cmp      ecx, eax
-       jae      G_M36935_IG71
+       jae      G_M36935_IG74
        mov      edi, ecx
        movzx    rdx, word  ptr [r15+2*rdi+0x0C]
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      dword ptr [rbp-0x2C], ecx
        mov      edi, ecx
        movzx    r8, word  ptr [r15+2*rdi+0x0C]
@@ -324,7 +324,7 @@ G_M36935_IG16:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
                        ;; size=10 bbWeight=4 PerfScore 13.00
 G_M36935_IG17:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      edx, 123
-       jne      G_M36935_IG73
+       jne      G_M36935_IG76
        xor      edx, edx
        mov      dword ptr [rbp-0x34], edx
        xor      r9d, r9d
@@ -338,7 +338,7 @@ G_M36935_IG17:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
        mov      ecx, dword ptr [rbp-0x2C]
        lea      edi, [rcx-0x01]
        cmp      edi, eax
-       jae      G_M36935_IG71
+       jae      G_M36935_IG74
        mov      dword ptr [rbp-0x2C], ecx
        lea      edi, [rcx-0x01]
        cmp      word  ptr [r15+2*rdi+0x0C], 123
@@ -379,7 +379,7 @@ G_M36935_IG21:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
        inc      ecx
        mov      eax, dword ptr [rbp-0x64]
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      r8d, ecx
        movzx    r8, word  ptr [r15+2*r8+0x0C]
        mov      edi, r8d
@@ -392,14 +392,14 @@ G_M36935_IG22:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
 G_M36935_IG23:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref
        mov      r10, bword ptr [rbp-0xB8]
        ; byrRegs +[r10]
-       jmp      G_M36935_IG42
+       jmp      G_M36935_IG45
                        ;; size=12 bbWeight=2 PerfScore 6.00
 G_M36935_IG24:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[r14-r15]
        ; byrRegs -[rbx r10 r13]
        ; GC ptr vars -{V04 V88}
        mov      ecx, dword ptr [rbp-0x2C]
-       jmp      G_M36935_IG74
+       jmp      G_M36935_IG77
                        ;; size=8 bbWeight=2 PerfScore 6.00
 G_M36935_IG25:        ; bbWeight=8, gcVars=0001000010000000 {V04 V88}, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, gcvars, byref
        ; gcrRegs +[r14-r15]
@@ -410,7 +410,7 @@ G_M36935_IG25:        ; bbWeight=8, gcVars=0001000010000000 {V04 V88}, gcrefRegs
        mov      dword ptr [rbp-0x3C], esi
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
        mov      esi, dword ptr [rbp-0x3C]
@@ -424,102 +424,118 @@ G_M36935_IG26:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {r
                        ;; size=18 bbWeight=16 PerfScore 48.00
 G_M36935_IG27:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      edi, 32
-       jne      SHORT G_M36935_IG29
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M36935_IG28:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+       jne      SHORT G_M36935_IG31
+       test     ecx, ecx
+       jl       SHORT G_M36935_IG30
+                       ;; size=9 bbWeight=2 PerfScore 5.00
+G_M36935_IG28:        ; bbWeight=15.84, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
        cmp      edi, 32
        je       SHORT G_M36935_IG28
-                       ;; size=23 bbWeight=16 PerfScore 80.00
-G_M36935_IG29:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref
-       cmp      edi, 44
-       mov      edx, dword ptr [rbp-0x34]
-       jne      G_M36935_IG36
-                       ;; size=12 bbWeight=2 PerfScore 4.50
-G_M36935_IG30:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+                       ;; size=23 bbWeight=15.84 PerfScore 79.20
+G_M36935_IG29:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+       jmp      SHORT G_M36935_IG31
+                       ;; size=2 bbWeight=2 PerfScore 4.00
+G_M36935_IG30:        ; bbWeight=0.16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
        cmp      edi, 32
        je       SHORT G_M36935_IG30
+                       ;; size=23 bbWeight=0.16 PerfScore 0.80
+G_M36935_IG31:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref
+       cmp      edi, 44
+       mov      edx, dword ptr [rbp-0x34]
+       jne      G_M36935_IG38
+                       ;; size=12 bbWeight=2 PerfScore 4.50
+G_M36935_IG32:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+       inc      ecx
+       cmp      eax, ecx
+       jbe      G_M36935_IG78
+       mov      edi, ecx
+       movzx    rdi, word  ptr [r15+2*rdi+0x0C]
+       cmp      edi, 32
+       je       SHORT G_M36935_IG32
                        ;; size=23 bbWeight=16 PerfScore 80.00
-G_M36935_IG31:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+G_M36935_IG33:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      edi, 45
-       jne      SHORT G_M36935_IG32
+       jne      SHORT G_M36935_IG34
        mov      dword ptr [rbp-0x38], 1
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
                        ;; size=30 bbWeight=2 PerfScore 12.00
-G_M36935_IG32:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref
+G_M36935_IG34:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref
        lea      edx, [rdi-0x30]
        cmp      edx, 10
-       jae      G_M36935_IG74
+       jae      G_M36935_IG77
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
                        ;; size=22 bbWeight=2 PerfScore 6.50
-G_M36935_IG33:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+G_M36935_IG35:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      ecx, eax
-       jae      G_M36935_IG71
+       jae      G_M36935_IG74
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
        lea      r8d, [rdi-0x30]
        cmp      r8d, 9
-       ja       SHORT G_M36935_IG34
+       ja       SHORT G_M36935_IG36
        cmp      edx, 0xD1FFAB1E
-       jl       SHORT G_M36935_IG39
+       jl       SHORT G_M36935_IG41
                        ;; size=34 bbWeight=16 PerfScore 104.00
-G_M36935_IG34:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+G_M36935_IG36:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      edi, 32
-       jne      SHORT G_M36935_IG36
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M36935_IG35:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+       jne      SHORT G_M36935_IG38
+       test     ecx, ecx
+       jl       SHORT G_M36935_IG42
+                       ;; size=9 bbWeight=2 PerfScore 5.00
+G_M36935_IG37:        ; bbWeight=15.84, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
        cmp      edi, 32
-       je       SHORT G_M36935_IG35
-                       ;; size=23 bbWeight=16 PerfScore 80.00
-G_M36935_IG36:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+       je       SHORT G_M36935_IG37
+                       ;; size=23 bbWeight=15.84 PerfScore 79.20
+G_M36935_IG38:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      edi, 125
        mov      r10, bword ptr [rbp-0xB8]
        ; byrRegs +[r10]
-       je       SHORT G_M36935_IG38
+       je       SHORT G_M36935_IG40
        cmp      edi, 58
-       jne      G_M36935_IG76
+       jne      G_M36935_IG79
        mov      r8d, ecx
                        ;; size=24 bbWeight=2 PerfScore 7.50
...

+58 (+2.80%) : 18675.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)

@@ -9,11 +9,11 @@
 ;
 ;  V00 this         [V00,T02] ( 30,250.50)   byref  ->  rbx         this single-def
 ;  V01 arg1         [V01,T26] ( 11, 12.33)     ref  ->  r14         class-hnd single-def <System.IFormatProvider>
-;  V02 arg2         [V02,T04] ( 18,127   )     ref  ->  r15         class-hnd exact single-def <System.String>
+;  V02 arg2         [V02,T04] ( 20,127   )     ref  ->  r15         class-hnd exact single-def <System.String>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Object]>
 ;  V04 loc0         [V04,T48] (  3,  7   )     ref  ->  [rbp-0x70]  class-hnd spill-single-def <<unknown class>>
-;  V05 loc1         [V05,T00] ( 62,459   )     int  ->  [rbp-0x2C]  ld-addr-op
-;  V06 loc2         [V06,T01] ( 31,260   )  ushort  ->  [rbp-0x30] 
+;  V05 loc1         [V05,T00] ( 72,463   )     int  ->  [rbp-0x2C]  ld-addr-op
+;  V06 loc2         [V06,T01] ( 35,260   )  ushort  ->  [rbp-0x30] 
 ;  V07 loc3         [V07,T06] ( 12,102   )     int  ->  [rbp-0x34] 
 ;  V08 loc4         [V08,T13] (  5, 46   )   ubyte  ->  [rbp-0x38] 
 ;* V09 loc5         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op <System.ReadOnlySpan`1[ushort]>
@@ -128,7 +128,7 @@
 ;  V118 tmp97       [V118,T39] (  2,  8   )   byref  ->  rsi         "field V75._reference (fldOffset=0x0)" P-INDEP
 ;  V119 tmp98       [V119,T43] (  2,  8   )     int  ->  rdx         "field V75._length (fldOffset=0x8)" P-INDEP
 ;  V120 cse0        [V120,T35] (  3, 12   )     int  ->  rcx         "CSE - conservative"
-;  V121 cse1        [V121,T03] ( 18,142   )     int  ->  [rbp-0x64]  spill-single-def "CSE - aggressive"
+;  V121 cse1        [V121,T03] ( 20,142   )     int  ->  [rbp-0x64]  spill-single-def "CSE - aggressive"
 ;  V122 cse2        [V122,T05] (  7,108   )     int  ->  [rbp-0x68]  spill-single-def "CSE - aggressive"
 ;
 ; Lcl frame size = 168
@@ -154,7 +154,7 @@ G_M36935_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=40 bbWeight=1 PerfScore 8.00
 G_M36935_IG02:        ; bbWeight=1, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        test     r15, r15
-       je       G_M36935_IG72
+       je       G_M36935_IG75
        test     r14, r14
        jne      SHORT G_M36935_IG04
                        ;; size=14 bbWeight=1 PerfScore 2.50
@@ -222,7 +222,7 @@ G_M36935_IG10:        ; bbWeight=8, gcVars=0001000000000000 {V04}, gcrefRegs=C00
        mov      edx, dword ptr [r15+0x08]
        mov      dword ptr [rbp-0x64], edx
        cmp      edx, ecx
-       jbe      G_M36935_IG68
+       jbe      G_M36935_IG71
                        ;; size=15 bbWeight=8 PerfScore 34.00
 G_M36935_IG11:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        mov      edi, ecx
@@ -267,9 +267,9 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
        ; gcr arg pop 0
        mov      dword ptr [rbp-0x50], eax
        test     eax, eax
-       jl       G_M36935_IG69
+       jl       G_M36935_IG72
        cmp      eax, dword ptr [rbp-0x60]
-       ja       G_M36935_IG79
+       ja       G_M36935_IG82
        mov      rsi, bword ptr [rbp-0xC0]
        ; byrRegs +[rsi]
        mov      edx, eax
@@ -283,12 +283,12 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
        add      ecx, dword ptr [rbp-0x50]
        mov      eax, dword ptr [rbp-0x64]
        cmp      ecx, eax
-       jae      G_M36935_IG71
+       jae      G_M36935_IG74
        mov      edi, ecx
        movzx    rdx, word  ptr [r15+2*rdi+0x0C]
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      dword ptr [rbp-0x2C], ecx
        mov      edi, ecx
        movzx    r8, word  ptr [r15+2*rdi+0x0C]
@@ -324,7 +324,7 @@ G_M36935_IG16:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
                        ;; size=10 bbWeight=4 PerfScore 13.00
 G_M36935_IG17:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      edx, 123
-       jne      G_M36935_IG73
+       jne      G_M36935_IG76
        xor      edx, edx
        mov      dword ptr [rbp-0x34], edx
        xor      r9d, r9d
@@ -338,7 +338,7 @@ G_M36935_IG17:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
        mov      ecx, dword ptr [rbp-0x2C]
        lea      edi, [rcx-0x01]
        cmp      edi, eax
-       jae      G_M36935_IG71
+       jae      G_M36935_IG74
        mov      dword ptr [rbp-0x2C], ecx
        lea      edi, [rcx-0x01]
        cmp      word  ptr [r15+2*rdi+0x0C], 123
@@ -379,7 +379,7 @@ G_M36935_IG21:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
        inc      ecx
        mov      eax, dword ptr [rbp-0x64]
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      r8d, ecx
        movzx    r8, word  ptr [r15+2*r8+0x0C]
        mov      edi, r8d
@@ -392,14 +392,14 @@ G_M36935_IG22:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
 G_M36935_IG23:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref
        mov      r10, bword ptr [rbp-0xB8]
        ; byrRegs +[r10]
-       jmp      G_M36935_IG42
+       jmp      G_M36935_IG45
                        ;; size=12 bbWeight=2 PerfScore 6.00
 G_M36935_IG24:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[r14-r15]
        ; byrRegs -[rbx r10 r13]
        ; GC ptr vars -{V04 V88}
        mov      ecx, dword ptr [rbp-0x2C]
-       jmp      G_M36935_IG74
+       jmp      G_M36935_IG77
                        ;; size=8 bbWeight=2 PerfScore 6.00
 G_M36935_IG25:        ; bbWeight=8, gcVars=0001000010000000 {V04 V88}, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, gcvars, byref
        ; gcrRegs +[r14-r15]
@@ -410,7 +410,7 @@ G_M36935_IG25:        ; bbWeight=8, gcVars=0001000010000000 {V04 V88}, gcrefRegs
        mov      dword ptr [rbp-0x3C], esi
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
        mov      esi, dword ptr [rbp-0x3C]
@@ -424,102 +424,118 @@ G_M36935_IG26:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {r
                        ;; size=18 bbWeight=16 PerfScore 48.00
 G_M36935_IG27:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      edi, 32
-       jne      SHORT G_M36935_IG29
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M36935_IG28:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+       jne      SHORT G_M36935_IG31
+       test     ecx, ecx
+       jl       SHORT G_M36935_IG30
+                       ;; size=9 bbWeight=2 PerfScore 5.00
+G_M36935_IG28:        ; bbWeight=15.84, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
        cmp      edi, 32
        je       SHORT G_M36935_IG28
-                       ;; size=23 bbWeight=16 PerfScore 80.00
-G_M36935_IG29:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref
-       cmp      edi, 44
-       mov      edx, dword ptr [rbp-0x34]
-       jne      G_M36935_IG36
-                       ;; size=12 bbWeight=2 PerfScore 4.50
-G_M36935_IG30:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+                       ;; size=23 bbWeight=15.84 PerfScore 79.20
+G_M36935_IG29:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+       jmp      SHORT G_M36935_IG31
+                       ;; size=2 bbWeight=2 PerfScore 4.00
+G_M36935_IG30:        ; bbWeight=0.16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
        cmp      edi, 32
        je       SHORT G_M36935_IG30
+                       ;; size=23 bbWeight=0.16 PerfScore 0.80
+G_M36935_IG31:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref
+       cmp      edi, 44
+       mov      edx, dword ptr [rbp-0x34]
+       jne      G_M36935_IG38
+                       ;; size=12 bbWeight=2 PerfScore 4.50
+G_M36935_IG32:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+       inc      ecx
+       cmp      eax, ecx
+       jbe      G_M36935_IG78
+       mov      edi, ecx
+       movzx    rdi, word  ptr [r15+2*rdi+0x0C]
+       cmp      edi, 32
+       je       SHORT G_M36935_IG32
                        ;; size=23 bbWeight=16 PerfScore 80.00
-G_M36935_IG31:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+G_M36935_IG33:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      edi, 45
-       jne      SHORT G_M36935_IG32
+       jne      SHORT G_M36935_IG34
        mov      dword ptr [rbp-0x38], 1
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
                        ;; size=30 bbWeight=2 PerfScore 12.00
-G_M36935_IG32:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref
+G_M36935_IG34:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref
        lea      edx, [rdi-0x30]
        cmp      edx, 10
-       jae      G_M36935_IG74
+       jae      G_M36935_IG77
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
                        ;; size=22 bbWeight=2 PerfScore 6.50
-G_M36935_IG33:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+G_M36935_IG35:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      ecx, eax
-       jae      G_M36935_IG71
+       jae      G_M36935_IG74
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
        lea      r8d, [rdi-0x30]
        cmp      r8d, 9
-       ja       SHORT G_M36935_IG34
+       ja       SHORT G_M36935_IG36
        cmp      edx, 0xD1FFAB1E
-       jl       SHORT G_M36935_IG39
+       jl       SHORT G_M36935_IG41
                        ;; size=34 bbWeight=16 PerfScore 104.00
-G_M36935_IG34:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+G_M36935_IG36:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      edi, 32
-       jne      SHORT G_M36935_IG36
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M36935_IG35:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+       jne      SHORT G_M36935_IG38
+       test     ecx, ecx
+       jl       SHORT G_M36935_IG42
+                       ;; size=9 bbWeight=2 PerfScore 5.00
+G_M36935_IG37:        ; bbWeight=15.84, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
        cmp      edi, 32
-       je       SHORT G_M36935_IG35
-                       ;; size=23 bbWeight=16 PerfScore 80.00
-G_M36935_IG36:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+       je       SHORT G_M36935_IG37
+                       ;; size=23 bbWeight=15.84 PerfScore 79.20
+G_M36935_IG38:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      edi, 125
        mov      r10, bword ptr [rbp-0xB8]
        ; byrRegs +[r10]
-       je       SHORT G_M36935_IG38
+       je       SHORT G_M36935_IG40
        cmp      edi, 58
-       jne      G_M36935_IG76
+       jne      G_M36935_IG79
        mov      r8d, ecx
                        ;; size=24 bbWeight=2 PerfScore 7.50
...

+58 (+2.80%) : 25180.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)

@@ -9,11 +9,11 @@
 ;
 ;  V00 this         [V00,T02] ( 30,250.50)   byref  ->  rbx         this single-def
 ;  V01 arg1         [V01,T26] ( 11, 12.33)     ref  ->  r14         class-hnd single-def <System.IFormatProvider>
-;  V02 arg2         [V02,T04] ( 18,127   )     ref  ->  r15         class-hnd exact single-def <System.String>
+;  V02 arg2         [V02,T04] ( 20,127   )     ref  ->  r15         class-hnd exact single-def <System.String>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Object]>
 ;  V04 loc0         [V04,T48] (  3,  7   )     ref  ->  [rbp-0x70]  class-hnd spill-single-def <<unknown class>>
-;  V05 loc1         [V05,T00] ( 62,459   )     int  ->  [rbp-0x2C]  ld-addr-op
-;  V06 loc2         [V06,T01] ( 31,260   )  ushort  ->  [rbp-0x30] 
+;  V05 loc1         [V05,T00] ( 72,463   )     int  ->  [rbp-0x2C]  ld-addr-op
+;  V06 loc2         [V06,T01] ( 35,260   )  ushort  ->  [rbp-0x30] 
 ;  V07 loc3         [V07,T06] ( 12,102   )     int  ->  [rbp-0x34] 
 ;  V08 loc4         [V08,T13] (  5, 46   )   ubyte  ->  [rbp-0x38] 
 ;* V09 loc5         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op <System.ReadOnlySpan`1[ushort]>
@@ -128,7 +128,7 @@
 ;  V118 tmp97       [V118,T39] (  2,  8   )   byref  ->  rsi         "field V75._reference (fldOffset=0x0)" P-INDEP
 ;  V119 tmp98       [V119,T43] (  2,  8   )     int  ->  rdx         "field V75._length (fldOffset=0x8)" P-INDEP
 ;  V120 cse0        [V120,T35] (  3, 12   )     int  ->  rcx         "CSE - conservative"
-;  V121 cse1        [V121,T03] ( 18,142   )     int  ->  [rbp-0x64]  spill-single-def "CSE - aggressive"
+;  V121 cse1        [V121,T03] ( 20,142   )     int  ->  [rbp-0x64]  spill-single-def "CSE - aggressive"
 ;  V122 cse2        [V122,T05] (  7,108   )     int  ->  [rbp-0x68]  spill-single-def "CSE - aggressive"
 ;
 ; Lcl frame size = 168
@@ -154,7 +154,7 @@ G_M36935_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=40 bbWeight=1 PerfScore 8.00
 G_M36935_IG02:        ; bbWeight=1, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        test     r15, r15
-       je       G_M36935_IG72
+       je       G_M36935_IG75
        test     r14, r14
        jne      SHORT G_M36935_IG04
                        ;; size=14 bbWeight=1 PerfScore 2.50
@@ -222,7 +222,7 @@ G_M36935_IG10:        ; bbWeight=8, gcVars=0001000000000000 {V04}, gcrefRegs=C00
        mov      edx, dword ptr [r15+0x08]
        mov      dword ptr [rbp-0x64], edx
        cmp      edx, ecx
-       jbe      G_M36935_IG68
+       jbe      G_M36935_IG71
                        ;; size=15 bbWeight=8 PerfScore 34.00
 G_M36935_IG11:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        mov      edi, ecx
@@ -267,9 +267,9 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
        ; gcr arg pop 0
        mov      dword ptr [rbp-0x50], eax
        test     eax, eax
-       jl       G_M36935_IG69
+       jl       G_M36935_IG72
        cmp      eax, dword ptr [rbp-0x60]
-       ja       G_M36935_IG79
+       ja       G_M36935_IG82
        mov      rsi, bword ptr [rbp-0xC0]
        ; byrRegs +[rsi]
        mov      edx, eax
@@ -283,12 +283,12 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
        add      ecx, dword ptr [rbp-0x50]
        mov      eax, dword ptr [rbp-0x64]
        cmp      ecx, eax
-       jae      G_M36935_IG71
+       jae      G_M36935_IG74
        mov      edi, ecx
        movzx    rdx, word  ptr [r15+2*rdi+0x0C]
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      dword ptr [rbp-0x2C], ecx
        mov      edi, ecx
        movzx    r8, word  ptr [r15+2*rdi+0x0C]
@@ -324,7 +324,7 @@ G_M36935_IG16:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
                        ;; size=10 bbWeight=4 PerfScore 13.00
 G_M36935_IG17:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      edx, 123
-       jne      G_M36935_IG73
+       jne      G_M36935_IG76
        xor      edx, edx
        mov      dword ptr [rbp-0x34], edx
        xor      r9d, r9d
@@ -338,7 +338,7 @@ G_M36935_IG17:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
        mov      ecx, dword ptr [rbp-0x2C]
        lea      edi, [rcx-0x01]
        cmp      edi, eax
-       jae      G_M36935_IG71
+       jae      G_M36935_IG74
        mov      dword ptr [rbp-0x2C], ecx
        lea      edi, [rcx-0x01]
        cmp      word  ptr [r15+2*rdi+0x0C], 123
@@ -379,7 +379,7 @@ G_M36935_IG21:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
        inc      ecx
        mov      eax, dword ptr [rbp-0x64]
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      r8d, ecx
        movzx    r8, word  ptr [r15+2*r8+0x0C]
        mov      edi, r8d
@@ -392,14 +392,14 @@ G_M36935_IG22:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rb
 G_M36935_IG23:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref
        mov      r10, bword ptr [rbp-0xB8]
        ; byrRegs +[r10]
-       jmp      G_M36935_IG42
+       jmp      G_M36935_IG45
                        ;; size=12 bbWeight=2 PerfScore 6.00
 G_M36935_IG24:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[r14-r15]
        ; byrRegs -[rbx r10 r13]
        ; GC ptr vars -{V04 V88}
        mov      ecx, dword ptr [rbp-0x2C]
-       jmp      G_M36935_IG74
+       jmp      G_M36935_IG77
                        ;; size=8 bbWeight=2 PerfScore 6.00
 G_M36935_IG25:        ; bbWeight=8, gcVars=0001000010000000 {V04 V88}, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, gcvars, byref
        ; gcrRegs +[r14-r15]
@@ -410,7 +410,7 @@ G_M36935_IG25:        ; bbWeight=8, gcVars=0001000010000000 {V04 V88}, gcrefRegs
        mov      dword ptr [rbp-0x3C], esi
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
        mov      esi, dword ptr [rbp-0x3C]
@@ -424,102 +424,118 @@ G_M36935_IG26:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {r
                        ;; size=18 bbWeight=16 PerfScore 48.00
 G_M36935_IG27:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      edi, 32
-       jne      SHORT G_M36935_IG29
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M36935_IG28:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+       jne      SHORT G_M36935_IG31
+       test     ecx, ecx
+       jl       SHORT G_M36935_IG30
+                       ;; size=9 bbWeight=2 PerfScore 5.00
+G_M36935_IG28:        ; bbWeight=15.84, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
        cmp      edi, 32
        je       SHORT G_M36935_IG28
-                       ;; size=23 bbWeight=16 PerfScore 80.00
-G_M36935_IG29:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref
-       cmp      edi, 44
-       mov      edx, dword ptr [rbp-0x34]
-       jne      G_M36935_IG36
-                       ;; size=12 bbWeight=2 PerfScore 4.50
-G_M36935_IG30:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+                       ;; size=23 bbWeight=15.84 PerfScore 79.20
+G_M36935_IG29:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+       jmp      SHORT G_M36935_IG31
+                       ;; size=2 bbWeight=2 PerfScore 4.00
+G_M36935_IG30:        ; bbWeight=0.16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
        cmp      edi, 32
        je       SHORT G_M36935_IG30
+                       ;; size=23 bbWeight=0.16 PerfScore 0.80
+G_M36935_IG31:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref
+       cmp      edi, 44
+       mov      edx, dword ptr [rbp-0x34]
+       jne      G_M36935_IG38
+                       ;; size=12 bbWeight=2 PerfScore 4.50
+G_M36935_IG32:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+       inc      ecx
+       cmp      eax, ecx
+       jbe      G_M36935_IG78
+       mov      edi, ecx
+       movzx    rdi, word  ptr [r15+2*rdi+0x0C]
+       cmp      edi, 32
+       je       SHORT G_M36935_IG32
                        ;; size=23 bbWeight=16 PerfScore 80.00
-G_M36935_IG31:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+G_M36935_IG33:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      edi, 45
-       jne      SHORT G_M36935_IG32
+       jne      SHORT G_M36935_IG34
        mov      dword ptr [rbp-0x38], 1
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
                        ;; size=30 bbWeight=2 PerfScore 12.00
-G_M36935_IG32:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref
+G_M36935_IG34:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref
        lea      edx, [rdi-0x30]
        cmp      edx, 10
-       jae      G_M36935_IG74
+       jae      G_M36935_IG77
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
                        ;; size=22 bbWeight=2 PerfScore 6.50
-G_M36935_IG33:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+G_M36935_IG35:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      ecx, eax
-       jae      G_M36935_IG71
+       jae      G_M36935_IG74
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
        lea      r8d, [rdi-0x30]
        cmp      r8d, 9
-       ja       SHORT G_M36935_IG34
+       ja       SHORT G_M36935_IG36
        cmp      edx, 0xD1FFAB1E
-       jl       SHORT G_M36935_IG39
+       jl       SHORT G_M36935_IG41
                        ;; size=34 bbWeight=16 PerfScore 104.00
-G_M36935_IG34:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+G_M36935_IG36:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      edi, 32
-       jne      SHORT G_M36935_IG36
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M36935_IG35:        ; bbWeight=16, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+       jne      SHORT G_M36935_IG38
+       test     ecx, ecx
+       jl       SHORT G_M36935_IG42
+                       ;; size=9 bbWeight=2 PerfScore 5.00
+G_M36935_IG37:        ; bbWeight=15.84, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M36935_IG75
+       jbe      G_M36935_IG78
        mov      edi, ecx
        movzx    rdi, word  ptr [r15+2*rdi+0x0C]
        cmp      edi, 32
-       je       SHORT G_M36935_IG35
-                       ;; size=23 bbWeight=16 PerfScore 80.00
-G_M36935_IG36:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
+       je       SHORT G_M36935_IG37
+                       ;; size=23 bbWeight=15.84 PerfScore 79.20
+G_M36935_IG38:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2008 {rbx r13}, byref, isz
        cmp      edi, 125
        mov      r10, bword ptr [rbp-0xB8]
        ; byrRegs +[r10]
-       je       SHORT G_M36935_IG38
+       je       SHORT G_M36935_IG40
        cmp      edi, 58
-       jne      G_M36935_IG76
+       jne      G_M36935_IG79
        mov      r8d, ecx
                        ;; size=24 bbWeight=2 PerfScore 7.50
...

+56 (+2.92%) : 5172.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)

@@ -9,11 +9,11 @@
 ;
 ;  V00 this         [V00,T04] ( 17, 87.50)     ref  ->  r15         this class-hnd exact single-def <System.Text.StringBuilder>
 ;  V01 arg1         [V01,T24] ( 11, 12.33)     ref  ->  r14         class-hnd single-def <System.IFormatProvider>
-;  V02 arg2         [V02,T03] ( 18,127   )     ref  ->  rbx         class-hnd exact single-def <System.String>
+;  V02 arg2         [V02,T03] ( 20,127   )     ref  ->  rbx         class-hnd exact single-def <System.String>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Object]>
 ;  V04 loc0         [V04,T46] (  3,  7   )     ref  ->  [rbp-0x70]  class-hnd spill-single-def <<unknown class>>
-;  V05 loc1         [V05,T00] ( 62,459   )     int  ->  [rbp-0x2C]  ld-addr-op
-;  V06 loc2         [V06,T01] ( 30,260   )  ushort  ->  [rbp-0x30] 
+;  V05 loc1         [V05,T00] ( 72,463   )     int  ->  [rbp-0x2C]  ld-addr-op
+;  V06 loc2         [V06,T01] ( 34,260   )  ushort  ->  [rbp-0x30] 
 ;  V07 loc3         [V07,T05] ( 12, 74   )     int  ->  [rbp-0x34] 
 ;  V08 loc4         [V08,T09] (  5, 46   )   ubyte  ->  [rbp-0x38] 
 ;* V09 loc5         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op <System.ReadOnlySpan`1[ushort]>
@@ -134,7 +134,7 @@
 ;  V124 cse1        [V124,T31] (  3, 12   )     ref  ->   r8         "CSE - conservative"
 ;  V125 cse2        [V125,T34] (  3, 12   )     int  ->  rsi         "CSE - conservative"
 ;  V126 cse3        [V126,T32] (  3, 12   )     ref  ->  rdi         "CSE - conservative"
-;  V127 cse4        [V127,T02] ( 18,142   )     int  ->  [rbp-0x60]  spill-single-def "CSE - aggressive"
+;  V127 cse4        [V127,T02] ( 20,142   )     int  ->  [rbp-0x60]  spill-single-def "CSE - aggressive"
 ;  V128 cse5        [V128,T06] (  6, 60   )     int  ->  [rbp-0x64]  spill-single-def "CSE - aggressive"
 ;
 ; Lcl frame size = 152
@@ -160,7 +160,7 @@ G_M4730_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=40 bbWeight=1 PerfScore 8.00
 G_M4730_IG02:        ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
        test     rbx, rbx
-       je       G_M4730_IG65
+       je       G_M4730_IG68
        test     r14, r14
        jne      SHORT G_M4730_IG04
                        ;; size=14 bbWeight=1 PerfScore 2.50
@@ -228,7 +228,7 @@ G_M4730_IG10:        ; bbWeight=8, gcVars=0000400000000000 {V04}, gcrefRegs=C008
        mov      edx, dword ptr [rbx+0x08]
        mov      dword ptr [rbp-0x60], edx
        cmp      edx, ecx
-       jbe      G_M4730_IG60
+       jbe      G_M4730_IG63
                        ;; size=14 bbWeight=8 PerfScore 34.00
 G_M4730_IG11:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
        mov      edi, ecx
@@ -271,9 +271,9 @@ G_M4730_IG13:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000
        ; gcr arg pop 0
        mov      dword ptr [rbp-0x50], eax
        test     eax, eax
-       jl       G_M4730_IG62
+       jl       G_M4730_IG65
        cmp      eax, dword ptr [rbp-0x5C]
-       ja       G_M4730_IG72
+       ja       G_M4730_IG75
        mov      rdi, r15
        ; gcrRegs +[rdi]
        mov      rsi, bword ptr [rbp-0xB0]
@@ -288,12 +288,12 @@ G_M4730_IG13:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000
        add      ecx, dword ptr [rbp-0x50]
        mov      eax, dword ptr [rbp-0x60]
        cmp      ecx, eax
-       jae      G_M4730_IG64
+       jae      G_M4730_IG67
        mov      edi, ecx
        movzx    rdx, word  ptr [rbx+2*rdi+0x0C]
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M4730_IG68
+       jbe      G_M4730_IG71
        mov      dword ptr [rbp-0x2C], ecx
        mov      edi, ecx
        movzx    r8, word  ptr [rbx+2*rdi+0x0C]
@@ -313,7 +313,7 @@ G_M4730_IG13:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000
                        ;; size=153 bbWeight=4 PerfScore 129.00
 G_M4730_IG14:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
        cmp      edx, 123
-       jne      G_M4730_IG66
+       jne      G_M4730_IG69
        xor      edx, edx
        mov      dword ptr [rbp-0x34], edx
        xor      r9d, r9d
@@ -327,7 +327,7 @@ G_M4730_IG14:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000
        mov      ecx, dword ptr [rbp-0x2C]
        lea      edi, [rcx-0x01]
        cmp      edi, eax
-       jae      G_M4730_IG64
+       jae      G_M4730_IG67
        mov      dword ptr [rbp-0x2C], ecx
        lea      edi, [rcx-0x01]
        cmp      word  ptr [rbx+2*rdi+0x0C], 123
@@ -368,7 +368,7 @@ G_M4730_IG18:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000
        inc      ecx
        mov      eax, dword ptr [rbp-0x60]
        cmp      eax, ecx
-       jbe      G_M4730_IG68
+       jbe      G_M4730_IG71
        mov      r8d, ecx
        movzx    r8, word  ptr [rbx+2*r8+0x0C]
        mov      edi, r8d
@@ -381,14 +381,14 @@ G_M4730_IG19:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000
 G_M4730_IG20:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref
        mov      r10, bword ptr [rbp-0xA8]
        ; byrRegs +[r10]
-       jmp      G_M4730_IG39
+       jmp      G_M4730_IG42
                        ;; size=12 bbWeight=2 PerfScore 6.00
 G_M4730_IG21:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rbx r14-r15]
        ; byrRegs -[r10 r13]
        ; GC ptr vars -{V04 V85}
        mov      ecx, dword ptr [rbp-0x2C]
-       jmp      G_M4730_IG67
+       jmp      G_M4730_IG70
                        ;; size=8 bbWeight=2 PerfScore 6.00
 G_M4730_IG22:        ; bbWeight=8, gcVars=0000400004000000 {V04 V85}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, gcvars, byref
        ; gcrRegs +[rbx r14-r15]
@@ -399,7 +399,7 @@ G_M4730_IG22:        ; bbWeight=8, gcVars=0000400004000000 {V04 V85}, gcrefRegs=
        mov      dword ptr [rbp-0x3C], esi
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M4730_IG68
+       jbe      G_M4730_IG71
        mov      edi, ecx
        movzx    rdi, word  ptr [rbx+2*rdi+0x0C]
        mov      esi, dword ptr [rbp-0x3C]
@@ -413,102 +413,118 @@ G_M4730_IG23:        ; bbWeight=16, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000
                        ;; size=18 bbWeight=16 PerfScore 48.00
 G_M4730_IG24:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
        cmp      edi, 32
-       jne      SHORT G_M4730_IG26
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M4730_IG25:        ; bbWeight=16, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
+       jne      SHORT G_M4730_IG28
+       test     ecx, ecx
+       jl       SHORT G_M4730_IG27
+                       ;; size=9 bbWeight=2 PerfScore 5.00
+G_M4730_IG25:        ; bbWeight=15.84, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M4730_IG68
+       jbe      G_M4730_IG71
        mov      edi, ecx
        movzx    rdi, word  ptr [rbx+2*rdi+0x0C]
        cmp      edi, 32
        je       SHORT G_M4730_IG25
-                       ;; size=22 bbWeight=16 PerfScore 80.00
-G_M4730_IG26:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref
-       cmp      edi, 44
-       mov      edx, dword ptr [rbp-0x34]
-       jne      G_M4730_IG33
-                       ;; size=12 bbWeight=2 PerfScore 4.50
-G_M4730_IG27:        ; bbWeight=16, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
+                       ;; size=22 bbWeight=15.84 PerfScore 79.20
+G_M4730_IG26:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
+       jmp      SHORT G_M4730_IG28
+                       ;; size=2 bbWeight=2 PerfScore 4.00
+G_M4730_IG27:        ; bbWeight=0.16, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M4730_IG68
+       jbe      G_M4730_IG71
        mov      edi, ecx
        movzx    rdi, word  ptr [rbx+2*rdi+0x0C]
        cmp      edi, 32
        je       SHORT G_M4730_IG27
+                       ;; size=22 bbWeight=0.16 PerfScore 0.80
+G_M4730_IG28:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref
+       cmp      edi, 44
+       mov      edx, dword ptr [rbp-0x34]
+       jne      G_M4730_IG35
+                       ;; size=12 bbWeight=2 PerfScore 4.50
+G_M4730_IG29:        ; bbWeight=16, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
+       inc      ecx
+       cmp      eax, ecx
+       jbe      G_M4730_IG71
+       mov      edi, ecx
+       movzx    rdi, word  ptr [rbx+2*rdi+0x0C]
+       cmp      edi, 32
+       je       SHORT G_M4730_IG29
                        ;; size=22 bbWeight=16 PerfScore 80.00
-G_M4730_IG28:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
+G_M4730_IG30:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
        cmp      edi, 45
-       jne      SHORT G_M4730_IG29
+       jne      SHORT G_M4730_IG31
        mov      dword ptr [rbp-0x38], 1
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M4730_IG68
+       jbe      G_M4730_IG71
        mov      edi, ecx
        movzx    rdi, word  ptr [rbx+2*rdi+0x0C]
                        ;; size=29 bbWeight=2 PerfScore 12.00
-G_M4730_IG29:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref
+G_M4730_IG31:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref
        lea      edx, [rdi-0x30]
        cmp      edx, 10
-       jae      G_M4730_IG67
+       jae      G_M4730_IG70
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M4730_IG68
+       jbe      G_M4730_IG71
                        ;; size=22 bbWeight=2 PerfScore 6.50
-G_M4730_IG30:        ; bbWeight=16, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
+G_M4730_IG32:        ; bbWeight=16, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
        cmp      ecx, eax
-       jae      G_M4730_IG64
+       jae      G_M4730_IG67
        mov      edi, ecx
        movzx    rdi, word  ptr [rbx+2*rdi+0x0C]
        lea      r8d, [rdi-0x30]
        cmp      r8d, 9
-       ja       SHORT G_M4730_IG31
+       ja       SHORT G_M4730_IG33
        cmp      edx, 0xD1FFAB1E
-       jl       SHORT G_M4730_IG36
+       jl       SHORT G_M4730_IG38
                        ;; size=33 bbWeight=16 PerfScore 104.00
-G_M4730_IG31:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
+G_M4730_IG33:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
        cmp      edi, 32
-       jne      SHORT G_M4730_IG33
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M4730_IG32:        ; bbWeight=16, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
+       jne      SHORT G_M4730_IG35
+       test     ecx, ecx
+       jl       SHORT G_M4730_IG39
+                       ;; size=9 bbWeight=2 PerfScore 5.00
+G_M4730_IG34:        ; bbWeight=15.84, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
        inc      ecx
        cmp      eax, ecx
-       jbe      G_M4730_IG68
+       jbe      G_M4730_IG71
        mov      edi, ecx
        movzx    rdi, word  ptr [rbx+2*rdi+0x0C]
        cmp      edi, 32
-       je       SHORT G_M4730_IG32
-                       ;; size=22 bbWeight=16 PerfScore 80.00
-G_M4730_IG33:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
+       je       SHORT G_M4730_IG34
+                       ;; size=22 bbWeight=15.84 PerfScore 79.20
+G_M4730_IG35:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
        cmp      edi, 125
        mov      r10, bword ptr [rbp-0xA8]
        ; byrRegs +[r10]
-       je       SHORT G_M4730_IG35
+       je       SHORT G_M4730_IG37
        cmp      edi, 58
-       jne      G_M4730_IG69
+       jne      G_M4730_IG72
        mov      r8d, ecx
                        ;; size=24 bbWeight=2 PerfScore 7.50
...

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.x64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.linux.x64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_tiered.linux.x64.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.linux.x64.checked.mch 103 3 100 0 -28 +28,654
libraries.crossgen2.linux.x64.checked.mch 6 5 1 0 -383 +3
libraries.pmi.linux.x64.checked.mch 7 5 2 0 -345 +266
libraries_tests.run.linux.x64.Release.mch 601 17 584 0 -1,505 +822,153
librariestestsnotieredcompilation.run.linux.x64.Release.mch 15 13 2 0 -1,539 +196
realworld.run.linux.x64.checked.mch 0 0 0 0 -0 +0
smoke_tests.nativeaot.linux.x64.checked.mch 5 0 5 0 -0 +288
737 43 694 0 -3,800 +851,560

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.x64.checked.mch 34,999 3,164 31,835 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.linux.x64.checked.mch 155,971 58,399 97,572 149 (0.10%) 149 (0.10%)
benchmarks.run_tiered.linux.x64.checked.mch 58,890 44,312 14,578 0 (0.00%) 0 (0.00%)
coreclr_tests.run.linux.x64.checked.mch 694,088 429,241 264,847 323 (0.05%) 325 (0.05%)
libraries.crossgen2.linux.x64.checked.mch 233,626 15 233,611 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.x64.checked.mch 295,421 6 295,415 1 (0.00%) 1 (0.00%)
libraries_tests.run.linux.x64.Release.mch 756,825 495,271 261,554 3,117 (0.41%) 3,118 (0.41%)
librariestestsnotieredcompilation.run.linux.x64.Release.mch 304,609 21,873 282,736 6 (0.00%) 6 (0.00%)
realworld.run.linux.x64.checked.mch 33,167 39 33,128 0 (0.00%) 0 (0.00%)
smoke_tests.nativeaot.linux.x64.checked.mch 27,440 9 27,431 0 (0.00%) 0 (0.00%)
2,595,036 1,052,329 1,542,707 3,596 (0.14%) 3,599 (0.14%)

jit-analyze output

coreclr_tests.run.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 458879057 (overridden on cmd)
Total bytes of diff: 458907683 (overridden on cmd)
Total bytes of delta: 28626 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         858 : 2263.dasm (39.63 % of base)
         858 : 31524.dasm (39.63 % of base)
         568 : 80246.dasm (17.84 % of base)
         564 : 30554.dasm (16.73 % of base)
         563 : 113163.dasm (17.65 % of base)
         563 : 138296.dasm (17.65 % of base)
         563 : 157091.dasm (17.56 % of base)
         562 : 191899.dasm (17.65 % of base)
         562 : 239781.dasm (18.86 % of base)
         562 : 178040.dasm (17.65 % of base)
         562 : 232886.dasm (18.81 % of base)
         562 : 36686.dasm (18.81 % of base)
         562 : 70683.dasm (17.65 % of base)
         562 : 176418.dasm (18.86 % of base)
         274 : 608056.dasm (14.96 % of base)
         274 : 245412.dasm (14.96 % of base)
         274 : 381587.dasm (15.10 % of base)
         274 : 607995.dasm (14.96 % of base)
         274 : 608027.dasm (14.96 % of base)
         274 : 245503.dasm (15.10 % of base)

Top file improvements (bytes):
         -13 : 690468.dasm (-1.09 % of base)
         -11 : 224722.dasm (-0.50 % of base)
          -4 : 256501.dasm (-0.24 % of base)

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

Top method regressions (bytes):
         858 (39.63 % of base) : 2263.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (Instrumented Tier1)
         858 (39.63 % of base) : 31524.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (Instrumented Tier1)
         568 (17.84 % of base) : 80246.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         564 (16.73 % of base) : 30554.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         563 (17.65 % of base) : 113163.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         563 (17.65 % of base) : 138296.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         563 (17.56 % of base) : 157091.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         562 (17.65 % of base) : 191899.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         562 (18.86 % of base) : 239781.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         562 (17.65 % of base) : 178040.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         562 (18.81 % of base) : 232886.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         562 (18.81 % of base) : 36686.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         562 (17.65 % of base) : 70683.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         562 (18.86 % of base) : 176418.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         274 (14.96 % of base) : 608056.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         274 (14.96 % of base) : 245412.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         274 (15.10 % of base) : 381587.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         274 (14.96 % of base) : 607995.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         274 (14.96 % of base) : 608027.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         274 (15.10 % of base) : 245503.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)

Top method improvements (bytes):
         -13 (-1.09 % of base) : 690468.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
         -11 (-0.50 % of base) : 224722.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Instrumented Tier1)
          -4 (-0.24 % of base) : 256501.dasm - System.Diagnostics.Tracing.EventSource:DebugCheckEvent(byref,System.Diagnostics.Tracing.EventSource+EventMetadata[],System.Reflection.MethodInfo,System.Diagnostics.Tracing.EventAttribute,System.Diagnostics.Tracing.ManifestBuilder,int) (Instrumented Tier1)

Top method regressions (percentages):
         858 (39.63 % of base) : 2263.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (Instrumented Tier1)
         858 (39.63 % of base) : 31524.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (Instrumented Tier1)
         562 (18.86 % of base) : 239781.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         562 (18.86 % of base) : 176418.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         562 (18.81 % of base) : 232886.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         562 (18.81 % of base) : 36686.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         568 (17.84 % of base) : 80246.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         563 (17.65 % of base) : 113163.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         563 (17.65 % of base) : 138296.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         562 (17.65 % of base) : 191899.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         562 (17.65 % of base) : 178040.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         562 (17.65 % of base) : 70683.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         563 (17.56 % of base) : 157091.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         564 (16.73 % of base) : 30554.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         274 (15.10 % of base) : 381587.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         274 (15.10 % of base) : 245503.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         274 (15.10 % of base) : 427558.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         274 (15.10 % of base) : 608094.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         274 (14.96 % of base) : 608056.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         274 (14.96 % of base) : 245412.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)

Top method improvements (percentages):
         -13 (-1.09 % of base) : 690468.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
         -11 (-0.50 % of base) : 224722.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Instrumented Tier1)
          -4 (-0.24 % of base) : 256501.dasm - System.Diagnostics.Tracing.EventSource:DebugCheckEvent(byref,System.Diagnostics.Tracing.EventSource+EventMetadata[],System.Reflection.MethodInfo,System.Diagnostics.Tracing.EventAttribute,System.Diagnostics.Tracing.ManifestBuilder,int) (Instrumented Tier1)


libraries.crossgen2.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 38668832 (overridden on cmd)
Total bytes of diff: 38668452 (overridden on cmd)
Total bytes of delta: -380 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
           3 : 219795.dasm (0.61 % of base)

Top file improvements (bytes):
        -222 : 26768.dasm (-20.29 % of base)
         -47 : 131208.dasm (-15.26 % of base)
         -47 : 117955.dasm (-15.26 % of base)
         -43 : 7195.dasm (-10.67 % of base)
         -24 : 224454.dasm (-1.62 % of base)

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

Top method regressions (bytes):
           3 (0.61 % of base) : 219795.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (bytes):
        -222 (-20.29 % of base) : 26768.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]],int):this (FullOpts)
         -47 (-15.26 % of base) : 131208.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -47 (-15.26 % of base) : 117955.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -43 (-10.67 % of base) : 7195.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (FullOpts)
         -24 (-1.62 % of base) : 224454.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

Top method regressions (percentages):
           3 (0.61 % of base) : 219795.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (percentages):
        -222 (-20.29 % of base) : 26768.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]],int):this (FullOpts)
         -47 (-15.26 % of base) : 131208.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -47 (-15.26 % of base) : 117955.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -43 (-10.67 % of base) : 7195.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (FullOpts)
         -24 (-1.62 % of base) : 224454.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

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


libraries.pmi.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 59972991 (overridden on cmd)
Total bytes of diff: 59972912 (overridden on cmd)
Total bytes of delta: -79 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         251 : 286843.dasm (2.49 % of base)
          15 : 268408.dasm (3.05 % of base)

Top file improvements (bytes):
        -217 : 17238.dasm (-19.34 % of base)
         -51 : 155121.dasm (-14.21 % of base)
         -51 : 172691.dasm (-14.21 % of base)
         -13 : 270702.dasm (-0.90 % of base)
         -13 : 82114.dasm (-1.09 % of base)

7 total files with Code Size differences (5 improved, 2 regressed), 0 unchanged.

Top method regressions (bytes):
         251 (2.49 % of base) : 286843.dasm - R2RDump.TextDumper:DumpSectionContents(ILCompiler.Reflection.ReadyToRun.ReadyToRunSection):this (FullOpts)
          15 (3.05 % of base) : 268408.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (bytes):
        -217 (-19.34 % of base) : 17238.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]],int):this (FullOpts)
         -51 (-14.21 % of base) : 172691.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -51 (-14.21 % of base) : 155121.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -13 (-1.09 % of base) : 82114.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
         -13 (-0.90 % of base) : 270702.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

Top method regressions (percentages):
          15 (3.05 % of base) : 268408.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)
         251 (2.49 % of base) : 286843.dasm - R2RDump.TextDumper:DumpSectionContents(ILCompiler.Reflection.ReadyToRun.ReadyToRunSection):this (FullOpts)

Top method improvements (percentages):
        -217 (-19.34 % of base) : 17238.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]],int):this (FullOpts)
         -51 (-14.21 % of base) : 172691.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -51 (-14.21 % of base) : 155121.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -13 (-1.09 % of base) : 82114.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
         -13 (-0.90 % of base) : 270702.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

7 total methods with Code Size differences (5 improved, 2 regressed).


libraries_tests.run.linux.x64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 329976340 (overridden on cmd)
Total bytes of diff: 330796988 (overridden on cmd)
Total bytes of delta: 820648 (0.25 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        5196 : 434703.dasm (57.21 % of base)
        5196 : 443132.dasm (57.21 % of base)
        5127 : 207899.dasm (57.20 % of base)
        5086 : 325491.dasm (55.43 % of base)
        5086 : 453195.dasm (55.43 % of base)
        5086 : 563838.dasm (55.43 % of base)
        5086 : 603391.dasm (55.43 % of base)
        5025 : 499523.dasm (55.18 % of base)
        4999 : 133007.dasm (55.09 % of base)
        4999 : 508947.dasm (55.09 % of base)
        4999 : 110163.dasm (55.09 % of base)
        4999 : 342320.dasm (55.09 % of base)
        4999 : 504451.dasm (55.09 % of base)
        4999 : 317935.dasm (55.09 % of base)
        4999 : 160879.dasm (55.09 % of base)
        4999 : 213499.dasm (55.09 % of base)
        4999 : 379504.dasm (55.09 % of base)
        4999 : 497619.dasm (55.09 % of base)
        4999 : 515280.dasm (55.09 % of base)
        4999 : 732196.dasm (55.09 % of base)

Top file improvements (bytes):
        -225 : 693582.dasm (-17.97 % of base)
        -187 : 716060.dasm (-15.12 % of base)
        -145 : 716382.dasm (-21.84 % of base)
        -131 : 693859.dasm (-28.42 % of base)
        -129 : 693607.dasm (-22.36 % of base)
        -128 : 725795.dasm (-19.57 % of base)
        -113 : 693862.dasm (-23.74 % of base)
        -106 : 693639.dasm (-18.21 % of base)
        -103 : 693622.dasm (-21.37 % of base)
         -63 : 720167.dasm (-15.29 % of base)
         -63 : 538826.dasm (-11.35 % of base)
         -56 : 716381.dasm (-14.70 % of base)
         -33 : 552766.dasm (-8.51 % of base)
         -11 : 29381.dasm (-0.51 % of base)
          -6 : 35552.dasm (-0.54 % of base)
          -3 : 285826.dasm (-0.18 % of base)
          -3 : 103123.dasm (-0.47 % of base)

43 total files with Code Size differences (17 improved, 26 regressed), 0 unchanged.

Top method regressions (bytes):
        5196 (57.21 % of base) : 434703.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        5196 (57.21 % of base) : 443132.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        5127 (57.20 % of base) : 207899.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        5086 (55.43 % of base) : 325491.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        5086 (55.43 % of base) : 453195.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        5086 (55.43 % of base) : 563838.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        5086 (55.43 % of base) : 603391.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        5025 (55.18 % of base) : 499523.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 133007.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 508947.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 110163.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 342320.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 504451.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 317935.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 160879.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 213499.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 379504.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 497619.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 515280.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 732196.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)

Top method improvements (bytes):
        -225 (-17.97 % of base) : 693582.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex412_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -187 (-15.12 % of base) : 716060.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex30755_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -145 (-21.84 % of base) : 716382.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31052_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -131 (-28.42 % of base) : 693859.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex550_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -129 (-22.36 % of base) : 693607.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex443_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -128 (-19.57 % of base) : 725795.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32470_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -113 (-23.74 % of base) : 693862.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex552_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -106 (-18.21 % of base) : 693639.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex457_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -103 (-21.37 % of base) : 693622.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex450_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -63 (-15.29 % of base) : 720167.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex14558_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -63 (-11.35 % of base) : 538826.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (Instrumented Tier1)
         -56 (-14.70 % of base) : 716381.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31051_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -33 (-8.51 % of base) : 552766.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (Tier1)
         -11 (-0.51 % of base) : 29381.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Instrumented Tier1)
          -6 (-0.54 % of base) : 35552.dasm - System.IO.Path:Combine(System.String[]):System.String (Instrumented Tier1)
          -3 (-0.18 % of base) : 285826.dasm - System.Diagnostics.Tracing.EventSource:DebugCheckEvent(byref,System.Diagnostics.Tracing.EventSource+EventMetadata[],System.Reflection.MethodInfo,System.Diagnostics.Tracing.EventAttribute,System.Diagnostics.Tracing.ManifestBuilder,int) (Instrumented Tier1)
          -3 (-0.47 % of base) : 103123.dasm - System.RuntimeType:GetEventCandidates(System.String,int,ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.EventInfo]:this (Instrumented Tier1)

Top method regressions (percentages):
        5196 (57.21 % of base) : 434703.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        5196 (57.21 % of base) : 443132.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        5127 (57.20 % of base) : 207899.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        5086 (55.43 % of base) : 325491.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        5086 (55.43 % of base) : 453195.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        5086 (55.43 % of base) : 563838.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        5086 (55.43 % of base) : 603391.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        5025 (55.18 % of base) : 499523.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 133007.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 508947.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 110163.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 342320.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 504451.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 317935.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 160879.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 213499.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 379504.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 497619.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 515280.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4999 (55.09 % of base) : 732196.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)

Top method improvements (percentages):
        -131 (-28.42 % of base) : 693859.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex550_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -113 (-23.74 % of base) : 693862.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex552_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -129 (-22.36 % of base) : 693607.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex443_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -145 (-21.84 % of base) : 716382.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31052_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -103 (-21.37 % of base) : 693622.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex450_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -128 (-19.57 % of base) : 725795.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32470_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -106 (-18.21 % of base) : 693639.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex457_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -225 (-17.97 % of base) : 693582.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex412_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -63 (-15.29 % of base) : 720167.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex14558_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -187 (-15.12 % of base) : 716060.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex30755_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -56 (-14.70 % of base) : 716381.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31051_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -63 (-11.35 % of base) : 538826.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (Instrumented Tier1)
         -33 (-8.51 % of base) : 552766.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (Tier1)
          -6 (-0.54 % of base) : 35552.dasm - System.IO.Path:Combine(System.String[]):System.String (Instrumented Tier1)
         -11 (-0.51 % of base) : 29381.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Instrumented Tier1)
          -3 (-0.47 % of base) : 103123.dasm - System.RuntimeType:GetEventCandidates(System.String,int,ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.EventInfo]:this (Instrumented Tier1)
          -3 (-0.18 % of base) : 285826.dasm - System.Diagnostics.Tracing.EventSource:DebugCheckEvent(byref,System.Diagnostics.Tracing.EventSource+EventMetadata[],System.Reflection.MethodInfo,System.Diagnostics.Tracing.EventAttribute,System.Diagnostics.Tracing.ManifestBuilder,int) (Instrumented Tier1)


librariestestsnotieredcompilation.run.linux.x64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 130000373 (overridden on cmd)
Total bytes of diff: 129999030 (overridden on cmd)
Total bytes of delta: -1343 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         181 : 291194.dasm (9.25 % of base)
          15 : 116902.dasm (3.05 % of base)

Top file improvements (bytes):
        -251 : 288814.dasm (-18.46 % of base)
        -230 : 285163.dasm (-17.14 % of base)
        -157 : 288830.dasm (-25.99 % of base)
        -151 : 285230.dasm (-21.54 % of base)
        -149 : 288846.dasm (-21.78 % of base)
        -124 : 288833.dasm (-23.26 % of base)
        -122 : 288955.dasm (-23.51 % of base)
        -116 : 290887.dasm (-17.26 % of base)
         -69 : 277416.dasm (-17.16 % of base)
         -66 : 285229.dasm (-16.06 % of base)
         -51 : 195330.dasm (-14.21 % of base)
         -51 : 63488.dasm (-14.21 % of base)
          -2 : 185652.dasm (-0.15 % of base)

15 total files with Code Size differences (13 improved, 2 regressed), 0 unchanged.

Top method regressions (bytes):
         181 (9.25 % of base) : 291194.dasm - System.Text.RegularExpressions.Tests.CustomDerivedRegex+CustomRegexRunnerFactory+CustomRegexRunner:Go():this (FullOpts)
          15 (3.05 % of base) : 116902.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (bytes):
        -251 (-18.46 % of base) : 288814.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex6785_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -230 (-17.14 % of base) : 285163.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5544_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -157 (-25.99 % of base) : 288830.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex6816_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -151 (-21.54 % of base) : 285230.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5841_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -149 (-21.78 % of base) : 288846.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex6830_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -124 (-23.26 % of base) : 288833.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex6823_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -122 (-23.51 % of base) : 288955.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex6925_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -116 (-17.26 % of base) : 290887.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32794_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -69 (-17.16 % of base) : 277416.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2808_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -66 (-16.06 % of base) : 285229.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5840_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -51 (-14.21 % of base) : 63488.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -51 (-14.21 % of base) : 195330.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
          -2 (-0.15 % of base) : 185652.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

Top method regressions (percentages):
         181 (9.25 % of base) : 291194.dasm - System.Text.RegularExpressions.Tests.CustomDerivedRegex+CustomRegexRunnerFactory+CustomRegexRunner:Go():this (FullOpts)
          15 (3.05 % of base) : 116902.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (percentages):
        -157 (-25.99 % of base) : 288830.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex6816_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -122 (-23.51 % of base) : 288955.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex6925_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -124 (-23.26 % of base) : 288833.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex6823_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -149 (-21.78 % of base) : 288846.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex6830_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -151 (-21.54 % of base) : 285230.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5841_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -251 (-18.46 % of base) : 288814.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex6785_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -116 (-17.26 % of base) : 290887.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32794_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -69 (-17.16 % of base) : 277416.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2808_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -230 (-17.14 % of base) : 285163.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5544_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -66 (-16.06 % of base) : 285229.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5840_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -51 (-14.21 % of base) : 63488.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -51 (-14.21 % of base) : 195330.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
          -2 (-0.15 % of base) : 185652.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

15 total methods with Code Size differences (13 improved, 2 regressed).


smoke_tests.nativeaot.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 4197516 (overridden on cmd)
Total bytes of diff: 4197804 (overridden on cmd)
Total bytes of delta: 288 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          58 : 21693.dasm (2.80 % of base)
          58 : 18675.dasm (2.80 % of base)
          58 : 25180.dasm (2.80 % of base)
          58 : 2923.dasm (2.80 % of base)
          56 : 5172.dasm (2.92 % of base)

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

Top method regressions (bytes):
          58 (2.80 % of base) : 21693.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          58 (2.80 % of base) : 18675.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          58 (2.80 % of base) : 25180.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          58 (2.80 % of base) : 2923.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          56 (2.92 % of base) : 5172.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)

Top method regressions (percentages):
          56 (2.92 % of base) : 5172.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
          58 (2.80 % of base) : 21693.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          58 (2.80 % of base) : 18675.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          58 (2.80 % of base) : 25180.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          58 (2.80 % of base) : 2923.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)

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



osx arm64

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

MISSED contexts: base: 2,925 (0.13%), diff: 3,201 (0.14%)

Overall (+527,124 bytes)

Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.osx.arm64.checked.mch 485,342,836 +2,836
libraries.crossgen2.osx.arm64.checked.mch 55,620,836 -384
libraries.pmi.osx.arm64.checked.mch 79,959,744 -4
libraries_tests.run.osx.arm64.Release.mch 312,234,552 +525,560
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 160,790,848 -884

FullOpts (+527,124 bytes)

Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.osx.arm64.checked.mch 153,036,380 +2,836
libraries.crossgen2.osx.arm64.checked.mch 55,619,208 -384
libraries.pmi.osx.arm64.checked.mch 79,838,616 -4
libraries_tests.run.osx.arm64.Release.mch 108,294,048 +525,560
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 147,653,320 -884

Example diffs

coreclr_tests.run.osx.arm64.checked.mch

-28 (-2.51%) : 375652.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)

@@ -9,52 +9,53 @@
 ; 4 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
+;  V00 this         [V00,T06] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
 ;  V01 RetBuf       [V01,T01] (  6,  6   )   byref  ->  x20         single-def
-;  V02 arg1         [V02,T04] ( 14,  4   )     ref  ->  x21         ld-addr-op class-hnd <System.String>
+;  V02 arg1         [V02,T05] ( 14,  4   )     ref  ->  x21         ld-addr-op class-hnd <System.String>
 ;  V03 arg2         [V03,T00] (  6,  6.54)     int  ->  x19        
-;  V04 arg3         [V04,T06] (  4,  3.90)     ref  ->  x23         class-hnd single-def <System.Type[]>
-;  V05 arg4         [V05,T08] (  3,  3   )   ubyte  ->  x24         single-def
-;  V06 loc0         [V06,T20] (  3,  2.41)   ubyte  ->  x25         ld-addr-op
-;  V07 loc1         [V07,T24] (  3,  1   )   ubyte  ->  x26         ld-addr-op
-;  V08 loc2         [V08,T22] (  7,  2   )     int  ->  x27         ld-addr-op
-;  V09 loc3         [V09,T19] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
+;  V04 arg3         [V04,T07] (  4,  3.90)     ref  ->  x23         class-hnd single-def <System.Type[]>
+;  V05 arg4         [V05,T09] (  3,  3   )   ubyte  ->  x24         single-def
+;  V06 loc0         [V06,T21] (  3,  2.41)   ubyte  ->  x25         ld-addr-op
+;  V07 loc1         [V07,T25] (  3,  1   )   ubyte  ->  x26         ld-addr-op
+;  V08 loc2         [V08,T23] (  7,  2   )     int  ->  x27         ld-addr-op
+;  V09 loc3         [V09,T20] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
 ;  V10 loc4         [V10    ] (  9,  9.41)  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]>
 ;  V11 loc5         [V11,T02] (  5,  7.18)     int  ->  x22        
-;  V12 loc6         [V12,T03] (  7,  5.96)     ref  ->  x27         class-hnd exact <System.Reflection.RuntimePropertyInfo>
+;  V12 loc6         [V12,T04] (  7,  5.96)     ref  ->  [fp+0x10]  class-hnd exact spill-single-def <System.Reflection.RuntimePropertyInfo>
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V16 tmp3         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
-;  V18 tmp5         [V18,T12] (  5,  4   )     ref  ->  x28         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
-;  V19 tmp6         [V19,T07] (  5,  5   )     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <System.Object>
-;  V20 tmp7         [V20,T14] (  2,  4   )     ref  ->   x0         class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
+;  V18 tmp5         [V18,T13] (  5,  4   )     ref  ->  x28         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
+;  V19 tmp6         [V19,T08] (  5,  5   )     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;  V20 tmp7         [V20,T15] (  2,  4   )     ref  ->   x0         class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
 ;* V21 tmp8         [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.RuntimeType+RuntimeTypeCache>
 ;* V22 tmp9         [V22    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp10        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V24 tmp11        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V25 tmp12        [V25,T13] (  4,  4   )   byref  ->  x22         single-def "Inlining Arg"
+;  V25 tmp12        [V25,T14] (  4,  4   )   byref  ->  x22         single-def "Inlining Arg"
 ;* V26 tmp13        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V27 tmp14        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
-;  V28 tmp15        [V28,T11] ( 14,  4   )     ref  ->  registers   class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V29 tmp16        [V29,T26] (  4,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V28 tmp15        [V28,T12] ( 14,  4   )     ref  ->  registers   class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V29 tmp16        [V29,T27] (  4,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V30 tmp17        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V31 tmp18        [V31,T23] (  5,  2   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V32 tmp19        [V32,T15] (  2,  4   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
-;  V33 tmp20        [V33,T17] (  4,  3   )     ref  ->   x0        
-;  V34 tmp21        [V34,T28] (  2,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
-;  V35 tmp22        [V35,T27] (  4,  0   )     ref  ->   x0        
-;  V36 tmp23        [V36,T16] (  2,  4   )     int  ->   x1         "Inlining Arg"
+;  V31 tmp18        [V31,T24] (  5,  2   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
+;  V32 tmp19        [V32,T16] (  2,  4   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
+;  V33 tmp20        [V33,T18] (  4,  3   )     ref  ->   x0        
+;  V34 tmp21        [V34,T29] (  2,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
+;  V35 tmp22        [V35,T28] (  4,  0   )     ref  ->   x0        
+;  V36 tmp23        [V36,T17] (  2,  4   )     int  ->   x1         "Inlining Arg"
 ;  V37 tmp24        [V37    ] (  3,  3.41)     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V10._items (fldOffset=0x0)" P-DEP
 ;  V38 tmp25        [V38    ] (  3,  3.41)     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V10._item (fldOffset=0x8)" P-DEP
 ;  V39 tmp26        [V39    ] (  3,  3.41)     int  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V10._count (fldOffset=0x10)" P-DEP
 ;  V40 tmp27        [V40    ] (  3,  3.41)     int  ->  [fp+0x2C]  do-not-enreg[X] addr-exposed "field V10._capacity (fldOffset=0x14)" P-DEP
-;* V41 tmp28        [V41,T25] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V42 cse0         [V42,T09] (  3,  4.63)     int  ->   x0         "CSE - moderate"
-;  V43 cse1         [V43,T18] (  3,  3   )    long  ->   x0         "CSE - moderate"
-;  V44 cse2         [V44,T10] (  4,  4.54)     int  ->  x24         "CSE - aggressive"
-;  V45 cse3         [V45,T21] (  2,  2.15)   byref  ->  x28         hoist "CSE - moderate"
+;* V41 tmp28        [V41,T26] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V42 cse0         [V42,T10] (  3,  4.63)     int  ->   x0         "CSE - moderate"
+;  V43 cse1         [V43,T19] (  3,  3   )    long  ->   x0         "CSE - moderate"
+;  V44 cse2         [V44,T03] ( 10,  6.53)    long  ->  x27         hoist multi-def "CSE - aggressive"
+;  V45 cse3         [V45,T11] (  4,  4.54)     int  ->  x24         "CSE - moderate"
+;  V46 cse4         [V46,T22] (  2,  2.15)   byref  ->  x28         hoist "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -146,7 +147,7 @@ G_M37807_IG07:        ; bbWeight=1, gcrefRegs=E00000 {x21 x22 x23}, byrefRegs=10
                        ;; size=4 bbWeight=1 PerfScore 0.50
 G_M37807_IG08:        ; bbWeight=1, gcrefRegs=E00000 {x21 x22 x23}, byrefRegs=100000 {x20}, byref, isz
             tst     w24, #255
-            bne     G_M37807_IG31
+            bne     G_M37807_IG32
             b       G_M37807_IG04
                        ;; size=12 bbWeight=1 PerfScore 2.50
 G_M37807_IG09:        ; bbWeight=1, gcrefRegs=E00000 {x21 x22 x23}, byrefRegs=100000 {x20}, byref
@@ -225,8 +226,8 @@ G_M37807_IG13:        ; bbWeight=1, gcrefRegs=1A00000 {x21 x23 x24}, byrefRegs=1
                        ;; size=12 bbWeight=1 PerfScore 4.50
 G_M37807_IG14:        ; bbWeight=0, gcrefRegs=1A00000 {x21 x23 x24}, byrefRegs=100000 {x20}, byref, isz
             cmp     w27, #2
-            beq     G_M37807_IG32
-            b       G_M37807_IG34
+            beq     G_M37807_IG33
+            b       G_M37807_IG35
                        ;; size=12 bbWeight=0 PerfScore 0.00
 G_M37807_IG15:        ; bbWeight=1, gcrefRegs=1A00000 {x21 x23 x24}, byrefRegs=100000 {x20}, byref, isz
             add     x0, x24, #32
@@ -270,30 +271,36 @@ G_M37807_IG17:        ; bbWeight=1, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=100
             stp     wzr, w1, [fp, #0x28]   // [V39 tmp26], [V40 tmp27]
             mov     w22, wzr
             cmp     w24, #0
-            ble     G_M37807_IG29
+            ble     G_M37807_IG30
                        ;; size=32 bbWeight=1 PerfScore 8.00
 G_M37807_IG18:        ; bbWeight=0.61, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=100000 {x20}, byref
             add     x28, x0, #16
             ; byrRegs +[x28]
-                       ;; size=4 bbWeight=0.61 PerfScore 0.30
+            movz    x27, #0xD1FFAB1E
+            movk    x27, #0xD1FFAB1E LSL #16
+            movk    x27, #1 LSL #32
+                       ;; size=16 bbWeight=0.61 PerfScore 1.21
 G_M37807_IG19:        ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x27, [x28, w22, UXTW #3]
-            ; gcrRegs +[x27]
-            ldr     w0, [x27, #0x58]
+            ldr     x2, [x28, w22, UXTW #3]
+            ; gcrRegs +[x2]
+            str     x2, [fp, #0x10]    // [V12 loc6]
+            ; GC ptr vars +{V12}
+            ldr     w0, [x2, #0x58]
             and     w1, w19, w0
             cmp     w1, w0
             bne     G_M37807_IG26
-                       ;; size=20 bbWeight=1.54 PerfScore 12.35
-G_M37807_IG20:        ; bbWeight=1.41, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
+                       ;; size=24 bbWeight=1.54 PerfScore 13.90
+G_M37807_IG20:        ; bbWeight=1.41, gcVars=0000000000000010 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, gcvars, byref, isz
             cbz     w25, G_M37807_IG22
                        ;; size=4 bbWeight=1.41 PerfScore 1.41
-G_M37807_IG21:        ; bbWeight=0, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            mov     x0, x27
+G_M37807_IG21:        ; bbWeight=0, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
             mov     x1, x21
             ; gcrRegs +[x1]
             mov     w2, w26
+            ; gcrRegs -[x2]
             movz    x3, #0xD1FFAB1E      // code for System.RuntimeType:FilterApplyPrefixLookup(System.Reflection.MemberInfo,System.String,ubyte):ubyte
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
@@ -301,28 +308,26 @@ G_M37807_IG21:        ; bbWeight=0, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=1
             blr     x3
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbz     w0, G_M37807_IG36
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            cbz     w0, G_M37807_IG37
+            mov     x0, x27
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=52 bbWeight=0 PerfScore 0.00
-G_M37807_IG22:        ; bbWeight=1.41, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            cbz     x23, G_M37807_IG25
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
+            ; gcrRegs +[x2]
+                       ;; size=48 bbWeight=0 PerfScore 0.00
+G_M37807_IG22:        ; bbWeight=1.41, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            cbz     x23, G_M37807_IG28
                        ;; size=4 bbWeight=1.41 PerfScore 1.41
-G_M37807_IG23:        ; bbWeight=0.49, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            mov     x0, x27
+G_M37807_IG23:        ; bbWeight=0.49, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #1 LSL #32
+            add     x1, x27, #8
             bl      CORINFO_HELP_CLASSPROFILE32
-            ; gcrRegs -[x0]
+            ; gcrRegs -[x0 x2]
             ; gcr arg pop 0
-            mov     x0, x27
+            ldr     x0, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x0]
-            ldr     x1, [x27]
+            ldr     x1, [x0]
             ldr     x1, [x1, #0x58]
             ldr     x1, [x1, #0x18]
             blr     x1
@@ -331,23 +336,19 @@ G_M37807_IG23:        ; bbWeight=0.49, gcrefRegs=8A00000 {x21 x23 x27}, byrefReg
             ; gcrRegs -[x0]
             ldr     w1, [x23, #0x08]
             cmp     w0, w1
-            bne     G_M37807_IG28
-                       ;; size=56 bbWeight=0.49 PerfScore 10.22
-G_M37807_IG24:        ; bbWeight=0.24, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            bne     G_M37807_IG29
+                       ;; size=48 bbWeight=0.49 PerfScore 10.46
+G_M37807_IG24:        ; bbWeight=0.24, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.24 PerfScore 0.61
-G_M37807_IG25:        ; bbWeight=1.41, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+                       ;; size=8 bbWeight=0.24 PerfScore 0.36
+G_M37807_IG25:        ; bbWeight=1.41, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     x0, fp, #24    // [V10 loc4]
-            mov     x2, x27
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x2]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -356,41 +357,45 @@ G_M37807_IG25:        ; bbWeight=1.41, gcrefRegs=8A00000 {x21 x23 x27}, byrefReg
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
             ldr     x3, [x3]
+            ; GC ptr vars -{V12}
             blr     x3
-            ; gcrRegs -[x2 x27]
+            ; gcrRegs -[x2]
             ; gcr arg pop 0
-                       ;; size=56 bbWeight=1.41 PerfScore 14.80
+                       ;; size=48 bbWeight=1.41 PerfScore 15.50
 G_M37807_IG26:        ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     w22, w22, #1
             cmp     w24, w22
             bgt     G_M37807_IG19
-                       ;; size=28 bbWeight=1.54 PerfScore 6.95
+                       ;; size=20 bbWeight=1.54 PerfScore 5.41
 G_M37807_IG27:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
             ; gcrRegs -[x21 x23]
             ; byrRegs -[x28]
-            b       G_M37807_IG29
+            b       G_M37807_IG30
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M37807_IG28:        ; bbWeight=0.24, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref
...

-28 (-2.48%) : 246178.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)

@@ -9,55 +9,56 @@
 ; 4 inlinees with PGO data; 10 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
+;  V00 this         [V00,T06] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
 ;  V01 RetBuf       [V01,T01] (  6,  6   )   byref  ->  x20         single-def
 ;  V02 arg1         [V02,T03] ( 14,  4.75)     ref  ->  x21         ld-addr-op class-hnd <System.String>
 ;  V03 arg2         [V03,T00] (  6,  6.54)     int  ->  x19        
-;  V04 arg3         [V04,T06] (  4,  3.90)     ref  ->  x23         class-hnd single-def <System.Type[]>
-;  V05 arg4         [V05,T09] (  3,  3   )   ubyte  ->  x24         single-def
-;  V06 loc0         [V06,T21] (  3,  2.41)   ubyte  ->  x25         ld-addr-op
-;  V07 loc1         [V07,T25] (  3,  1   )   ubyte  ->  x26         ld-addr-op
-;  V08 loc2         [V08,T23] (  7,  2.00)     int  ->  x27         ld-addr-op
-;  V09 loc3         [V09,T20] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
+;  V04 arg3         [V04,T07] (  4,  3.90)     ref  ->  x23         class-hnd single-def <System.Type[]>
+;  V05 arg4         [V05,T10] (  3,  3   )   ubyte  ->  x24         single-def
+;  V06 loc0         [V06,T22] (  3,  2.41)   ubyte  ->  x25         ld-addr-op
+;  V07 loc1         [V07,T26] (  3,  1   )   ubyte  ->  x26         ld-addr-op
+;  V08 loc2         [V08,T24] (  7,  2.00)     int  ->  x27         ld-addr-op
+;  V09 loc3         [V09,T21] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
 ;  V10 loc4         [V10    ] (  9,  9.41)  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]>
 ;  V11 loc5         [V11,T02] (  5,  7.18)     int  ->  x24        
-;  V12 loc6         [V12,T04] (  7,  5.96)     ref  ->  x27         class-hnd exact <System.Reflection.RuntimePropertyInfo>
+;  V12 loc6         [V12,T05] (  7,  5.96)     ref  ->  [fp+0x10]  class-hnd exact spill-single-def <System.Reflection.RuntimePropertyInfo>
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V16 tmp3         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
-;  V18 tmp5         [V18,T13] (  5,  4.06)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
-;  V19 tmp6         [V19,T08] (  4,  4   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
-;* V20 tmp7         [V20,T19] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
+;  V18 tmp5         [V18,T14] (  5,  4.06)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
+;  V19 tmp6         [V19,T09] (  4,  4   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;* V20 tmp7         [V20,T20] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
 ;* V21 tmp8         [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.RuntimeType+RuntimeTypeCache>
 ;* V22 tmp9         [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp10        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp11        [V24    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp12        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V26 tmp13        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V27 tmp14        [V27,T12] (  4,  4.26)   byref  ->  x22         single-def "Inlining Arg"
+;  V27 tmp14        [V27,T13] (  4,  4.26)   byref  ->  x22         single-def "Inlining Arg"
 ;* V28 tmp15        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V29 tmp16        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
-;  V30 tmp17        [V30,T07] ( 14,  5.01)     ref  ->  registers   class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V31 tmp18        [V31,T27] (  4,  0.51)     ref  ->  x28         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V30 tmp17        [V30,T08] ( 14,  5.01)     ref  ->  registers   class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V31 tmp18        [V31,T28] (  4,  0.51)     ref  ->  x28         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V32 tmp19        [V32    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V33 tmp20        [V33,T24] (  5,  2   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V34 tmp21        [V34,T14] (  2,  4   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
-;  V35 tmp22        [V35,T16] (  4,  3.75)     ref  ->   x0        
-;  V36 tmp23        [V36,T29] (  2,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
-;  V37 tmp24        [V37,T28] (  4,  0   )     ref  ->   x0        
-;  V38 tmp25        [V38,T15] (  2,  4   )     int  ->   x1         "Inlining Arg"
+;  V33 tmp20        [V33,T25] (  5,  2   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
+;  V34 tmp21        [V34,T15] (  2,  4   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
+;  V35 tmp22        [V35,T17] (  4,  3.75)     ref  ->   x0        
+;  V36 tmp23        [V36,T30] (  2,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
+;  V37 tmp24        [V37,T29] (  4,  0   )     ref  ->   x0        
+;  V38 tmp25        [V38,T16] (  2,  4   )     int  ->   x1         "Inlining Arg"
 ;  V39 tmp26        [V39    ] (  3,  3.41)     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V10._items (fldOffset=0x0)" P-DEP
 ;  V40 tmp27        [V40    ] (  3,  3.41)     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V10._item (fldOffset=0x8)" P-DEP
 ;  V41 tmp28        [V41    ] (  3,  3.41)     int  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V10._count (fldOffset=0x10)" P-DEP
 ;  V42 tmp29        [V42    ] (  3,  3.41)     int  ->  [fp+0x2C]  do-not-enreg[X] addr-exposed "field V10._capacity (fldOffset=0x14)" P-DEP
-;* V43 tmp30        [V43,T26] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V44 cse0         [V44,T10] (  3,  4.63)     int  ->   x0         "CSE - moderate"
-;  V45 cse1         [V45,T18] (  3,  3   )    long  ->   x0         "CSE - moderate"
-;  V46 cse2         [V46,T11] (  4,  4.54)     int  ->  x22         "CSE - aggressive"
-;  V47 cse3         [V47,T22] (  2,  2.15)   byref  ->  x28         hoist "CSE - moderate"
-;  V48 cse4         [V48,T17] (  3,  3   )     ref  ->   x1         "CSE - moderate"
+;* V43 tmp30        [V43,T27] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V44 cse0         [V44,T11] (  3,  4.63)     int  ->   x0         "CSE - moderate"
+;  V45 cse1         [V45,T19] (  3,  3   )    long  ->   x0         "CSE - moderate"
+;  V46 cse2         [V46,T04] ( 10,  6.53)    long  ->  x27         hoist multi-def "CSE - aggressive"
+;  V47 cse3         [V47,T12] (  4,  4.54)     int  ->  x22         "CSE - moderate"
+;  V48 cse4         [V48,T23] (  2,  2.15)   byref  ->  x28         hoist "CSE - moderate"
+;  V49 cse5         [V49,T18] (  3,  3   )     ref  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -141,7 +142,7 @@ G_M37807_IG08:        ; bbWeight=1, gcrefRegs=E00000 {x21 x22 x23}, byrefRegs=10
                        ;; size=4 bbWeight=1 PerfScore 0.50
 G_M37807_IG09:        ; bbWeight=1, gcrefRegs=E00000 {x21 x22 x23}, byrefRegs=100000 {x20}, byref, isz
             tst     w24, #255
-            bne     G_M37807_IG33
+            bne     G_M37807_IG34
             b       G_M37807_IG04
                        ;; size=12 bbWeight=1 PerfScore 2.50
 G_M37807_IG10:        ; bbWeight=1, gcrefRegs=1A00000 {x21 x23 x24}, byrefRegs=100000 {x20}, byref
@@ -202,7 +203,7 @@ G_M37807_IG14:        ; bbWeight=0.06, gcrefRegs=1A00000 {x21 x23 x24}, byrefReg
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15 x24]
             ; byrRegs -[x14]
-            cbz     x22, G_M37807_IG34
+            cbz     x22, G_M37807_IG35
             mov     x0, x22
             ; byrRegs +[x0]
             mov     x1, x28
@@ -226,8 +227,8 @@ G_M37807_IG15:        ; bbWeight=1.00, gcrefRegs=10A00000 {x21 x23 x28}, byrefRe
                        ;; size=12 bbWeight=1.00 PerfScore 4.50
 G_M37807_IG16:        ; bbWeight=0, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=100000 {x20}, byref, isz
             cmp     w27, #2
-            beq     G_M37807_IG35
-            b       G_M37807_IG37
+            beq     G_M37807_IG36
+            b       G_M37807_IG38
                        ;; size=12 bbWeight=0 PerfScore 0.00
 G_M37807_IG17:        ; bbWeight=1, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=100000 {x20}, byref, isz
             add     x0, x28, #32
@@ -271,30 +272,36 @@ G_M37807_IG19:        ; bbWeight=1, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=100
             stp     wzr, w1, [fp, #0x28]   // [V41 tmp28], [V42 tmp29]
             mov     w24, wzr
             cmp     w22, #0
-            ble     G_M37807_IG31
+            ble     G_M37807_IG32
                        ;; size=32 bbWeight=1 PerfScore 8.00
 G_M37807_IG20:        ; bbWeight=0.61, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=100000 {x20}, byref
             add     x28, x0, #16
             ; byrRegs +[x28]
-                       ;; size=4 bbWeight=0.61 PerfScore 0.30
+            movz    x27, #0xD1FFAB1E
+            movk    x27, #0xD1FFAB1E LSL #16
+            movk    x27, #1 LSL #32
+                       ;; size=16 bbWeight=0.61 PerfScore 1.21
 G_M37807_IG21:        ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x27, [x28, w24, UXTW #3]
-            ; gcrRegs +[x27]
-            ldr     w0, [x27, #0x58]
+            ldr     x2, [x28, w24, UXTW #3]
+            ; gcrRegs +[x2]
+            str     x2, [fp, #0x10]    // [V12 loc6]
+            ; GC ptr vars +{V12}
+            ldr     w0, [x2, #0x58]
             and     w1, w19, w0
             cmp     w1, w0
             bne     G_M37807_IG28
-                       ;; size=20 bbWeight=1.54 PerfScore 12.35
-G_M37807_IG22:        ; bbWeight=1.41, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
+                       ;; size=24 bbWeight=1.54 PerfScore 13.90
+G_M37807_IG22:        ; bbWeight=1.41, gcVars=0000000000000020 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, gcvars, byref, isz
             cbz     w25, G_M37807_IG24
                        ;; size=4 bbWeight=1.41 PerfScore 1.41
-G_M37807_IG23:        ; bbWeight=0, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            mov     x0, x27
+G_M37807_IG23:        ; bbWeight=0, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
             mov     x1, x21
             ; gcrRegs +[x1]
             mov     w2, w26
+            ; gcrRegs -[x2]
             movz    x3, #0xD1FFAB1E      // code for System.RuntimeType:FilterApplyPrefixLookup(System.Reflection.MemberInfo,System.String,ubyte):ubyte
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
@@ -302,28 +309,26 @@ G_M37807_IG23:        ; bbWeight=0, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=1
             blr     x3
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbz     w0, G_M37807_IG39
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            cbz     w0, G_M37807_IG40
+            mov     x0, x27
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=52 bbWeight=0 PerfScore 0.00
-G_M37807_IG24:        ; bbWeight=1.41, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            cbz     x23, G_M37807_IG27
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
+            ; gcrRegs +[x2]
+                       ;; size=48 bbWeight=0 PerfScore 0.00
+G_M37807_IG24:        ; bbWeight=1.41, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            cbz     x23, G_M37807_IG30
                        ;; size=4 bbWeight=1.41 PerfScore 1.41
-G_M37807_IG25:        ; bbWeight=0.49, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            mov     x0, x27
+G_M37807_IG25:        ; bbWeight=0.49, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #1 LSL #32
+            add     x1, x27, #8
             bl      CORINFO_HELP_CLASSPROFILE32
-            ; gcrRegs -[x0]
+            ; gcrRegs -[x0 x2]
             ; gcr arg pop 0
-            mov     x0, x27
+            ldr     x0, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x0]
-            ldr     x1, [x27]
+            ldr     x1, [x0]
             ldr     x1, [x1, #0x58]
             ldr     x1, [x1, #0x18]
             blr     x1
@@ -332,23 +337,19 @@ G_M37807_IG25:        ; bbWeight=0.49, gcrefRegs=8A00000 {x21 x23 x27}, byrefReg
             ; gcrRegs -[x0]
             ldr     w1, [x23, #0x08]
             cmp     w0, w1
-            bne     G_M37807_IG30
-                       ;; size=56 bbWeight=0.49 PerfScore 10.22
-G_M37807_IG26:        ; bbWeight=0.24, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            bne     G_M37807_IG31
+                       ;; size=48 bbWeight=0.49 PerfScore 10.46
+G_M37807_IG26:        ; bbWeight=0.24, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.24 PerfScore 0.61
-G_M37807_IG27:        ; bbWeight=1.41, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+                       ;; size=8 bbWeight=0.24 PerfScore 0.36
+G_M37807_IG27:        ; bbWeight=1.41, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     x0, fp, #24    // [V10 loc4]
-            mov     x2, x27
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x2]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -357,41 +358,45 @@ G_M37807_IG27:        ; bbWeight=1.41, gcrefRegs=8A00000 {x21 x23 x27}, byrefReg
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
             ldr     x3, [x3]
+            ; GC ptr vars -{V12}
             blr     x3
-            ; gcrRegs -[x2 x27]
+            ; gcrRegs -[x2]
             ; gcr arg pop 0
-                       ;; size=56 bbWeight=1.41 PerfScore 14.80
+                       ;; size=48 bbWeight=1.41 PerfScore 15.50
 G_M37807_IG28:        ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
...

-28 (-2.48%) : 261446.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)

@@ -9,57 +9,58 @@
 ; 4 inlinees with PGO data; 11 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  4,  4   )     ref  ->  x21         this class-hnd single-def <System.RuntimeType>
+;  V00 this         [V00,T06] (  4,  4   )     ref  ->  x21         this class-hnd single-def <System.RuntimeType>
 ;  V01 RetBuf       [V01,T00] (  6,  6   )   byref  ->  x19         single-def
-;  V02 arg1         [V02,T07] ( 14,  3   )     ref  ->  x23         ld-addr-op class-hnd <System.String>
+;  V02 arg1         [V02,T08] ( 14,  3   )     ref  ->  x23         ld-addr-op class-hnd <System.String>
 ;  V03 arg2         [V03,T01] (  6,  5.54)     int  ->  x20        
-;  V04 arg3         [V04,T06] (  4,  3.90)     ref  ->  x22         class-hnd single-def <System.Type[]>
-;  V05 arg4         [V05,T15] (  3,  2   )   ubyte  ->  x24         single-def
-;  V06 loc0         [V06,T20] (  3,  2.41)   ubyte  ->  x25         ld-addr-op
-;  V07 loc1         [V07,T23] (  3,  1   )   ubyte  ->  x26         ld-addr-op
-;  V08 loc2         [V08,T12] (  7,  4   )     int  ->  x27         ld-addr-op
-;  V09 loc3         [V09,T19] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
+;  V04 arg3         [V04,T07] (  4,  3.90)     ref  ->  x22         class-hnd single-def <System.Type[]>
+;  V05 arg4         [V05,T16] (  3,  2   )   ubyte  ->  x24         single-def
+;  V06 loc0         [V06,T21] (  3,  2.41)   ubyte  ->  x25         ld-addr-op
+;  V07 loc1         [V07,T24] (  3,  1   )   ubyte  ->  x26         ld-addr-op
+;  V08 loc2         [V08,T13] (  7,  4   )     int  ->  x27         ld-addr-op
+;  V09 loc3         [V09,T20] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
 ;  V10 loc4         [V10    ] (  9,  9.41)  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]>
 ;  V11 loc5         [V11,T02] (  5,  7.18)     int  ->  x21        
-;  V12 loc6         [V12,T03] (  7,  5.96)     ref  ->  x27         class-hnd exact <System.Reflection.RuntimePropertyInfo>
+;  V12 loc6         [V12,T04] (  7,  5.96)     ref  ->  [fp+0x10]  class-hnd exact spill-single-def <System.Reflection.RuntimePropertyInfo>
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V16 tmp3         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
-;  V18 tmp5         [V18,T13] (  5,  4   )     ref  ->  x28         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
-;  V19 tmp6         [V19,T09] (  4,  4   )     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <System.Object>
-;* V20 tmp7         [V20,T18] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
+;  V18 tmp5         [V18,T14] (  5,  4   )     ref  ->  x28         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
+;  V19 tmp6         [V19,T10] (  4,  4   )     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;* V20 tmp7         [V20,T19] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
 ;* V21 tmp8         [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.RuntimeType+RuntimeTypeCache>
 ;* V22 tmp9         [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp10        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp11        [V24    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp12        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V26 tmp13        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V27 tmp14        [V27,T14] (  4,  4   )   byref  ->  x21         single-def "Inlining Arg"
+;  V27 tmp14        [V27,T15] (  4,  4   )   byref  ->  x21         single-def "Inlining Arg"
 ;* V28 tmp15        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V29 tmp16        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
-;  V30 tmp17        [V30,T08] ( 14,  5   )     ref  ->  registers   class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V31 tmp18        [V31,T25] (  4,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V30 tmp17        [V30,T09] ( 14,  5   )     ref  ->  registers   class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V31 tmp18        [V31,T26] (  4,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V32 tmp19        [V32    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V33 tmp20        [V33,T22] (  5,  2   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V34 tmp21        [V34,T28] (  2,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
-;  V35 tmp22        [V35,T26] (  4,  0   )     ref  ->   x0        
-;  V36 tmp23        [V36,T29] (  2,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
-;  V37 tmp24        [V37,T27] (  4,  0   )     ref  ->   x0        
+;  V33 tmp20        [V33,T23] (  5,  2   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
+;  V34 tmp21        [V34,T29] (  2,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
+;  V35 tmp22        [V35,T27] (  4,  0   )     ref  ->   x0        
+;  V36 tmp23        [V36,T30] (  2,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
+;  V37 tmp24        [V37,T28] (  4,  0   )     ref  ->   x0        
 ;* V38 tmp25        [V38    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V39 tmp26        [V39    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V40 tmp27        [V40,T16] (  2,  4   )     int  ->   x1         "Inlining Arg"
+;  V40 tmp27        [V40,T17] (  2,  4   )     int  ->   x1         "Inlining Arg"
 ;  V41 tmp28        [V41    ] (  3,  3.41)     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V10._items (fldOffset=0x0)" P-DEP
 ;  V42 tmp29        [V42    ] (  3,  3.41)     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V10._item (fldOffset=0x8)" P-DEP
 ;  V43 tmp30        [V43    ] (  3,  3.41)     int  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V10._count (fldOffset=0x10)" P-DEP
 ;  V44 tmp31        [V44    ] (  3,  3.41)     int  ->  [fp+0x2C]  do-not-enreg[X] addr-exposed "field V10._capacity (fldOffset=0x14)" P-DEP
-;* V45 tmp32        [V45,T24] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V46 cse0         [V46,T10] (  3,  4.63)     int  ->   x0         "CSE - moderate"
-;  V47 cse1         [V47,T17] (  3,  3   )    long  ->   x0         "CSE - moderate"
-;  V48 cse2         [V48,T11] (  4,  4.54)     int  ->  x24         "CSE - aggressive"
-;  V49 cse3         [V49,T04] (  6,  6   )     ref  ->   x1         multi-def "CSE - aggressive"
-;  V50 cse4         [V50,T21] (  2,  2.15)   byref  ->  x28         hoist "CSE - moderate"
+;* V45 tmp32        [V45,T25] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V46 cse0         [V46,T11] (  3,  4.63)     int  ->   x0         "CSE - moderate"
+;  V47 cse1         [V47,T18] (  3,  3   )    long  ->   x0         "CSE - moderate"
+;  V48 cse2         [V48,T03] ( 10,  6.53)    long  ->  x27         hoist multi-def "CSE - aggressive"
+;  V49 cse3         [V49,T12] (  4,  4.54)     int  ->  x24         "CSE - moderate"
+;  V50 cse4         [V50,T05] (  6,  6   )     ref  ->   x1         multi-def "CSE - aggressive"
+;  V51 cse5         [V51,T22] (  2,  2.15)   byref  ->  x28         hoist "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -272,8 +273,8 @@ G_M37807_IG14:        ; bbWeight=0, gcrefRegs=1C00000 {x22 x23 x24}, byrefRegs=8
             ; gcrRegs -[x2] +[x0]
             ; byrRegs -[x0]
             ; gcr arg pop 0
-            cbnz    x0, G_M37807_IG38
-            b       G_M37807_IG37
+            cbnz    x0, G_M37807_IG39
+            b       G_M37807_IG38
                        ;; size=48 bbWeight=0 PerfScore 0.00
 G_M37807_IG15:        ; bbWeight=1, gcrefRegs=1C00000 {x22 x23 x24}, byrefRegs=80000 {x19}, byref, isz
             ; gcrRegs -[x0]
@@ -331,7 +332,7 @@ G_M37807_IG18:        ; bbWeight=1, gcrefRegs=1C00000 {x22 x23 x24}, byrefRegs=8
                        ;; size=40 bbWeight=1 PerfScore 8.50
 G_M37807_IG19:        ; bbWeight=1, gcrefRegs=1C00000 {x22 x23 x24}, byrefRegs=80000 {x19}, byref, isz
             ldapurb w0, [x24, #0x18]
-            cbnz    w0, G_M37807_IG32
+            cbnz    w0, G_M37807_IG33
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M37807_IG20:        ; bbWeight=0, gcrefRegs=1C00000 {x22 x23 x24}, byrefRegs=80000 {x19}, byref
             mov     x0, x24
@@ -355,30 +356,36 @@ G_M37807_IG21:        ; bbWeight=1, gcrefRegs=C00001 {x0 x22 x23}, byrefRegs=800
             stp     wzr, w1, [fp, #0x28]   // [V43 tmp30], [V44 tmp31]
             mov     w21, wzr
             cmp     w24, #0
-            ble     G_M37807_IG33
+            ble     G_M37807_IG34
                        ;; size=32 bbWeight=1 PerfScore 8.00
 G_M37807_IG22:        ; bbWeight=0.61, gcrefRegs=C00001 {x0 x22 x23}, byrefRegs=80000 {x19}, byref
             add     x28, x0, #16
             ; byrRegs +[x28]
-                       ;; size=4 bbWeight=0.61 PerfScore 0.30
+            movz    x27, #0xD1FFAB1E
+            movk    x27, #0xD1FFAB1E LSL #16
+            movk    x27, #1 LSL #32
+                       ;; size=16 bbWeight=0.61 PerfScore 1.21
 G_M37807_IG23:        ; bbWeight=1.54, gcrefRegs=C00000 {x22 x23}, byrefRegs=10080000 {x19 x28}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x27, [x28, w21, UXTW #3]
-            ; gcrRegs +[x27]
-            ldr     w0, [x27, #0x58]
+            ldr     x2, [x28, w21, UXTW #3]
+            ; gcrRegs +[x2]
+            str     x2, [fp, #0x10]    // [V12 loc6]
+            ; GC ptr vars +{V12}
+            ldr     w0, [x2, #0x58]
             and     w1, w20, w0
             cmp     w1, w0
             bne     G_M37807_IG30
-                       ;; size=20 bbWeight=1.54 PerfScore 12.35
-G_M37807_IG24:        ; bbWeight=1.41, gcrefRegs=8C00000 {x22 x23 x27}, byrefRegs=10080000 {x19 x28}, byref, isz
+                       ;; size=24 bbWeight=1.54 PerfScore 13.90
+G_M37807_IG24:        ; bbWeight=1.41, gcVars=0000000000000010 {V12}, gcrefRegs=C00004 {x2 x22 x23}, byrefRegs=10080000 {x19 x28}, gcvars, byref, isz
             cbz     w25, G_M37807_IG26
                        ;; size=4 bbWeight=1.41 PerfScore 1.41
-G_M37807_IG25:        ; bbWeight=0, gcrefRegs=8C00000 {x22 x23 x27}, byrefRegs=10080000 {x19 x28}, byref, isz
-            mov     x0, x27
+G_M37807_IG25:        ; bbWeight=0, gcrefRegs=C00004 {x2 x22 x23}, byrefRegs=10080000 {x19 x28}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
             mov     x1, x23
             ; gcrRegs +[x1]
             mov     w2, w26
+            ; gcrRegs -[x2]
             movz    x3, #0xD1FFAB1E      // code for System.RuntimeType:FilterApplyPrefixLookup(System.Reflection.MemberInfo,System.String,ubyte):ubyte
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
@@ -386,28 +393,26 @@ G_M37807_IG25:        ; bbWeight=0, gcrefRegs=8C00000 {x22 x23 x27}, byrefRegs=1
             blr     x3
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbz     w0, G_M37807_IG36
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            cbz     w0, G_M37807_IG37
+            mov     x0, x27
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=52 bbWeight=0 PerfScore 0.00
-G_M37807_IG26:        ; bbWeight=1.41, gcrefRegs=8C00000 {x22 x23 x27}, byrefRegs=10080000 {x19 x28}, byref, isz
-            cbz     x22, G_M37807_IG29
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
+            ; gcrRegs +[x2]
+                       ;; size=48 bbWeight=0 PerfScore 0.00
+G_M37807_IG26:        ; bbWeight=1.41, gcrefRegs=C00004 {x2 x22 x23}, byrefRegs=10080000 {x19 x28}, byref, isz
+            cbz     x22, G_M37807_IG32
                        ;; size=4 bbWeight=1.41 PerfScore 1.41
-G_M37807_IG27:        ; bbWeight=0.49, gcrefRegs=8C00000 {x22 x23 x27}, byrefRegs=10080000 {x19 x28}, byref, isz
-            mov     x0, x27
+G_M37807_IG27:        ; bbWeight=0.49, gcrefRegs=C00004 {x2 x22 x23}, byrefRegs=10080000 {x19 x28}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #1 LSL #32
+            add     x1, x27, #8
             bl      CORINFO_HELP_CLASSPROFILE32
-            ; gcrRegs -[x0]
+            ; gcrRegs -[x0 x2]
             ; gcr arg pop 0
-            mov     x0, x27
+            ldr     x0, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x0]
-            ldr     x1, [x27]
+            ldr     x1, [x0]
             ldr     x1, [x1, #0x58]
             ldr     x1, [x1, #0x18]
             blr     x1
@@ -416,23 +421,19 @@ G_M37807_IG27:        ; bbWeight=0.49, gcrefRegs=8C00000 {x22 x23 x27}, byrefReg
             ; gcrRegs -[x0]
             ldr     w1, [x22, #0x08]
             cmp     w0, w1
-            bne     G_M37807_IG35
-                       ;; size=56 bbWeight=0.49 PerfScore 10.22
-G_M37807_IG28:        ; bbWeight=0.24, gcrefRegs=8C00000 {x22 x23 x27}, byrefRegs=10080000 {x19 x28}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            bne     G_M37807_IG36
+                       ;; size=48 bbWeight=0.49 PerfScore 10.46
+G_M37807_IG28:        ; bbWeight=0.24, gcrefRegs=C00000 {x22 x23}, byrefRegs=10080000 {x19 x28}, byref
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.24 PerfScore 0.61
-G_M37807_IG29:        ; bbWeight=1.41, gcrefRegs=8C00000 {x22 x23 x27}, byrefRegs=10080000 {x19 x28}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+                       ;; size=8 bbWeight=0.24 PerfScore 0.36
+G_M37807_IG29:        ; bbWeight=1.41, gcrefRegs=C00000 {x22 x23}, byrefRegs=10080000 {x19 x28}, byref
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     x0, fp, #24    // [V10 loc4]
-            mov     x2, x27
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x2]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -441,36 +442,44 @@ G_M37807_IG29:        ; bbWeight=1.41, gcrefRegs=8C00000 {x22 x23 x27}, byrefReg
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
             ldr     x3, [x3]
+            ; GC ptr vars -{V12}
             blr     x3
-            ; gcrRegs -[x2 x27]
+            ; gcrRegs -[x2]
             ; gcr arg pop 0
-                       ;; size=56 bbWeight=1.41 PerfScore 14.80
+                       ;; size=48 bbWeight=1.41 PerfScore 15.50
 G_M37807_IG30:        ; bbWeight=1.54, gcrefRegs=C00000 {x22 x23}, byrefRegs=10080000 {x19 x28}, byref, isz
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     w21, w21, #1
             cmp     w24, w21
             bgt     G_M37807_IG23
-                       ;; size=28 bbWeight=1.54 PerfScore 6.95
+                       ;; size=20 bbWeight=1.54 PerfScore 5.41
 G_M37807_IG31:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
...

-4 (-0.18%) : 228637.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Instrumented Tier1)

@@ -10,27 +10,27 @@
 ;
 ;  V00 this         [V00,T16] ( 11, 32.50)     ref  ->  [fp+0x30]  this class-hnd EH-live single-def <System.Buffers.SharedArrayPool`1[System.__Canon]>
 ;  V01 loc0         [V01,T18] (  5, 33.50)     int  ->  x19        
-;  V02 loc1         [V02,T38] (  5, 19   )     int  ->  x20        
+;  V02 loc1         [V02,T37] (  5, 19   )     int  ->  x20        
 ;  V03 loc2         [V03,T28] (  7, 27   )     ref  ->  x21         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V04 loc3         [V04,T52] (  4, 10   )     ref  ->  x22         class-hnd exact single-def <<unknown class>>
-;  V05 loc4         [V05,T37] (  6, 19   )     int  ->  x23        
-;  V06 loc5         [V06,T46] (  8, 10.50)     ref  ->  [fp+0x28]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V04 loc3         [V04,T51] (  4, 10   )     ref  ->  x22         class-hnd exact single-def <<unknown class>>
+;  V05 loc4         [V05,T36] (  6, 19   )     int  ->  x23        
+;  V06 loc5         [V06,T45] (  8, 10.50)     ref  ->  [fp+0x28]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V07 loc6         [V07    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V08 loc7         [V08,T47] (  8, 10.50)     ref  ->  [fp+0x20]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V08 loc7         [V08,T46] (  8, 10.50)     ref  ->  [fp+0x20]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V09 loc8         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V10 loc9         [V10,T32] (  3, 20   )     ref  ->  x23         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V10 loc9         [V10,T31] (  3, 20   )     ref  ->  x23         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V11 loc10        [V11,T05] (  5, 66   )     int  ->  x19        
 ;  V12 loc11        [V12,T03] (  6, 64   )     ref  ->  x26         class-hnd <<unknown class>>
-;  V13 loc12        [V13,T55] (  2,  8.50)     int  ->  x23        
-;  V14 loc13        [V14,T79] (  3,  1.50)     int  ->  x23        
-;  V15 loc14        [V15,T48] (  8, 10.50)     ref  ->  [fp+0x18]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V13 loc12        [V13,T54] (  2,  8.50)     int  ->  x23        
+;  V14 loc13        [V14,T78] (  3,  1.50)     int  ->  x23        
+;  V15 loc14        [V15,T47] (  8, 10.50)     ref  ->  [fp+0x18]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V16 loc15        [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V17 loc16        [V17,T13] (  5, 36   )     ref  ->  x24         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V17 loc16        [V17,T12] (  6, 44   )     ref  ->  x24         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V18 loc17        [V18,T00] (  5,210   )     int  ->  x26        
-;  V19 loc18        [V19,T30] (  3, 24   )     int  ->   x2        
+;  V19 loc18        [V19,T29] (  3, 24   )     int  ->   x1        
 ;  V20 loc19        [V20,T09] (  6, 48   )     ref  ->  x28         class-hnd <<unknown class>>
 ;# V21 OutArgs      [V21    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V22 tmp1         [V22,T33] (  3, 20   )     ref  ->  x24         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V22 tmp1         [V22,T32] (  3, 20   )     ref  ->  x24         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
 ;* V23 tmp2         [V23    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V24 tmp3         [V24,T14] (  2, 36   )     int  ->  x25         "impAppendStmt"
 ;* V25 tmp4         [V25    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
@@ -42,85 +42,84 @@
 ;  V31 tmp10        [V31,T23] (  2, 32   )     int  ->  x27         "impAppendStmt"
 ;  V32 tmp11        [V32,T24] (  2, 32   )     int  ->  x26         "impAppendStmt"
 ;* V33 tmp12        [V33    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V34 tmp13        [V34,T67] (  3,  3   )     ref  ->  x21         single-def "handle histogram profile tmp"
+;  V34 tmp13        [V34,T66] (  3,  3   )     ref  ->  x21         single-def "handle histogram profile tmp"
 ;* V35 tmp14        [V35    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V36 tmp15        [V36    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V37 tmp16        [V37    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V38 tmp17        [V38,T68] (  3,  3   )     ref  ->  x20         single-def "handle histogram profile tmp"
+;  V38 tmp17        [V38,T67] (  3,  3   )     ref  ->  x20         single-def "handle histogram profile tmp"
 ;* V39 tmp18        [V39    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V40 tmp19        [V40    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V41 tmp20        [V41    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V42 tmp21        [V42    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V43 tmp22        [V43,T69] (  3,  3   )     ref  ->  x24         single-def "handle histogram profile tmp"
+;  V43 tmp22        [V43,T68] (  3,  3   )     ref  ->  x24         single-def "handle histogram profile tmp"
 ;* V44 tmp23        [V44    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V45 tmp24        [V45    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V46 tmp25        [V46    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V47 tmp26        [V47    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V48 tmp27        [V48,T34] (  3, 20   )     int  ->  x26         "Inline stloc first use temp"
+;  V48 tmp27        [V48,T33] (  3, 20   )     int  ->  x26         "Inline stloc first use temp"
 ;* V49 tmp28        [V49    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V50 tmp29        [V50    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V51 tmp30        [V51,T63] (  3,  6   )     ref  ->   x0         class-hnd exact "Inline stloc first use temp" <<unknown class>>
+;  V51 tmp30        [V51,T62] (  3,  6   )     ref  ->   x0         class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;  V52 tmp31        [V52,T06] (  5, 66   )     int  ->  x24         "Inline stloc first use temp"
 ;  V53 tmp32        [V53,T25] (  2, 32   )     int  ->   x4         "Inlining Arg"
 ;  V54 tmp33        [V54,T26] (  2, 32   )     int  ->   x4         "Inlining Arg"
-;  V55 tmp34        [V55,T64] (  2,  4   )     ref  ->   x0         "field V07.key (fldOffset=0x0)" P-INDEP
-;  V56 tmp35        [V56,T76] (  1,  2   )     ref  ->   x1         "field V07.value (fldOffset=0x8)" P-INDEP
-;  V57 tmp36        [V57,T65] (  2,  4   )     ref  ->  x23         "field V09.key (fldOffset=0x0)" P-INDEP
-;  V58 tmp37        [V58,T77] (  1,  2   )     ref  ->   x1         "field V09.value (fldOffset=0x8)" P-INDEP
-;  V59 tmp38        [V59,T66] (  2,  4   )     ref  ->  x24         "field V16.key (fldOffset=0x0)" P-INDEP
-;  V60 tmp39        [V60,T78] (  1,  2   )     ref  ->   x1         "field V16.value (fldOffset=0x8)" P-INDEP
+;  V55 tmp34        [V55,T63] (  2,  4   )     ref  ->   x0         "field V07.key (fldOffset=0x0)" P-INDEP
+;  V56 tmp35        [V56,T75] (  1,  2   )     ref  ->   x1         "field V07.value (fldOffset=0x8)" P-INDEP
+;  V57 tmp36        [V57,T64] (  2,  4   )     ref  ->  x23         "field V09.key (fldOffset=0x0)" P-INDEP
+;  V58 tmp37        [V58,T76] (  1,  2   )     ref  ->   x1         "field V09.value (fldOffset=0x8)" P-INDEP
+;  V59 tmp38        [V59,T65] (  2,  4   )     ref  ->  x24         "field V16.key (fldOffset=0x0)" P-INDEP
+;  V60 tmp39        [V60,T77] (  1,  2   )     ref  ->   x1         "field V16.value (fldOffset=0x8)" P-INDEP
 ;* V61 tmp40        [V61    ] (  0,  0   )     ref  ->  zero-ref    "field V25.key (fldOffset=0x0)" P-DEP
 ;* V62 tmp41        [V62    ] (  0,  0   )     ref  ->  zero-ref    "field V25.value (fldOffset=0x8)" P-DEP
 ;* V63 tmp42        [V63    ] (  0,  0   )     ref  ->  zero-ref    "field V29.key (fldOffset=0x0)" P-DEP
 ;* V64 tmp43        [V64    ] (  0,  0   )     ref  ->  zero-ref    "field V29.value (fldOffset=0x8)" P-DEP
 ;* V65 tmp44        [V65    ] (  0,  0   )     ref  ->  zero-ref    "field V33.key (fldOffset=0x0)" P-DEP
 ;* V66 tmp45        [V66    ] (  0,  0   )     ref  ->  zero-ref    "field V33.value (fldOffset=0x8)" P-DEP
-;  V67 tmp46        [V67,T70] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V68 tmp47        [V68,T40] (  2, 16   )     ref  ->  x11         "argument with side effect"
-;  V69 tmp48        [V69,T60] (  2,  8   )     ref  ->   x0         "argument with side effect"
+;  V67 tmp46        [V67,T69] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V68 tmp47        [V68,T39] (  2, 16   )     ref  ->  x11         "argument with side effect"
+;  V69 tmp48        [V69,T59] (  2,  8   )     ref  ->   x0         "argument with side effect"
 ;  V70 tmp49        [V70,T27] (  2, 32   )    long  ->   x1         "argument with side effect"
 ;  V71 tmp50        [V71,T20] (  2, 32   )     ref  ->   x2         "argument with side effect"
-;* V72 tmp51        [V72,T43] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V73 tmp52        [V73,T81] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V74 tmp53        [V74,T71] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V75 tmp54        [V75,T72] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V76 tmp55        [V76,T41] (  2, 16   )     ref  ->  x11         "argument with side effect"
-;  V77 tmp56        [V77,T61] (  2,  8   )     ref  ->   x0         "argument with side effect"
+;* V72 tmp51        [V72,T42] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V73 tmp52        [V73,T80] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V74 tmp53        [V74,T70] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V75 tmp54        [V75,T71] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V76 tmp55        [V76,T40] (  2, 16   )     ref  ->  x11         "argument with side effect"
+;  V77 tmp56        [V77,T60] (  2,  8   )     ref  ->   x0         "argument with side effect"
 ;  V78 tmp57        [V78,T08] (  2, 64   )    long  ->   x1         "argument with side effect"
 ;  V79 tmp58        [V79,T07] (  2, 64   )     ref  ->   x2         "argument with side effect"
-;* V80 tmp59        [V80,T44] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V81 tmp60        [V81,T82] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V82 tmp61        [V82,T73] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V83 tmp62        [V83,T74] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V84 tmp63        [V84,T42] (  2, 16   )     ref  ->  x11         "argument with side effect"
-;  V85 tmp64        [V85,T62] (  2,  8   )     ref  ->   x0         "argument with side effect"
-;  V86 tmp65        [V86,T83] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V87 tmp66        [V87,T75] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V88 PSPSym       [V88,T80] (  1,  1   )    long  ->  [fp+0x48]  do-not-enreg[V] "PSPSym"
+;* V80 tmp59        [V80,T43] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V81 tmp60        [V81,T81] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V82 tmp61        [V82,T72] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V83 tmp62        [V83,T73] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V84 tmp63        [V84,T41] (  2, 16   )     ref  ->  x11         "argument with side effect"
+;  V85 tmp64        [V85,T61] (  2,  8   )     ref  ->   x0         "argument with side effect"
+;  V86 tmp65        [V86,T82] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V87 tmp66        [V87,T74] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V88 PSPSym       [V88,T79] (  1,  1   )    long  ->  [fp+0x48]  do-not-enreg[V] "PSPSym"
 ;  V89 cse0         [V89,T17] (  4, 34   )    long  ->  registers   hoist multi-def "CSE - aggressive"
-;  V90 cse1         [V90,T56] (  4,  8   )     ref  ->  x22         multi-def "CSE - moderate"
-;  V91 cse2         [V91,T49] (  6, 10.50)     ref  ->  x22         multi-def "CSE - moderate"
-;  V92 cse3         [V92,T57] (  4,  8   )     ref  ->  x23         multi-def "CSE - moderate"
-;  V93 cse4         [V93,T50] (  6, 10.50)     ref  ->  x23         multi-def "CSE - moderate"
-;  V94 cse5         [V94,T58] (  4,  8   )     ref  ->  x24         multi-def "CSE - moderate"
-;  V95 cse6         [V95,T51] (  6, 10.50)     ref  ->  x24         multi-def "CSE - moderate"
-;  V96 cse7         [V96,T29] (  3, 24   )   byref  ->  [fp+0x10]  spill-single-def "CSE - moderate"
-;  V97 cse8         [V97,T10] (  4, 48   )    long  ->  x28         "CSE - aggressive"
-;  V98 cse9         [V98,T04] (  3, 68   )     int  ->  x27         "CSE - aggressive"
-;  V99 cse10        [V99,T01] ( 18,100.50)    long  ->  x22         hoist multi-def "CSE - aggressive"
-;  V100 cse11       [V100,T02] ( 44, 93.50)    long  ->  registers   multi-def "CSE - aggressive"
-;  V101 cse12       [V101,T31] ( 21, 22.50)    long  ->  registers   multi-def "CSE - moderate"
-;  V102 cse13       [V102,T39] (  2, 18   )   byref  ->  x28         hoist "CSE - moderate"
-;  V103 cse14       [V103,T35] (  3, 20   )     int  ->  x27         "CSE - moderate"
-;  V104 cse15       [V104,T36] (  3, 20   )     int  ->  x22         "CSE - moderate"
-;  V105 rat0        [V105,T53] (  3,  9.44)    long  ->   x1         "Spilling to split statement for tree"
-;  V106 rat1        [V106,T59] (  3,  8   )    long  ->  x24         "runtime lookup"
-;  V107 rat2        [V107,T45] (  3, 11.20)    long  ->   x2         "spilling expr"
-;  V108 rat3        [V108,T54] (  3,  8.96)    long  ->  x24         "fgMakeTemp is creating a new local variable"
-;  V109 rat4        [V109,T12] (  3, 37.76)    long  ->   x1         "Spilling to split statement for tree"
-;  V110 rat5        [V110,T19] (  3, 32   )    long  ->  registers   "runtime lookup"
-;  V111 rat6        [V111,T11] (  3, 44.80)    long  ->   x2         "spilling expr"
-;  V112 rat7        [V112,T15] (  3, 35.84)    long  ->   x2         "fgMakeTemp is creating a new local variable"
+;  V90 cse1         [V90,T55] (  4,  8   )     ref  ->  x22         multi-def "CSE - moderate"
+;  V91 cse2         [V91,T48] (  6, 10.50)     ref  ->  x22         multi-def "CSE - moderate"
+;  V92 cse3         [V92,T56] (  4,  8   )     ref  ->  x23         multi-def "CSE - moderate"
+;  V93 cse4         [V93,T49] (  6, 10.50)     ref  ->  x23         multi-def "CSE - moderate"
+;  V94 cse5         [V94,T57] (  4,  8   )     ref  ->  x24         multi-def "CSE - moderate"
+;  V95 cse6         [V95,T50] (  6, 10.50)     ref  ->  x24         multi-def "CSE - moderate"
+;  V96 cse7         [V96,T10] (  5, 56   )    long  ->  x28         "CSE - aggressive"
+;  V97 cse8         [V97,T01] ( 18,100.50)    long  ->  x22         hoist multi-def "CSE - aggressive"
+;  V98 cse9         [V98,T02] ( 44, 93.50)    long  ->  registers   multi-def "CSE - aggressive"
+;  V99 cse10        [V99,T04] (  3, 68   )     int  ->  x27         "CSE - aggressive"
+;  V100 cse11       [V100,T30] ( 21, 22.50)    long  ->  registers   multi-def "CSE - moderate"
+;  V101 cse12       [V101,T38] (  2, 18   )   byref  ->  x28         hoist "CSE - moderate"
+;  V102 cse13       [V102,T34] (  3, 20   )     int  ->  x27         "CSE - moderate"
+;  V103 cse14       [V103,T35] (  3, 20   )     int  ->  x22         "CSE - moderate"
+;  V104 rat0        [V104,T52] (  3,  9.44)    long  ->   x1         "Spilling to split statement for tree"
+;  V105 rat1        [V105,T58] (  3,  8   )    long  ->  x24         "runtime lookup"
+;  V106 rat2        [V106,T44] (  3, 11.20)    long  ->   x2         "spilling expr"
+;  V107 rat3        [V107,T53] (  3,  8.96)    long  ->  x24         "fgMakeTemp is creating a new local variable"
+;  V108 rat4        [V108,T13] (  3, 37.76)    long  ->   x1         "Spilling to split statement for tree"
+;  V109 rat5        [V109,T19] (  3, 32   )    long  ->  registers   "runtime lookup"
+;  V110 rat6        [V110,T11] (  3, 44.80)    long  ->   x2         "spilling expr"
+;  V111 rat7        [V111,T15] (  3, 35.84)    long  ->   x2         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 64
 
@@ -301,7 +300,7 @@ G_M16529_IG11:        ; bbWeight=0.50, gcrefRegs=200000 {x21}, byrefRegs=0000 {}
             str     x0, [fp, #0x28]    // [V06 loc5]
             ; GC ptr vars +{V06}
                        ;; size=72 bbWeight=0.50 PerfScore 10.00
-G_M16529_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000400000010000 {V00 V06}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M16529_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000200000010000 {V00 V06}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
             b       G_M16529_IG14
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M16529_IG13:        ; bbWeight=2, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
@@ -403,7 +402,7 @@ G_M16529_IG16:        ; bbWeight=0.50, gcrefRegs=200000 {x21}, byrefRegs=0000 {}
             str     x0, [fp, #0x20]    // [V08 loc7]
             ; GC ptr vars +{V08}
                        ;; size=64 bbWeight=0.50 PerfScore 8.00
-G_M16529_IG17:        ; bbWeight=0.50, gcVars=00000000000000000000800000010000 {V00 V08}, gcrefRegs=200001 {x0 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M16529_IG17:        ; bbWeight=0.50, gcVars=00000000000000000000400000010000 {V00 V08}, gcrefRegs=200001 {x0 x21}, byrefRegs=0000 {}, gcvars, byref
             b       G_M16529_IG24
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M16529_IG18:        ; bbWeight=2, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
@@ -622,7 +621,7 @@ G_M16529_IG30:        ; bbWeight=0.50, gcrefRegs=200000 {x21}, byrefRegs=0000 {}
             str     x0, [fp, #0x18]    // [V15 loc14]
             ; GC ptr vars +{V15}
                        ;; size=64 bbWeight=0.50 PerfScore 8.00
-G_M16529_IG31:        ; bbWeight=0.50, gcVars=00000000000000000001000000010000 {V00 V15}, gcrefRegs=200001 {x0 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M16529_IG31:        ; bbWeight=0.50, gcVars=00000000000000000000800000010000 {V00 V15}, gcrefRegs=200001 {x0 x21}, byrefRegs=0000 {}, gcvars, byref
             movz    x22, #0xD1FFAB1E
             movk    x22, #0xD1FFAB1E LSL #16
             movk    x22, #1 LSL #32
@@ -660,23 +659,20 @@ G_M16529_IG33:        ; bbWeight=16, gcrefRegs=1200000 {x21 x24}, byrefRegs=0000
                        ;; size=16 bbWeight=16 PerfScore 88.00
 G_M16529_IG34:        ; bbWeight=8, gcrefRegs=1200000 {x21 x24}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
-            add     x1, x24, x28
-            ; byrRegs +[x1]
-            str     x1, [fp, #0x10]    // [V96 cse7]
-            ; GC ptr vars +{V96}
-            ldr     w2, [x1, #0x08]
-            cbnz    w2, G_M16529_IG39
+            add     x0, x24, x28
+            ; byrRegs +[x0]
+            ldr     w1, [x0, #0x08]
+            cbnz    w1, G_M16529_IG39
             add     x0, x25, #0xD1FFAB1E
+            ; byrRegs -[x0]
             bl      CORINFO_HELP_COUNTPROFILE32
-            ; byrRegs -[x1]
             ; gcr arg pop 0
-            ldr     x28, [fp, #0x10]   // [V96 cse7]
-            ; byrRegs +[x28]
-            str     w19, [x28, #0x08]
-                       ;; size=32 bbWeight=8 PerfScore 80.00
-G_M16529_IG35:        ; bbWeight=64, gcVars=00000000000000000001000000010000 {V00 V15}, gcrefRegs=1200000 {x21 x24}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; byrRegs -[x28]
-            ; GC ptr vars -{V96}
+            add     x0, x24, x28
+            ; byrRegs +[x0]
+            str     w19, [x0, #0x08]
+                       ;; size=28 bbWeight=8 PerfScore 60.00
+G_M16529_IG35:        ; bbWeight=64, gcrefRegs=1200000 {x21 x24}, byrefRegs=0000 {}, byref, isz
+            ; byrRegs -[x0]
             sub     x0, x22, #8
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
@@ -721,7 +717,7 @@ G_M16529_IG38:        ; bbWeight=0.50, gcrefRegs=1000000 {x24}, byrefRegs=0000 {
                        ;; size=12 bbWeight=0.50 PerfScore 1.25
 G_M16529_IG39:        ; bbWeight=8, gcrefRegs=1200000 {x21 x24}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x21]
-            sub     w0, w19, w2
+            sub     w0, w19, w1
             sxtw    x0, w0
             mov     w1, w23
             cmp     x0, x1
@@ -871,7 +867,7 @@ G_M16529_IG49:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0xA0
...

+8 (+0.36%) : 519391.dasm - JitTestarray1refany_il.Test:Main():int (FullOpts)

@@ -9,93 +9,93 @@
 ; Final local variable assignments
 ;
 ;  V00 loc0         [V00    ] (  4, 10   )     ref  ->  [fp+0xF8]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Array>
-;  V01 loc1         [V01,T07] (  6, 21   )     int  ->  x20        
+;  V01 loc1         [V01,T06] (  6, 21   )     int  ->  x20        
 ;  V02 loc2         [V02    ] (  8,  4   )     ref  ->  [fp+0xF0]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <<unknown class>>
 ;  V03 loc3         [V03    ] ( 38, 13   )     ref  ->  [fp+0xE8]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <ulong[,]>
-;* V04 loc4         [V04,T59] (  0,  0   )     int  ->  zero-ref   
-;* V05 loc5         [V05,T50] (  0,  0   )     int  ->  zero-ref   
-;  V06 loc6         [V06    ] (  4, 33   )     ref  ->  [fp+0xE0]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <<unknown class>>
-;  V07 loc7         [V07,T02] (  7, 72.50)     int  ->   x0        
-;  V08 loc8         [V08,T00] (  7,100   )     int  ->   x1        
-;  V09 loc9         [V09,T31] (  4,  2   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
-;  V10 loc10        [V10,T17] ( 12,  6   )     ref  ->   x0         class-hnd single-def <ulong[,]>
-;  V11 loc11        [V11,T32] (  4,  2   )     ref  ->  x19         class-hnd exact single-def <<unknown class>>
-;  V12 loc12        [V12,T25] (  8,  4   )     ref  ->   x0         class-hnd <<unknown class>>
+;* V04 loc4         [V04,T58] (  0,  0   )     int  ->  zero-ref   
+;* V05 loc5         [V05,T49] (  0,  0   )     int  ->  zero-ref   
+;  V06 loc6         [V06    ] (  5,  7   )     ref  ->  [fp+0xE0]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <<unknown class>>
+;* V07 loc7         [V07,T59] (  0,  0   )     int  ->  zero-ref   
+;  V08 loc8         [V08,T02] ( 14, 26.50)     int  ->   x0        
+;  V09 loc9         [V09,T30] (  4,  2   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V10 loc10        [V10,T15] ( 12,  6   )     ref  ->   x0         class-hnd single-def <ulong[,]>
+;  V11 loc11        [V11,T31] (  4,  2   )     ref  ->  x20         class-hnd exact single-def <<unknown class>>
+;  V12 loc12        [V12,T24] (  8,  4   )     ref  ->   x0         class-hnd <<unknown class>>
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V14 tmp1         [V14    ] (  3,  1.50)  struct ( 8) [fp+0xD8]  do-not-enreg[XSF] addr-exposed "NewObjArrayArgs"
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
 ;  V16 tmp3         [V16    ] (  3,  6   )     int  ->  [fp+0xD0]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    single-def "CASTCLASS eval op1"
 ;* V18 tmp5         [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType>
-;* V19 tmp6         [V19,T51] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-;  V20 tmp7         [V20,T26] (  3,  4   )     int  ->  x20         "Inlining Arg"
-;  V21 tmp8         [V21,T38] (  2,  2   )     ref  ->   x0         class-hnd single-def "Inline return value spill temp" <System.Array>
+;* V19 tmp6         [V19,T50] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
+;  V20 tmp7         [V20,T25] (  3,  4   )     int  ->  x20         "Inlining Arg"
+;  V21 tmp8         [V21,T37] (  2,  2   )     ref  ->   x0         class-hnd single-def "Inline return value spill temp" <System.Array>
 ;  V22 tmp9         [V22    ] (  4,  4   )     ref  ->  [fp+0xC8]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline stloc first use temp" <System.Array>
 ;  V23 tmp10        [V23    ] (  3,  6   )     ref  ->  [fp+0xC0]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.RuntimeType>
 ;  V24 tmp11        [V24    ] (  4,  8   )  struct (16) [fp+0xB0]  do-not-enreg[XSF] addr-exposed ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.QCallTypeHandle>
-;  V25 tmp12        [V25,T20] (  3,  6   )  struct (16) [fp+0xA0]  do-not-enreg[SFA] multireg-arg "impAppendStmt" <System.Runtime.CompilerServices.QCallTypeHandle>
+;  V25 tmp12        [V25,T19] (  3,  6   )  struct (16) [fp+0xA0]  do-not-enreg[SFA] multireg-arg "impAppendStmt" <System.Runtime.CompilerServices.QCallTypeHandle>
 ;* V26 tmp13        [V26    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Runtime.CompilerServices.ObjectHandleOnStack>
-;  V27 tmp14        [V27,T23] (  3,  5.01)     ref  ->   x0         class-hnd exact single-def "dup spill" <System.RuntimeType>
-;  V28 tmp15        [V28,T39] (  2,  2   )   byref  ->   x1         single-def
+;  V27 tmp14        [V27,T22] (  3,  5.01)     ref  ->   x0         class-hnd exact single-def "dup spill" <System.RuntimeType>
+;  V28 tmp15        [V28,T38] (  2,  2   )   byref  ->   x1         single-def
 ;* V29 tmp16        [V29    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V30 tmp17        [V30    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V31 tmp18        [V31,T41] (  3,  1.50)    long  ->   x3        
-;  V32 tmp19        [V32,T27] (  2,  4   )  struct ( 8) [fp+0x98]  do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ObjectHandleOnStack>
+;  V31 tmp18        [V31,T40] (  3,  1.50)    long  ->   x3        
+;  V32 tmp19        [V32,T26] (  2,  4   )  struct ( 8) [fp+0x98]  do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ObjectHandleOnStack>
 ;* V33 tmp20        [V33    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp21        [V34    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V35 tmp22        [V35,T03] (  5, 40   )     ref  ->  x19         class-hnd "Inlining Arg" <System.Array>
-;  V36 tmp23        [V36,T21] (  2,  4   )     int  ->   x0         "Inline return value spill temp"
+;  V35 tmp22        [V35,T00] (  5, 40   )     ref  ->  x19         class-hnd "Inlining Arg" <System.Array>
+;  V36 tmp23        [V36,T20] (  2,  4   )     int  ->   x0         "Inline return value spill temp"
 ;* V37 tmp24        [V37    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V38 tmp25        [V38,T15] (  3, 10   )     int  ->   x0         "Inline stloc first use temp"
-;  V39 tmp26        [V39,T05] (  3, 24   )   byref  ->  x21         "Inlining Arg"
+;  V38 tmp25        [V38,T13] (  3, 10   )     int  ->   x0         "Inline stloc first use temp"
+;  V39 tmp26        [V39,T04] (  3, 24   )   byref  ->  x21         "Inlining Arg"
 ;* V40 tmp27        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V41 tmp28        [V41,T04] (  5, 40   )     ref  ->  x19         class-hnd "Inlining Arg" <System.Array>
-;  V42 tmp29        [V42,T22] (  2,  4   )     int  ->   x0         "Inline return value spill temp"
+;  V41 tmp28        [V41,T01] (  5, 40   )     ref  ->  x19         class-hnd "Inlining Arg" <System.Array>
+;  V42 tmp29        [V42,T21] (  2,  4   )     int  ->   x0         "Inline return value spill temp"
 ;* V43 tmp30        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V44 tmp31        [V44,T16] (  3, 10   )     int  ->   x0         "Inline stloc first use temp"
-;  V45 tmp32        [V45,T06] (  3, 24   )   byref  ->  x21         "Inlining Arg"
+;  V44 tmp31        [V44,T14] (  3, 10   )     int  ->   x0         "Inline stloc first use temp"
+;  V45 tmp32        [V45,T05] (  3, 24   )   byref  ->  x21         "Inlining Arg"
 ;* V46 tmp33        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V47 tmp34        [V47,T19] (  5,  6   )     int  ->   x0         "Single return block return value"
-;  V48 FramesRoot   [V48,T18] (  6,  6   )    long  ->  x19         "Pinvoke FrameListRoot"
+;  V47 tmp34        [V47,T17] (  5,  6   )     int  ->   x0         "Single return block return value"
+;  V48 FramesRoot   [V48,T16] (  6,  6   )    long  ->  x19         "Pinvoke FrameListRoot"
 ;  V49 PInvokeFrame [V49    ] (  8,  8   )  struct (72) [fp+0x10]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
 ;  V50 tmp37        [V50,T60] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
 ;  V51 tmp38        [V51    ] (  4,  8   )  struct (16) [fp+0x88]  do-not-enreg[XSA] multireg-arg must-init addr-exposed "by-value mkrefany struct argument" <System.TypedReference>
-;  V52 tmp39        [V52,T10] (  2, 16   )    long  ->   x1         "argument with side effect"
-;  V53 tmp40        [V53,T11] (  2, 16   )    long  ->   x1         "argument with side effect"
+;  V52 tmp39        [V52,T07] (  2, 16   )    long  ->   x1         "argument with side effect"
+;  V53 tmp40        [V53,T08] (  2, 16   )    long  ->   x1         "argument with side effect"
 ;  V54 tmp41        [V54    ] (  4,  4   )  struct (16) [fp+0x78]  do-not-enreg[XSA] multireg-arg must-init addr-exposed "by-value mkrefany struct argument" <System.TypedReference>
-;  V55 tmp42        [V55,T40] (  2,  2   )    long  ->   x2         "argument with side effect"
+;  V55 tmp42        [V55,T39] (  2,  2   )    long  ->   x2         "argument with side effect"
 ;  V56 tmp43        [V56    ] (  4,  4   )  struct (16) [fp+0x68]  do-not-enreg[XSA] multireg-arg must-init addr-exposed "by-value mkrefany struct argument" <System.TypedReference>
 ;  V57 tmp44        [V57    ] (  4,  4   )  struct (16) [fp+0x58]  do-not-enreg[XSA] multireg-arg must-init addr-exposed "by-value mkrefany struct argument" <System.TypedReference>
-;  V58 tmp45        [V58,T01] (  3, 96   )     ref  ->   x4         "arr expr"
-;  V59 tmp46        [V59,T12] ( 21, 15   )     int  ->   x2         "MD array shared temp"
-;  V60 tmp47        [V60,T13] ( 21, 15   )     int  ->   x6         "MD array shared temp"
-;* V61 tmp48        [V61,T52] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;  V62 tmp49        [V62,T28] (  3,  3   )     int  ->   x7         "MD array shared temp"
-;* V63 tmp50        [V63,T53] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;  V64 tmp51        [V64,T29] (  3,  3   )     int  ->   x5         "MD array shared temp"
-;  V65 tmp52        [V65,T30] (  3,  3   )     int  ->   x1         "MD array shared temp"
-;* V66 tmp53        [V66,T54] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;* V67 tmp54        [V67,T55] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;* V68 tmp55        [V68,T56] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;* V69 tmp56        [V69,T57] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;* V70 tmp57        [V70,T58] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;  V71 cse0         [V71,T33] (  4,  2   )     int  ->   x2         "CSE - moderate"
-;  V72 cse1         [V72,T34] (  4,  2   )     int  ->   x1         "CSE - moderate"
-;  V73 cse2         [V73,T42] (  3,  1.50)     int  ->   x6         "CSE - moderate"
-;  V74 cse3         [V74,T43] (  3,  1.50)     int  ->   x7         "CSE - moderate"
-;  V75 cse4         [V75,T44] (  3,  1.50)     int  ->   x5         "CSE - moderate"
-;  V76 cse5         [V76,T08] (  2, 20   )     int  ->   x3         hoist "CSE - aggressive"
-;  V77 cse6         [V77,T35] (  2,  1   )     int  ->   x2         "CSE - moderate"
-;  V78 cse7         [V78,T36] (  2,  1   )     int  ->   x1         "CSE - moderate"
-;  V79 cse8         [V79,T45] (  2,  1   )     int  ->   x6         "CSE - moderate"
-;  V80 cse9         [V80,T46] (  2,  1   )     int  ->   x7         "CSE - moderate"
-;  V81 cse10        [V81,T47] (  2,  1   )     int  ->   x5         "CSE - moderate"
-;  V82 cse11        [V82,T09] (  2, 20   )    long  ->   x2         hoist "CSE - aggressive"
-;  V83 cse12        [V83,T24] ( 10,  5   )     int  ->   x4         "CSE - moderate"
-;  V84 cse13        [V84,T14] (  6, 12   )     ref  ->   x1         multi-def "CSE - moderate"
-;  V85 cse14        [V85,T48] (  3,  1.50)     int  ->   x1         "CSE - moderate"
-;  V86 cse15        [V86,T49] (  3,  1.50)     int  ->   x3         "CSE - moderate"
-;  V87 cse16        [V87,T37] (  4,  2   )     int  ->   x5         "CSE - moderate"
+;  V58 tmp45        [V58,T03] (  6, 24   )     ref  ->   x2         "arr expr"
+;  V59 tmp46        [V59,T09] ( 21, 15   )     int  ->   x2         "MD array shared temp"
+;  V60 tmp47        [V60,T10] ( 21, 15   )     int  ->   x6         "MD array shared temp"
+;* V61 tmp48        [V61,T51] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;  V62 tmp49        [V62,T27] (  3,  3   )     int  ->   x7         "MD array shared temp"
+;* V63 tmp50        [V63,T52] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;  V64 tmp51        [V64,T28] (  3,  3   )     int  ->   x5         "MD array shared temp"
+;  V65 tmp52        [V65,T29] (  3,  3   )     int  ->   x1         "MD array shared temp"
+;* V66 tmp53        [V66,T53] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;* V67 tmp54        [V67,T54] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;* V68 tmp55        [V68,T55] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;* V69 tmp56        [V69,T56] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;* V70 tmp57        [V70,T57] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;  V71 cse0         [V71,T32] (  4,  2   )     int  ->   x2         "CSE - moderate"
+;  V72 cse1         [V72,T33] (  4,  2   )     int  ->   x1         "CSE - moderate"
+;  V73 cse2         [V73,T41] (  3,  1.50)     int  ->   x6         "CSE - moderate"
+;  V74 cse3         [V74,T42] (  3,  1.50)     int  ->   x7         "CSE - moderate"
+;  V75 cse4         [V75,T43] (  3,  1.50)     int  ->   x5         "CSE - moderate"
+;  V76 cse5         [V76,T18] (  3,  6   )   byref  ->   x1         "CSE - moderate"
+;  V77 cse6         [V77,T34] (  2,  1   )     int  ->   x2         "CSE - moderate"
+;  V78 cse7         [V78,T35] (  2,  1   )     int  ->   x1         "CSE - moderate"
+;  V79 cse8         [V79,T44] (  2,  1   )     int  ->   x6         "CSE - moderate"
+;  V80 cse9         [V80,T45] (  2,  1   )     int  ->   x7         "CSE - moderate"
+;  V81 cse10        [V81,T46] (  2,  1   )     int  ->   x5         "CSE - moderate"
+;  V82 cse11        [V82,T23] ( 10,  5   )     int  ->   x4         "CSE - moderate"
+;  V83 cse12        [V83,T11] (  6, 12   )     ref  ->   x1         multi-def "CSE - aggressive"
+;  V84 cse13        [V84,T47] (  3,  1.50)     int  ->   x1         "CSE - moderate"
+;  V85 cse14        [V85,T48] (  3,  1.50)     int  ->   x3         "CSE - moderate"
+;  V86 cse15        [V86,T36] (  4,  2   )     int  ->   x5         "CSE - moderate"
+;  V87 cse16        [V87,T12] (  6, 10   )    long  ->  x19         "CSE - aggressive"
 ;
 ; Lcl frame size = 240
 
@@ -375,19 +375,17 @@ G_M55471_IG21:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             ; gcr arg pop 0
             ldr     x0, [x0]
             ; gcrRegs -[x0]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #1 LSL #32
-            cmp     x0, x1
+            movz    x19, #0xD1FFAB1E
+            movk    x19, #0xD1FFAB1E LSL #16
+            movk    x19, #1 LSL #32
+            cmp     x0, x19
             bne     G_M55471_IG24
             add     w20, w20, #1
             cmp     w20, #16
             blt     G_M55471_IG12
                        ;; size=92 bbWeight=4 PerfScore 84.00
 G_M55471_IG22:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            add     x0, x19, #0xD1FFAB1E
             mov     x1, #3
             bl      CORINFO_HELP_NEWARR_1_VC
             ; gcrRegs +[x0]
@@ -401,10 +399,8 @@ G_M55471_IG22:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
             str     x0, [fp, #0x78]    // [V54 tmp41]
-            movz    x0, #0xD1FFAB1E
+            add     x0, x19, #0xD1FFAB1E
             ; byrRegs -[x0]
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
             str     x0, [fp, #0x80]    // [V54 tmp41+0x08]
             ldp     x0, x1, [fp, #0x78]    // [V54 tmp41], [V54 tmp41+0x08]
             ; byrRegs +[x0]
@@ -451,7 +447,7 @@ G_M55471_IG22:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ; gcrRegs -[x2]
             cmp     x2, #4
             beq     G_M55471_IG25
-                       ;; size=184 bbWeight=0.50 PerfScore 30.00
+                       ;; size=168 bbWeight=0.50 PerfScore 29.00
 G_M55471_IG23:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, #2
             b       G_M55471_IG35
@@ -775,12 +771,10 @@ G_M55471_IG29:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             bl      CORINFO_HELP_NEWARR_1_OBJ
             ; gcrRegs +[x0]
             ; gcr arg pop 0
-            mov     x19, x0
-            ; gcrRegs +[x19]
-            movz    x0, #0xD1FFAB1E
+            mov     x20, x0
+            ; gcrRegs +[x20]
+            add     x0, x19, #0xD1FFAB1E
             ; gcrRegs -[x0]
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
             mov     x1, #3
             bl      CORINFO_HELP_NEWARR_1_VC
             ; gcrRegs +[x0]
@@ -789,16 +783,14 @@ G_M55471_IG29:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             str     q16, [x0, #0x10]
             mov     x14, #3
             str     x14, [x0, #0x20]
-            add     x14, x19, #16
+            add     x14, x20, #16
             ; byrRegs +[x14]
             mov     x15, x0
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15]
             ; byrRegs -[x14]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            add     x0, x19, #0xD1FFAB1E
             mov     x1, #3
             bl      CORINFO_HELP_NEWARR_1_VC
             ; gcrRegs +[x0]
@@ -807,14 +799,14 @@ G_M55471_IG29:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             str     q16, [x0, #0x10]
             mov     x14, #6
             str     x14, [x0, #0x20]
-            add     x14, x19, #24
+            add     x14, x20, #24
             ; byrRegs +[x14]
             mov     x15, x0
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15]
             ; byrRegs -[x14]
-            str     x19, [fp, #0xE0]   // [V06 loc6]
+            str     x20, [fp, #0xE0]   // [V06 loc6]
...

+20 (+1.33%) : 247296.dasm - System.RuntimeType:GetField(System.String,int):System.Reflection.FieldInfo:this (Instrumented Tier1)

@@ -13,12 +13,12 @@
 ;  V01 arg1         [V01,T01] (  9,  4.27)     ref  ->  x20         ld-addr-op class-hnd <System.String>
 ;  V02 arg2         [V02,T00] (  6,  5.32)     int  ->  x19        
 ;  V03 loc0         [V03,T13] (  6,  2.57)     int  ->  x22         ld-addr-op
-;  V04 loc1         [V04,T16] (  3,  2.24)     ref  ->   x0         class-hnd single-def <System.Reflection.RuntimeFieldInfo[]>
-;  V05 loc2         [V05,T12] ( 16,  2.64)     ref  ->  x21         class-hnd <System.Reflection.FieldInfo>
-;  V06 loc3         [V06,T18] (  3,  2   )   ubyte  ->  x22        
+;  V04 loc1         [V04,T14] (  4,  2.56)     ref  ->  x21         class-hnd single-def <System.Reflection.RuntimeFieldInfo[]>
+;  V05 loc2         [V05,T12] ( 16,  2.64)     ref  ->  x22         class-hnd <System.Reflection.FieldInfo>
+;  V06 loc3         [V06,T17] (  3,  2   )   ubyte  ->  x23        
 ;* V07 loc4         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op
-;  V08 loc5         [V08,T15] (  5,  2.28)     int  ->  x23        
-;  V09 loc6         [V09,T19] ( 12,  0.96)     ref  ->  x27         class-hnd <System.Reflection.RuntimeFieldInfo>
+;  V08 loc5         [V08,T15] (  5,  2.28)     int  ->  x25        
+;  V09 loc6         [V09,T18] ( 12,  0.96)     ref  ->  x27         class-hnd <System.Reflection.RuntimeFieldInfo>
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V12 tmp2         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <System.Type>
@@ -28,7 +28,7 @@
 ;* V16 tmp6         [V16    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V17 tmp7         [V17    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V18 tmp8         [V18    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V19 tmp9         [V19,T24] (  3,  0   )     ref  ->  x20         "handle histogram profile tmp"
+;  V19 tmp9         [V19,T23] (  3,  0   )     ref  ->  x20         "handle histogram profile tmp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V21 tmp11        [V21    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V22 tmp12        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
@@ -48,32 +48,31 @@
 ;* V36 tmp26        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V37 tmp27        [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
 ;  V38 tmp28        [V38,T03] ( 14,  5.18)     ref  ->  x24         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V39 tmp29        [V39,T21] (  4,  0.64)     ref  ->  x25         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V39 tmp29        [V39,T20] (  4,  0.64)     ref  ->  x25         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V40 tmp30        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V41 tmp31        [V41,T17] (  5,  2.00)     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Reflection.RuntimeFieldInfo[]>
+;  V41 tmp31        [V41,T16] (  5,  2.00)     ref  ->  x21         class-hnd "Inline return value spill temp" <System.Reflection.RuntimeFieldInfo[]>
 ;  V42 tmp32        [V42,T10] (  2,  2.82)     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
 ;  V43 tmp33        [V43,T11] (  4,  2.68)     ref  ->   x0        
-;  V44 tmp34        [V44,T31] (  2,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
-;  V45 tmp35        [V45,T23] (  4,  0   )     ref  ->   x0        
+;  V44 tmp34        [V44,T30] (  2,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
+;  V45 tmp35        [V45,T22] (  4,  0   )     ref  ->  x21        
 ;* V46 tmp36        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp37        [V47    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V48 tmp38        [V48    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V49 tmp39        [V49    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V50 tmp40        [V50,T33] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V51 tmp41        [V51,T25] (  3,  0   )     ref  ->   x0         "argument with side effect"
-;  V52 tmp42        [V52,T26] (  3,  0   )     ref  ->   x0         "argument with side effect"
-;* V53 tmp43        [V53,T34] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;* V54 tmp44        [V54,T35] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V55 tmp45        [V55,T27] (  3,  0   )     ref  ->   x0         "argument with side effect"
-;  V56 tmp46        [V56,T28] (  3,  0   )     ref  ->  x20         "argument with side effect"
-;  V57 tmp47        [V57,T32] (  2,  0   )     ref  ->   x1         "argument with side effect"
-;  V58 tmp48        [V58,T29] (  3,  0   )     ref  ->   x0         "argument with side effect"
-;  V59 tmp49        [V59,T30] (  3,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V60 cse0         [V60,T20] (  3,  0.96)     int  ->   x0         "CSE - conservative"
-;  V61 cse1         [V61,T14] (  3,  2.32)     int  ->  x25         "CSE - moderate"
-;  V62 cse2         [V62,T22] (  2,  0.56)   byref  ->  x26         hoist "CSE - conservative"
-;  V63 cse3         [V63,T08] (  3,  3   )    long  ->   x0         "CSE - aggressive"
-;  V64 cse4         [V64,T07] (  6,  3.88)     ref  ->   x1         multi-def "CSE - aggressive"
+;* V50 tmp40        [V50,T32] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V51 tmp41        [V51,T24] (  3,  0   )     ref  ->   x0         "argument with side effect"
+;  V52 tmp42        [V52,T25] (  3,  0   )     ref  ->   x0         "argument with side effect"
+;* V53 tmp43        [V53,T33] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;* V54 tmp44        [V54,T34] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V55 tmp45        [V55,T26] (  3,  0   )     ref  ->   x0         "argument with side effect"
+;  V56 tmp46        [V56,T27] (  3,  0   )     ref  ->  x20         "argument with side effect"
+;  V57 tmp47        [V57,T31] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V58 tmp48        [V58,T28] (  3,  0   )     ref  ->   x0         "argument with side effect"
+;  V59 tmp49        [V59,T29] (  3,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V60 cse0         [V60,T19] (  3,  0.96)     int  ->   x0         "CSE - conservative"
+;  V61 cse1         [V61,T21] (  2,  0.56)   byref  ->  x26         hoist "CSE - conservative"
+;  V62 cse2         [V62,T08] (  3,  3   )    long  ->   x0         "CSE - aggressive"
+;  V63 cse3         [V63,T07] (  6,  3.88)     ref  ->   x1         multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -211,7 +210,7 @@ G_M40435_IG11:        ; bbWeight=0.08, gcrefRegs=900000 {x20 x23}, byrefRegs=200
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15 x23]
             ; byrRegs -[x14]
-            cbz     x21, G_M40435_IG31
+            cbz     x21, G_M40435_IG32
             mov     x0, x21
             ; byrRegs +[x0]
             mov     x1, x25
@@ -234,7 +233,7 @@ G_M40435_IG12:        ; bbWeight=1, gcrefRegs=1100000 {x20 x24}, byrefRegs=0000
                        ;; size=12 bbWeight=1 PerfScore 4.50
 G_M40435_IG13:        ; bbWeight=0.29, gcrefRegs=1100000 {x20 x24}, byrefRegs=0000 {}, byref, isz
             cmp     w22, #2
-            bne     G_M40435_IG22
+            bne     G_M40435_IG23
                        ;; size=8 bbWeight=0.29 PerfScore 0.44
 G_M40435_IG14:        ; bbWeight=0, gcrefRegs=1100000 {x20 x24}, byrefRegs=0000 {}, byref, isz
             add     x0, x24, #40
@@ -252,11 +251,13 @@ G_M40435_IG14:        ; bbWeight=0, gcrefRegs=1100000 {x20 x24}, byrefRegs=0000
             ; gcrRegs -[x2] +[x0]
             ; byrRegs -[x0]
             ; gcr arg pop 0
-            cbnz    x0, G_M40435_IG21
-            b       G_M40435_IG20
-                       ;; size=48 bbWeight=0 PerfScore 0.00
+            mov     x21, x0
+            ; gcrRegs +[x21]
+            cbnz    x21, G_M40435_IG22
+            b       G_M40435_IG21
+                       ;; size=52 bbWeight=0 PerfScore 0.00
 G_M40435_IG15:        ; bbWeight=0.71, gcrefRegs=1100000 {x20 x24}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x0]
+            ; gcrRegs -[x0 x21]
             add     x0, x24, #32
             ; byrRegs +[x0]
             mov     x2, x20
@@ -290,33 +291,37 @@ G_M40435_IG16:        ; bbWeight=0.57, gcrefRegs=1100000 {x20 x24}, byrefRegs=00
             ; gcrRegs -[x1 x20 x24]
             ; gcr arg pop 0
                        ;; size=36 bbWeight=0.57 PerfScore 4.26
-G_M40435_IG17:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            mov     x21, xzr
+G_M40435_IG17:        ; bbWeight=0.71, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+            mov     x21, x0
             ; gcrRegs +[x21]
+                       ;; size=4 bbWeight=0.71 PerfScore 0.35
+G_M40435_IG18:        ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x0]
+            mov     x22, xzr
+            ; gcrRegs +[x22]
             eor     w19, w19, #2
-            mov     w22, wzr
             mov     w23, wzr
-            ldr     w25, [x0, #0x08]
-            cmp     w25, #0
-            ble     G_M40435_IG25
+            mov     w25, wzr
+            ldr     w0, [x21, #0x08]
+            cmp     w0, #0
+            ble     G_M40435_IG26
                        ;; size=28 bbWeight=1 PerfScore 6.50
-G_M40435_IG18:        ; bbWeight=0.24, gcrefRegs=200001 {x0 x21}, byrefRegs=0000 {}, byref
-            add     x26, x0, #16
+G_M40435_IG19:        ; bbWeight=0.24, gcrefRegs=600000 {x21 x22}, byrefRegs=0000 {}, byref
+            add     x26, x21, #16
             ; byrRegs +[x26]
                        ;; size=4 bbWeight=0.24 PerfScore 0.12
-G_M40435_IG19:        ; bbWeight=0.32, gcrefRegs=200000 {x21}, byrefRegs=4000000 {x26}, byref, isz
-            ; gcrRegs -[x0]
-            ldr     x27, [x26, w23, UXTW #3]
+G_M40435_IG20:        ; bbWeight=0.32, gcrefRegs=600000 {x21 x22}, byrefRegs=4000000 {x26}, byref, isz
+            ldr     x27, [x26, w25, UXTW #3]
             ; gcrRegs +[x27]
             ldr     w0, [x27, #0x18]
             and     w1, w19, w0
             cmp     w1, w0
-            bne     G_M40435_IG30
-            cbz     x21, G_M40435_IG29
-            b       G_M40435_IG32
+            bne     G_M40435_IG31
+            cbz     x22, G_M40435_IG30
+            b       G_M40435_IG33
                        ;; size=28 bbWeight=0.32 PerfScore 3.20
-G_M40435_IG20:        ; bbWeight=0, gcrefRegs=1100000 {x20 x24}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x21 x27] +[x20 x24]
+G_M40435_IG21:        ; bbWeight=0, gcrefRegs=1100000 {x20 x24}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x21-x22 x27] +[x20 x24]
             ; byrRegs -[x26]
             mov     x0, x24
             ; gcrRegs +[x0]
@@ -331,13 +336,16 @@ G_M40435_IG20:        ; bbWeight=0, gcrefRegs=1100000 {x20 x24}, byrefRegs=0000
             blr     x4
             ; gcrRegs -[x1 x20 x24]
             ; gcr arg pop 0
-                       ;; size=36 bbWeight=0 PerfScore 0.00
-G_M40435_IG21:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            b       G_M40435_IG17
+            mov     x21, x0
+            ; gcrRegs +[x21]
+                       ;; size=40 bbWeight=0 PerfScore 0.00
+G_M40435_IG22:        ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
+            b       G_M40435_IG18
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M40435_IG22:        ; bbWeight=0.29, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x0] +[x24]
-            cbz     w22, G_M40435_IG23
+G_M40435_IG23:        ; bbWeight=0.29, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x21] +[x24]
+            cbz     w22, G_M40435_IG24
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
@@ -351,22 +359,22 @@ G_M40435_IG22:        ; bbWeight=0.29, gcrefRegs=1000000 {x24}, byrefRegs=0000 {
             ; gcrRegs -[x0]
             ; gcr arg pop 0
                        ;; size=40 bbWeight=0.29 PerfScore 2.50
-G_M40435_IG23:        ; bbWeight=0.29, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
+G_M40435_IG24:        ; bbWeight=0.29, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
             ldapurb w0, [x24, #0x18]
-            cbz     w0, G_M40435_IG26
+            cbz     w0, G_M40435_IG27
                        ;; size=8 bbWeight=0.29 PerfScore 1.18
-G_M40435_IG24:        ; bbWeight=0.25, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
-            ldr     x0, [x24, #0x08]
-            ; gcrRegs +[x0]
-            b       G_M40435_IG17
+G_M40435_IG25:        ; bbWeight=0.25, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
+            ldr     x21, [x24, #0x08]
+            ; gcrRegs +[x21]
+            b       G_M40435_IG18
                        ;; size=8 bbWeight=0.25 PerfScore 1.01
-G_M40435_IG25:        ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x0 x24] +[x21]
-            cbz     w22, G_M40435_IG27
-            b       G_M40435_IG39
+G_M40435_IG26:        ; bbWeight=1, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x21 x24] +[x22]
+            cbz     w23, G_M40435_IG28
+            b       G_M40435_IG40
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M40435_IG26:        ; bbWeight=0.04, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x21] +[x24]
+G_M40435_IG27:        ; bbWeight=0.04, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x22] +[x24]
             mov     x0, x24
             ; gcrRegs +[x0]
             mov     w2, w22
@@ -379,19 +387,21 @@ G_M40435_IG26:        ; bbWeight=0.04, gcrefRegs=1000000 {x24}, byrefRegs=0000 {
             blr     x4
             ; gcrRegs -[x24]
             ; gcr arg pop 0
-            b       G_M40435_IG17
-                       ;; size=40 bbWeight=0.04 PerfScore 0.35
-G_M40435_IG27:        ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0] +[x21]
+            mov     x21, x0
+            ; gcrRegs +[x21]
+            b       G_M40435_IG18
+                       ;; size=44 bbWeight=0.04 PerfScore 0.37
+G_M40435_IG28:        ; bbWeight=1, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0 x21] +[x22]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-            mov     x0, x21
+            mov     x0, x22
             ; gcrRegs +[x0]
                        ;; size=20 bbWeight=1 PerfScore 3.00
-G_M40435_IG28:        ; bbWeight=1, epilog, nogc, extend
...

libraries.crossgen2.osx.arm64.checked.mch

-4 (-0.20%) : 213865.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

@@ -9,25 +9,25 @@
 ; 0 inlinees with PGO data; 18 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T23] ( 18, 19   )     ref  ->  [fp+0x28]  this class-hnd EH-live single-def <System.Runtime.Caching.ExpiresBucket>
+;  V00 this         [V00,T23] ( 18, 19   )     ref  ->  [fp+0x30]  this class-hnd EH-live single-def <System.Runtime.Caching.ExpiresBucket>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.DateTime>
 ;  V02 arg2         [V02,T30] (  8,  7   )   ubyte  ->  [fp+0x54]  EH-live single-def
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V04 loc1         [V04,T01] ( 12,132   )     ref  ->  x25         class-hnd <<unknown class>>
+;  V04 loc1         [V04,T05] (  8, 68   )     ref  ->  x25         class-hnd <<unknown class>>
 ;  V05 loc2         [V05,T28] (  3, 12   )     int  ->   x0        
-;  V06 loc3         [V06,T03] (  7,108   )     ref  ->  [fp+0x20]  class-hnd <System.Runtime.Caching.MemoryCacheEntry>
+;  V06 loc3         [V06,T02] (  7,108   )     ref  ->  [fp+0x28]  class-hnd <System.Runtime.Caching.MemoryCacheEntry>
 ;  V07 loc4         [V07,T15] (  5, 35   )     int  ->  [fp+0x50]  do-not-enreg[Z] EH-live
 ;  V08 loc5         [V08,T34] (  2,  5   )     ref  ->  x19         class-hnd exact single-def <System.Runtime.Caching.MemoryCacheStore>
 ;* V09 loc6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Runtime.Caching.ExpiresEntryRef>
 ;* V10 loc7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V11 loc8         [V11,T04] ( 13, 71   )     ref  ->  [fp+0x18]  class-hnd exact EH-live spill-single-def <System.Runtime.Caching.ExpiresBucket>
+;  V11 loc8         [V11,T03] ( 13, 71   )     ref  ->  [fp+0x20]  class-hnd exact EH-live spill-single-def <System.Runtime.Caching.ExpiresBucket>
 ;  V12 loc9         [V12    ] (  4,  4   )   ubyte  ->  [fp+0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;  V13 loc10        [V13,T26] (  4, 13   )     int  ->  x22        
 ;* V14 loc11        [V14,T36] (  0,  0   )     int  ->  zero-ref    do-not-enreg[M] EH-live
 ;  V15 loc12        [V15,T07] (  7, 57   )     int  ->  x23        
 ;  V16 loc13        [V16,T08] (  4, 52   )     int  ->  x27        
 ;  V17 loc14        [V17,T00] (  6,148   )     int  ->  x28        
-;  V18 loc15        [V18,T13] (  8, 35   )     ref  ->  [fp+0x10]  class-hnd exact EH-live spill-single-def <System.Runtime.Caching.ExpiresBucket>
+;  V18 loc15        [V18,T13] (  8, 35   )     ref  ->  [fp+0x18]  class-hnd exact EH-live spill-single-def <System.Runtime.Caching.ExpiresBucket>
 ;  V19 loc16        [V19    ] (  4,  3   )   ubyte  ->  [fp+0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;# V20 OutArgs      [V20    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V21 tmp1         [V21    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.Caching.ExpiresEntryRef>
@@ -45,7 +45,7 @@
 ;  V33 tmp13        [V33,T31] (  6,  6   )     ref  ->  x19         class-hnd exact "Inlining Arg" <System.Runtime.Caching.MemoryCacheStore>
 ;  V34 tmp14        [V34,T22] (  5, 20   )    long  ->  x19         single-def "field V01._dateData (fldOffset=0x0)" P-INDEP
 ;  V35 tmp15        [V35,T16] (  5, 35   )     int  ->  [fp+0x3C]  do-not-enreg[Z] EH-live "field V03._ref (fldOffset=0x0)" P-INDEP
-;  V36 tmp16        [V36,T05] ( 13, 71   )     int  ->   x4         "field V09._ref (fldOffset=0x0)" P-INDEP
+;  V36 tmp16        [V36,T04] ( 13, 71   )     int  ->   x4         "field V09._ref (fldOffset=0x0)" P-INDEP
 ;  V37 tmp17        [V37,T19] (  4, 24   )     int  ->  x20         "field V10._ref (fldOffset=0x0)" P-INDEP
 ;  V38 tmp18        [V38,T17] (  2, 32   )     int  ->   x0         "field V21._ref (fldOffset=0x0)" P-INDEP
 ;  V39 tmp19        [V39,T18] (  2, 32   )     int  ->   x0         "field V26._ref (fldOffset=0x0)" P-INDEP
@@ -55,8 +55,8 @@
 ;  V43 tmp23        [V43,T11] (  3, 48   )     ref  ->   x1         "arr expr"
 ;  V44 PSPSym       [V44,T37] (  1,  1   )    long  ->  [fp+0x58]  do-not-enreg[V] "PSPSym"
 ;  V45 cse0         [V45,T24] (  3, 18   )     ref  ->  x21         "CSE - moderate"
-;  V46 cse1         [V46,T25] (  4, 16   )   byref  ->   x0         "CSE - moderate"
-;  V47 cse2         [V47,T02] (  6,128   )    long  ->  [fp+0x30]  spill-single-def "CSE - aggressive"
+;  V46 cse1         [V46,T01] (  6,128   )   byref  ->  [fp+0x10]  spill-single-def "CSE - aggressive"
+;  V47 cse2         [V47,T25] (  4, 16   )   byref  ->   x0         "CSE - moderate"
 ;  V48 cse3         [V48,T06] (  6, 65   )    long  ->  registers   hoist multi-def "CSE - aggressive"
 ;  V49 cse4         [V49,T14] (  8, 35   )    long  ->  x24         hoist multi-def "CSE - aggressive"
 ;  V50 cse5         [V50,T35] (  3,  3   )    long  ->  x20         "CSE - moderate"
@@ -77,7 +77,7 @@ G_M744_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, n
             stp     xzr, xzr, [fp, #0x40]  // [V19 loc16], [V12 loc9]
             add     x3, sp, #176
             str     x3, [fp, #0x58]    // [V44 PSPSym]
-            str     x0, [fp, #0x28]    // [V00 this]
+            str     x0, [fp, #0x30]    // [V00 this]
             ; GC ptr vars +{V00}
             str     w2, [fp, #0x54]    // [V02 arg2]
             mov     x19, x1
@@ -133,7 +133,7 @@ G_M744_IG06:        ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byr
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x0]
-            ldr     x1, [fp, #0x28]    // [V00 this]
+            ldr     x1, [fp, #0x30]    // [V00 this]
             ; gcrRegs +[x1]
             ldr     x0, [x1, x0]
             ; gcrRegs +[x0]
@@ -155,15 +155,15 @@ G_M744_IG06:        ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byr
                        ;; size=80 bbWeight=1 PerfScore 32.00
 G_M744_IG07:        ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x22]
-            ldr     x1, [fp, #0x28]    // [V00 this]
+            ldr     x1, [fp, #0x30]    // [V00 this]
             ; gcrRegs +[x1]
             mov     x0, x1
             ; gcrRegs +[x0]
-            str     x0, [fp, #0x18]    // [V11 loc8]
+            str     x0, [fp, #0x20]    // [V11 loc8]
             ; GC ptr vars +{V11}
             str     wzr, [fp, #0x48]   // [V12 loc9]
                        ;; size=16 bbWeight=1 PerfScore 4.50
-G_M744_IG08:        ; bbWeight=1, gcVars=0000000000800010 {V00 V11}, gcrefRegs=200001 {x0 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M744_IG08:        ; bbWeight=1, gcVars=0000000000800008 {V00 V11}, gcrefRegs=200001 {x0 x21}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x1]
             add     x1, fp, #72    // [V12 loc9]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -172,7 +172,7 @@ G_M744_IG08:        ; bbWeight=1, gcVars=0000000000800010 {V00 V11}, gcrefRegs=2
             blr     x3
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x0, [fp, #0x18]    // [V11 loc8]
+            ldr     x0, [fp, #0x20]    // [V11 loc8]
             ; gcrRegs +[x0]
             ldr     w1, [x0, x20]
             cbz     w1, G_M744_IG21
@@ -184,7 +184,7 @@ G_M744_IG08:        ; bbWeight=1, gcVars=0000000000800010 {V00 V11}, gcrefRegs=2
             ; gcrRegs -[x0]
             ; gcr arg pop 0
             cbz     w0, G_M744_IG21
-            ldr     x0, [fp, #0x18]    // [V11 loc8]
+            ldr     x0, [fp, #0x20]    // [V11 loc8]
             ; gcrRegs +[x0]
             mov     x1, x19
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -196,7 +196,7 @@ G_M744_IG08:        ; bbWeight=1, gcVars=0000000000800010 {V00 V11}, gcrefRegs=2
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x0]
-            ldr     x20, [fp, #0x18]   // [V11 loc8]
+            ldr     x20, [fp, #0x20]   // [V11 loc8]
             ; gcrRegs +[x20]
             ldr     w22, [x20, x0]
             mov     w23, wzr
@@ -239,35 +239,38 @@ G_M744_IG10:        ; bbWeight=4, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=000
                        ;; size=40 bbWeight=4 PerfScore 44.00
 G_M744_IG11:        ; bbWeight=32, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0000 {}, byref, isz
             ubfiz   x0, x28, #4, #32
-            add     x2, x0, #16
-            str     x2, [fp, #0x30]    // [V47 cse2]
-            add     x0, x25, x2
-            ; byrRegs +[x0]
-            ldr     x3, [x0, #0x08]
+            add     x0, x0, #16
+            add     x2, x25, x0
+            ; byrRegs +[x2]
+            str     x2, [fp, #0x10]    // [V46 cse1]
+            ; GC ptr vars +{V46}
+            ldr     x3, [x2, #0x08]
             ; gcrRegs +[x3]
-            str     x3, [fp, #0x20]    // [V06 loc3]
+            str     x3, [fp, #0x28]    // [V06 loc3]
             ; GC ptr vars +{V06}
             cbz     x3, G_M744_IG14
                        ;; size=28 bbWeight=32 PerfScore 256.00
-G_M744_IG12:        ; bbWeight=16, gcVars=0000000000800018 {V00 V06 V11}, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M744_IG12:        ; bbWeight=16, gcVars=000000000080000E {V00 V06 V11 V46}, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0004 {x2}, gcvars, byref, isz
             ; gcrRegs -[x3]
-            ; byrRegs -[x0]
-            ldr     x0, [x25, x2]
+            ldr     x0, [x2]
             mov     x1, x19
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x4, [x11]
             blr     x4
+            ; byrRegs -[x2]
             ; gcr arg pop 0
             cbz     w0, G_M744_IG19
-            ldr     x2, [fp, #0x30]    // [V47 cse2]
-            ldr     x1, [x25, x2]
+            ldr     x2, [fp, #0x10]    // [V46 cse1]
+            ; byrRegs +[x2]
+            ldr     x1, [x2]
             mov     x0, x20
             ; gcrRegs +[x0]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x2, [x11]
-            ; GC ptr vars -{V06}
+            ; byrRegs -[x2]
+            ; GC ptr vars -{V06 V46}
             blr     x2
             ; gcrRegs -[x0]
             ; gcr arg pop 0
@@ -315,14 +318,14 @@ G_M744_IG18:        ; bbWeight=0, gcVars=0000000000800000 {V00}, gcrefRegs=0000
             blr     x0
             ; gcr arg pop 0
                        ;; size=16 bbWeight=0 PerfScore 0.00
-G_M744_IG19:        ; bbWeight=16, gcVars=0000000000800018 {V00 V06 V11}, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0000 {}, gcvars, byref
+G_M744_IG19:        ; bbWeight=16, gcVars=000000000080000E {V00 V06 V11 V46}, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x20-x21 x25]
-            ; GC ptr vars +{V04 V06 V11}
+            ; GC ptr vars +{V02 V06 V11 V46}
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x0]
             mov     w11, #255
-            ldr     x1, [fp, #0x20]    // [V06 loc3]
+            ldr     x1, [fp, #0x28]    // [V06 loc3]
             ; gcrRegs +[x1]
             strb    w11, [x1, x0]
             ldr     w0, [x21, #0x08]
@@ -330,15 +333,12 @@ G_M744_IG19:        ; bbWeight=16, gcVars=0000000000800018 {V00 V06 V11}, gcrefR
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x11, [x11]
             str     w0, [x1, x11]
-            ldr     x0, [fp, #0x30]    // [V47 cse2]
-            add     x11, x25, x0
+            mov     w0, #1
+            ldr     x11, [fp, #0x10]   // [V46 cse1]
             ; byrRegs +[x11]
-            mov     w1, #1
-            ; gcrRegs -[x1]
-            str     w1, [x11, #0x04]
-            ldr     w11, [fp, #0x3C]   // [V35 tmp15]
-            ; byrRegs -[x11]
-            str     w11, [x25, x0]
+            str     w0, [x11, #0x04]
+            ldr     w0, [fp, #0x3C]    // [V35 tmp15]
+            str     w0, [x11]
             uxtb    w0, w28
             orr     w0, w0, w23,  LSL #8
             str     w0, [fp, #0x3C]    // [V35 tmp15]
@@ -347,18 +347,19 @@ G_M744_IG19:        ; bbWeight=16, gcVars=0000000000800018 {V00 V06 V11}, gcrefR
             str     w0, [fp, #0x50]    // [V07 loc4]
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
-            ldr     x1, [x0]
-            ldr     w0, [x20, x1]
+            ldr     x2, [x0]
+            ldr     w0, [x20, x2]
             add     w0, w0, #1
-            str     w0, [x20, x1]
+            str     w0, [x20, x2]
             b       G_M744_IG13
-                       ;; size=120 bbWeight=16 PerfScore 608.00
+                       ;; size=116 bbWeight=16 PerfScore 600.00
 G_M744_IG20:        ; bbWeight=1, gcVars=0000000000800000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[x20-x21 x25]
-            ; GC ptr vars -{V04 V06 V11}
+            ; gcrRegs -[x1 x20-x21 x25]
+            ; byrRegs -[x11]
+            ; GC ptr vars -{V02 V06 V11 V46}
             ldrb    w0, [fp, #0x48]    // [V12 loc9]
             cbz     w0, G_M744_IG24
-            ldr     x0, [fp, #0x28]    // [V00 this]
+            ldr     x0, [fp, #0x30]    // [V00 this]
             ; gcrRegs +[x0]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
@@ -382,7 +383,7 @@ G_M744_IG23:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, i
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x0]
-            ldr     x1, [fp, #0x28]    // [V00 this]
+            ldr     x1, [fp, #0x30]    // [V00 this]
             ; gcrRegs +[x1]
             ldr     x0, [x1, x0]
             ; gcrRegs +[x0]
@@ -416,7 +417,7 @@ G_M744_IG26:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x0]
-            ldr     x1, [fp, #0x28]    // [V00 this]
+            ldr     x1, [fp, #0x30]    // [V00 this]
             ; gcrRegs +[x1]
             ldr     x0, [x1, x0]
             ; gcrRegs +[x0]
...

+12 (+1.80%) : 227749.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

@@ -4,46 +4,45 @@
 ; ReadyToRun compilation
 ; optimized code
 ; fp based frame
-; fully interruptible
+; partially interruptible
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] ( 12,  7   )   byref  ->  x19         this single-def
-;  V01 arg1         [V01,T05] (  4,  4   )  struct (16) [fp+0x38]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
+;  V00 this         [V00,T00] ( 12,  7   )   byref  ->  x19         this single-def
+;  V01 arg1         [V01,T02] (  4,  4   )  struct (16) [fp+0x38]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op <System.Span`1[int]>
-;  V03 loc1         [V03,T01] (  9, 12   )     int  ->  x22        
+;  V03 loc1         [V03,T06] (  9,  4.75)     int  ->  x22        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[int]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [fp+0x48]  do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
-;  V07 tmp2         [V07    ] (  4,  8   )  struct (16) [fp+0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
+;  V07 tmp2         [V07    ] (  4,  8   )  struct (16) [fp+0x28]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;  V08 tmp3         [V08    ] (  3,  6   )  struct (16) [fp+0x18]  do-not-enreg[SFAR] multireg-arg multireg-ret "Return value temp for multireg return" <System.Decimal>
-;  V09 tmp4         [V09,T09] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V10 tmp5         [V10,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V09 tmp4         [V09,T08] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V10 tmp5         [V10,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
-;  V13 tmp8         [V13,T17] (  2,  1   )     int  ->   x0        
-;  V14 tmp9         [V14,T10] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V15 tmp10        [V15,T13] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V16 tmp11        [V16,T11] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V17 tmp12        [V17,T14] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V18 tmp13        [V18,T15] (  2,  2   )     int  ->   x0         "impAppendStmt"
+;  V13 tmp8         [V13,T16] (  2,  1   )     int  ->   x0        
+;  V14 tmp9         [V14,T09] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V15 tmp10        [V15,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V16 tmp11        [V16,T10] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V17 tmp12        [V17,T13] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V18 tmp13        [V18,T14] (  2,  2   )     int  ->   x0         "impAppendStmt"
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    ptr
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp18        [V23,T18] (  2,  1   )     int  ->  x11        
-;  V24 tmp19        [V24,T03] (  9,  9   )   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V25 tmp20        [V25,T04] (  7,  8   )     int  ->  x21         "field V02._length (fldOffset=0x8)" P-INDEP
+;  V23 tmp18        [V23,T17] (  2,  1   )     int  ->  x11        
+;  V24 tmp19        [V24,T01] ( 11,  6.50)   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V25 tmp20        [V25,T07] (  5,  3.50)     int  ->  x21         "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V26 tmp21        [V26    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V27 tmp22        [V27    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V28 tmp23        [V28    ] (  3,  5   )   byref  ->  [fp+0x28]  do-not-enreg[X] addr-exposed ptr "field V07._reference (fldOffset=0x0)" P-DEP
 ;  V29 tmp24        [V29    ] (  3,  5   )     int  ->  [fp+0x30]  do-not-enreg[X] addr-exposed ptr "field V07._length (fldOffset=0x8)" P-DEP
-;  V30 tmp25        [V30,T06] (  3,  6   )     int  ->  [fp+0x18]  do-not-enreg[] "field V08._flags (fldOffset=0x0)" P-DEP
-;  V31 tmp26        [V31,T07] (  3,  6   )     int  ->  [fp+0x1C]  do-not-enreg[] "field V08._hi32 (fldOffset=0x4)" P-DEP
-;  V32 tmp27        [V32,T08] (  3,  6   )    long  ->  [fp+0x20]  do-not-enreg[] "field V08._lo64 (fldOffset=0x8)" P-DEP
+;  V30 tmp25        [V30,T03] (  3,  6   )     int  ->  [fp+0x18]  do-not-enreg[] "field V08._flags (fldOffset=0x0)" P-DEP
+;  V31 tmp26        [V31,T04] (  3,  6   )     int  ->  [fp+0x1C]  do-not-enreg[] "field V08._hi32 (fldOffset=0x4)" P-DEP
+;  V32 tmp27        [V32,T05] (  3,  6   )    long  ->  [fp+0x20]  do-not-enreg[] "field V08._lo64 (fldOffset=0x8)" P-DEP
 ;  V33 GsCookie     [V33    ] (  1,  1   )    long  ->  [fp+0x58]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V34 cse0         [V34,T16] (  3,  1.50)     int  ->   x0         "CSE - moderate"
-;  V35 cse1         [V35,T00] (  4, 14   )     int  ->  x11         "CSE - aggressive"
+;  V34 cse0         [V34,T15] (  3,  1.50)     int  ->   x0         "CSE - moderate"
 ;
 ; Lcl frame size = 80
 
@@ -52,7 +51,6 @@ G_M46478_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     x19, x20, [sp, #0x60]
             stp     x21, x22, [sp, #0x70]
             mov     fp, sp
-            str     xzr, [fp, #0x28]   // [V07 tmp2]
             adrp    x3, [HIGH RELOC #0xD1FFAB1E]      // [SetGlobalSecurityCookie]
             add     x3, x3, [LOW RELOC #0xD1FFAB1E]
             ldr     x3, [x3]
@@ -60,7 +58,7 @@ G_M46478_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     x1, x2, [fp, #0x38]    // [V01 arg1], [V01 arg1+0x08]
             mov     x19, x0
             ; byrRegs +[x19]
-                       ;; size=44 bbWeight=1 PerfScore 11.00
+                       ;; size=40 bbWeight=1 PerfScore 10.00
 G_M46478_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
             stp     xzr, xzr, [fp, #0x28]
             add     x0, fp, #40    // [V07 tmp2]
@@ -70,7 +68,6 @@ G_M46478_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, by
             mov     w2, #4
             ldr     x3, [x11]
             blr     x3
-            ; gcr arg pop 0
             ldr     x20, [fp, #0x28]   // [V28 tmp23]
             ; byrRegs +[x20]
             ldr     w21, [fp, #0x30]   // [V29 tmp24]
@@ -79,7 +76,6 @@ G_M46478_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, by
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x2, [x11]
             blr     x2
-            ; gcr arg pop 0
             stp     x0, x1, [fp, #0x18]    // [V08 tmp3], [V08 tmp3+0x08]
             mov     x2, x20
             ; byrRegs +[x2]
@@ -90,33 +86,51 @@ G_M46478_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, by
             ldr     x4, [x11]
             blr     x4
             ; byrRegs -[x2]
-            ; gcr arg pop 0
             mov     w22, #3
             b       G_M46478_IG04
                        ;; size=100 bbWeight=1 PerfScore 31.00
-G_M46478_IG03:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sxtw    w22, w11
-            cmp     w22, #0
-            ble     G_M46478_IG05
-                       ;; size=12 bbWeight=2 PerfScore 4.00
-G_M46478_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sub     w11, w22, #1
-            cmp     w11, w21
-            bhs     G_M46478_IG14
-            ldr     w0, [x20, w11, UXTW #2]
-            cbz     w0, G_M46478_IG03
-                       ;; size=20 bbWeight=4 PerfScore 24.00
-G_M46478_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            cbnz    w22, G_M46478_IG08
+G_M46478_IG03:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w22, #2
+            b       G_M46478_IG07
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            cmp     w21, #2
+            bls     G_M46478_IG20
+            ldr     w11, [x20, #0x08]
+            cbz     w11, G_M46478_IG03
+                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+G_M46478_IG05:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG11
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG06:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w22, #1
+            b       G_M46478_IG10
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w11, [x20, #0x04]
+            cbz     w11, G_M46478_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG08:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG11
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG09:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w22, wzr
+            b       G_M46478_IG11
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w11, [x20]
+            cbz     w11, G_M46478_IG09
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            cbnz    w22, G_M46478_IG14
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             ; byrRegs -[x20]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x11]
             blr     x0
             ; byrRegs +[x0]
-            ; gcr arg pop 0
             ldr     x13, [x0, #0x50]
             ; gcrRegs +[x13]
             add     x13, x13, #8
@@ -136,31 +150,30 @@ G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             ldr     xip0, [xip0]
             ldr     xip1, [fp, #0x58]  // [V33 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG07
+            beq     G_M46478_IG13
             adrp    xip0, [HIGH RELOC #0xD1FFAB1E]      // CORINFO_HELP_FAIL_FAST
             add     xip0, xip0, [LOW RELOC #0xD1FFAB1E]
             ldr     xip0, [xip0]
             blr     xip0
             ; byrRegs -[x13-x14]
-            ; gcr arg pop 0
                        ;; size=92 bbWeight=0.50 PerfScore 15.25
-G_M46478_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     x21, x22, [sp, #0x70]
             ldp     x19, x20, [sp, #0x60]
             ldp     fp, lr, [sp], #0x80
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
-G_M46478_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             cmp     w22, #1
-            bne     G_M46478_IG10
+            bne     G_M46478_IG16
             ldr     w0, [x20]
             cmp     w0, #0
-            ble     G_M46478_IG10
+            ble     G_M46478_IG16
             str     w0, [x19, #0x08]
             ldr     w0, [x19, #0x08]
             cmp     w21, #3
-            bls     G_M46478_IG14
+            bls     G_M46478_IG20
             ldr     w11, [x20, #0x0C]
             movn    w1, #0
             mov     w2, #1
@@ -174,21 +187,20 @@ G_M46478_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     xip0, [xip0]
             ldr     xip1, [fp, #0x58]  // [V33 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG09
+            beq     G_M46478_IG15
             adrp    xip0, [HIGH RELOC #0xD1FFAB1E]      // CORINFO_HELP_FAIL_FAST
             add     xip0, xip0, [LOW RELOC #0xD1FFAB1E]
             ldr     xip0, [xip0]
             blr     xip0
             ; byrRegs -[x19-x20]
-            ; gcr arg pop 0
                        ;; size=108 bbWeight=0.50 PerfScore 16.50
-G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     x21, x22, [sp, #0x70]
             ldp     x19, x20, [sp, #0x60]
             ldp     fp, lr, [sp], #0x80
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
-G_M46478_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG16:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             sxtw    x0, w22
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -196,7 +208,6 @@ G_M46478_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     x1, [x11]
             blr     x1
             ; gcrRegs +[x0]
-            ; gcr arg pop 0
             mov     x15, x0
             ; gcrRegs +[x15]
             mov     x14, x19
@@ -212,37 +223,33 @@ G_M46478_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     w1, [x20]
             ldr     w2, [x0, #0x08]
             cmp     w2, #0
-            bls     G_M46478_IG14
+            bls     G_M46478_IG20
             str     w1, [x0, #0x10]
             cmp     w22, #1
-            ble     G_M46478_IG11
+            ble     G_M46478_IG17
...

libraries.pmi.osx.arm64.checked.mch

-12 (-0.71%) : 71687.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)

@@ -10,72 +10,71 @@
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <ILCompiler.DevirtualizationManager>
 ;  V01 arg1         [V01,T00] ( 21, 26   )     ref  ->  x19         class-hnd <Internal.TypeSystem.MethodDesc>
-;  V02 arg2         [V02,T16] ( 14,  8   )     ref  ->  x20         class-hnd single-def <Internal.TypeSystem.DefType>
-;  V03 arg3         [V03,T19] (  8,  5.50)   byref  ->  x21         single-def
+;  V02 arg2         [V02,T17] ( 14,  8   )     ref  ->  x20         class-hnd single-def <Internal.TypeSystem.DefType>
+;  V03 arg3         [V03,T20] (  8,  5.50)   byref  ->  x21         single-def
 ;  V04 loc0         [V04,T22] ( 11,  5.50)     ref  ->  x23         class-hnd <Internal.TypeSystem.MethodDesc>
-;  V05 loc1         [V05,T42] (  3,  1.50)     ref  ->  x24         class-hnd single-def <Internal.TypeSystem.DefType[]>
+;  V05 loc1         [V05,T41] (  3,  1.50)     ref  ->  x24         class-hnd single-def <Internal.TypeSystem.DefType[]>
 ;  V06 loc2         [V06,T21] (  4,  6.50)     int  ->  x23        
-;  V07 loc3         [V07,T20] (  5,  7.50)     ref  ->  x25         class-hnd single-def <Internal.TypeSystem.DefType>
+;  V07 loc3         [V07,T16] (  4, 10.50)     ref  ->  x25         class-hnd single-def <Internal.TypeSystem.DefType>
 ;  V08 loc4         [V08,T07] (  5, 16.50)     int  ->  x26        
-;  V09 loc5         [V09,T04] (  7, 20   )     ref  ->  [fp+0x30]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
+;  V09 loc5         [V09,T04] (  7, 20   )     ref  ->  x28         class-hnd <Internal.TypeSystem.DefType>
 ;  V10 loc6         [V10,T26] (  6,  4.50)     ref  ->  x24         class-hnd <Internal.TypeSystem.MethodDesc>
-;  V11 loc7         [V11,T43] (  3,  1.50)     ref  ->   x0         class-hnd single-def <Internal.TypeSystem.DefType[]>
+;  V11 loc7         [V11,T42] (  3,  1.50)     ref  ->   x0         class-hnd single-def <Internal.TypeSystem.DefType[]>
 ;  V12 loc8         [V12,T08] (  5, 16.50)     int  ->  x25        
 ;  V13 loc9         [V13,T05] (  6, 20   )     ref  ->  x28         class-hnd <Internal.TypeSystem.DefType>
 ;  V14 loc10        [V14    ] (  4,  2   )     ref  ->  [fp+0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <Internal.TypeSystem.MethodDesc>
-;  V15 loc11        [V15,T48] (  3,  1.50)     int  ->   x0         single-def
+;  V15 loc11        [V15,T47] (  3,  1.50)     int  ->   x0         single-def
 ;  V16 loc12        [V16,T03] ( 10, 20   )     ref  ->  x23         class-hnd <Internal.TypeSystem.TypeDesc>
 ;* V17 loc13        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Internal.TypeSystem.MethodDesc>
 ;* V18 loc14        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Internal.TypeSystem.MethodDesc>
 ;# V19 OutArgs      [V19    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V20 tmp1         [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
-;  V21 tmp2         [V21,T34] (  3,  2.25)     ref  ->   x1         single-def "CASTCLASS eval op1"
-;  V22 tmp3         [V22,T49] (  3,  1.25)    long  ->   x2         "fgMakeTemp is creating a new local variable"
-;  V23 tmp4         [V23,T31] (  5,  3.75)     ref  ->  x25         class-hnd "spilling QMark2" <Internal.TypeSystem.DefType>
+;  V21 tmp2         [V21,T33] (  3,  2.25)     ref  ->   x1         single-def "CASTCLASS eval op1"
+;  V22 tmp3         [V22,T48] (  3,  1.25)    long  ->   x2         "fgMakeTemp is creating a new local variable"
+;  V23 tmp4         [V23,T30] (  5,  3.75)     ref  ->  x25         class-hnd "spilling QMark2" <Internal.TypeSystem.DefType>
 ;  V24 tmp5         [V24,T23] (  3,  5   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
-;  V25 tmp6         [V25,T35] (  3,  2   )     int  ->   x2         "Inline return value spill temp"
-;  V26 tmp7         [V26,T33] (  3,  2.50)     int  ->   x2         single-def "Inline stloc first use temp"
-;  V27 tmp8         [V27,T44] (  3,  1.50)     ref  ->  x24         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
+;  V25 tmp6         [V25,T34] (  3,  2   )     int  ->   x2         "Inline return value spill temp"
+;  V26 tmp7         [V26,T32] (  3,  2.50)     int  ->   x2         single-def "Inline stloc first use temp"
+;  V27 tmp8         [V27,T43] (  3,  1.50)     ref  ->  x24         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
 ;* V28 tmp9         [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V29 tmp10        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
-;  V30 tmp11        [V30,T17] (  5, 10   )     ref  ->  [fp+0x28]  class-hnd "Inline stloc first use temp" <Internal.TypeSystem.TypeDesc>
-;  V31 tmp12        [V31,T30] (  2,  4   )     ref  ->   x2         class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
+;  V30 tmp11        [V30,T18] (  5, 10   )     ref  ->  [fp+0x30]  class-hnd "Inline stloc first use temp" <Internal.TypeSystem.TypeDesc>
+;  V31 tmp12        [V31,T29] (  2,  4   )     ref  ->   x1         class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
 ;* V32 tmp13        [V32    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V33 tmp14        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <<unknown class>>
 ;* V34 tmp15        [V34    ] (  0,  0   )     int  ->  zero-ref   
 ;* V35 tmp16        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc>
-;  V36 tmp17        [V36,T45] (  3,  1.50)     ref  ->   x0         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
-;  V37 tmp18        [V37,T01] (  3, 24   )     ref  ->  [fp+0x20]  class-hnd spill-single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
+;  V36 tmp17        [V36,T44] (  3,  1.50)     ref  ->   x0         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
+;  V37 tmp18        [V37,T01] (  3, 24   )     ref  ->  [fp+0x28]  class-hnd spill-single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V38 tmp19        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V39 tmp20        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V40 tmp21        [V40    ] (  0,  0   )     int  ->  zero-ref   
 ;  V41 tmp22        [V41,T02] (  3, 24   )     ref  ->  x24         class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V42 tmp23        [V42    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V43 tmp24        [V43    ] (  0,  0   )     int  ->  zero-ref   
-;  V44 tmp25        [V44,T36] (  2,  2   )     ref  ->   x0         single-def "Single return block return value"
+;  V44 tmp25        [V44,T35] (  2,  2   )     ref  ->   x0         single-def "Single return block return value"
 ;  V45 tmp26        [V45,T09] (  2, 16   )     ref  ->  x25         "argument with side effect"
 ;  V46 tmp27        [V46,T10] (  2, 16   )     ref  ->   x1         "argument with side effect"
-;  V47 tmp28        [V47,T37] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V48 tmp29        [V48,T38] (  2,  2   )     ref  ->  x24         single-def "argument with side effect"
-;  V49 tmp30        [V49,T39] (  2,  2   )     ref  ->   x1         single-def "argument with side effect"
-;  V50 tmp31        [V50,T32] (  3,  3   )     ref  ->   x0         single-def "argument with side effect"
-;  V51 tmp32        [V51,T40] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V52 tmp33        [V52,T11] (  2, 16   )     ref  ->  [fp+0x18]  spill-single-def "argument with side effect"
+;  V47 tmp28        [V47,T36] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V48 tmp29        [V48,T37] (  2,  2   )     ref  ->  x24         single-def "argument with side effect"
+;  V49 tmp30        [V49,T38] (  2,  2   )     ref  ->   x1         single-def "argument with side effect"
+;  V50 tmp31        [V50,T31] (  3,  3   )     ref  ->   x0         single-def "argument with side effect"
+;  V51 tmp32        [V51,T39] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V52 tmp33        [V52,T11] (  2, 16   )     ref  ->  [fp+0x20]  spill-single-def "argument with side effect"
 ;  V53 tmp34        [V53,T12] (  2, 16   )     ref  ->   x1         "argument with side effect"
 ;* V54 tmp35        [V54    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V55 tmp36        [V55,T41] (  2,  2   )     ref  ->   x1         single-def "argument with side effect"
+;  V55 tmp36        [V55,T40] (  2,  2   )     ref  ->   x1         single-def "argument with side effect"
 ;  V56 tmp37        [V56,T13] (  2, 16   )     ref  ->   x1         "argument with side effect"
-;  V57 tmp38        [V57,T14] (  2, 16   )     ref  ->  [fp+0x10]  spill-single-def "argument with side effect"
+;  V57 tmp38        [V57,T14] (  2, 16   )     ref  ->  [fp+0x18]  spill-single-def "argument with side effect"
 ;  V58 tmp39        [V58,T15] (  2, 16   )     ref  ->   x1         "argument with side effect"
-;  V59 tmp40        [V59,T18] (  2,  8   )     ref  ->   x1         "argument with side effect"
+;  V59 tmp40        [V59,T19] (  2,  8   )     ref  ->   x1         "argument with side effect"
 ;  V60 cse0         [V60,T06] ( 10, 18   )    long  ->  x22         "CSE - aggressive"
-;  V61 cse1         [V61,T29] (  2,  4.50)    long  ->  x28         hoist "CSE - moderate"
-;  V62 cse2         [V62,T46] (  3,  1.50)     ref  ->  x23         "CSE - conservative"
-;  V63 cse3         [V63,T47] (  3,  1.50)     ref  ->  x25         "CSE - conservative"
+;  V61 cse1         [V61,T45] (  3,  1.50)     ref  ->  x23         "CSE - moderate"
+;  V62 cse2         [V62,T46] (  3,  1.50)     ref  ->  x25         "CSE - moderate"
+;  V63 cse3         [V63,T24] (  3,  5   )     int  ->  x27         "CSE - moderate"
 ;  V64 cse4         [V64,T27] (  2,  4.50)   byref  ->  x24         hoist "CSE - moderate"
-;  V65 cse5         [V65,T24] (  3,  5   )     int  ->  x27         "CSE - moderate"
-;  V66 cse6         [V66,T28] (  2,  4.50)   byref  ->  x27         hoist "CSE - moderate"
-;  V67 cse7         [V67,T25] (  3,  5   )     int  ->  x26         "CSE - moderate"
+;  V65 cse5         [V65,T28] (  2,  4.50)   byref  ->  x27         hoist "CSE - moderate"
+;  V66 cse6         [V66,T25] (  3,  5   )     int  ->  x26         "CSE - moderate"
 ;
 ; Lcl frame size = 48
 
@@ -215,30 +214,26 @@ G_M48343_IG12:        ; bbWeight=0.50, gcrefRegs=3180000 {x19 x20 x24 x25}, byre
             add     x24, x24, #16
             ; gcrRegs -[x24]
             ; byrRegs +[x24]
-            ldr     xzr, [x25]
-            ldr     x0, [x25]
-            ldr     x28, [x0, #0x58]
-                       ;; size=32 bbWeight=0.50 PerfScore 7.25
+                       ;; size=20 bbWeight=0.50 PerfScore 2.75
 G_M48343_IG13:        ; bbWeight=4, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=1200000 {x21 x24}, byref, isz
-            ldr     x1, [x24, w26, UXTW #3]
-            ; gcrRegs +[x1]
-            str     x1, [fp, #0x30]    // [V09 loc5]
-            ; GC ptr vars +{V09}
+            ldr     x28, [x24, w26, UXTW #3]
+            ; gcrRegs +[x28]
             mov     x0, x25
             ; gcrRegs +[x0]
-            ldr     x2, [x28, #0x20]
-            blr     x2
-            ; gcrRegs -[x1]
-            str     x0, [fp, #0x18]    // [V52 tmp33]
+            ldr     x1, [x25]
+            ldr     x1, [x1, #0x58]
+            ldr     x1, [x1, #0x20]
+            blr     x1
+            str     x0, [fp, #0x20]    // [V52 tmp33]
             ; GC ptr vars +{V52}
-            ldr     x0, [fp, #0x30]    // [V09 loc5]
-            ldr     x2, [x0]
+            mov     x0, x28
+            ldr     x2, [x28]
             ldr     x2, [x2, #0x58]
             ldr     x2, [x2, #0x20]
             blr     x2
             mov     x1, x0
             ; gcrRegs +[x1]
-            ldr     x0, [fp, #0x18]    // [V52 tmp33]
+            ldr     x0, [fp, #0x20]    // [V52 tmp33]
             movz    x2, #0xD1FFAB1E      // code for Internal.TypeSystem.TypeDesc:op_Equality(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc):ubyte
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
@@ -247,28 +242,26 @@ G_M48343_IG13:        ; bbWeight=4, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=1
             blr     x2
             ; gcrRegs -[x0-x1]
             cbz     w0, G_M48343_IG16
-                       ;; size=76 bbWeight=4 PerfScore 122.00
-G_M48343_IG14:        ; bbWeight=2, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=1200000 {x21 x24}, byref, isz
-            ldr     x1, [fp, #0x30]    // [V09 loc5]
+                       ;; size=80 bbWeight=4 PerfScore 136.00
+G_M48343_IG14:        ; bbWeight=2, gcrefRegs=12180000 {x19 x20 x25 x28}, byrefRegs=1200000 {x21 x24}, byref, isz
+            ldr     x1, [x28, #0x08]
             ; gcrRegs +[x1]
-            ldr     x2, [x1, #0x08]
-            ; gcrRegs +[x2]
-            str     x2, [fp, #0x28]    // [V30 tmp11]
+            str     x1, [fp, #0x30]    // [V30 tmp11]
             ; GC ptr vars +{V30}
             mov     w0, #1
-            movz    x3, #0xD1FFAB1E      // code for <unknown method>
-            movk    x3, #0xD1FFAB1E LSL #16
-            movk    x3, #1 LSL #32
-            ldr     x3, [x3]
-            blr     x3
-            ; gcrRegs -[x1-x2]
-            ldr     x2, [fp, #0x28]    // [V30 tmp11]
+            movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #1 LSL #32
+            ldr     x2, [x2]
+            blr     x2
+            ; gcrRegs -[x1]
+            ldr     x2, [fp, #0x30]    // [V30 tmp11]
             ; gcrRegs +[x2]
             cbnz    x2, G_M48343_IG15
-            ldr     x0, [fp, #0x30]    // [V09 loc5]
+            mov     x0, x28
             ; gcrRegs +[x0]
             mov     w1, wzr
-            ldr     x2, [x0]
+            ldr     x2, [x28]
             ; gcrRegs -[x2]
             ldr     x2, [x2, #0x48]
             ldr     x2, [x2, #0x28]
@@ -276,8 +269,8 @@ G_M48343_IG14:        ; bbWeight=2, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=1
             blr     x2
             mov     x3, x0
             ; gcrRegs +[x3]
-            ldr     x0, [fp, #0x30]    // [V09 loc5]
-            str     x3, [fp, #0x28]    // [V30 tmp11]
+            mov     x0, x28
+            str     x3, [fp, #0x30]    // [V30 tmp11]
             ; GC ptr vars +{V30}
             mov     x2, x3
             ; gcrRegs +[x2]
@@ -286,12 +279,11 @@ G_M48343_IG14:        ; bbWeight=2, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=1
             movk    x4, #0xD1FFAB1E LSL #16
             movk    x4, #1 LSL #32
             ldr     x4, [x4]
-            ; GC ptr vars -{V09}
             blr     x4
-            ; gcrRegs -[x0 x2-x3]
-            ldr     x2, [fp, #0x28]    // [V30 tmp11]
+            ; gcrRegs -[x0 x2-x3 x28]
+            ldr     x2, [fp, #0x30]    // [V30 tmp11]
             ; gcrRegs +[x2]
-                       ;; size=112 bbWeight=2 PerfScore 79.00
+                       ;; size=108 bbWeight=2 PerfScore 69.00
 G_M48343_IG15:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=2180004 {x2 x19 x20 x25}, byrefRegs=1200000 {x21 x24}, gcvars, byref, isz
             ; GC ptr vars -{V30}
             mov     x0, x2
@@ -426,16 +418,16 @@ G_M48343_IG23:        ; bbWeight=4, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRe
             ; gcrRegs +[x0]
             ldr     x1, [x22, #0x18]
             blr     x1
-            str     x0, [fp, #0x20]    // [V37 tmp18]
+            str     x0, [fp, #0x28]    // [V37 tmp18]
             ; GC ptr vars +{V37}
             mov     x0, x28
             ldr     x2, [x28]
             ldr     x2, [x2, #0x58]
             ldr     x2, [x2, #0x20]
             blr     x2
-            str     x0, [fp, #0x10]    // [V57 tmp38]
+            str     x0, [fp, #0x18]    // [V57 tmp38]
             ; GC ptr vars +{V57}
-            ldr     x0, [fp, #0x20]    // [V37 tmp18]
+            ldr     x0, [fp, #0x28]    // [V37 tmp18]
             ldr     x2, [x0]
             ldr     x2, [x2, #0x58]
             ldr     x2, [x2, #0x20]
@@ -443,7 +435,7 @@ G_M48343_IG23:        ; bbWeight=4, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRe
             blr     x2
             mov     x1, x0
             ; gcrRegs +[x1]
-            ldr     x0, [fp, #0x10]    // [V57 tmp38]
+            ldr     x0, [fp, #0x18]    // [V57 tmp38]
             movz    x2, #0xD1FFAB1E      // code for Internal.TypeSystem.TypeDesc:op_Equality(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc):ubyte
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
@@ -727,7 +719,7 @@ G_M48343_IG40:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=28 bbWeight=0.50 PerfScore 3.50
 
-; Total bytes of code 1684, prolog size 32, PerfScore 829.50, instruction count 421, allocated bytes for code 1684 (MethodHash=11874328) for method ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
...

-4 (-0.20%) : 282535.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

@@ -12,14 +12,14 @@
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.DateTime>
 ;  V02 arg2         [V02,T30] (  8,  7   )   ubyte  ->  [fp+0x44]  EH-live single-def
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V04 loc1         [V04,T01] ( 11,116   )     ref  ->  x24         class-hnd <<unknown class>>
+;  V04 loc1         [V04,T05] (  8, 68   )     ref  ->  x24         class-hnd <<unknown class>>
 ;  V05 loc2         [V05,T28] (  3, 12   )     int  ->   x1        
-;  V06 loc3         [V06,T03] (  7,108   )     ref  ->   x2         class-hnd <System.Runtime.Caching.MemoryCacheEntry>
+;  V06 loc3         [V06,T02] (  7,108   )     ref  ->   x2         class-hnd <System.Runtime.Caching.MemoryCacheEntry>
 ;  V07 loc4         [V07,T14] (  5, 35   )     int  ->  [fp+0x40]  do-not-enreg[Z] EH-live
 ;  V08 loc5         [V08,T38] (  2,  5   )     ref  ->  x20         class-hnd exact single-def <System.Runtime.Caching.MemoryCacheStore>
 ;* V09 loc6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Runtime.Caching.ExpiresEntryRef>
 ;* V10 loc7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V11 loc8         [V11,T04] ( 16, 74   )     ref  ->  [fp+0x18]  class-hnd exact EH-live single-def <System.Runtime.Caching.ExpiresBucket>
+;  V11 loc8         [V11,T03] ( 16, 74   )     ref  ->  [fp+0x18]  class-hnd exact EH-live single-def <System.Runtime.Caching.ExpiresBucket>
 ;  V12 loc9         [V12    ] (  6,  6   )   ubyte  ->  [fp+0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;  V13 loc10        [V13,T26] (  4, 13   )     int  ->  x19        
 ;* V14 loc11        [V14,T47] (  0,  0   )     int  ->  zero-ref    do-not-enreg[M] EH-live
@@ -59,7 +59,7 @@
 ;  V48 tmp28        [V48,T32] (  6,  6   )     ref  ->  x19         class-hnd exact "Inlining Arg" <System.Runtime.Caching.MemoryCacheStore>
 ;  V49 tmp29        [V49,T31] (  5,  5   )    long  ->  x19         single-def "field V01._dateData (fldOffset=0x0)" P-INDEP
 ;  V50 tmp30        [V50,T15] (  5, 35   )     int  ->  [fp+0x2C]  do-not-enreg[Z] EH-live "field V03._ref (fldOffset=0x0)" P-INDEP
-;  V51 tmp31        [V51,T05] ( 13, 71   )     int  ->   x1         "field V09._ref (fldOffset=0x0)" P-INDEP
+;  V51 tmp31        [V51,T04] ( 13, 71   )     int  ->   x1         "field V09._ref (fldOffset=0x0)" P-INDEP
 ;  V52 tmp32        [V52,T20] (  4, 24   )     int  ->  registers   "field V10._ref (fldOffset=0x0)" P-INDEP
 ;  V53 tmp33        [V53,T16] (  2, 32   )     int  ->   x0         "field V21._ref (fldOffset=0x0)" P-INDEP
 ;* V54 tmp34        [V54    ] (  0,  0   )    long  ->  zero-ref    single-def "field V26._dateData (fldOffset=0x0)" P-INDEP
@@ -77,9 +77,9 @@
 ;  V66 tmp46        [V66,T10] (  3, 48   )     ref  ->   x0         "arr expr"
 ;  V67 PSPSym       [V67,T50] (  1,  1   )    long  ->  [fp+0x48]  do-not-enreg[V] "PSPSym"
 ;* V68 cse0         [V68,T51] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
-;  V69 cse1         [V69,T25] (  4, 16   )   byref  ->   x1         "CSE - moderate"
-;  V70 cse2         [V70,T11] (  3, 48   )    long  ->   x1         "CSE - aggressive"
-;  V71 cse3         [V71,T02] (  5,112   )    long  ->  x28         "CSE - aggressive"
+;  V69 cse1         [V69,T11] (  3, 48   )    long  ->   x1         "CSE - aggressive"
+;  V70 cse2         [V70,T01] (  5,112   )   byref  ->  x28         "CSE - aggressive"
+;  V71 cse3         [V71,T25] (  4, 16   )   byref  ->   x1         "CSE - moderate"
 ;  V72 cse4         [V72,T45] (  3,  3   )     ref  ->   x2         "CSE - moderate"
 ;  V73 cse5         [V73,T46] (  3,  3   )     ref  ->   x1         "CSE - moderate"
 ;  V74 cse6         [V74,T12] (  4, 44   )     int  ->  x25         "CSE - aggressive"
@@ -215,7 +215,7 @@ G_M744_IG10:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; GC ptr vars +{V11}
             str     wzr, [fp, #0x38]   // [V12 loc9]
                        ;; size=12 bbWeight=1 PerfScore 2.50
-G_M744_IG11:        ; bbWeight=1, gcVars=0000000000080010 {V00 V11}, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M744_IG11:        ; bbWeight=1, gcVars=0000000000080008 {V00 V11}, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0]
             ldrb    w1, [fp, #0x38]    // [V12 loc9]
             cbnz    w1, G_M744_IG15
@@ -266,9 +266,9 @@ G_M744_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M744_IG16:        ; bbWeight=1, gcVars=0000000000080010 {V00 V11}, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M744_IG16:        ; bbWeight=1, gcVars=0000000000080008 {V00 V11}, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x22]
-            ; GC ptr vars +{V04 V11}
+            ; GC ptr vars +{V11}
             mov     x0, x22
             ; gcrRegs +[x0]
             mov     x1, x19
@@ -350,16 +350,15 @@ G_M744_IG21:        ; bbWeight=4, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}
                        ;; size=40 bbWeight=4 PerfScore 44.00
 G_M744_IG22:        ; bbWeight=32, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
             ubfiz   x1, x27, #4, #32
-            add     x28, x1, #16
-            add     x1, x24, x28
-            ; byrRegs +[x1]
-            ldr     x2, [x1, #0x08]
+            add     x1, x1, #16
+            add     x28, x24, x1
+            ; byrRegs +[x28]
+            ldr     x2, [x28, #0x08]
             ; gcrRegs +[x2]
             cbz     x2, G_M744_IG26
                        ;; size=20 bbWeight=32 PerfScore 192.00
-G_M744_IG23:        ; bbWeight=16, gcrefRegs=1400004 {x2 x22 x24}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[x1]
-            ldr     x1, [x24, x28]
+G_M744_IG23:        ; bbWeight=16, gcrefRegs=1400004 {x2 x22 x24}, byrefRegs=10000000 {x28}, byref, isz
+            ldr     x1, [x28]
             mov     x0, x1
             and     x0, x0, #0xD1FFAB1E
             cmp     x0, x20
@@ -373,22 +372,21 @@ G_M744_IG23:        ; bbWeight=16, gcrefRegs=1400004 {x2 x22 x24}, byrefRegs=000
             ldr     x2, [x2]
             blr     x2
             ; gcrRegs -[x0]
+            ; byrRegs -[x28]
             ; gcr arg pop 0
             b       G_M744_IG25
                        ;; size=48 bbWeight=16 PerfScore 200.00
-G_M744_IG24:        ; bbWeight=16, gcrefRegs=1400004 {x2 x22 x24}, byrefRegs=0000 {}, byref
+G_M744_IG24:        ; bbWeight=16, gcrefRegs=1400004 {x2 x22 x24}, byrefRegs=10000000 {x28}, byref
             ; gcrRegs +[x2]
+            ; byrRegs +[x28]
             mov     w0, #255
             strb    w0, [x2, #0x30]
             ldr     w0, [x21]
             str     w0, [x2, #0x50]
-            add     x0, x24, x28
-            ; byrRegs +[x0]
-            mov     w1, #1
-            str     w1, [x0, #0x04]
+            mov     w0, #1
+            str     w0, [x28, #0x04]
             ldr     w0, [fp, #0x2C]    // [V50 tmp30]
-            ; byrRegs -[x0]
-            str     w0, [x24, x28]
+            str     w0, [x28]
             uxtb    w0, w27
             orr     w0, w0, w23,  LSL #8
             str     w0, [fp, #0x2C]    // [V50 tmp30]
@@ -398,9 +396,10 @@ G_M744_IG24:        ; bbWeight=16, gcrefRegs=1400004 {x2 x22 x24}, byrefRegs=000
             ldr     w0, [x22, #0x28]
             add     w0, w0, #1
             str     w0, [x22, #0x28]
-                       ;; size=72 bbWeight=16 PerfScore 336.00
+                       ;; size=68 bbWeight=16 PerfScore 328.00
 G_M744_IG25:        ; bbWeight=16, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x2]
+            ; byrRegs -[x28]
             sub     w26, w26, #1
             cbz     w26, G_M744_IG27
                        ;; size=8 bbWeight=16 PerfScore 24.00
@@ -431,7 +430,7 @@ G_M744_IG29:        ; bbWeight=1, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byr
                        ;; size=16 bbWeight=1 PerfScore 4.50
 G_M744_IG30:        ; bbWeight=1, gcVars=0000000000080000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x22]
-            ; GC ptr vars -{V04 V11}
+            ; GC ptr vars -{V11}
             ldrb    w0, [fp, #0x38]    // [V12 loc9]
             cbz     w0, G_M744_IG34
             ldr     x0, [fp, #0x20]    // [V00 this]
@@ -885,7 +884,7 @@ G_M744_IG66:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, f
             ret     lr
                        ;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1972, prolog size 52, PerfScore 1891.50, instruction count 493, allocated bytes for code 1972 (MethodHash=d871fd17) for method System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)
+; Total bytes of code 1968, prolog size 52, PerfScore 1883.50, instruction count 492, allocated bytes for code 1968 (MethodHash=d871fd17) for method System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -896,7 +895,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 395 (0x0018b) Actual length = 1580 (0x00062c)
+  Function Length   : 394 (0x0018a) Actual length = 1576 (0x000628)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+3.97%) : 292986.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

@@ -3,48 +3,48 @@
 ; FullOpts code
 ; optimized code
 ; fp based frame
-; fully interruptible
+; partially interruptible
 ; No matching PGO data
 ; 0 inlinees with PGO data; 6 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] ( 12,  7   )   byref  ->  x19         this single-def
-;  V01 arg1         [V01,T04] (  3,  3   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
+;  V00 this         [V00,T01] ( 12,  7   )   byref  ->  x19         this single-def
+;  V01 arg1         [V01,T02] (  3,  3   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
-;  V03 loc1         [V03,T02] (  9, 12   )     int  ->  x21        
+;  V03 loc1         [V03,T03] (  9,  4.75)     int  ->  x21        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[int]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [fp+0x30]  do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Decimal>
-;  V09 tmp4         [V09,T05] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V10 tmp5         [V10,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V09 tmp4         [V09,T04] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V10 tmp5         [V10,T10] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
-;  V13 tmp8         [V13,T18] (  2,  1   )     int  ->   x0        
-;  V14 tmp9         [V14,T06] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V15 tmp10        [V15,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V16 tmp11        [V16,T07] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V17 tmp12        [V17,T13] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V18 tmp13        [V18,T14] (  2,  2   )     int  ->   x1         "impAppendStmt"
+;  V13 tmp8         [V13,T17] (  2,  1   )     int  ->   x0        
+;  V14 tmp9         [V14,T05] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V15 tmp10        [V15,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V16 tmp11        [V16,T06] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V17 tmp12        [V17,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V18 tmp13        [V18,T13] (  2,  2   )     int  ->   x1         "impAppendStmt"
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    ptr
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp18        [V23,T19] (  2,  1   )     int  ->   x0        
+;  V23 tmp18        [V23,T18] (  2,  1   )     int  ->   x0        
 ;  V24 tmp19        [V24    ] (  6, 11   )  struct (16) [fp+0x10]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
-;  V25 tmp20        [V25,T09] (  3,  2.50)     int  ->   x1         "Inline stloc first use temp"
+;  V25 tmp20        [V25,T08] (  3,  2.50)     int  ->   x1         "Inline stloc first use temp"
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Decimal>
 ;* V28 tmp23        [V28    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V29 tmp24        [V29    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V30 tmp25        [V30    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;  V31 tmp26        [V31,T01] ( 12, 12   )   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V32 tmp27        [V32,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp26        [V31,T00] ( 14,  9.50)   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V32 tmp27        [V32,T19] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp28        [V33    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V34 tmp29        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V35 tmp30        [V35,T10] (  2,  2   )   byref  ->  x20         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V36 tmp31        [V36,T21] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
+;  V35 tmp30        [V35,T09] (  2,  2   )   byref  ->  x20         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V36 tmp31        [V36,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V37 tmp32        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V08._flags (fldOffset=0x0)" P-INDEP
 ;* V38 tmp33        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V08._hi32 (fldOffset=0x4)" P-INDEP
 ;* V39 tmp34        [V39    ] (  0,  0   )    long  ->  zero-ref    "field V08._lo64 (fldOffset=0x8)" P-INDEP
@@ -53,12 +53,11 @@
 ;  V42 tmp37        [V42    ] (  3,  4   )    long  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V24._lo64 (fldOffset=0x8)" P-DEP
 ;* V43 tmp38        [V43    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V44 tmp39        [V44    ] (  0,  0   )     int  ->  zero-ref    ptr "field V26._length (fldOffset=0x8)" P-INDEP
-;  V45 tmp40        [V45,T15] (  2,  2   )     int  ->  x13         "field V27._flags (fldOffset=0x0)" P-INDEP
-;  V46 tmp41        [V46,T16] (  2,  2   )     int  ->  x14         "field V27._hi32 (fldOffset=0x4)" P-INDEP
-;  V47 tmp42        [V47,T08] (  3,  3   )    long  ->  x12         "field V27._lo64 (fldOffset=0x8)" P-INDEP
+;  V45 tmp40        [V45,T14] (  2,  2   )     int  ->  x13         "field V27._flags (fldOffset=0x0)" P-INDEP
+;  V46 tmp41        [V46,T15] (  2,  2   )     int  ->  x14         "field V27._hi32 (fldOffset=0x4)" P-INDEP
+;  V47 tmp42        [V47,T07] (  3,  3   )    long  ->  x12         "field V27._lo64 (fldOffset=0x8)" P-INDEP
 ;  V48 GsCookie     [V48    ] (  1,  1   )    long  ->  [fp+0x40]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V49 cse0         [V49,T17] (  3,  1.50)     int  ->   x1         "CSE - moderate"
-;  V50 cse1         [V50,T00] (  4, 14   )     int  ->  x13         "CSE - aggressive"
+;  V49 cse0         [V49,T16] (  3,  1.50)     int  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 56
 
@@ -95,7 +94,6 @@ G_M46478_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19
             movk    x3, #1 LSL #32
             ldr     x3, [x3]
             blr     x3
-            ; gcr arg pop 0
                        ;; size=36 bbWeight=0.50 PerfScore 4.00
 G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
             ldp     w13, w14, [fp, #0x10]  // [V40 tmp35], [V41 tmp36]
@@ -107,30 +105,48 @@ G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20
             mov     w21, #3
             b       G_M46478_IG06
                        ;; size=32 bbWeight=1 PerfScore 9.50
-G_M46478_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sxtw    w21, w13
-            cmp     w21, #0
-            ble     G_M46478_IG07
-                       ;; size=12 bbWeight=2 PerfScore 4.00
-G_M46478_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sub     w13, w21, #1
-            cmp     w13, #4
-            bhs     G_M46478_IG17
-            ldr     w14, [x20, w13, UXTW #2]
-            cbz     w14, G_M46478_IG05
-                       ;; size=20 bbWeight=4 PerfScore 24.00
-G_M46478_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            cbnz    w21, G_M46478_IG11
+G_M46478_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, #2
+            b       G_M46478_IG09
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20, #0x08]
+            cbz     w13, G_M46478_IG05
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG07:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG13
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG08:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, #1
+            b       G_M46478_IG12
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20, #0x04]
+            cbz     w13, G_M46478_IG08
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG10:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG13
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG11:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, wzr
+            b       G_M46478_IG13
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20]
+            cbz     w13, G_M46478_IG11
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            cbnz    w21, G_M46478_IG17
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M46478_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             ; byrRegs -[x20]
             movz    x13, #0xD1FFAB1E
             movk    x13, #0xD1FFAB1E LSL #16
             movk    x13, #1 LSL #32
             ldr     w13, [x13]
-            tbz     w13, #0, G_M46478_IG18
+            tbz     w13, #0, G_M46478_IG24
                        ;; size=20 bbWeight=0.50 PerfScore 2.75
-G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             movz    x13, #0xD1FFAB1E      // box for <unknown class>:<unknown field>
             movk    x13, #0xD1FFAB1E LSL #16
             movk    x13, #2 LSL #32
@@ -151,24 +167,23 @@ G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             movk    xip0, #0xD1FFAB1E LSL #48
             ldr     xip1, [fp, #0x40]  // [V48 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG10
+            beq     G_M46478_IG16
             bl      CORINFO_HELP_FAIL_FAST
             ; byrRegs -[x13-x14]
-            ; gcr arg pop 0
                        ;; size=68 bbWeight=0.50 PerfScore 8.50
-G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x21, [sp, #0x58]
             ldp     x19, x20, [sp, #0x48]
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M46478_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG17:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             cmp     w21, #1
-            bne     G_M46478_IG13
+            bne     G_M46478_IG19
             ldr     w1, [x20]
             cmp     w1, #0
-            ble     G_M46478_IG13
+            ble     G_M46478_IG19
             str     w1, [x19, #0x08]
             ldr     w1, [x19, #0x08]
             ldr     w0, [x20, #0x0C]
@@ -185,18 +200,17 @@ G_M46478_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             movk    xip0, #0xD1FFAB1E LSL #48
             ldr     xip1, [fp, #0x40]  // [V48 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG12
+            beq     G_M46478_IG18
             bl      CORINFO_HELP_FAIL_FAST
             ; byrRegs -[x19-x20]
-            ; gcr arg pop 0
                        ;; size=92 bbWeight=0.50 PerfScore 12.75
-G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG18:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x21, [sp, #0x58]
             ldp     x19, x20, [sp, #0x48]
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG19:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             sxtw    x1, w21
             movz    x0, #0xD1FFAB1E
@@ -204,7 +218,6 @@ G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             movk    x0, #1 LSL #32
             bl      CORINFO_HELP_NEWARR_1_VC
             ; gcrRegs +[x0]
-            ; gcr arg pop 0
             mov     x15, x0
             ; gcrRegs +[x15]
             mov     x14, x19
@@ -217,30 +230,30 @@ G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     w1, [x20]
             ldr     w2, [x0, #0x08]
             cmp     w2, #0
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x10]
             cmp     w21, #1
-            ble     G_M46478_IG14
+            ble     G_M46478_IG20
             ldr     x0, [x19]
             ldr     w1, [x20, #0x04]
             ldr     w2, [x0, #0x08]
             cmp     w2, #1
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x14]
                        ;; size=88 bbWeight=0.50 PerfScore 14.75
-G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+G_M46478_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
             ; gcrRegs -[x0]
             cmp     w21, #2
-            ble     G_M46478_IG15
+            ble     G_M46478_IG21
             ldr     x0, [x19]
             ; gcrRegs +[x0]
             ldr     w1, [x20, #0x08]
             ldr     w2, [x0, #0x08]
             cmp     w2, #2
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x18]
...

libraries_tests.run.osx.arm64.Release.mch

-28 (-3.24%) : 372510.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)

@@ -9,47 +9,48 @@
 ; 3 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
+;  V00 this         [V00,T06] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
 ;  V01 RetBuf       [V01,T00] (  6,  6   )   byref  ->  x19         single-def
-;  V02 arg1         [V02,T04] ( 11,  4.02)     ref  ->  x21         ld-addr-op class-hnd <System.String>
+;  V02 arg1         [V02,T05] ( 11,  4.02)     ref  ->  x21         ld-addr-op class-hnd <System.String>
 ;  V03 arg2         [V03,T01] (  6,  5.56)     int  ->  x20        
-;  V04 arg3         [V04,T06] (  4,  3.90)     ref  ->  x23         class-hnd single-def <System.Type[]>
-;  V05 arg4         [V05,T12] (  3,  2.02)   ubyte  ->  x24         single-def
-;  V06 loc0         [V06,T18] (  3,  2.41)   ubyte  ->  x25         ld-addr-op
-;  V07 loc1         [V07,T21] (  3,  1.01)   ubyte  ->  x26         ld-addr-op
-;  V08 loc2         [V08,T20] (  4,  2   )     int  ->  x27         ld-addr-op
-;  V09 loc3         [V09,T17] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
+;  V04 arg3         [V04,T07] (  4,  3.90)     ref  ->  x23         class-hnd single-def <System.Type[]>
+;  V05 arg4         [V05,T13] (  3,  2.02)   ubyte  ->  x24         single-def
+;  V06 loc0         [V06,T19] (  3,  2.41)   ubyte  ->  x25         ld-addr-op
+;  V07 loc1         [V07,T22] (  3,  1.01)   ubyte  ->  x26         ld-addr-op
+;  V08 loc2         [V08,T21] (  4,  2   )     int  ->  x27         ld-addr-op
+;  V09 loc3         [V09,T18] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
 ;  V10 loc4         [V10    ] (  9,  9.41)  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]>
 ;  V11 loc5         [V11,T02] (  5,  7.18)     int  ->  x24        
-;  V12 loc6         [V12,T03] (  7,  5.96)     ref  ->  x27         class-hnd exact <System.Reflection.RuntimePropertyInfo>
+;  V12 loc6         [V12,T04] (  7,  5.96)     ref  ->  [fp+0x10]  class-hnd exact spill-single-def <System.Reflection.RuntimePropertyInfo>
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V16 tmp3         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
-;  V18 tmp5         [V18,T11] (  5,  4.04)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
-;  V19 tmp6         [V19,T07] (  5,  5   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
-;  V20 tmp7         [V20,T13] (  2,  4   )     ref  ->   x0         class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
+;  V18 tmp5         [V18,T12] (  5,  4.04)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
+;  V19 tmp6         [V19,T08] (  5,  5   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;  V20 tmp7         [V20,T14] (  2,  4   )     ref  ->   x0         class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
 ;* V21 tmp8         [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.RuntimeType+RuntimeTypeCache>
 ;* V22 tmp9         [V22    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp10        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V24 tmp11        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V25 tmp12        [V25,T10] (  4,  4.14)   byref  ->  x22         single-def "Inlining Arg"
+;  V25 tmp12        [V25,T11] (  4,  4.14)   byref  ->  x22         single-def "Inlining Arg"
 ;* V26 tmp13        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;* V27 tmp14        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
-;  V28 tmp15        [V28,T15] (  7,  3.14)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V29 tmp16        [V29,T23] (  4,  0.28)     ref  ->  x28         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V28 tmp15        [V28,T16] (  7,  3.14)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V29 tmp16        [V29,T24] (  4,  0.28)     ref  ->  x28         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V30 tmp17        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V31 tmp18        [V31,T14] (  2,  4   )     int  ->   x1         "Inlining Arg"
+;  V31 tmp18        [V31,T15] (  2,  4   )     int  ->   x1         "Inlining Arg"
 ;  V32 tmp19        [V32    ] (  3,  3.41)     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V10._items (fldOffset=0x0)" P-DEP
 ;  V33 tmp20        [V33    ] (  3,  3.41)     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V10._item (fldOffset=0x8)" P-DEP
 ;  V34 tmp21        [V34    ] (  3,  3.41)     int  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V10._count (fldOffset=0x10)" P-DEP
 ;  V35 tmp22        [V35    ] (  3,  3.41)     int  ->  [fp+0x2C]  do-not-enreg[X] addr-exposed "field V10._capacity (fldOffset=0x14)" P-DEP
-;* V36 tmp23        [V36,T22] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V37 cse0         [V37,T08] (  3,  4.63)     int  ->   x0         "CSE - aggressive"
-;  V38 cse1         [V38,T16] (  3,  3   )    long  ->   x0         "CSE - moderate"
-;  V39 cse2         [V39,T09] (  4,  4.54)     int  ->  x22         "CSE - aggressive"
-;  V40 cse3         [V40,T19] (  2,  2.15)   byref  ->  x28         hoist "CSE - moderate"
+;* V36 tmp23        [V36,T23] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V37 cse0         [V37,T09] (  3,  4.63)     int  ->   x0         "CSE - aggressive"
+;  V38 cse1         [V38,T17] (  3,  3   )    long  ->   x0         "CSE - moderate"
+;  V39 cse2         [V39,T03] ( 10,  6.53)    long  ->  x27         hoist multi-def "CSE - aggressive"
+;  V40 cse3         [V40,T10] (  4,  4.54)     int  ->  x22         "CSE - moderate"
+;  V41 cse4         [V41,T20] (  2,  2.15)   byref  ->  x28         hoist "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -212,7 +213,7 @@ G_M37807_IG12:        ; bbWeight=0.04, gcrefRegs=1A00000 {x21 x23 x24}, byrefReg
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15 x24]
             ; byrRegs -[x14]
-            cbz     x22, G_M37807_IG27
+            cbz     x22, G_M37807_IG28
             mov     x0, x22
             ; byrRegs +[x0]
             mov     x1, x28
@@ -246,30 +247,36 @@ G_M37807_IG13:        ; bbWeight=1, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=800
             stp     wzr, w1, [fp, #0x28]   // [V34 tmp21], [V35 tmp22]
             mov     w24, wzr
             cmp     w22, #0
-            ble     G_M37807_IG25
+            ble     G_M37807_IG26
                        ;; size=68 bbWeight=1 PerfScore 18.00
 G_M37807_IG14:        ; bbWeight=0.61, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=80000 {x19}, byref
             add     x28, x0, #16
             ; byrRegs +[x28]
-                       ;; size=4 bbWeight=0.61 PerfScore 0.30
+            movz    x27, #0xD1FFAB1E
+            movk    x27, #0xD1FFAB1E LSL #16
+            movk    x27, #1 LSL #32
+                       ;; size=16 bbWeight=0.61 PerfScore 1.21
 G_M37807_IG15:        ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=10080000 {x19 x28}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x27, [x28, w24, UXTW #3]
-            ; gcrRegs +[x27]
-            ldr     w0, [x27, #0x58]
+            ldr     x2, [x28, w24, UXTW #3]
+            ; gcrRegs +[x2]
+            str     x2, [fp, #0x10]    // [V12 loc6]
+            ; GC ptr vars +{V12}
+            ldr     w0, [x2, #0x58]
             and     w1, w20, w0
             cmp     w1, w0
             bne     G_M37807_IG22
-                       ;; size=20 bbWeight=1.54 PerfScore 12.35
-G_M37807_IG16:        ; bbWeight=1.41, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10080000 {x19 x28}, byref, isz
+                       ;; size=24 bbWeight=1.54 PerfScore 13.90
+G_M37807_IG16:        ; bbWeight=1.41, gcVars=0000000000000010 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10080000 {x19 x28}, gcvars, byref, isz
             cbz     w25, G_M37807_IG18
                        ;; size=4 bbWeight=1.41 PerfScore 1.41
-G_M37807_IG17:        ; bbWeight=0, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10080000 {x19 x28}, byref, isz
-            mov     x0, x27
+G_M37807_IG17:        ; bbWeight=0, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10080000 {x19 x28}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
             mov     x1, x21
             ; gcrRegs +[x1]
             mov     w2, w26
+            ; gcrRegs -[x2]
             movz    x3, #0xD1FFAB1E      // code for System.RuntimeType:FilterApplyPrefixLookup(System.Reflection.MemberInfo,System.String,ubyte):ubyte
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
@@ -277,28 +284,26 @@ G_M37807_IG17:        ; bbWeight=0, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=1
             blr     x3
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbz     w0, G_M37807_IG28
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            cbz     w0, G_M37807_IG29
+            mov     x0, x27
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=52 bbWeight=0 PerfScore 0.00
-G_M37807_IG18:        ; bbWeight=1.41, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10080000 {x19 x28}, byref, isz
-            cbz     x23, G_M37807_IG21
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
+            ; gcrRegs +[x2]
+                       ;; size=48 bbWeight=0 PerfScore 0.00
+G_M37807_IG18:        ; bbWeight=1.41, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10080000 {x19 x28}, byref, isz
+            cbz     x23, G_M37807_IG24
                        ;; size=4 bbWeight=1.41 PerfScore 1.41
-G_M37807_IG19:        ; bbWeight=0.49, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10080000 {x19 x28}, byref, isz
-            mov     x0, x27
+G_M37807_IG19:        ; bbWeight=0.49, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10080000 {x19 x28}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #1 LSL #32
+            add     x1, x27, #8
             bl      CORINFO_HELP_CLASSPROFILE32
-            ; gcrRegs -[x0]
+            ; gcrRegs -[x0 x2]
             ; gcr arg pop 0
-            mov     x0, x27
+            ldr     x0, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x0]
-            ldr     x1, [x27]
+            ldr     x1, [x0]
             ldr     x1, [x1, #0x58]
             ldr     x1, [x1, #0x18]
             blr     x1
@@ -307,23 +312,19 @@ G_M37807_IG19:        ; bbWeight=0.49, gcrefRegs=8A00000 {x21 x23 x27}, byrefReg
             ; gcrRegs -[x0]
             ldr     w1, [x23, #0x08]
             cmp     w0, w1
-            bne     G_M37807_IG24
-                       ;; size=56 bbWeight=0.49 PerfScore 10.22
-G_M37807_IG20:        ; bbWeight=0.24, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10080000 {x19 x28}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            bne     G_M37807_IG25
+                       ;; size=48 bbWeight=0.49 PerfScore 10.46
+G_M37807_IG20:        ; bbWeight=0.24, gcrefRegs=A00000 {x21 x23}, byrefRegs=10080000 {x19 x28}, byref
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.24 PerfScore 0.61
-G_M37807_IG21:        ; bbWeight=1.41, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10080000 {x19 x28}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+                       ;; size=8 bbWeight=0.24 PerfScore 0.36
+G_M37807_IG21:        ; bbWeight=1.41, gcrefRegs=A00000 {x21 x23}, byrefRegs=10080000 {x19 x28}, byref
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     x0, fp, #24    // [V10 loc4]
-            mov     x2, x27
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x2]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -332,41 +333,45 @@ G_M37807_IG21:        ; bbWeight=1.41, gcrefRegs=8A00000 {x21 x23 x27}, byrefReg
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
             ldr     x3, [x3]
+            ; GC ptr vars -{V12}
             blr     x3
-            ; gcrRegs -[x2 x27]
+            ; gcrRegs -[x2]
             ; gcr arg pop 0
-                       ;; size=56 bbWeight=1.41 PerfScore 14.80
+                       ;; size=48 bbWeight=1.41 PerfScore 15.50
 G_M37807_IG22:        ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=10080000 {x19 x28}, byref, isz
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     w24, w24, #1
             cmp     w22, w24
             bgt     G_M37807_IG15
-                       ;; size=28 bbWeight=1.54 PerfScore 6.95
+                       ;; size=20 bbWeight=1.54 PerfScore 5.41
 G_M37807_IG23:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
             ; gcrRegs -[x21 x23]
             ; byrRegs -[x28]
-            b       G_M37807_IG25
+            b       G_M37807_IG26
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M37807_IG24:        ; bbWeight=0.24, gcrefRegs=A00000 {x21 x23}, byrefRegs=10080000 {x19 x28}, byref
-            ; gcrRegs +[x21 x23]
+G_M37807_IG24:        ; bbWeight=0.70, gcVars=0000000000000010 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10080000 {x19 x28}, gcvars, byref
+            ; gcrRegs +[x2 x21 x23]
             ; byrRegs +[x28]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            ; GC ptr vars +{V04 V12}
+            b       G_M37807_IG21
+                       ;; size=4 bbWeight=0.70 PerfScore 0.70
+G_M37807_IG25:        ; bbWeight=0.24, gcVars=0000000000000000 {}, gcrefRegs=A00000 {x21 x23}, byrefRegs=10080000 {x19 x28}, gcvars, byref
+            ; gcrRegs -[x2]
+            ; GC ptr vars -{V04 V12}
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             b       G_M37807_IG22
-                       ;; size=20 bbWeight=0.24 PerfScore 0.85
-G_M37807_IG25:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+                       ;; size=12 bbWeight=0.24 PerfScore 0.61
+G_M37807_IG26:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
...

-28 (-3.24%) : 119991.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)

@@ -9,47 +9,48 @@
 ; 3 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
+;  V00 this         [V00,T06] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
 ;  V01 RetBuf       [V01,T00] (  6,  6   )   byref  ->  x19         single-def
-;  V02 arg1         [V02,T04] ( 11,  4.00)     ref  ->  x21         ld-addr-op class-hnd <System.String>
+;  V02 arg1         [V02,T05] ( 11,  4.00)     ref  ->  x21         ld-addr-op class-hnd <System.String>
 ;  V03 arg2         [V03,T01] (  6,  5.62)     int  ->  x20        
-;  V04 arg3         [V04,T06] (  4,  3.90)     ref  ->  x23         class-hnd single-def <System.Type[]>
-;  V05 arg4         [V05,T12] (  3,  2.08)   ubyte  ->  x24         single-def
-;  V06 loc0         [V06,T18] (  3,  2.41)   ubyte  ->  x25         ld-addr-op
-;  V07 loc1         [V07,T22] (  3,  1.00)   ubyte  ->  x26         ld-addr-op
-;  V08 loc2         [V08,T20] (  4,  2   )     int  ->  x27         ld-addr-op
-;  V09 loc3         [V09,T17] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
+;  V04 arg3         [V04,T07] (  4,  3.90)     ref  ->  x23         class-hnd single-def <System.Type[]>
+;  V05 arg4         [V05,T13] (  3,  2.08)   ubyte  ->  x24         single-def
+;  V06 loc0         [V06,T19] (  3,  2.41)   ubyte  ->  x25         ld-addr-op
+;  V07 loc1         [V07,T23] (  3,  1.00)   ubyte  ->  x26         ld-addr-op
+;  V08 loc2         [V08,T21] (  4,  2   )     int  ->  x27         ld-addr-op
+;  V09 loc3         [V09,T18] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
 ;  V10 loc4         [V10    ] (  9,  9.41)  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]>
 ;  V11 loc5         [V11,T02] (  5,  7.18)     int  ->  x24        
-;  V12 loc6         [V12,T03] (  7,  5.96)     ref  ->  x27         class-hnd exact <System.Reflection.RuntimePropertyInfo>
+;  V12 loc6         [V12,T04] (  7,  5.96)     ref  ->  [fp+0x10]  class-hnd exact spill-single-def <System.Reflection.RuntimePropertyInfo>
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V16 tmp3         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
-;  V18 tmp5         [V18,T11] (  5,  4.14)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
-;  V19 tmp6         [V19,T07] (  5,  5   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
-;  V20 tmp7         [V20,T13] (  2,  4   )     ref  ->   x0         class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
+;  V18 tmp5         [V18,T12] (  5,  4.14)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
+;  V19 tmp6         [V19,T08] (  5,  5   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;  V20 tmp7         [V20,T14] (  2,  4   )     ref  ->   x0         class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
 ;* V21 tmp8         [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.RuntimeType+RuntimeTypeCache>
 ;* V22 tmp9         [V22    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp10        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V24 tmp11        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V25 tmp12        [V25,T09] (  4,  4.55)   byref  ->  x22         single-def "Inlining Arg"
+;  V25 tmp12        [V25,T10] (  4,  4.55)   byref  ->  x22         single-def "Inlining Arg"
 ;* V26 tmp13        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;* V27 tmp14        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
-;  V28 tmp15        [V28,T15] (  7,  3.55)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V29 tmp16        [V29,T21] (  4,  1.10)     ref  ->  x28         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V28 tmp15        [V28,T16] (  7,  3.55)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V29 tmp16        [V29,T22] (  4,  1.10)     ref  ->  x28         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V30 tmp17        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V31 tmp18        [V31,T14] (  2,  4   )     int  ->   x1         "Inlining Arg"
+;  V31 tmp18        [V31,T15] (  2,  4   )     int  ->   x1         "Inlining Arg"
 ;  V32 tmp19        [V32    ] (  3,  3.41)     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V10._items (fldOffset=0x0)" P-DEP
 ;  V33 tmp20        [V33    ] (  3,  3.41)     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V10._item (fldOffset=0x8)" P-DEP
 ;  V34 tmp21        [V34    ] (  3,  3.41)     int  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V10._count (fldOffset=0x10)" P-DEP
 ;  V35 tmp22        [V35    ] (  3,  3.41)     int  ->  [fp+0x2C]  do-not-enreg[X] addr-exposed "field V10._capacity (fldOffset=0x14)" P-DEP
-;* V36 tmp23        [V36,T23] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V37 cse0         [V37,T08] (  3,  4.63)     int  ->   x0         "CSE - aggressive"
-;  V38 cse1         [V38,T16] (  3,  3   )    long  ->   x0         "CSE - moderate"
-;  V39 cse2         [V39,T10] (  4,  4.54)     int  ->  x22         "CSE - aggressive"
-;  V40 cse3         [V40,T19] (  2,  2.15)   byref  ->  x28         hoist "CSE - moderate"
+;* V36 tmp23        [V36,T24] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V37 cse0         [V37,T09] (  3,  4.63)     int  ->   x0         "CSE - aggressive"
+;  V38 cse1         [V38,T17] (  3,  3   )    long  ->   x0         "CSE - moderate"
+;  V39 cse2         [V39,T03] ( 10,  6.53)    long  ->  x27         hoist multi-def "CSE - aggressive"
+;  V40 cse3         [V40,T11] (  4,  4.54)     int  ->  x22         "CSE - moderate"
+;  V41 cse4         [V41,T20] (  2,  2.15)   byref  ->  x28         hoist "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -212,7 +213,7 @@ G_M37807_IG12:        ; bbWeight=0.14, gcrefRegs=1A00000 {x21 x23 x24}, byrefReg
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15 x24]
             ; byrRegs -[x14]
-            cbz     x22, G_M37807_IG27
+            cbz     x22, G_M37807_IG28
             mov     x0, x22
             ; byrRegs +[x0]
             mov     x1, x28
@@ -246,30 +247,36 @@ G_M37807_IG13:        ; bbWeight=1, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=800
             stp     wzr, w1, [fp, #0x28]   // [V34 tmp21], [V35 tmp22]
             mov     w24, wzr
             cmp     w22, #0
-            ble     G_M37807_IG25
+            ble     G_M37807_IG26
                        ;; size=68 bbWeight=1 PerfScore 18.00
 G_M37807_IG14:        ; bbWeight=0.61, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=80000 {x19}, byref
             add     x28, x0, #16
             ; byrRegs +[x28]
-                       ;; size=4 bbWeight=0.61 PerfScore 0.30
+            movz    x27, #0xD1FFAB1E
+            movk    x27, #0xD1FFAB1E LSL #16
+            movk    x27, #1 LSL #32
+                       ;; size=16 bbWeight=0.61 PerfScore 1.21
 G_M37807_IG15:        ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=10080000 {x19 x28}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x27, [x28, w24, UXTW #3]
-            ; gcrRegs +[x27]
-            ldr     w0, [x27, #0x58]
+            ldr     x2, [x28, w24, UXTW #3]
+            ; gcrRegs +[x2]
+            str     x2, [fp, #0x10]    // [V12 loc6]
+            ; GC ptr vars +{V12}
+            ldr     w0, [x2, #0x58]
             and     w1, w20, w0
             cmp     w1, w0
             bne     G_M37807_IG22
-                       ;; size=20 bbWeight=1.54 PerfScore 12.35
-G_M37807_IG16:        ; bbWeight=1.41, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10080000 {x19 x28}, byref, isz
+                       ;; size=24 bbWeight=1.54 PerfScore 13.90
+G_M37807_IG16:        ; bbWeight=1.41, gcVars=0000000000000010 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10080000 {x19 x28}, gcvars, byref, isz
             cbz     w25, G_M37807_IG18
                        ;; size=4 bbWeight=1.41 PerfScore 1.41
-G_M37807_IG17:        ; bbWeight=0, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10080000 {x19 x28}, byref, isz
-            mov     x0, x27
+G_M37807_IG17:        ; bbWeight=0, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10080000 {x19 x28}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
             mov     x1, x21
             ; gcrRegs +[x1]
             mov     w2, w26
+            ; gcrRegs -[x2]
             movz    x3, #0xD1FFAB1E      // code for System.RuntimeType:FilterApplyPrefixLookup(System.Reflection.MemberInfo,System.String,ubyte):ubyte
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
@@ -277,28 +284,26 @@ G_M37807_IG17:        ; bbWeight=0, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=1
             blr     x3
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbz     w0, G_M37807_IG28
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            cbz     w0, G_M37807_IG29
+            mov     x0, x27
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=52 bbWeight=0 PerfScore 0.00
-G_M37807_IG18:        ; bbWeight=1.41, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10080000 {x19 x28}, byref, isz
-            cbz     x23, G_M37807_IG21
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
+            ; gcrRegs +[x2]
+                       ;; size=48 bbWeight=0 PerfScore 0.00
+G_M37807_IG18:        ; bbWeight=1.41, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10080000 {x19 x28}, byref, isz
+            cbz     x23, G_M37807_IG24
                        ;; size=4 bbWeight=1.41 PerfScore 1.41
-G_M37807_IG19:        ; bbWeight=0.49, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10080000 {x19 x28}, byref, isz
-            mov     x0, x27
+G_M37807_IG19:        ; bbWeight=0.49, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10080000 {x19 x28}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #1 LSL #32
+            add     x1, x27, #8
             bl      CORINFO_HELP_CLASSPROFILE32
-            ; gcrRegs -[x0]
+            ; gcrRegs -[x0 x2]
             ; gcr arg pop 0
-            mov     x0, x27
+            ldr     x0, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x0]
-            ldr     x1, [x27]
+            ldr     x1, [x0]
             ldr     x1, [x1, #0x58]
             ldr     x1, [x1, #0x18]
             blr     x1
@@ -307,23 +312,19 @@ G_M37807_IG19:        ; bbWeight=0.49, gcrefRegs=8A00000 {x21 x23 x27}, byrefReg
             ; gcrRegs -[x0]
             ldr     w1, [x23, #0x08]
             cmp     w0, w1
-            bne     G_M37807_IG24
-                       ;; size=56 bbWeight=0.49 PerfScore 10.22
-G_M37807_IG20:        ; bbWeight=0.24, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10080000 {x19 x28}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            bne     G_M37807_IG25
+                       ;; size=48 bbWeight=0.49 PerfScore 10.46
+G_M37807_IG20:        ; bbWeight=0.24, gcrefRegs=A00000 {x21 x23}, byrefRegs=10080000 {x19 x28}, byref
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.24 PerfScore 0.61
-G_M37807_IG21:        ; bbWeight=1.41, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10080000 {x19 x28}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+                       ;; size=8 bbWeight=0.24 PerfScore 0.36
+G_M37807_IG21:        ; bbWeight=1.41, gcrefRegs=A00000 {x21 x23}, byrefRegs=10080000 {x19 x28}, byref
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     x0, fp, #24    // [V10 loc4]
-            mov     x2, x27
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x2]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -332,41 +333,45 @@ G_M37807_IG21:        ; bbWeight=1.41, gcrefRegs=8A00000 {x21 x23 x27}, byrefReg
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
             ldr     x3, [x3]
+            ; GC ptr vars -{V12}
             blr     x3
-            ; gcrRegs -[x2 x27]
+            ; gcrRegs -[x2]
             ; gcr arg pop 0
-                       ;; size=56 bbWeight=1.41 PerfScore 14.80
+                       ;; size=48 bbWeight=1.41 PerfScore 15.50
 G_M37807_IG22:        ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=10080000 {x19 x28}, byref, isz
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     w24, w24, #1
             cmp     w22, w24
             bgt     G_M37807_IG15
-                       ;; size=28 bbWeight=1.54 PerfScore 6.95
+                       ;; size=20 bbWeight=1.54 PerfScore 5.41
 G_M37807_IG23:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
             ; gcrRegs -[x21 x23]
             ; byrRegs -[x28]
-            b       G_M37807_IG25
+            b       G_M37807_IG26
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M37807_IG24:        ; bbWeight=0.24, gcrefRegs=A00000 {x21 x23}, byrefRegs=10080000 {x19 x28}, byref
-            ; gcrRegs +[x21 x23]
+G_M37807_IG24:        ; bbWeight=0.70, gcVars=0000000000000010 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10080000 {x19 x28}, gcvars, byref
+            ; gcrRegs +[x2 x21 x23]
             ; byrRegs +[x28]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            ; GC ptr vars +{V04 V12}
+            b       G_M37807_IG21
+                       ;; size=4 bbWeight=0.70 PerfScore 0.70
+G_M37807_IG25:        ; bbWeight=0.24, gcVars=0000000000000000 {}, gcrefRegs=A00000 {x21 x23}, byrefRegs=10080000 {x19 x28}, gcvars, byref
+            ; gcrRegs -[x2]
+            ; GC ptr vars -{V04 V12}
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             b       G_M37807_IG22
-                       ;; size=20 bbWeight=0.24 PerfScore 0.85
-G_M37807_IG25:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+                       ;; size=12 bbWeight=0.24 PerfScore 0.61
+G_M37807_IG26:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
...

-28 (-3.24%) : 222707.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)

@@ -9,47 +9,48 @@
 ; 3 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
+;  V00 this         [V00,T06] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
 ;  V01 RetBuf       [V01,T00] (  6,  6   )   byref  ->  x19         single-def
-;  V02 arg1         [V02,T04] ( 11,  4   )     ref  ->  x21         ld-addr-op class-hnd <System.String>
+;  V02 arg1         [V02,T05] ( 11,  4   )     ref  ->  x21         ld-addr-op class-hnd <System.String>
 ;  V03 arg2         [V03,T01] (  6,  5.56)     int  ->  x20        
-;  V04 arg3         [V04,T06] (  4,  3.90)     ref  ->  x23         class-hnd single-def <System.Type[]>
-;  V05 arg4         [V05,T13] (  3,  2.02)   ubyte  ->  x24         single-def
-;  V06 loc0         [V06,T18] (  3,  2.41)   ubyte  ->  x25         ld-addr-op
-;  V07 loc1         [V07,T22] (  3,  1   )   ubyte  ->  x26         ld-addr-op
-;  V08 loc2         [V08,T21] (  4,  2   )     int  ->  x27         ld-addr-op
-;  V09 loc3         [V09,T17] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
+;  V04 arg3         [V04,T07] (  4,  3.90)     ref  ->  x23         class-hnd single-def <System.Type[]>
+;  V05 arg4         [V05,T14] (  3,  2.02)   ubyte  ->  x24         single-def
+;  V06 loc0         [V06,T19] (  3,  2.41)   ubyte  ->  x25         ld-addr-op
+;  V07 loc1         [V07,T23] (  3,  1   )   ubyte  ->  x26         ld-addr-op
+;  V08 loc2         [V08,T22] (  4,  2   )     int  ->  x27         ld-addr-op
+;  V09 loc3         [V09,T18] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
 ;  V10 loc4         [V10    ] (  9,  9.41)  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]>
 ;  V11 loc5         [V11,T02] (  5,  7.18)     int  ->  x24        
-;  V12 loc6         [V12,T03] (  7,  5.96)     ref  ->  x28         class-hnd exact <System.Reflection.RuntimePropertyInfo>
+;  V12 loc6         [V12,T04] (  7,  5.96)     ref  ->  [fp+0x10]  class-hnd exact spill-single-def <System.Reflection.RuntimePropertyInfo>
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V16 tmp3         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
-;  V18 tmp5         [V18,T11] (  5,  4.26)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
-;  V19 tmp6         [V19,T08] (  5,  5   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
-;  V20 tmp7         [V20,T14] (  2,  4   )     ref  ->   x0         class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
+;  V18 tmp5         [V18,T12] (  5,  4.26)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
+;  V19 tmp6         [V19,T09] (  5,  5   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;  V20 tmp7         [V20,T15] (  2,  4   )     ref  ->   x0         class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
 ;* V21 tmp8         [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.RuntimeType+RuntimeTypeCache>
 ;* V22 tmp9         [V22    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp10        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V24 tmp11        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V25 tmp12        [V25,T07] (  4,  5.04)   byref  ->  x22         single-def "Inlining Arg"
+;  V25 tmp12        [V25,T08] (  4,  5.04)   byref  ->  x22         single-def "Inlining Arg"
 ;* V26 tmp13        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;* V27 tmp14        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
-;  V28 tmp15        [V28,T12] (  7,  4.04)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V29 tmp16        [V29,T20] (  4,  2.08)     ref  ->  x28         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V28 tmp15        [V28,T13] (  7,  4.04)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V29 tmp16        [V29,T21] (  4,  2.08)     ref  ->  x28         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V30 tmp17        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V31 tmp18        [V31,T15] (  2,  4   )     int  ->   x1         "Inlining Arg"
+;  V31 tmp18        [V31,T16] (  2,  4   )     int  ->   x1         "Inlining Arg"
 ;  V32 tmp19        [V32    ] (  3,  3.41)     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V10._items (fldOffset=0x0)" P-DEP
 ;  V33 tmp20        [V33    ] (  3,  3.41)     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V10._item (fldOffset=0x8)" P-DEP
 ;  V34 tmp21        [V34    ] (  3,  3.41)     int  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V10._count (fldOffset=0x10)" P-DEP
 ;  V35 tmp22        [V35    ] (  3,  3.41)     int  ->  [fp+0x2C]  do-not-enreg[X] addr-exposed "field V10._capacity (fldOffset=0x14)" P-DEP
-;* V36 tmp23        [V36,T23] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V37 cse0         [V37,T09] (  3,  4.63)     int  ->   x0         "CSE - aggressive"
-;  V38 cse1         [V38,T16] (  3,  3   )    long  ->   x0         "CSE - moderate"
-;  V39 cse2         [V39,T10] (  4,  4.54)     int  ->  x22         "CSE - aggressive"
-;  V40 cse3         [V40,T19] (  2,  2.15)   byref  ->  x27         hoist "CSE - moderate"
+;* V36 tmp23        [V36,T24] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V37 cse0         [V37,T10] (  3,  4.63)     int  ->   x0         "CSE - aggressive"
+;  V38 cse1         [V38,T17] (  3,  3   )    long  ->   x0         "CSE - moderate"
+;  V39 cse2         [V39,T03] ( 10,  6.53)    long  ->  x28         hoist multi-def "CSE - aggressive"
+;  V40 cse3         [V40,T11] (  4,  4.54)     int  ->  x22         "CSE - moderate"
+;  V41 cse4         [V41,T20] (  2,  2.15)   byref  ->  x27         hoist "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -212,7 +213,7 @@ G_M37807_IG12:        ; bbWeight=0.26, gcrefRegs=1A00000 {x21 x23 x24}, byrefReg
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15 x24]
             ; byrRegs -[x14]
-            cbz     x22, G_M37807_IG27
+            cbz     x22, G_M37807_IG28
             mov     x0, x22
             ; byrRegs +[x0]
             mov     x1, x28
@@ -246,30 +247,36 @@ G_M37807_IG13:        ; bbWeight=1, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=800
             stp     wzr, w1, [fp, #0x28]   // [V34 tmp21], [V35 tmp22]
             mov     w24, wzr
             cmp     w22, #0
-            ble     G_M37807_IG25
+            ble     G_M37807_IG26
                        ;; size=68 bbWeight=1 PerfScore 18.00
 G_M37807_IG14:        ; bbWeight=0.61, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=80000 {x19}, byref
             add     x27, x0, #16
             ; byrRegs +[x27]
-                       ;; size=4 bbWeight=0.61 PerfScore 0.30
+            movz    x28, #0xD1FFAB1E
+            movk    x28, #0xD1FFAB1E LSL #16
+            movk    x28, #1 LSL #32
+                       ;; size=16 bbWeight=0.61 PerfScore 1.21
 G_M37807_IG15:        ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x28, [x27, w24, UXTW #3]
-            ; gcrRegs +[x28]
-            ldr     w0, [x28, #0x58]
+            ldr     x2, [x27, w24, UXTW #3]
+            ; gcrRegs +[x2]
+            str     x2, [fp, #0x10]    // [V12 loc6]
+            ; GC ptr vars +{V12}
+            ldr     w0, [x2, #0x58]
             and     w1, w20, w0
             cmp     w1, w0
             bne     G_M37807_IG22
-                       ;; size=20 bbWeight=1.54 PerfScore 12.35
-G_M37807_IG16:        ; bbWeight=1.41, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref, isz
+                       ;; size=24 bbWeight=1.54 PerfScore 13.90
+G_M37807_IG16:        ; bbWeight=1.41, gcVars=0000000000000010 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, gcvars, byref, isz
             cbz     w25, G_M37807_IG18
                        ;; size=4 bbWeight=1.41 PerfScore 1.41
-G_M37807_IG17:        ; bbWeight=0, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref, isz
-            mov     x0, x28
+G_M37807_IG17:        ; bbWeight=0, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
             mov     x1, x21
             ; gcrRegs +[x1]
             mov     w2, w26
+            ; gcrRegs -[x2]
             movz    x3, #0xD1FFAB1E      // code for System.RuntimeType:FilterApplyPrefixLookup(System.Reflection.MemberInfo,System.String,ubyte):ubyte
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
@@ -277,28 +284,26 @@ G_M37807_IG17:        ; bbWeight=0, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=
             blr     x3
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbz     w0, G_M37807_IG28
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            cbz     w0, G_M37807_IG29
+            mov     x0, x28
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=52 bbWeight=0 PerfScore 0.00
-G_M37807_IG18:        ; bbWeight=1.41, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref, isz
-            cbz     x23, G_M37807_IG21
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
+            ; gcrRegs +[x2]
+                       ;; size=48 bbWeight=0 PerfScore 0.00
+G_M37807_IG18:        ; bbWeight=1.41, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
+            cbz     x23, G_M37807_IG24
                        ;; size=4 bbWeight=1.41 PerfScore 1.41
-G_M37807_IG19:        ; bbWeight=0.49, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref, isz
-            mov     x0, x28
+G_M37807_IG19:        ; bbWeight=0.49, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #1 LSL #32
+            add     x1, x28, #8
             bl      CORINFO_HELP_CLASSPROFILE32
-            ; gcrRegs -[x0]
+            ; gcrRegs -[x0 x2]
             ; gcr arg pop 0
-            mov     x0, x28
+            ldr     x0, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x0]
-            ldr     x1, [x28]
+            ldr     x1, [x0]
             ldr     x1, [x1, #0x58]
             ldr     x1, [x1, #0x18]
             blr     x1
@@ -307,23 +312,19 @@ G_M37807_IG19:        ; bbWeight=0.49, gcrefRegs=10A00000 {x21 x23 x28}, byrefRe
             ; gcrRegs -[x0]
             ldr     w1, [x23, #0x08]
             cmp     w0, w1
-            bne     G_M37807_IG24
-                       ;; size=56 bbWeight=0.49 PerfScore 10.22
-G_M37807_IG20:        ; bbWeight=0.24, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            bne     G_M37807_IG25
+                       ;; size=48 bbWeight=0.49 PerfScore 10.46
+G_M37807_IG20:        ; bbWeight=0.24, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.24 PerfScore 0.61
-G_M37807_IG21:        ; bbWeight=1.41, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+                       ;; size=8 bbWeight=0.24 PerfScore 0.36
+G_M37807_IG21:        ; bbWeight=1.41, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     x0, fp, #24    // [V10 loc4]
-            mov     x2, x28
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x2]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -332,41 +333,45 @@ G_M37807_IG21:        ; bbWeight=1.41, gcrefRegs=10A00000 {x21 x23 x28}, byrefRe
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
             ldr     x3, [x3]
+            ; GC ptr vars -{V12}
             blr     x3
-            ; gcrRegs -[x2 x28]
+            ; gcrRegs -[x2]
             ; gcr arg pop 0
-                       ;; size=56 bbWeight=1.41 PerfScore 14.80
+                       ;; size=48 bbWeight=1.41 PerfScore 15.50
 G_M37807_IG22:        ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     w24, w24, #1
             cmp     w22, w24
             bgt     G_M37807_IG15
-                       ;; size=28 bbWeight=1.54 PerfScore 6.95
+                       ;; size=20 bbWeight=1.54 PerfScore 5.41
 G_M37807_IG23:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
             ; gcrRegs -[x21 x23]
             ; byrRegs -[x27]
-            b       G_M37807_IG25
+            b       G_M37807_IG26
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M37807_IG24:        ; bbWeight=0.24, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref
-            ; gcrRegs +[x21 x23]
+G_M37807_IG24:        ; bbWeight=0.70, gcVars=0000000000000010 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, gcvars, byref
+            ; gcrRegs +[x2 x21 x23]
             ; byrRegs +[x27]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
+            ; GC ptr vars +{V04 V12}
+            b       G_M37807_IG21
+                       ;; size=4 bbWeight=0.70 PerfScore 0.70
+G_M37807_IG25:        ; bbWeight=0.24, gcVars=0000000000000000 {}, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, gcvars, byref
+            ; gcrRegs -[x2]
+            ; GC ptr vars -{V04 V12}
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             b       G_M37807_IG22
-                       ;; size=20 bbWeight=0.24 PerfScore 0.85
-G_M37807_IG25:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+                       ;; size=12 bbWeight=0.24 PerfScore 0.61
+G_M37807_IG26:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
...

+8 (+0.66%) : 26487.dasm - System.RuntimeType:GetField(System.String,int):System.Reflection.FieldInfo:this (Instrumented Tier1)

@@ -12,13 +12,13 @@
 ;  V00 this         [V00,T02] (  4,  4   )     ref  ->  x21         this class-hnd single-def <System.RuntimeType>
 ;  V01 arg1         [V01,T01] (  6,  4.02)     ref  ->  x20         ld-addr-op class-hnd <System.String>
 ;  V02 arg2         [V02,T00] (  6,  5.32)     int  ->  x19        
-;  V03 loc0         [V03,T15] (  3,  1.03)     int  ->  x22         ld-addr-op
-;  V04 loc1         [V04,T12] (  3,  2.24)     ref  ->   x0         class-hnd single-def <System.Reflection.RuntimeFieldInfo[]>
-;  V05 loc2         [V05,T09] ( 16,  2.64)     ref  ->  x20         class-hnd <System.Reflection.FieldInfo>
-;  V06 loc3         [V06,T13] (  3,  2   )   ubyte  ->  x21        
+;  V03 loc0         [V03,T14] (  3,  1.03)     int  ->  x22         ld-addr-op
+;  V04 loc1         [V04,T10] (  4,  2.56)     ref  ->  x20         class-hnd single-def <System.Reflection.RuntimeFieldInfo[]>
+;  V05 loc2         [V05,T09] ( 16,  2.64)     ref  ->  x21         class-hnd <System.Reflection.FieldInfo>
+;  V06 loc3         [V06,T12] (  3,  2   )   ubyte  ->  x22        
 ;* V07 loc4         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op
-;  V08 loc5         [V08,T11] (  5,  2.28)     int  ->  x22        
-;  V09 loc6         [V09,T16] ( 12,  0.96)     ref  ->  x25         class-hnd <System.Reflection.RuntimeFieldInfo>
+;  V08 loc5         [V08,T11] (  5,  2.28)     int  ->  x23        
+;  V09 loc6         [V09,T15] ( 12,  0.96)     ref  ->  x25         class-hnd <System.Reflection.RuntimeFieldInfo>
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V12 tmp2         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <System.Type>
@@ -28,7 +28,7 @@
 ;* V16 tmp6         [V16    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V17 tmp7         [V17    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V18 tmp8         [V18    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V19 tmp9         [V19,T19] (  3,  0   )     ref  ->  x26         "handle histogram profile tmp"
+;  V19 tmp9         [V19,T18] (  3,  0   )     ref  ->  x26         "handle histogram profile tmp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V21 tmp11        [V21    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V22 tmp12        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
@@ -46,24 +46,23 @@
 ;* V34 tmp24        [V34    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;* V35 tmp25        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
 ;  V36 tmp26        [V36,T07] (  7,  3.88)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V37 tmp27        [V37,T14] (  4,  1.76)     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V37 tmp27        [V37,T13] (  4,  1.76)     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V38 tmp28        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V39 tmp29        [V39    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V40 tmp30        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V41 tmp31        [V41,T27] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V42 tmp32        [V42,T20] (  3,  0   )     ref  ->   x0         "argument with side effect"
-;  V43 tmp33        [V43,T21] (  3,  0   )     ref  ->   x0         "argument with side effect"
-;* V44 tmp34        [V44,T28] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;* V45 tmp35        [V45,T29] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V46 tmp36        [V46,T22] (  3,  0   )     ref  ->   x0         "argument with side effect"
-;  V47 tmp37        [V47,T23] (  3,  0   )     ref  ->  x26         "argument with side effect"
-;  V48 tmp38        [V48,T26] (  2,  0   )     ref  ->   x1         "argument with side effect"
-;  V49 tmp39        [V49,T24] (  3,  0   )     ref  ->   x0         "argument with side effect"
-;  V50 tmp40        [V50,T25] (  3,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V51 cse0         [V51,T17] (  3,  0.96)     int  ->   x0         "CSE - conservative"
-;  V52 cse1         [V52,T10] (  3,  2.32)     int  ->  x23         "CSE - moderate"
-;  V53 cse2         [V53,T18] (  2,  0.56)   byref  ->  x24         hoist "CSE - conservative"
-;  V54 cse3         [V54,T08] (  3,  3   )    long  ->   x0         "CSE - aggressive"
+;* V41 tmp31        [V41,T26] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V42 tmp32        [V42,T19] (  3,  0   )     ref  ->   x0         "argument with side effect"
+;  V43 tmp33        [V43,T20] (  3,  0   )     ref  ->   x0         "argument with side effect"
+;* V44 tmp34        [V44,T27] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;* V45 tmp35        [V45,T28] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V46 tmp36        [V46,T21] (  3,  0   )     ref  ->   x0         "argument with side effect"
+;  V47 tmp37        [V47,T22] (  3,  0   )     ref  ->  x26         "argument with side effect"
+;  V48 tmp38        [V48,T25] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V49 tmp39        [V49,T23] (  3,  0   )     ref  ->   x0         "argument with side effect"
+;  V50 tmp40        [V50,T24] (  3,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V51 cse0         [V51,T16] (  3,  0.96)     int  ->   x0         "CSE - conservative"
+;  V52 cse1         [V52,T17] (  2,  0.56)   byref  ->  x24         hoist "CSE - conservative"
+;  V53 cse2         [V53,T08] (  3,  3   )    long  ->   x0         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -224,30 +223,32 @@ G_M40435_IG11:        ; bbWeight=1, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}
             blr     x4
             ; gcrRegs -[x2 x20]
             ; gcr arg pop 0
-            mov     x20, xzr
+            mov     x20, x0
             ; gcrRegs +[x20]
+            mov     x21, xzr
+            ; gcrRegs +[x21]
             eor     w19, w19, #2
-            mov     w21, wzr
             mov     w22, wzr
-            ldr     w23, [x0, #0x08]
-            cmp     w23, #0
+            mov     w23, wzr
+            ldr     w0, [x20, #0x08]
+            ; gcrRegs -[x0]
+            cmp     w0, #0
             ble     G_M40435_IG18
-                       ;; size=64 bbWeight=1 PerfScore 16.50
-G_M40435_IG12:        ; bbWeight=0.24, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}, byref
-            add     x24, x0, #16
+                       ;; size=68 bbWeight=1 PerfScore 17.00
+G_M40435_IG12:        ; bbWeight=0.24, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
+            add     x24, x20, #16
             ; byrRegs +[x24]
                        ;; size=4 bbWeight=0.24 PerfScore 0.12
-G_M40435_IG13:        ; bbWeight=0.32, gcrefRegs=100000 {x20}, byrefRegs=1000000 {x24}, byref, isz
-            ; gcrRegs -[x0]
-            ldr     x25, [x24, w22, UXTW #3]
+G_M40435_IG13:        ; bbWeight=0.32, gcrefRegs=300000 {x20 x21}, byrefRegs=1000000 {x24}, byref, isz
+            ldr     x25, [x24, w23, UXTW #3]
             ; gcrRegs +[x25]
             ldr     w0, [x25, #0x18]
             and     w1, w19, w0
             cmp     w1, w0
             bne     G_M40435_IG17
-            cbz     x20, G_M40435_IG16
+            cbz     x21, G_M40435_IG16
                        ;; size=24 bbWeight=0.32 PerfScore 2.88
-G_M40435_IG14:        ; bbWeight=0, gcrefRegs=2100000 {x20 x25}, byrefRegs=1000000 {x24}, byref, isz
+G_M40435_IG14:        ; bbWeight=0, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=1000000 {x24}, byref, isz
             mov     x0, x25
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -265,14 +266,14 @@ G_M40435_IG14:        ; bbWeight=0, gcrefRegs=2100000 {x20 x25}, byrefRegs=10000
             ; gcr arg pop 0
             mov     x26, x0
             ; gcrRegs +[x26]
-            mov     x0, x20
+            mov     x0, x21
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            mov     x0, x20
+            mov     x0, x21
             ; gcrRegs +[x0]
             ldr     x1, [x0]
             ldr     x1, [x1, #0x48]
@@ -281,14 +282,14 @@ G_M40435_IG14:        ; bbWeight=0, gcrefRegs=2100000 {x20 x25}, byrefRegs=10000
             ; gcr arg pop 0
             cmp     x26, x0
             beq     G_M40435_IG28
-            mov     x0, x20
+            mov     x0, x21
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0 x26]
             ; gcr arg pop 0
-            mov     x0, x20
+            mov     x0, x21
             ; gcrRegs +[x0]
             ldr     x1, [x0]
             ldr     x1, [x1, #0x48]
@@ -333,9 +334,9 @@ G_M40435_IG14:        ; bbWeight=0, gcrefRegs=2100000 {x20 x25}, byrefRegs=10000
             movk    x0, #1 LSL #32
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-            mov     w21, #1
+            mov     w22, #1
                        ;; size=248 bbWeight=0 PerfScore 0.00
-G_M40435_IG15:        ; bbWeight=0, gcrefRegs=2100000 {x20 x25}, byrefRegs=1000000 {x24}, byref, isz
+G_M40435_IG15:        ; bbWeight=0, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=1000000 {x24}, byref, isz
             mov     x0, x25
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -359,7 +360,7 @@ G_M40435_IG15:        ; bbWeight=0, gcrefRegs=2100000 {x20 x25}, byrefRegs=10000
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            mov     x0, x20
+            mov     x0, x21
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -367,7 +368,7 @@ G_M40435_IG15:        ; bbWeight=0, gcrefRegs=2100000 {x20 x25}, byrefRegs=10000
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            mov     x0, x20
+            mov     x0, x21
             ; gcrRegs +[x0]
             ldr     x1, [x0]
             ldr     x1, [x1, #0x48]
@@ -384,7 +385,7 @@ G_M40435_IG15:        ; bbWeight=0, gcrefRegs=2100000 {x20 x25}, byrefRegs=10000
             ; gcrRegs -[x0-x1 x26]
             ; gcr arg pop 0
             cbnz    w0, G_M40435_IG25
-            mov     x0, x20
+            mov     x0, x21
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -392,7 +393,7 @@ G_M40435_IG15:        ; bbWeight=0, gcrefRegs=2100000 {x20 x25}, byrefRegs=10000
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            mov     x0, x20
+            mov     x0, x21
             ; gcrRegs +[x0]
             ldr     x1, [x0]
             ldr     x1, [x1, #0x48]
@@ -412,35 +413,37 @@ G_M40435_IG15:        ; bbWeight=0, gcrefRegs=2100000 {x20 x25}, byrefRegs=10000
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
             bl      CORINFO_HELP_COUNTPROFILE32
-            ; gcrRegs -[x20]
+            ; gcrRegs -[x21]
             ; gcr arg pop 0
                        ;; size=212 bbWeight=0 PerfScore 0.00
-G_M40435_IG16:        ; bbWeight=0.32, gcrefRegs=2000000 {x25}, byrefRegs=1000000 {x24}, byref
+G_M40435_IG16:        ; bbWeight=0.32, gcrefRegs=2100000 {x20 x25}, byrefRegs=1000000 {x24}, byref
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-            mov     x20, x25
-            ; gcrRegs +[x20]
+            mov     x21, x25
+            ; gcrRegs +[x21]
                        ;; size=20 bbWeight=0.32 PerfScore 0.96
-G_M40435_IG17:        ; bbWeight=0.32, gcrefRegs=100000 {x20}, byrefRegs=1000000 {x24}, byref, isz
+G_M40435_IG17:        ; bbWeight=0.32, gcrefRegs=300000 {x20 x21}, byrefRegs=1000000 {x24}, byref, isz
             ; gcrRegs -[x25]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-            add     w22, w22, #1
-            cmp     w23, w22
+            add     w23, w23, #1
+            ldr     w0, [x20, #0x08]
+            cmp     w0, w23
             bgt     G_M40435_IG13
-                       ;; size=28 bbWeight=0.32 PerfScore 1.44
-G_M40435_IG18:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+                       ;; size=32 bbWeight=0.32 PerfScore 2.40
+G_M40435_IG18:        ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x20]
             ; byrRegs -[x24]
-            cbz     w21, G_M40435_IG21
+            cbz     w22, G_M40435_IG21
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M40435_IG19:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
-            mov     x0, x20
+G_M40435_IG19:        ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref, isz
+            mov     x0, x21
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -448,7 +451,7 @@ G_M40435_IG19:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            mov     x0, x20
...

+4 (+0.79%) : 461211.dasm - System.Text.CompositeFormat:.ctor(System.String,System.ValueTuple`4[System.String,int,int,System.String][]):this (Instrumented Tier1)

@@ -19,25 +19,26 @@
 ;* V08 loc5         [V08    ] (  0,  0   )  struct (24) zero-ref    <System.ValueTuple`4[System.String,int,int,System.String]>
 ;* V09 loc6         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.String>
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V11 tmp1         [V11,T14] (  3,  2   )     int  ->  x20        
-;  V12 tmp2         [V12,T12] (  3,  2.50)     int  ->   x0         "Inline return value spill temp"
-;  V13 tmp3         [V13,T13] (  3,  2.45)     int  ->   x0         "Inlining Arg"
-;  V14 tmp4         [V14,T03] (  4, 14   )     ref  ->  x26         "field V08.Item1 (fldOffset=0x0)" P-INDEP
+;  V11 tmp1         [V11,T15] (  3,  2   )     int  ->  x20        
+;  V12 tmp2         [V12,T13] (  3,  2.50)     int  ->   x0         "Inline return value spill temp"
+;  V13 tmp3         [V13,T14] (  3,  2.45)     int  ->   x0         "Inlining Arg"
+;  V14 tmp4         [V14,T03] (  4, 14   )     ref  ->  x27         "field V08.Item1 (fldOffset=0x0)" P-INDEP
 ;* V15 tmp5         [V15    ] (  0,  0   )     ref  ->  zero-ref    "field V08.Item4 (fldOffset=0x8)" P-INDEP
-;  V16 tmp6         [V16,T04] (  4, 10.50)     int  ->  x27         "field V08.Item2 (fldOffset=0x10)" P-INDEP
+;  V16 tmp6         [V16,T04] (  4, 10.50)     int  ->  x28         "field V08.Item2 (fldOffset=0x10)" P-INDEP
 ;* V17 tmp7         [V17    ] (  0,  0   )     int  ->  zero-ref    "field V08.Item3 (fldOffset=0x14)" P-INDEP
 ;  V18 tmp8         [V18,T01] (  3, 24   )   byref  ->   x0         "BlockOp address local"
 ;  V19 cse0         [V19,T02] (  3, 18   )     int  ->  x25         "CSE - aggressive"
+;  V20 cse1         [V20,T12] (  2,  5   )     ref  ->  x26         hoist "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M36645_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x60]!
-            stp     x19, x20, [sp, #0x18]
-            stp     x21, x22, [sp, #0x28]
-            stp     x23, x24, [sp, #0x38]
-            stp     x25, x26, [sp, #0x48]
-            str     x27, [sp, #0x58]
+            stp     x19, x20, [sp, #0x10]
+            stp     x21, x22, [sp, #0x20]
+            stp     x23, x24, [sp, #0x30]
+            stp     x25, x26, [sp, #0x40]
+            stp     x27, x28, [sp, #0x50]
             mov     fp, sp
             mov     x19, x0
             ; gcrRegs +[x19]
@@ -82,61 +83,65 @@ G_M36645_IG02:        ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00
             ldr     w25, [x20, #0x08]
             cmp     w25, #0
             ble     G_M36645_IG13
-                       ;; size=108 bbWeight=1 PerfScore 23.50
-G_M36645_IG03:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            movz    x26, #0xD1FFAB1E
+            movk    x26, #0xD1FFAB1E LSL #16
+            movk    x26, #1 LSL #32
+                       ;; size=120 bbWeight=1 PerfScore 25.00
+G_M36645_IG03:        ; bbWeight=4, gcrefRegs=4180000 {x19 x20 x26}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x26]
             mov     w0, #24
             mov     x1, #16
             umaddl  x0, w24, w0, x1
             add     x0, x20, x0
             ; byrRegs +[x0]
-            ldr     x26, [x0]
-            ; gcrRegs +[x26]
-            ldr     w27, [x0, #0x10]
-            cmp     x26, #0
+            ldr     x27, [x0]
+            ; gcrRegs +[x27]
+            ldr     w28, [x0, #0x10]
+            cmp     x27, #0
             cset    x0, ne
             ; byrRegs -[x0]
-            cmp     w27, #0
+            cmp     w28, #0
             cset    x1, ge
             eor     w0, w0, w1
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #1 LSL #32
+            mov     x1, x26
+            ; gcrRegs +[x1]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            cbz     x26, G_M36645_IG05
-                       ;; size=80 bbWeight=4 PerfScore 92.00
-G_M36645_IG04:        ; bbWeight=2, gcrefRegs=4180000 {x19 x20 x26}, byrefRegs=0000 {}, byref
-            ldr     w0, [x26, #0x08]
+            ; gcrRegs -[x1]
+            cbz     x27, G_M36645_IG05
+                       ;; size=72 bbWeight=4 PerfScore 88.00
+G_M36645_IG04:        ; bbWeight=2, gcrefRegs=C180000 {x19 x20 x26 x27}, byrefRegs=0000 {}, byref
+            ldr     w0, [x27, #0x08]
             add     w21, w0, w21
             b       G_M36645_IG10
                        ;; size=12 bbWeight=2 PerfScore 9.00
-G_M36645_IG05:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x26]
-            tbnz    w27, #31, G_M36645_IG12
+G_M36645_IG05:        ; bbWeight=2, gcrefRegs=4180000 {x19 x20 x26}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x27]
+            tbnz    w28, #31, G_M36645_IG12
                        ;; size=4 bbWeight=2 PerfScore 2.00
-G_M36645_IG06:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M36645_IG06:        ; bbWeight=0.50, gcrefRegs=4180000 {x19 x20 x26}, byrefRegs=0000 {}, byref, isz
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
             bl      CORINFO_HELP_COUNTPROFILE32
             add     w22, w22, #1
-            add     w0, w27, #1
+            add     w0, w28, #1
             cmp     w23, w0
             bge     G_M36645_IG08
                        ;; size=32 bbWeight=0.50 PerfScore 2.50
-G_M36645_IG07:        ; bbWeight=0.22, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M36645_IG07:        ; bbWeight=0.22, gcrefRegs=4180000 {x19 x20 x26}, byrefRegs=0000 {}, byref
             b       G_M36645_IG09
                        ;; size=4 bbWeight=0.22 PerfScore 0.22
-G_M36645_IG08:        ; bbWeight=0.28, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M36645_IG08:        ; bbWeight=0.28, gcrefRegs=4180000 {x19 x20 x26}, byrefRegs=0000 {}, byref
             sxtw    w0, w23
                        ;; size=4 bbWeight=0.28 PerfScore 0.14
-G_M36645_IG09:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M36645_IG09:        ; bbWeight=2, gcrefRegs=4180000 {x19 x20 x26}, byrefRegs=0000 {}, byref
             sxtw    w23, w0
                        ;; size=4 bbWeight=2 PerfScore 1.00
-G_M36645_IG10:        ; bbWeight=16, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M36645_IG10:        ; bbWeight=16, gcrefRegs=4180000 {x19 x20 x26}, byrefRegs=0000 {}, byref, isz
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
@@ -146,11 +151,11 @@ G_M36645_IG10:        ; bbWeight=16, gcrefRegs=180000 {x19 x20}, byrefRegs=0000
             bgt     G_M36645_IG03
                        ;; size=28 bbWeight=16 PerfScore 72.00
 G_M36645_IG11:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x20]
+            ; gcrRegs -[x20 x26]
             b       G_M36645_IG13
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M36645_IG12:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x20]
+G_M36645_IG12:        ; bbWeight=2, gcrefRegs=4180000 {x19 x20 x26}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[x20 x26]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
@@ -158,7 +163,7 @@ G_M36645_IG12:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             b       G_M36645_IG10
                        ;; size=20 bbWeight=2 PerfScore 7.00
 G_M36645_IG13:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x20]
+            ; gcrRegs -[x20 x26]
             cmp     w21, #0
             cset    x0, ge
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
@@ -202,16 +207,16 @@ G_M36645_IG16:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             str     w23, [x19, #0x20]
                        ;; size=48 bbWeight=1 PerfScore 10.50
 G_M36645_IG17:        ; bbWeight=1, epilog, nogc, extend
-            ldr     x27, [sp, #0x58]
-            ldp     x25, x26, [sp, #0x48]
-            ldp     x23, x24, [sp, #0x38]
-            ldp     x21, x22, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
+            ldp     x27, x28, [sp, #0x50]
+            ldp     x25, x26, [sp, #0x40]
+            ldp     x23, x24, [sp, #0x30]
+            ldp     x21, x22, [sp, #0x20]
+            ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x60
             ret     lr
-                       ;; size=28 bbWeight=1 PerfScore 8.00
+                       ;; size=28 bbWeight=1 PerfScore 7.00
 
-; Total bytes of code 508, prolog size 28, PerfScore 252.86, instruction count 127, allocated bytes for code 508 (MethodHash=db0370da) for method System.Text.CompositeFormat:.ctor(System.String,System.ValueTuple`4[System.String,int,int,System.String][]):this (Instrumented Tier1)
+; Total bytes of code 512, prolog size 28, PerfScore 249.36, instruction count 128, allocated bytes for code 512 (MethodHash=db0370da) for method System.Text.CompositeFormat:.ctor(System.String,System.ValueTuple`4[System.String,int,int,System.String][]):this (Instrumented Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -222,7 +227,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 127 (0x0007f) Actual length = 508 (0x0001fc)
+  Function Length   : 128 (0x00080) Actual length = 512 (0x000200)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -230,13 +235,14 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D2 0B       save_reg X#8 Z#11 (0x0B); str x27, [sp, #88]
     E6          save_next
     E6          save_next
     E6          save_next
-    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
+    E6          save_next
+    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
     8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
     E4          end
+    E4          end
 

+24 (+3.97%) : 264205.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (Tier0-FullOpts)

@@ -3,48 +3,48 @@
 ; Tier-0 switched to FullOpts code
 ; optimized code
 ; fp based frame
-; fully interruptible
+; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] ( 12,  7   )   byref  ->  x19         this single-def
-;  V01 arg1         [V01,T04] (  3,  3   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
+;  V00 this         [V00,T01] ( 12,  7   )   byref  ->  x19         this single-def
+;  V01 arg1         [V01,T02] (  3,  3   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
-;  V03 loc1         [V03,T02] (  9, 12   )     int  ->  x21        
+;  V03 loc1         [V03,T03] (  9,  4.75)     int  ->  x21        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[int]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [fp+0x30]  do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Decimal>
-;  V09 tmp4         [V09,T05] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V10 tmp5         [V10,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V09 tmp4         [V09,T04] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V10 tmp5         [V10,T10] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
-;  V13 tmp8         [V13,T18] (  2,  1   )     int  ->   x0        
-;  V14 tmp9         [V14,T06] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V15 tmp10        [V15,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V16 tmp11        [V16,T07] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V17 tmp12        [V17,T13] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V18 tmp13        [V18,T14] (  2,  2   )     int  ->   x1         "impAppendStmt"
+;  V13 tmp8         [V13,T17] (  2,  1   )     int  ->   x0        
+;  V14 tmp9         [V14,T05] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V15 tmp10        [V15,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V16 tmp11        [V16,T06] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V17 tmp12        [V17,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V18 tmp13        [V18,T13] (  2,  2   )     int  ->   x1         "impAppendStmt"
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    ptr
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp18        [V23,T19] (  2,  1   )     int  ->   x0        
+;  V23 tmp18        [V23,T18] (  2,  1   )     int  ->   x0        
 ;  V24 tmp19        [V24    ] (  6, 11   )  struct (16) [fp+0x10]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
-;  V25 tmp20        [V25,T09] (  3,  2.50)     int  ->   x1         "Inline stloc first use temp"
+;  V25 tmp20        [V25,T08] (  3,  2.50)     int  ->   x1         "Inline stloc first use temp"
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Decimal>
 ;* V28 tmp23        [V28    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V29 tmp24        [V29    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V30 tmp25        [V30    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;  V31 tmp26        [V31,T01] ( 12, 12   )   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V32 tmp27        [V32,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp26        [V31,T00] ( 14,  9.50)   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V32 tmp27        [V32,T19] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp28        [V33    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V34 tmp29        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V35 tmp30        [V35,T10] (  2,  2   )   byref  ->  x20         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V36 tmp31        [V36,T21] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
+;  V35 tmp30        [V35,T09] (  2,  2   )   byref  ->  x20         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V36 tmp31        [V36,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V37 tmp32        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V08._flags (fldOffset=0x0)" P-INDEP
 ;* V38 tmp33        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V08._hi32 (fldOffset=0x4)" P-INDEP
 ;* V39 tmp34        [V39    ] (  0,  0   )    long  ->  zero-ref    "field V08._lo64 (fldOffset=0x8)" P-INDEP
@@ -53,12 +53,11 @@
 ;  V42 tmp37        [V42    ] (  3,  4   )    long  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V24._lo64 (fldOffset=0x8)" P-DEP
 ;* V43 tmp38        [V43    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V44 tmp39        [V44    ] (  0,  0   )     int  ->  zero-ref    ptr "field V26._length (fldOffset=0x8)" P-INDEP
-;  V45 tmp40        [V45,T15] (  2,  2   )     int  ->  x13         "field V27._flags (fldOffset=0x0)" P-INDEP
-;  V46 tmp41        [V46,T16] (  2,  2   )     int  ->  x14         "field V27._hi32 (fldOffset=0x4)" P-INDEP
-;  V47 tmp42        [V47,T08] (  3,  3   )    long  ->  x12         "field V27._lo64 (fldOffset=0x8)" P-INDEP
+;  V45 tmp40        [V45,T14] (  2,  2   )     int  ->  x13         "field V27._flags (fldOffset=0x0)" P-INDEP
+;  V46 tmp41        [V46,T15] (  2,  2   )     int  ->  x14         "field V27._hi32 (fldOffset=0x4)" P-INDEP
+;  V47 tmp42        [V47,T07] (  3,  3   )    long  ->  x12         "field V27._lo64 (fldOffset=0x8)" P-INDEP
 ;  V48 GsCookie     [V48    ] (  1,  1   )    long  ->  [fp+0x40]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V49 cse0         [V49,T17] (  3,  1.50)     int  ->   x1         "CSE - moderate"
-;  V50 cse1         [V50,T00] (  4, 14   )     int  ->  x13         "CSE - aggressive"
+;  V49 cse0         [V49,T16] (  3,  1.50)     int  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 56
 
@@ -95,7 +94,6 @@ G_M46478_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19
             movk    x3, #2 LSL #32
             ldr     x3, [x3]
             blr     x3
-            ; gcr arg pop 0
                        ;; size=36 bbWeight=0.50 PerfScore 4.00
 G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
             ldp     w13, w14, [fp, #0x10]  // [V40 tmp35], [V41 tmp36]
@@ -107,30 +105,48 @@ G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20
             mov     w21, #3
             b       G_M46478_IG06
                        ;; size=32 bbWeight=1 PerfScore 9.50
-G_M46478_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sxtw    w21, w13
-            cmp     w21, #0
-            ble     G_M46478_IG07
-                       ;; size=12 bbWeight=2 PerfScore 4.00
-G_M46478_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sub     w13, w21, #1
-            cmp     w13, #4
-            bhs     G_M46478_IG17
-            ldr     w14, [x20, w13, UXTW #2]
-            cbz     w14, G_M46478_IG05
-                       ;; size=20 bbWeight=4 PerfScore 24.00
-G_M46478_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            cbnz    w21, G_M46478_IG11
+G_M46478_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, #2
+            b       G_M46478_IG09
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20, #0x08]
+            cbz     w13, G_M46478_IG05
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG07:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG13
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG08:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, #1
+            b       G_M46478_IG12
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20, #0x04]
+            cbz     w13, G_M46478_IG08
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG10:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG13
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG11:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, wzr
+            b       G_M46478_IG13
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20]
+            cbz     w13, G_M46478_IG11
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            cbnz    w21, G_M46478_IG17
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M46478_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             ; byrRegs -[x20]
             movz    x13, #0xD1FFAB1E
             movk    x13, #0xD1FFAB1E LSL #16
             movk    x13, #2 LSL #32
             ldr     w13, [x13]
-            tbz     w13, #0, G_M46478_IG18
+            tbz     w13, #0, G_M46478_IG24
                        ;; size=20 bbWeight=0.50 PerfScore 2.75
-G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             movz    x13, #0xD1FFAB1E      // box for <unknown class>:<unknown field>
             movk    x13, #0xD1FFAB1E LSL #16
             movk    x13, #1 LSL #32
@@ -151,24 +167,23 @@ G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             movk    xip0, #0xD1FFAB1E LSL #48
             ldr     xip1, [fp, #0x40]  // [V48 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG10
+            beq     G_M46478_IG16
             bl      CORINFO_HELP_FAIL_FAST
             ; byrRegs -[x13-x14]
-            ; gcr arg pop 0
                        ;; size=68 bbWeight=0.50 PerfScore 8.50
-G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x21, [sp, #0x58]
             ldp     x19, x20, [sp, #0x48]
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M46478_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG17:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             cmp     w21, #1
-            bne     G_M46478_IG13
+            bne     G_M46478_IG19
             ldr     w1, [x20]
             cmp     w1, #0
-            ble     G_M46478_IG13
+            ble     G_M46478_IG19
             str     w1, [x19, #0x08]
             ldr     w1, [x19, #0x08]
             ldr     w0, [x20, #0x0C]
@@ -185,18 +200,17 @@ G_M46478_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             movk    xip0, #0xD1FFAB1E LSL #48
             ldr     xip1, [fp, #0x40]  // [V48 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG12
+            beq     G_M46478_IG18
             bl      CORINFO_HELP_FAIL_FAST
             ; byrRegs -[x19-x20]
-            ; gcr arg pop 0
                        ;; size=92 bbWeight=0.50 PerfScore 12.75
-G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG18:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x21, [sp, #0x58]
             ldp     x19, x20, [sp, #0x48]
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG19:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             sxtw    x1, w21
             movz    x0, #0xD1FFAB1E
@@ -204,7 +218,6 @@ G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             movk    x0, #2 LSL #32
             bl      CORINFO_HELP_NEWARR_1_VC
             ; gcrRegs +[x0]
-            ; gcr arg pop 0
             mov     x15, x0
             ; gcrRegs +[x15]
             mov     x14, x19
@@ -217,30 +230,30 @@ G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     w1, [x20]
             ldr     w2, [x0, #0x08]
             cmp     w2, #0
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x10]
             cmp     w21, #1
-            ble     G_M46478_IG14
+            ble     G_M46478_IG20
             ldr     x0, [x19]
             ldr     w1, [x20, #0x04]
             ldr     w2, [x0, #0x08]
             cmp     w2, #1
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x14]
                        ;; size=88 bbWeight=0.50 PerfScore 14.75
-G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+G_M46478_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
             ; gcrRegs -[x0]
             cmp     w21, #2
-            ble     G_M46478_IG15
+            ble     G_M46478_IG21
             ldr     x0, [x19]
             ; gcrRegs +[x0]
             ldr     w1, [x20, #0x08]
             ldr     w2, [x0, #0x08]
             cmp     w2, #2
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x18]
...

librariestestsnotieredcompilation.run.osx.arm64.Release.mch

+24 (+3.97%) : 115538.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

@@ -3,48 +3,48 @@
 ; FullOpts code
 ; optimized code
 ; fp based frame
-; fully interruptible
+; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] ( 12,  7   )   byref  ->  x19         this single-def
-;  V01 arg1         [V01,T04] (  3,  3   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
+;  V00 this         [V00,T01] ( 12,  7   )   byref  ->  x19         this single-def
+;  V01 arg1         [V01,T02] (  3,  3   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
-;  V03 loc1         [V03,T02] (  9, 12   )     int  ->  x21        
+;  V03 loc1         [V03,T03] (  9,  4.75)     int  ->  x21        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[int]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [fp+0x30]  do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Decimal>
-;  V09 tmp4         [V09,T05] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V10 tmp5         [V10,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V09 tmp4         [V09,T04] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V10 tmp5         [V10,T10] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
-;  V13 tmp8         [V13,T18] (  2,  1   )     int  ->   x0        
-;  V14 tmp9         [V14,T06] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V15 tmp10        [V15,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V16 tmp11        [V16,T07] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V17 tmp12        [V17,T13] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V18 tmp13        [V18,T14] (  2,  2   )     int  ->   x1         "impAppendStmt"
+;  V13 tmp8         [V13,T17] (  2,  1   )     int  ->   x0        
+;  V14 tmp9         [V14,T05] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V15 tmp10        [V15,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V16 tmp11        [V16,T06] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V17 tmp12        [V17,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V18 tmp13        [V18,T13] (  2,  2   )     int  ->   x1         "impAppendStmt"
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    ptr
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp18        [V23,T19] (  2,  1   )     int  ->   x0        
+;  V23 tmp18        [V23,T18] (  2,  1   )     int  ->   x0        
 ;  V24 tmp19        [V24    ] (  6, 11   )  struct (16) [fp+0x10]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
-;  V25 tmp20        [V25,T09] (  3,  2.50)     int  ->   x1         "Inline stloc first use temp"
+;  V25 tmp20        [V25,T08] (  3,  2.50)     int  ->   x1         "Inline stloc first use temp"
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Decimal>
 ;* V28 tmp23        [V28    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V29 tmp24        [V29    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V30 tmp25        [V30    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;  V31 tmp26        [V31,T01] ( 12, 12   )   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V32 tmp27        [V32,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp26        [V31,T00] ( 14,  9.50)   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V32 tmp27        [V32,T19] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp28        [V33    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V34 tmp29        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V35 tmp30        [V35,T10] (  2,  2   )   byref  ->  x20         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V36 tmp31        [V36,T21] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
+;  V35 tmp30        [V35,T09] (  2,  2   )   byref  ->  x20         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V36 tmp31        [V36,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V37 tmp32        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V08._flags (fldOffset=0x0)" P-INDEP
 ;* V38 tmp33        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V08._hi32 (fldOffset=0x4)" P-INDEP
 ;* V39 tmp34        [V39    ] (  0,  0   )    long  ->  zero-ref    "field V08._lo64 (fldOffset=0x8)" P-INDEP
@@ -53,12 +53,11 @@
 ;  V42 tmp37        [V42    ] (  3,  4   )    long  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V24._lo64 (fldOffset=0x8)" P-DEP
 ;* V43 tmp38        [V43    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V44 tmp39        [V44    ] (  0,  0   )     int  ->  zero-ref    ptr "field V26._length (fldOffset=0x8)" P-INDEP
-;  V45 tmp40        [V45,T15] (  2,  2   )     int  ->  x13         "field V27._flags (fldOffset=0x0)" P-INDEP
-;  V46 tmp41        [V46,T16] (  2,  2   )     int  ->  x14         "field V27._hi32 (fldOffset=0x4)" P-INDEP
-;  V47 tmp42        [V47,T08] (  3,  3   )    long  ->  x12         "field V27._lo64 (fldOffset=0x8)" P-INDEP
+;  V45 tmp40        [V45,T14] (  2,  2   )     int  ->  x13         "field V27._flags (fldOffset=0x0)" P-INDEP
+;  V46 tmp41        [V46,T15] (  2,  2   )     int  ->  x14         "field V27._hi32 (fldOffset=0x4)" P-INDEP
+;  V47 tmp42        [V47,T07] (  3,  3   )    long  ->  x12         "field V27._lo64 (fldOffset=0x8)" P-INDEP
 ;  V48 GsCookie     [V48    ] (  1,  1   )    long  ->  [fp+0x40]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V49 cse0         [V49,T17] (  3,  1.50)     int  ->   x1         "CSE - moderate"
-;  V50 cse1         [V50,T00] (  4, 14   )     int  ->  x13         "CSE - aggressive"
+;  V49 cse0         [V49,T16] (  3,  1.50)     int  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 56
 
@@ -95,7 +94,6 @@ G_M46478_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19
             movk    x3, #1 LSL #32
             ldr     x3, [x3]
             blr     x3
-            ; gcr arg pop 0
                        ;; size=36 bbWeight=0.50 PerfScore 4.00
 G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
             ldp     w13, w14, [fp, #0x10]  // [V40 tmp35], [V41 tmp36]
@@ -107,30 +105,48 @@ G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20
             mov     w21, #3
             b       G_M46478_IG06
                        ;; size=32 bbWeight=1 PerfScore 9.50
-G_M46478_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sxtw    w21, w13
-            cmp     w21, #0
-            ble     G_M46478_IG07
-                       ;; size=12 bbWeight=2 PerfScore 4.00
-G_M46478_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sub     w13, w21, #1
-            cmp     w13, #4
-            bhs     G_M46478_IG17
-            ldr     w14, [x20, w13, UXTW #2]
-            cbz     w14, G_M46478_IG05
-                       ;; size=20 bbWeight=4 PerfScore 24.00
-G_M46478_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            cbnz    w21, G_M46478_IG11
+G_M46478_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, #2
+            b       G_M46478_IG09
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20, #0x08]
+            cbz     w13, G_M46478_IG05
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG07:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG13
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG08:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, #1
+            b       G_M46478_IG12
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20, #0x04]
+            cbz     w13, G_M46478_IG08
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG10:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG13
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG11:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, wzr
+            b       G_M46478_IG13
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20]
+            cbz     w13, G_M46478_IG11
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            cbnz    w21, G_M46478_IG17
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M46478_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             ; byrRegs -[x20]
             movz    x13, #0xD1FFAB1E
             movk    x13, #0xD1FFAB1E LSL #16
             movk    x13, #1 LSL #32
             ldr     w13, [x13]
-            tbz     w13, #0, G_M46478_IG18
+            tbz     w13, #0, G_M46478_IG24
                        ;; size=20 bbWeight=0.50 PerfScore 2.75
-G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             movz    x13, #0xD1FFAB1E      // box for <unknown class>:<unknown field>
             movk    x13, #0xD1FFAB1E LSL #16
             movk    x13, #2 LSL #32
@@ -151,24 +167,23 @@ G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             movk    xip0, #0xD1FFAB1E LSL #48
             ldr     xip1, [fp, #0x40]  // [V48 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG10
+            beq     G_M46478_IG16
             bl      CORINFO_HELP_FAIL_FAST
             ; byrRegs -[x13-x14]
-            ; gcr arg pop 0
                        ;; size=68 bbWeight=0.50 PerfScore 8.50
-G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x21, [sp, #0x58]
             ldp     x19, x20, [sp, #0x48]
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M46478_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG17:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             cmp     w21, #1
-            bne     G_M46478_IG13
+            bne     G_M46478_IG19
             ldr     w1, [x20]
             cmp     w1, #0
-            ble     G_M46478_IG13
+            ble     G_M46478_IG19
             str     w1, [x19, #0x08]
             ldr     w1, [x19, #0x08]
             ldr     w0, [x20, #0x0C]
@@ -185,18 +200,17 @@ G_M46478_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             movk    xip0, #0xD1FFAB1E LSL #48
             ldr     xip1, [fp, #0x40]  // [V48 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG12
+            beq     G_M46478_IG18
             bl      CORINFO_HELP_FAIL_FAST
             ; byrRegs -[x19-x20]
-            ; gcr arg pop 0
                        ;; size=92 bbWeight=0.50 PerfScore 12.75
-G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG18:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x21, [sp, #0x58]
             ldp     x19, x20, [sp, #0x48]
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG19:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             sxtw    x1, w21
             movz    x0, #0xD1FFAB1E
@@ -204,7 +218,6 @@ G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             movk    x0, #1 LSL #32
             bl      CORINFO_HELP_NEWARR_1_VC
             ; gcrRegs +[x0]
-            ; gcr arg pop 0
             mov     x15, x0
             ; gcrRegs +[x15]
             mov     x14, x19
@@ -217,30 +230,30 @@ G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     w1, [x20]
             ldr     w2, [x0, #0x08]
             cmp     w2, #0
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x10]
             cmp     w21, #1
-            ble     G_M46478_IG14
+            ble     G_M46478_IG20
             ldr     x0, [x19]
             ldr     w1, [x20, #0x04]
             ldr     w2, [x0, #0x08]
             cmp     w2, #1
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x14]
                        ;; size=88 bbWeight=0.50 PerfScore 14.75
-G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+G_M46478_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
             ; gcrRegs -[x0]
             cmp     w21, #2
-            ble     G_M46478_IG15
+            ble     G_M46478_IG21
             ldr     x0, [x19]
             ; gcrRegs +[x0]
             ldr     w1, [x20, #0x08]
             ldr     w2, [x0, #0x08]
             cmp     w2, #2
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x18]
...

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.osx.arm64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.osx.arm64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_tiered.osx.arm64.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.osx.arm64.checked.mch 28 20 8 0 -420 +3,256
libraries.crossgen2.osx.arm64.checked.mch 6 5 1 0 -396 +12
libraries.pmi.osx.arm64.checked.mch 8 6 2 0 -360 +356
libraries_tests.run.osx.arm64.Release.mch 313 127 186 0 -4,432 +529,992
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 11 9 2 0 -1,056 +172
realworld.run.osx.arm64.checked.mch 0 0 0 0 -0 +0
366 167 199 0 -6,664 +533,788

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.osx.arm64.checked.mch 24,855 4 24,851 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.osx.arm64.checked.mch 84,590 48,412 36,178 84 (0.10%) 84 (0.10%)
benchmarks.run_tiered.osx.arm64.checked.mch 48,261 37,318 10,943 0 (0.00%) 0 (0.00%)
coreclr_tests.run.osx.arm64.checked.mch 585,832 357,177 228,655 326 (0.06%) 389 (0.07%)
libraries.crossgen2.osx.arm64.checked.mch 233,353 15 233,338 0 (0.00%) 0 (0.00%)
libraries.pmi.osx.arm64.checked.mch 314,716 18 314,698 0 (0.00%) 0 (0.00%)
libraries_tests.run.osx.arm64.Release.mch 637,144 466,371 170,773 2,509 (0.39%) 2,722 (0.43%)
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 302,469 21,558 280,911 6 (0.00%) 6 (0.00%)
realworld.run.osx.arm64.checked.mch 31,544 3 31,541 0 (0.00%) 0 (0.00%)
2,262,764 930,876 1,331,888 2,925 (0.13%) 3,201 (0.14%)

jit-analyze output

coreclr_tests.run.osx.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 485342836 (overridden on cmd)
Total bytes of diff: 485345672 (overridden on cmd)
Total bytes of delta: 2836 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         904 : 2263.dasm (35.70 % of base)
         540 : 209350.dasm (18.02 % of base)
         540 : 247318.dasm (17.93 % of base)
         532 : 28982.dasm (15.57 % of base)
         532 : 168325.dasm (15.57 % of base)
         180 : 30617.dasm (8.60 % of base)
          20 : 247296.dasm (1.33 % of base)
           8 : 519391.dasm (0.36 % of base)

Top file improvements (bytes):
         -28 : 209375.dasm (-1.94 % of base)
         -28 : 306896.dasm (-2.13 % of base)
         -28 : 370667.dasm (-1.99 % of base)
         -28 : 376109.dasm (-2.13 % of base)
         -28 : 383273.dasm (-2.13 % of base)
         -28 : 168416.dasm (-1.94 % of base)
         -28 : 261446.dasm (-2.48 % of base)
         -28 : 301956.dasm (-1.94 % of base)
         -28 : 30707.dasm (-2.44 % of base)
         -28 : 375454.dasm (-1.95 % of base)
         -28 : 375652.dasm (-2.51 % of base)
         -28 : 229199.dasm (-2.48 % of base)
         -28 : 246178.dasm (-2.48 % of base)
         -16 : 1100.dasm (-1.45 % of base)
         -12 : 582208.dasm (-0.71 % of base)
         -12 : 386461.dasm (-1.06 % of base)
          -4 : 255981.dasm (-0.19 % of base)
          -4 : 28924.dasm (-0.19 % of base)
          -4 : 228637.dasm (-0.18 % of base)
          -4 : 28925.dasm (-0.19 % of base)

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

Top method regressions (bytes):
         904 (35.70 % of base) : 2263.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (Instrumented Tier1)
         540 (18.02 % of base) : 209350.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         540 (17.93 % of base) : 247318.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         532 (15.57 % of base) : 28982.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         532 (15.57 % of base) : 168325.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         180 (8.60 % of base) : 30617.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
          20 (1.33 % of base) : 247296.dasm - System.RuntimeType:GetField(System.String,int):System.Reflection.FieldInfo:this (Instrumented Tier1)
           8 (0.36 % of base) : 519391.dasm - JitTest_array1_refany_il.Test:Main():int (FullOpts)

Top method improvements (bytes):
         -28 (-1.94 % of base) : 209375.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.13 % of base) : 306896.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-1.99 % of base) : 370667.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.13 % of base) : 376109.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.13 % of base) : 383273.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-1.94 % of base) : 168416.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.48 % of base) : 261446.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-1.94 % of base) : 301956.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.44 % of base) : 30707.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-1.95 % of base) : 375454.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.51 % of base) : 375652.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.48 % of base) : 229199.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.48 % of base) : 246178.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -16 (-1.45 % of base) : 1100.dasm - System.RuntimeType:GetConstructorCandidates(System.String,int,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.ConstructorInfo]:this (Instrumented Tier1)
         -12 (-0.71 % of base) : 582208.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
         -12 (-1.06 % of base) : 386461.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
          -4 (-0.19 % of base) : 255981.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Instrumented Tier1)
          -4 (-0.18 % of base) : 228637.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Instrumented Tier1)
          -4 (-0.19 % of base) : 28925.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Trim():ubyte:this (Instrumented Tier1)
          -4 (-0.19 % of base) : 28924.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Instrumented Tier1)

Top method regressions (percentages):
         904 (35.70 % of base) : 2263.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (Instrumented Tier1)
         540 (18.02 % of base) : 209350.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         540 (17.93 % of base) : 247318.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         532 (15.57 % of base) : 28982.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         532 (15.57 % of base) : 168325.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         180 (8.60 % of base) : 30617.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
          20 (1.33 % of base) : 247296.dasm - System.RuntimeType:GetField(System.String,int):System.Reflection.FieldInfo:this (Instrumented Tier1)
           8 (0.36 % of base) : 519391.dasm - JitTest_array1_refany_il.Test:Main():int (FullOpts)

Top method improvements (percentages):
         -28 (-2.51 % of base) : 375652.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.48 % of base) : 261446.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.48 % of base) : 229199.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.48 % of base) : 246178.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.44 % of base) : 30707.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.13 % of base) : 306896.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.13 % of base) : 376109.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.13 % of base) : 383273.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-1.99 % of base) : 370667.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-1.95 % of base) : 375454.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-1.94 % of base) : 209375.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-1.94 % of base) : 168416.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-1.94 % of base) : 301956.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -16 (-1.45 % of base) : 1100.dasm - System.RuntimeType:GetConstructorCandidates(System.String,int,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.ConstructorInfo]:this (Instrumented Tier1)
         -12 (-1.06 % of base) : 386461.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -12 (-0.71 % of base) : 582208.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
          -4 (-0.19 % of base) : 255981.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Instrumented Tier1)
          -4 (-0.19 % of base) : 28925.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Trim():ubyte:this (Instrumented Tier1)
          -4 (-0.19 % of base) : 28924.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Instrumented Tier1)
          -4 (-0.18 % of base) : 228637.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Instrumented Tier1)

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


libraries.crossgen2.osx.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 55620836 (overridden on cmd)
Total bytes of diff: 55620452 (overridden on cmd)
Total bytes of delta: -384 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          12 : 227749.dasm (1.80 % of base)

Top file improvements (bytes):
        -220 : 92401.dasm (-15.15 % of base)
         -60 : 27764.dasm (-11.03 % of base)
         -56 : 205350.dasm (-13.86 % of base)
         -56 : 156493.dasm (-13.86 % of base)
          -4 : 213865.dasm (-0.20 % of base)

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

Top method regressions (bytes):
          12 (1.80 % of base) : 227749.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (bytes):
        -220 (-15.15 % of base) : 92401.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]],int):this (FullOpts)
         -60 (-11.03 % of base) : 27764.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (FullOpts)
         -56 (-13.86 % of base) : 156493.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -56 (-13.86 % of base) : 205350.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
          -4 (-0.20 % of base) : 213865.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

Top method regressions (percentages):
          12 (1.80 % of base) : 227749.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (percentages):
        -220 (-15.15 % of base) : 92401.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]],int):this (FullOpts)
         -56 (-13.86 % of base) : 156493.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -56 (-13.86 % of base) : 205350.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -60 (-11.03 % of base) : 27764.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (FullOpts)
          -4 (-0.20 % of base) : 213865.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

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


libraries.pmi.osx.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 79959744 (overridden on cmd)
Total bytes of diff: 79959740 (overridden on cmd)
Total bytes of delta: -4 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         332 : 279243.dasm (2.72 % of base)
          24 : 292986.dasm (3.97 % of base)

Top file improvements (bytes):
        -168 : 118275.dasm (-14.53 % of base)
         -64 : 18325.dasm (-12.21 % of base)
         -56 : 206916.dasm (-10.53 % of base)
         -56 : 308938.dasm (-11.97 % of base)
         -12 : 71687.dasm (-0.71 % of base)
          -4 : 282535.dasm (-0.20 % of base)

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

Top method regressions (bytes):
         332 (2.72 % of base) : 279243.dasm - R2RDump.TextDumper:DumpSectionContents(ILCompiler.Reflection.ReadyToRun.ReadyToRunSection):this (FullOpts)
          24 (3.97 % of base) : 292986.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (bytes):
        -168 (-14.53 % of base) : 118275.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]],int):this (FullOpts)
         -64 (-12.21 % of base) : 18325.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (FullOpts)
         -56 (-11.97 % of base) : 308938.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -56 (-10.53 % of base) : 206916.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -12 (-0.71 % of base) : 71687.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
          -4 (-0.20 % of base) : 282535.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

Top method regressions (percentages):
          24 (3.97 % of base) : 292986.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)
         332 (2.72 % of base) : 279243.dasm - R2RDump.TextDumper:DumpSectionContents(ILCompiler.Reflection.ReadyToRun.ReadyToRunSection):this (FullOpts)

Top method improvements (percentages):
        -168 (-14.53 % of base) : 118275.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]],int):this (FullOpts)
         -64 (-12.21 % of base) : 18325.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (FullOpts)
         -56 (-11.97 % of base) : 308938.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -56 (-10.53 % of base) : 206916.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -12 (-0.71 % of base) : 71687.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
          -4 (-0.20 % of base) : 282535.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

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


libraries_tests.run.osx.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 312234552 (overridden on cmd)
Total bytes of diff: 312760112 (overridden on cmd)
Total bytes of delta: 525560 (0.17 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        4932 : 358434.dasm (51.27 % of base)
        4932 : 73373.dasm (51.38 % of base)
        4888 : 95682.dasm (51.56 % of base)
        4844 : 182961.dasm (49.88 % of base)
        4844 : 337631.dasm (50.84 % of base)
        4844 : 357830.dasm (49.88 % of base)
        4844 : 437175.dasm (50.84 % of base)
        4844 : 274083.dasm (50.84 % of base)
        4844 : 178131.dasm (50.84 % of base)
        4836 : 95116.dasm (50.78 % of base)
        4828 : 25669.dasm (49.69 % of base)
        4824 : 618529.dasm (49.67 % of base)
        4820 : 129092.dasm (50.91 % of base)
        4820 : 438683.dasm (50.91 % of base)
        4820 : 324803.dasm (50.10 % of base)
        4820 : 571742.dasm (50.78 % of base)
        4820 : 100844.dasm (50.91 % of base)
        4816 : 124737.dasm (50.12 % of base)
        4808 : 370032.dasm (50.10 % of base)
        4808 : 341764.dasm (49.96 % of base)

Top file improvements (bytes):
        -228 : 577463.dasm (-14.54 % of base)
        -228 : 581216.dasm (-14.18 % of base)
        -192 : 581709.dasm (-21.62 % of base)
        -148 : 577674.dasm (-20.56 % of base)
        -140 : 577819.dasm (-18.32 % of base)
        -140 : 577742.dasm (-22.01 % of base)
        -120 : 460943.dasm (-15.87 % of base)
        -104 : 578570.dasm (-17.93 % of base)
         -80 : 610529.dasm (-14.93 % of base)
         -52 : 581708.dasm (-10.57 % of base)
         -28 : 372510.dasm (-3.24 % of base)
         -28 : 419103.dasm (-3.24 % of base)
         -28 : 100609.dasm (-3.21 % of base)
         -28 : 182953.dasm (-3.21 % of base)
         -28 : 216385.dasm (-3.21 % of base)
         -28 : 222707.dasm (-3.24 % of base)
         -28 : 71621.dasm (-3.21 % of base)
         -28 : 95325.dasm (-3.21 % of base)
         -28 : 119991.dasm (-3.24 % of base)
         -28 : 140641.dasm (-3.21 % of base)

62 total files with Code Size differences (29 improved, 33 regressed), 0 unchanged.

Top method regressions (bytes):
        4932 (51.27 % of base) : 358434.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4932 (51.38 % of base) : 73373.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4888 (51.56 % of base) : 95682.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4844 (49.88 % of base) : 182961.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4844 (50.84 % of base) : 337631.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4844 (49.88 % of base) : 357830.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4844 (50.84 % of base) : 437175.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4844 (50.84 % of base) : 274083.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4844 (50.84 % of base) : 178131.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4836 (50.78 % of base) : 95116.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4828 (49.69 % of base) : 25669.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4824 (49.67 % of base) : 618529.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4820 (50.91 % of base) : 129092.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4820 (50.91 % of base) : 438683.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4820 (50.10 % of base) : 324803.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4820 (50.78 % of base) : 571742.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4820 (50.91 % of base) : 100844.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4816 (50.12 % of base) : 124737.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4808 (50.10 % of base) : 370032.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4808 (49.96 % of base) : 341764.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)

Top method improvements (bytes):
        -228 (-14.18 % of base) : 581216.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4268_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -228 (-14.54 % of base) : 577463.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex787_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -192 (-21.62 % of base) : 581709.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4565_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -148 (-20.56 % of base) : 577674.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex818_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -140 (-22.01 % of base) : 577742.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex825_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -140 (-18.32 % of base) : 577819.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex832_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -120 (-15.87 % of base) : 460943.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (Instrumented Tier1)
        -104 (-17.93 % of base) : 578570.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex927_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -80 (-14.93 % of base) : 610529.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex3747_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -52 (-10.57 % of base) : 581708.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4564_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -28 (-3.24 % of base) : 372510.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.24 % of base) : 419103.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 100609.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 182953.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 216385.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.24 % of base) : 222707.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 71621.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 95325.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.24 % of base) : 119991.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 140641.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)

Top method regressions (percentages):
        4888 (51.56 % of base) : 95682.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4932 (51.38 % of base) : 73373.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4932 (51.27 % of base) : 358434.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4780 (51.16 % of base) : 291640.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4800 (51.13 % of base) : 123624.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4804 (51.08 % of base) : 631896.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4820 (50.91 % of base) : 129092.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4820 (50.91 % of base) : 438683.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4820 (50.91 % of base) : 100844.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4844 (50.84 % of base) : 337631.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4844 (50.84 % of base) : 437175.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4844 (50.84 % of base) : 274083.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4844 (50.84 % of base) : 178131.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4820 (50.78 % of base) : 571742.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4836 (50.78 % of base) : 95116.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4780 (50.70 % of base) : 465900.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4748 (50.64 % of base) : 347930.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4796 (50.57 % of base) : 623532.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4760 (50.45 % of base) : 633693.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        4796 (50.44 % of base) : 540497.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)

Top method improvements (percentages):
        -140 (-22.01 % of base) : 577742.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex825_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -192 (-21.62 % of base) : 581709.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4565_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -148 (-20.56 % of base) : 577674.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex818_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -140 (-18.32 % of base) : 577819.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex832_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -104 (-17.93 % of base) : 578570.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex927_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -120 (-15.87 % of base) : 460943.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (Instrumented Tier1)
         -80 (-14.93 % of base) : 610529.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex3747_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -228 (-14.54 % of base) : 577463.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex787_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -228 (-14.18 % of base) : 581216.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4268_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -52 (-10.57 % of base) : 581708.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4564_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -28 (-3.24 % of base) : 372510.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.24 % of base) : 419103.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.24 % of base) : 222707.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.24 % of base) : 119991.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.24 % of base) : 337691.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 100609.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 182953.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 216385.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 71621.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 95325.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)


librariestestsnotieredcompilation.run.osx.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 160790848 (overridden on cmd)
Total bytes of diff: 160789964 (overridden on cmd)
Total bytes of delta: -884 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         148 : 266841.dasm (6.29 % of base)
          24 : 115538.dasm (3.97 % of base)

Top file improvements (bytes):
        -200 : 271962.dasm (-21.65 % of base)
        -172 : 277254.dasm (-22.75 % of base)
        -164 : 277261.dasm (-23.56 % of base)
        -160 : 277267.dasm (-18.60 % of base)
        -116 : 277437.dasm (-18.83 % of base)
         -68 : 287019.dasm (-12.98 % of base)
         -64 : 271960.dasm (-12.12 % of base)
         -56 : 193333.dasm (-11.97 % of base)
         -56 : 61271.dasm (-11.97 % of base)

11 total files with Code Size differences (9 improved, 2 regressed), 0 unchanged.

Top method regressions (bytes):
         148 (6.29 % of base) : 266841.dasm - System.Text.RegularExpressions.Tests.CustomDerivedRegex+CustomRegexRunnerFactory+CustomRegexRunner:Go():this (FullOpts)
          24 (3.97 % of base) : 115538.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (bytes):
        -200 (-21.65 % of base) : 271962.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex654_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -172 (-22.75 % of base) : 277254.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5740_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -164 (-23.56 % of base) : 277261.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5747_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -160 (-18.60 % of base) : 277267.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5754_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -116 (-18.83 % of base) : 277437.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5849_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -68 (-12.98 % of base) : 287019.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4972_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -64 (-12.12 % of base) : 271960.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex653_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -56 (-11.97 % of base) : 61271.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -56 (-11.97 % of base) : 193333.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)

Top method regressions (percentages):
         148 (6.29 % of base) : 266841.dasm - System.Text.RegularExpressions.Tests.CustomDerivedRegex+CustomRegexRunnerFactory+CustomRegexRunner:Go():this (FullOpts)
          24 (3.97 % of base) : 115538.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (percentages):
        -164 (-23.56 % of base) : 277261.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5747_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -172 (-22.75 % of base) : 277254.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5740_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -200 (-21.65 % of base) : 271962.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex654_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -116 (-18.83 % of base) : 277437.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5849_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -160 (-18.60 % of base) : 277267.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5754_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -68 (-12.98 % of base) : 287019.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4972_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -64 (-12.12 % of base) : 271960.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex653_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -56 (-11.97 % of base) : 61271.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -56 (-11.97 % of base) : 193333.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)

11 total methods with Code Size differences (9 improved, 2 regressed).



windows arm64

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

MISSED contexts: base: 2,587 (0.11%), diff: 2,601 (0.11%)

Overall (+731,948 bytes)

Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.windows.arm64.checked.mch 495,323,964 +19,784
libraries.crossgen2.windows.arm64.checked.mch 58,963,476 -384
libraries.pmi.windows.arm64.checked.mch 79,567,996 +60
libraries_tests.run.windows.arm64.Release.mch 309,697,012 +713,120
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 169,004,992 -888
smoke_tests.nativeaot.windows.arm64.checked.mch 3,972,452 +256

FullOpts (+731,948 bytes)

Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.windows.arm64.checked.mch 156,232,436 +19,784
libraries.crossgen2.windows.arm64.checked.mch 58,961,840 -384
libraries.pmi.windows.arm64.checked.mch 79,448,012 +60
libraries_tests.run.windows.arm64.Release.mch 108,115,508 +713,120
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 155,867,528 -888
smoke_tests.nativeaot.windows.arm64.checked.mch 3,971,480 +256

Example diffs

coreclr_tests.run.windows.arm64.checked.mch

-28 (-3.21%) : 218315.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)

@@ -9,50 +9,51 @@
 ; 3 inlinees with PGO data; 10 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
+;  V00 this         [V00,T06] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
 ;  V01 RetBuf       [V01,T01] (  6,  6   )   byref  ->  x20         single-def
-;  V02 arg1         [V02,T04] ( 11,  4.19)     ref  ->  x21         ld-addr-op class-hnd <System.String>
+;  V02 arg1         [V02,T05] ( 11,  4.19)     ref  ->  x21         ld-addr-op class-hnd <System.String>
 ;  V03 arg2         [V03,T00] (  6,  6.53)     int  ->  x19        
-;  V04 arg3         [V04,T06] (  4,  3.96)     ref  ->  x23         class-hnd single-def <System.Type[]>
-;  V05 arg4         [V05,T08] (  3,  2.94)   ubyte  ->  x24         single-def
-;  V06 loc0         [V06,T19] (  3,  2.46)   ubyte  ->  x25         ld-addr-op
-;  V07 loc1         [V07,T23] (  3,  1.10)   ubyte  ->  x26         ld-addr-op
-;  V08 loc2         [V08,T21] (  4,  2   )     int  ->  x27         ld-addr-op
-;  V09 loc3         [V09,T18] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
+;  V04 arg3         [V04,T07] (  4,  3.96)     ref  ->  x23         class-hnd single-def <System.Type[]>
+;  V05 arg4         [V05,T09] (  3,  2.94)   ubyte  ->  x24         single-def
+;  V06 loc0         [V06,T20] (  3,  2.46)   ubyte  ->  x25         ld-addr-op
+;  V07 loc1         [V07,T24] (  3,  1.10)   ubyte  ->  x26         ld-addr-op
+;  V08 loc2         [V08,T22] (  4,  2   )     int  ->  x27         ld-addr-op
+;  V09 loc3         [V09,T19] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
 ;  V10 loc4         [V10    ] (  9,  9.46)  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]>
 ;  V11 loc5         [V11,T02] (  5,  7.36)     int  ->  x24        
-;  V12 loc6         [V12,T03] (  7,  6.12)     ref  ->  x27         class-hnd exact <System.Reflection.RuntimePropertyInfo>
+;  V12 loc6         [V12,T04] (  7,  6.12)     ref  ->  [fp+0x10]  class-hnd exact spill-single-def <System.Reflection.RuntimePropertyInfo>
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V16 tmp3         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
-;  V18 tmp5         [V18,T12] (  5,  4.23)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
-;  V19 tmp6         [V19,T07] (  4,  4   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
-;* V20 tmp7         [V20,T17] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
+;  V18 tmp5         [V18,T13] (  5,  4.23)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
+;  V19 tmp6         [V19,T08] (  4,  4   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;* V20 tmp7         [V20,T18] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
 ;* V21 tmp8         [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.RuntimeType+RuntimeTypeCache>
 ;* V22 tmp9         [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp10        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp11        [V24    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp12        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V26 tmp13        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V27 tmp14        [V27,T09] (  4,  4.91)   byref  ->  x22         single-def "Inlining Arg"
+;  V27 tmp14        [V27,T10] (  4,  4.91)   byref  ->  x22         single-def "Inlining Arg"
 ;* V28 tmp15        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;* V29 tmp16        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
-;  V30 tmp17        [V30,T14] (  7,  3.91)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V31 tmp18        [V31,T22] (  4,  1.81)     ref  ->  x28         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V30 tmp17        [V30,T15] (  7,  3.91)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V31 tmp18        [V31,T23] (  4,  1.81)     ref  ->  x28         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V32 tmp19        [V32    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V33 tmp20        [V33,T13] (  2,  4   )     int  ->   x1         "Inlining Arg"
+;  V33 tmp20        [V33,T14] (  2,  4   )     int  ->   x1         "Inlining Arg"
 ;  V34 tmp21        [V34    ] (  3,  3.46)     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V10._items (fldOffset=0x0)" P-DEP
 ;  V35 tmp22        [V35    ] (  3,  3.46)     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V10._item (fldOffset=0x8)" P-DEP
 ;  V36 tmp23        [V36    ] (  3,  3.46)     int  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V10._count (fldOffset=0x10)" P-DEP
 ;  V37 tmp24        [V37    ] (  3,  3.46)     int  ->  [fp+0x2C]  do-not-enreg[X] addr-exposed "field V10._capacity (fldOffset=0x14)" P-DEP
-;* V38 tmp25        [V38,T24] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V39 cse0         [V39,T10] (  3,  4.77)     int  ->   x0         "CSE - aggressive"
-;  V40 cse1         [V40,T16] (  3,  3   )    long  ->   x0         "CSE - moderate"
-;  V41 cse2         [V41,T11] (  4,  4.59)     int  ->  x22         "CSE - aggressive"
-;  V42 cse3         [V42,T20] (  2,  2.20)   byref  ->  x28         hoist "CSE - moderate"
-;  V43 cse4         [V43,T15] (  3,  3   )     ref  ->   x1         "CSE - moderate"
+;* V38 tmp25        [V38,T25] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V39 cse0         [V39,T11] (  3,  4.77)     int  ->   x0         "CSE - aggressive"
+;  V40 cse1         [V40,T17] (  3,  3   )    long  ->   x0         "CSE - moderate"
+;  V41 cse2         [V41,T03] ( 10,  6.65)    long  ->  x27         hoist multi-def "CSE - aggressive"
+;  V42 cse3         [V42,T12] (  4,  4.59)     int  ->  x22         "CSE - moderate"
+;  V43 cse4         [V43,T21] (  2,  2.20)   byref  ->  x28         hoist "CSE - moderate"
+;  V44 cse5         [V44,T16] (  3,  3   )     ref  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -218,7 +219,7 @@ G_M37807_IG13:        ; bbWeight=0.23, gcrefRegs=1A00000 {x21 x23 x24}, byrefReg
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15 x24]
             ; byrRegs -[x14]
-            cbz     x22, G_M37807_IG28
+            cbz     x22, G_M37807_IG29
             mov     x0, x22
             ; byrRegs +[x0]
             mov     x1, x28
@@ -252,30 +253,36 @@ G_M37807_IG14:        ; bbWeight=1, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=100
             stp     wzr, w1, [fp, #0x28]   // [V36 tmp23], [V37 tmp24]
             mov     w24, wzr
             cmp     w22, #0
-            ble     G_M37807_IG26
+            ble     G_M37807_IG27
                        ;; size=68 bbWeight=1 PerfScore 18.00
 G_M37807_IG15:        ; bbWeight=0.61, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=100000 {x20}, byref
             add     x28, x0, #16
             ; byrRegs +[x28]
-                       ;; size=4 bbWeight=0.61 PerfScore 0.31
+            movz    x27, #0xD1FFAB1E
+            movk    x27, #0xD1FFAB1E LSL #16
+            movk    x27, #0xD1FFAB1E LSL #32
+                       ;; size=16 bbWeight=0.61 PerfScore 1.23
 G_M37807_IG16:        ; bbWeight=1.59, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x27, [x28, w24, UXTW #3]
-            ; gcrRegs +[x27]
-            ldr     w0, [x27, #0x58]
+            ldr     x2, [x28, w24, UXTW #3]
+            ; gcrRegs +[x2]
+            str     x2, [fp, #0x10]    // [V12 loc6]
+            ; GC ptr vars +{V12}
+            ldr     w0, [x2, #0x58]
             and     w1, w19, w0
             cmp     w1, w0
             bne     G_M37807_IG23
-                       ;; size=20 bbWeight=1.59 PerfScore 12.71
-G_M37807_IG17:        ; bbWeight=1.46, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
+                       ;; size=24 bbWeight=1.59 PerfScore 14.30
+G_M37807_IG17:        ; bbWeight=1.46, gcVars=0000000000000010 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, gcvars, byref, isz
             cbz     w25, G_M37807_IG19
                        ;; size=4 bbWeight=1.46 PerfScore 1.46
-G_M37807_IG18:        ; bbWeight=0, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            mov     x0, x27
+G_M37807_IG18:        ; bbWeight=0, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
             mov     x1, x21
             ; gcrRegs +[x1]
             mov     w2, w26
+            ; gcrRegs -[x2]
             movz    x3, #0xD1FFAB1E      // code for System.RuntimeType:FilterApplyPrefixLookup(System.Reflection.MemberInfo,System.String,ubyte):ubyte
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
@@ -283,28 +290,26 @@ G_M37807_IG18:        ; bbWeight=0, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=1
             blr     x3
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbz     w0, G_M37807_IG29
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            cbz     w0, G_M37807_IG30
+            mov     x0, x27
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=52 bbWeight=0 PerfScore 0.00
-G_M37807_IG19:        ; bbWeight=1.46, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            cbz     x23, G_M37807_IG22
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
+            ; gcrRegs +[x2]
+                       ;; size=48 bbWeight=0 PerfScore 0.00
+G_M37807_IG19:        ; bbWeight=1.46, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            cbz     x23, G_M37807_IG25
                        ;; size=4 bbWeight=1.46 PerfScore 1.46
-G_M37807_IG20:        ; bbWeight=0.49, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            mov     x0, x27
+G_M37807_IG20:        ; bbWeight=0.49, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
+            add     x1, x27, #8
             bl      CORINFO_HELP_CLASSPROFILE32
-            ; gcrRegs -[x0]
+            ; gcrRegs -[x0 x2]
             ; gcr arg pop 0
-            mov     x0, x27
+            ldr     x0, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x0]
-            ldr     x1, [x27]
+            ldr     x1, [x0]
             ldr     x1, [x1, #0x58]
             ldr     x1, [x1, #0x18]
             blr     x1
@@ -313,23 +318,19 @@ G_M37807_IG20:        ; bbWeight=0.49, gcrefRegs=8A00000 {x21 x23 x27}, byrefReg
             ; gcrRegs -[x0]
             ldr     w1, [x23, #0x08]
             cmp     w0, w1
-            bne     G_M37807_IG25
-                       ;; size=56 bbWeight=0.49 PerfScore 10.37
-G_M37807_IG21:        ; bbWeight=0.25, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            bne     G_M37807_IG26
+                       ;; size=48 bbWeight=0.49 PerfScore 10.62
+G_M37807_IG21:        ; bbWeight=0.25, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.25 PerfScore 0.62
-G_M37807_IG22:        ; bbWeight=1.46, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+                       ;; size=8 bbWeight=0.25 PerfScore 0.37
+G_M37807_IG22:        ; bbWeight=1.46, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     x0, fp, #24    // [V10 loc4]
-            mov     x2, x27
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x2]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -338,41 +339,45 @@ G_M37807_IG22:        ; bbWeight=1.46, gcrefRegs=8A00000 {x21 x23 x27}, byrefReg
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
+            ; GC ptr vars -{V12}
             blr     x3
-            ; gcrRegs -[x2 x27]
+            ; gcrRegs -[x2]
             ; gcr arg pop 0
-                       ;; size=56 bbWeight=1.46 PerfScore 15.36
+                       ;; size=48 bbWeight=1.46 PerfScore 16.09
 G_M37807_IG23:        ; bbWeight=1.59, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     w24, w24, #1
             cmp     w22, w24
             bgt     G_M37807_IG16
-                       ;; size=28 bbWeight=1.59 PerfScore 7.15
+                       ;; size=20 bbWeight=1.59 PerfScore 5.56
 G_M37807_IG24:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
             ; gcrRegs -[x21 x23]
             ; byrRegs -[x28]
-            b       G_M37807_IG26
+            b       G_M37807_IG27
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M37807_IG25:        ; bbWeight=0.25, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref
-            ; gcrRegs +[x21 x23]
+G_M37807_IG25:        ; bbWeight=0.73, gcVars=0000000000000010 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, gcvars, byref
+            ; gcrRegs +[x2 x21 x23]
             ; byrRegs +[x28]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            ; GC ptr vars +{V04 V12}
+            b       G_M37807_IG22
+                       ;; size=4 bbWeight=0.73 PerfScore 0.73
+G_M37807_IG26:        ; bbWeight=0.25, gcVars=0000000000000000 {}, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, gcvars, byref
+            ; gcrRegs -[x2]
+            ; GC ptr vars -{V04 V12}
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             b       G_M37807_IG23
...

-28 (-2.48%) : 383302.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)

@@ -9,52 +9,53 @@
 ; 4 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  4,  4   )     ref  ->  x21         this class-hnd single-def <System.RuntimeType>
+;  V00 this         [V00,T06] (  4,  4   )     ref  ->  x21         this class-hnd single-def <System.RuntimeType>
 ;  V01 RetBuf       [V01,T01] (  6,  6   )   byref  ->  x20         single-def
-;  V02 arg1         [V02,T08] ( 14,  3.76)     ref  ->  x23         ld-addr-op class-hnd <System.String>
+;  V02 arg1         [V02,T09] ( 14,  3.76)     ref  ->  x23         ld-addr-op class-hnd <System.String>
 ;  V03 arg2         [V03,T00] (  6,  6.09)     int  ->  x19        
-;  V04 arg3         [V04,T06] (  4,  3.96)     ref  ->  x22         class-hnd single-def <System.Type[]>
-;  V05 arg4         [V05,T12] (  3,  2.50)   ubyte  ->  x24         single-def
-;  V06 loc0         [V06,T20] (  3,  2.46)   ubyte  ->  x25         ld-addr-op
-;  V07 loc1         [V07,T25] (  3,  1   )   ubyte  ->  x26         ld-addr-op
-;  V08 loc2         [V08,T17] (  7,  3.26)     int  ->  x27         ld-addr-op
-;  V09 loc3         [V09,T19] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
+;  V04 arg3         [V04,T07] (  4,  3.96)     ref  ->  x22         class-hnd single-def <System.Type[]>
+;  V05 arg4         [V05,T13] (  3,  2.50)   ubyte  ->  x24         single-def
+;  V06 loc0         [V06,T21] (  3,  2.46)   ubyte  ->  x25         ld-addr-op
+;  V07 loc1         [V07,T26] (  3,  1   )   ubyte  ->  x26         ld-addr-op
+;  V08 loc2         [V08,T18] (  7,  3.26)     int  ->  x27         ld-addr-op
+;  V09 loc3         [V09,T20] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
 ;  V10 loc4         [V10    ] (  9,  9.46)  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]>
 ;  V11 loc5         [V11,T02] (  5,  7.36)     int  ->  x24        
-;  V12 loc6         [V12,T03] (  7,  6.12)     ref  ->  x28         class-hnd exact <System.Reflection.RuntimePropertyInfo>
+;  V12 loc6         [V12,T04] (  7,  6.12)     ref  ->  [fp+0x10]  class-hnd exact spill-single-def <System.Reflection.RuntimePropertyInfo>
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V16 tmp3         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
-;  V18 tmp5         [V18,T13] (  5,  4.46)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
-;  V19 tmp6         [V19,T09] (  5,  5   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
-;  V20 tmp7         [V20,T14] (  2,  4   )     ref  ->   x0         class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
+;  V18 tmp5         [V18,T14] (  5,  4.46)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
+;  V19 tmp6         [V19,T10] (  5,  5   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;  V20 tmp7         [V20,T15] (  2,  4   )     ref  ->   x0         class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
 ;* V21 tmp8         [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.RuntimeType+RuntimeTypeCache>
 ;* V22 tmp9         [V22    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp10        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V24 tmp11        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V25 tmp12        [V25,T07] (  4,  5.84)   byref  ->  x21         single-def "Inlining Arg"
+;  V25 tmp12        [V25,T08] (  4,  5.84)   byref  ->  x21         single-def "Inlining Arg"
 ;* V26 tmp13        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V27 tmp14        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
-;  V28 tmp15        [V28,T04] ( 14,  6.61)     ref  ->  registers   class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V29 tmp16        [V29,T16] (  4,  3.68)     ref  ->  x28         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V28 tmp15        [V28,T05] ( 14,  6.61)     ref  ->  registers   class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V29 tmp16        [V29,T17] (  4,  3.68)     ref  ->  x28         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V30 tmp17        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V31 tmp18        [V31,T22] (  5,  2   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V32 tmp19        [V32,T23] (  2,  2   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
-;  V33 tmp20        [V33,T24] (  4,  1.76)     ref  ->   x0        
-;  V34 tmp21        [V34,T28] (  2,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
-;  V35 tmp22        [V35,T27] (  4,  0   )     ref  ->   x0        
-;  V36 tmp23        [V36,T15] (  2,  4   )     int  ->   x1         "Inlining Arg"
+;  V31 tmp18        [V31,T23] (  5,  2   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
+;  V32 tmp19        [V32,T24] (  2,  2   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
+;  V33 tmp20        [V33,T25] (  4,  1.76)     ref  ->   x0        
+;  V34 tmp21        [V34,T29] (  2,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
+;  V35 tmp22        [V35,T28] (  4,  0   )     ref  ->   x0        
+;  V36 tmp23        [V36,T16] (  2,  4   )     int  ->   x1         "Inlining Arg"
 ;  V37 tmp24        [V37    ] (  3,  3.46)     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V10._items (fldOffset=0x0)" P-DEP
 ;  V38 tmp25        [V38    ] (  3,  3.46)     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V10._item (fldOffset=0x8)" P-DEP
 ;  V39 tmp26        [V39    ] (  3,  3.46)     int  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V10._count (fldOffset=0x10)" P-DEP
 ;  V40 tmp27        [V40    ] (  3,  3.46)     int  ->  [fp+0x2C]  do-not-enreg[X] addr-exposed "field V10._capacity (fldOffset=0x14)" P-DEP
-;* V41 tmp28        [V41,T26] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V42 cse0         [V42,T10] (  3,  4.77)     int  ->   x0         "CSE - moderate"
-;  V43 cse1         [V43,T18] (  3,  3   )    long  ->   x0         "CSE - moderate"
-;  V44 cse2         [V44,T11] (  4,  4.59)     int  ->  x21         "CSE - aggressive"
-;  V45 cse3         [V45,T21] (  2,  2.20)   byref  ->  x27         hoist "CSE - moderate"
+;* V41 tmp28        [V41,T27] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V42 cse0         [V42,T11] (  3,  4.77)     int  ->   x0         "CSE - moderate"
+;  V43 cse1         [V43,T19] (  3,  3   )    long  ->   x0         "CSE - moderate"
+;  V44 cse2         [V44,T03] ( 10,  6.65)    long  ->  x28         hoist multi-def "CSE - aggressive"
+;  V45 cse3         [V45,T12] (  4,  4.59)     int  ->  x21         "CSE - moderate"
+;  V46 cse4         [V46,T22] (  2,  2.20)   byref  ->  x27         hoist "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -217,7 +218,7 @@ G_M37807_IG12:        ; bbWeight=0.46, gcrefRegs=1C00000 {x22 x23 x24}, byrefReg
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15 x24]
             ; byrRegs -[x14]
-            cbz     x21, G_M37807_IG36
+            cbz     x21, G_M37807_IG37
             mov     x0, x21
             ; byrRegs +[x0]
             mov     x1, x28
@@ -276,7 +277,7 @@ G_M37807_IG16:        ; bbWeight=0.50, gcrefRegs=10C00000 {x22 x23 x28}, byrefRe
             ; byrRegs +[x0]
             ldaprb  w0, [x0]
             ; byrRegs -[x0]
-            cbz     w0, G_M37807_IG27
+            cbz     w0, G_M37807_IG28
             b       G_M37807_IG25
                        ;; size=44 bbWeight=0.50 PerfScore 6.00
 G_M37807_IG17:        ; bbWeight=0.50, gcrefRegs=10C00000 {x22 x23 x28}, byrefRegs=100000 {x20}, byref, isz
@@ -321,27 +322,34 @@ G_M37807_IG19:        ; bbWeight=1, gcrefRegs=C00001 {x0 x22 x23}, byrefRegs=100
             stp     wzr, w1, [fp, #0x28]   // [V39 tmp26], [V40 tmp27]
             mov     w24, wzr
             cmp     w21, #0
-            ble     G_M37807_IG34
+            ble     G_M37807_IG35
                        ;; size=32 bbWeight=1 PerfScore 8.00
 G_M37807_IG20:        ; bbWeight=0.61, gcrefRegs=C00001 {x0 x22 x23}, byrefRegs=100000 {x20}, byref
             add     x27, x0, #16
             ; byrRegs +[x27]
-                       ;; size=4 bbWeight=0.61 PerfScore 0.31
+            movz    x28, #0xD1FFAB1E
+            movk    x28, #0xD1FFAB1E LSL #16
+            movk    x28, #0xD1FFAB1E LSL #32
+                       ;; size=16 bbWeight=0.61 PerfScore 1.23
 G_M37807_IG21:        ; bbWeight=1.59, gcrefRegs=C00000 {x22 x23}, byrefRegs=8100000 {x20 x27}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x28, [x27, w24, UXTW #3]
-            ; gcrRegs +[x28]
-            ldr     w0, [x28, #0x58]
+            ldr     x2, [x27, w24, UXTW #3]
+            ; gcrRegs +[x2]
+            str     x2, [fp, #0x10]    // [V12 loc6]
+            ; GC ptr vars +{V12}
+            ldr     w0, [x2, #0x58]
             and     w1, w19, w0
             cmp     w1, w0
-            bne     G_M37807_IG31
-                       ;; size=20 bbWeight=1.59 PerfScore 12.71
-G_M37807_IG22:        ; bbWeight=1.46, gcrefRegs=10C00000 {x22 x23 x28}, byrefRegs=8100000 {x20 x27}, byref, isz
+            bne     G_M37807_IG32
+                       ;; size=24 bbWeight=1.59 PerfScore 14.30
+G_M37807_IG22:        ; bbWeight=1.46, gcVars=0000000000000010 {V12}, gcrefRegs=C00004 {x2 x22 x23}, byrefRegs=8100000 {x20 x27}, gcvars, byref, isz
             cbz     w25, G_M37807_IG26
-            b       G_M37807_IG37
+            b       G_M37807_IG38
                        ;; size=8 bbWeight=1.46 PerfScore 2.93
-G_M37807_IG23:        ; bbWeight=0, gcrefRegs=10C00000 {x22 x23 x28}, byrefRegs=100000 {x20}, byref
+G_M37807_IG23:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=10C00000 {x22 x23 x28}, byrefRegs=100000 {x20}, gcvars, byref
+            ; gcrRegs -[x2] +[x28]
             ; byrRegs -[x27]
+            ; GC ptr vars -{V12}
             mov     x0, x28
             ; gcrRegs +[x0]
             mov     x1, x23
@@ -365,14 +373,20 @@ G_M37807_IG25:        ; bbWeight=0.24, gcrefRegs=10C00000 {x22 x23 x28}, byrefRe
             ; gcrRegs +[x0]
             b       G_M37807_IG19
                        ;; size=8 bbWeight=0.24 PerfScore 0.94
-G_M37807_IG26:        ; bbWeight=1.46, gcrefRegs=10C00000 {x22 x23 x28}, byrefRegs=8100000 {x20 x27}, byref, isz
-            ; gcrRegs -[x0]
+G_M37807_IG26:        ; bbWeight=1.46, gcVars=0000000000000010 {V12}, gcrefRegs=C00004 {x2 x22 x23}, byrefRegs=8100000 {x20 x27}, gcvars, byref, isz
+            ; gcrRegs -[x0 x28] +[x2]
             ; byrRegs +[x27]
-            cbz     x22, G_M37807_IG30
-            b       G_M37807_IG28
+            ; GC ptr vars +{V04 V12}
+            cbz     x22, G_M37807_IG27
+            b       G_M37807_IG29
                        ;; size=8 bbWeight=1.46 PerfScore 2.93
-G_M37807_IG27:        ; bbWeight=0.26, gcrefRegs=10C00000 {x22 x23 x28}, byrefRegs=100000 {x20}, byref
+G_M37807_IG27:        ; bbWeight=0.73, gcrefRegs=C00004 {x2 x22 x23}, byrefRegs=8100000 {x20 x27}, byref
+            b       G_M37807_IG31
+                       ;; size=4 bbWeight=0.73 PerfScore 0.73
+G_M37807_IG28:        ; bbWeight=0.26, gcVars=0000000000000000 {}, gcrefRegs=10C00000 {x22 x23 x28}, byrefRegs=100000 {x20}, gcvars, byref
+            ; gcrRegs -[x2] +[x28]
             ; byrRegs -[x27]
+            ; GC ptr vars -{V04 V12}
             mov     x0, x28
             ; gcrRegs +[x0]
             mov     w2, w27
@@ -387,20 +401,19 @@ G_M37807_IG27:        ; bbWeight=0.26, gcrefRegs=10C00000 {x22 x23 x28}, byrefRe
             ; gcr arg pop 0
             b       G_M37807_IG19
                        ;; size=40 bbWeight=0.26 PerfScore 2.25
-G_M37807_IG28:        ; bbWeight=0.49, gcrefRegs=10C00000 {x22 x23 x28}, byrefRegs=8100000 {x20 x27}, byref, isz
-            ; gcrRegs -[x0] +[x28]
+G_M37807_IG29:        ; bbWeight=0.49, gcVars=0000000000000010 {V12}, gcrefRegs=C00004 {x2 x22 x23}, byrefRegs=8100000 {x20 x27}, gcvars, byref, isz
+            ; gcrRegs -[x0] +[x2]
             ; byrRegs +[x27]
-            mov     x0, x28
+            ; GC ptr vars +{V04 V12}
+            mov     x0, x2
             ; gcrRegs +[x0]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
+            add     x1, x28, #8
             bl      CORINFO_HELP_CLASSPROFILE32
-            ; gcrRegs -[x0]
+            ; gcrRegs -[x0 x2]
             ; gcr arg pop 0
-            mov     x0, x28
+            ldr     x0, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x0]
-            ldr     x1, [x28]
+            ldr     x1, [x0]
             ldr     x1, [x1, #0x58]
             ldr     x1, [x1, #0x18]
             blr     x1
@@ -409,23 +422,19 @@ G_M37807_IG28:        ; bbWeight=0.49, gcrefRegs=10C00000 {x22 x23 x28}, byrefRe
             ; gcrRegs -[x0]
             ldr     w1, [x22, #0x08]
             cmp     w0, w1
-            bne     G_M37807_IG33
-                       ;; size=56 bbWeight=0.49 PerfScore 10.37
-G_M37807_IG29:        ; bbWeight=0.25, gcrefRegs=10C00000 {x22 x23 x28}, byrefRegs=8100000 {x20 x27}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            bne     G_M37807_IG34
+                       ;; size=48 bbWeight=0.49 PerfScore 10.62
+G_M37807_IG30:        ; bbWeight=0.25, gcrefRegs=C00000 {x22 x23}, byrefRegs=8100000 {x20 x27}, byref
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.25 PerfScore 0.62
-G_M37807_IG30:        ; bbWeight=1.46, gcrefRegs=10C00000 {x22 x23 x28}, byrefRegs=8100000 {x20 x27}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+                       ;; size=8 bbWeight=0.25 PerfScore 0.37
+G_M37807_IG31:        ; bbWeight=1.46, gcrefRegs=C00000 {x22 x23}, byrefRegs=8100000 {x20 x27}, byref
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     x0, fp, #24    // [V10 loc4]
-            mov     x2, x28
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x2]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -434,41 +443,39 @@ G_M37807_IG30:        ; bbWeight=1.46, gcrefRegs=10C00000 {x22 x23 x28}, byrefRe
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
+            ; GC ptr vars -{V04 V12}
             blr     x3
-            ; gcrRegs -[x2 x28]
+            ; gcrRegs -[x2]
             ; gcr arg pop 0
-                       ;; size=56 bbWeight=1.46 PerfScore 15.36
-G_M37807_IG31:        ; bbWeight=1.59, gcrefRegs=C00000 {x22 x23}, byrefRegs=8100000 {x20 x27}, byref, isz
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+                       ;; size=48 bbWeight=1.46 PerfScore 16.09
+G_M37807_IG32:        ; bbWeight=1.59, gcrefRegs=C00000 {x22 x23}, byrefRegs=8100000 {x20 x27}, byref, isz
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     w24, w24, #1
...

-28 (-2.47%) : 296826.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)

@@ -9,55 +9,56 @@
 ; 4 inlinees with PGO data; 10 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
+;  V00 this         [V00,T06] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
 ;  V01 RetBuf       [V01,T01] (  6,  6   )   byref  ->  x20         single-def
 ;  V02 arg1         [V02,T03] ( 14,  4.73)     ref  ->  x21         ld-addr-op class-hnd <System.String>
 ;  V03 arg2         [V03,T00] (  6,  6.59)     int  ->  x19        
-;  V04 arg3         [V04,T06] (  4,  3.96)     ref  ->  x23         class-hnd single-def <System.Type[]>
-;  V05 arg4         [V05,T09] (  3,  3   )   ubyte  ->  x24         single-def
-;  V06 loc0         [V06,T21] (  3,  2.46)   ubyte  ->  x25         ld-addr-op
-;  V07 loc1         [V07,T25] (  3,  1   )   ubyte  ->  x26         ld-addr-op
-;  V08 loc2         [V08,T23] (  7,  2   )     int  ->  x27         ld-addr-op
-;  V09 loc3         [V09,T20] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
+;  V04 arg3         [V04,T07] (  4,  3.96)     ref  ->  x23         class-hnd single-def <System.Type[]>
+;  V05 arg4         [V05,T10] (  3,  3   )   ubyte  ->  x24         single-def
+;  V06 loc0         [V06,T22] (  3,  2.46)   ubyte  ->  x25         ld-addr-op
+;  V07 loc1         [V07,T26] (  3,  1   )   ubyte  ->  x26         ld-addr-op
+;  V08 loc2         [V08,T24] (  7,  2   )     int  ->  x27         ld-addr-op
+;  V09 loc3         [V09,T21] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
 ;  V10 loc4         [V10    ] (  9,  9.46)  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]>
 ;  V11 loc5         [V11,T02] (  5,  7.36)     int  ->  x24        
-;  V12 loc6         [V12,T04] (  7,  6.12)     ref  ->  x27         class-hnd exact <System.Reflection.RuntimePropertyInfo>
+;  V12 loc6         [V12,T05] (  7,  6.12)     ref  ->  [fp+0x10]  class-hnd exact spill-single-def <System.Reflection.RuntimePropertyInfo>
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V16 tmp3         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
-;  V18 tmp5         [V18,T13] (  5,  4.11)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
-;  V19 tmp6         [V19,T08] (  4,  4   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
-;* V20 tmp7         [V20,T19] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
+;  V18 tmp5         [V18,T14] (  5,  4.11)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
+;  V19 tmp6         [V19,T09] (  4,  4   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;* V20 tmp7         [V20,T20] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
 ;* V21 tmp8         [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.RuntimeType+RuntimeTypeCache>
 ;* V22 tmp9         [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp10        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp11        [V24    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp12        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V26 tmp13        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V27 tmp14        [V27,T12] (  4,  4.43)   byref  ->  x22         single-def "Inlining Arg"
+;  V27 tmp14        [V27,T13] (  4,  4.43)   byref  ->  x22         single-def "Inlining Arg"
 ;* V28 tmp15        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V29 tmp16        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
-;  V30 tmp17        [V30,T07] ( 14,  5.16)     ref  ->  registers   class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V31 tmp18        [V31,T27] (  4,  0.85)     ref  ->  x28         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V30 tmp17        [V30,T08] ( 14,  5.16)     ref  ->  registers   class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V31 tmp18        [V31,T28] (  4,  0.85)     ref  ->  x28         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V32 tmp19        [V32    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V33 tmp20        [V33,T24] (  5,  2   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
-;  V34 tmp21        [V34,T14] (  2,  4   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
-;  V35 tmp22        [V35,T16] (  4,  3.73)     ref  ->   x0        
-;  V36 tmp23        [V36,T29] (  2,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
-;  V37 tmp24        [V37,T28] (  4,  0   )     ref  ->   x0        
-;  V38 tmp25        [V38,T15] (  2,  4   )     int  ->   x1         "Inlining Arg"
+;  V33 tmp20        [V33,T25] (  5,  2   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Reflection.RuntimePropertyInfo[]>
+;  V34 tmp21        [V34,T15] (  2,  4   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
+;  V35 tmp22        [V35,T17] (  4,  3.73)     ref  ->   x0        
+;  V36 tmp23        [V36,T30] (  2,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <System.__Canon>
+;  V37 tmp24        [V37,T29] (  4,  0   )     ref  ->   x0        
+;  V38 tmp25        [V38,T16] (  2,  4   )     int  ->   x1         "Inlining Arg"
 ;  V39 tmp26        [V39    ] (  3,  3.46)     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V10._items (fldOffset=0x0)" P-DEP
 ;  V40 tmp27        [V40    ] (  3,  3.46)     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V10._item (fldOffset=0x8)" P-DEP
 ;  V41 tmp28        [V41    ] (  3,  3.46)     int  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V10._count (fldOffset=0x10)" P-DEP
 ;  V42 tmp29        [V42    ] (  3,  3.46)     int  ->  [fp+0x2C]  do-not-enreg[X] addr-exposed "field V10._capacity (fldOffset=0x14)" P-DEP
-;* V43 tmp30        [V43,T26] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V44 cse0         [V44,T10] (  3,  4.77)     int  ->   x0         "CSE - moderate"
-;  V45 cse1         [V45,T18] (  3,  3   )    long  ->   x0         "CSE - moderate"
-;  V46 cse2         [V46,T11] (  4,  4.59)     int  ->  x22         "CSE - aggressive"
-;  V47 cse3         [V47,T22] (  2,  2.20)   byref  ->  x28         hoist "CSE - moderate"
-;  V48 cse4         [V48,T17] (  3,  3   )     ref  ->   x1         "CSE - moderate"
+;* V43 tmp30        [V43,T27] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V44 cse0         [V44,T11] (  3,  4.77)     int  ->   x0         "CSE - moderate"
+;  V45 cse1         [V45,T19] (  3,  3   )    long  ->   x0         "CSE - moderate"
+;  V46 cse2         [V46,T04] ( 10,  6.65)    long  ->  x27         hoist multi-def "CSE - aggressive"
+;  V47 cse3         [V47,T12] (  4,  4.59)     int  ->  x22         "CSE - moderate"
+;  V48 cse4         [V48,T23] (  2,  2.20)   byref  ->  x28         hoist "CSE - moderate"
+;  V49 cse5         [V49,T18] (  3,  3   )     ref  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -141,7 +142,7 @@ G_M37807_IG08:        ; bbWeight=1, gcrefRegs=E00000 {x21 x22 x23}, byrefRegs=10
                        ;; size=4 bbWeight=1 PerfScore 0.50
 G_M37807_IG09:        ; bbWeight=1, gcrefRegs=E00000 {x21 x22 x23}, byrefRegs=100000 {x20}, byref, isz
             tst     w24, #255
-            bne     G_M37807_IG33
+            bne     G_M37807_IG34
             b       G_M37807_IG04
                        ;; size=12 bbWeight=1 PerfScore 2.50
 G_M37807_IG10:        ; bbWeight=1, gcrefRegs=1A00000 {x21 x23 x24}, byrefRegs=100000 {x20}, byref
@@ -202,7 +203,7 @@ G_M37807_IG14:        ; bbWeight=0.11, gcrefRegs=1A00000 {x21 x23 x24}, byrefReg
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15 x24]
             ; byrRegs -[x14]
-            cbz     x22, G_M37807_IG34
+            cbz     x22, G_M37807_IG35
             mov     x0, x22
             ; byrRegs +[x0]
             mov     x1, x28
@@ -226,8 +227,8 @@ G_M37807_IG15:        ; bbWeight=1, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=
                        ;; size=12 bbWeight=1 PerfScore 4.50
 G_M37807_IG16:        ; bbWeight=0, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=100000 {x20}, byref, isz
             cmp     w27, #2
-            beq     G_M37807_IG35
-            b       G_M37807_IG37
+            beq     G_M37807_IG36
+            b       G_M37807_IG38
                        ;; size=12 bbWeight=0 PerfScore 0.00
 G_M37807_IG17:        ; bbWeight=1, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=100000 {x20}, byref, isz
             add     x0, x28, #32
@@ -271,30 +272,36 @@ G_M37807_IG19:        ; bbWeight=1, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=100
             stp     wzr, w1, [fp, #0x28]   // [V41 tmp28], [V42 tmp29]
             mov     w24, wzr
             cmp     w22, #0
-            ble     G_M37807_IG31
+            ble     G_M37807_IG32
                        ;; size=32 bbWeight=1 PerfScore 8.00
 G_M37807_IG20:        ; bbWeight=0.61, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=100000 {x20}, byref
             add     x28, x0, #16
             ; byrRegs +[x28]
-                       ;; size=4 bbWeight=0.61 PerfScore 0.31
+            movz    x27, #0xD1FFAB1E
+            movk    x27, #0xD1FFAB1E LSL #16
+            movk    x27, #0xD1FFAB1E LSL #32
+                       ;; size=16 bbWeight=0.61 PerfScore 1.23
 G_M37807_IG21:        ; bbWeight=1.59, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x27, [x28, w24, UXTW #3]
-            ; gcrRegs +[x27]
-            ldr     w0, [x27, #0x58]
+            ldr     x2, [x28, w24, UXTW #3]
+            ; gcrRegs +[x2]
+            str     x2, [fp, #0x10]    // [V12 loc6]
+            ; GC ptr vars +{V12}
+            ldr     w0, [x2, #0x58]
             and     w1, w19, w0
             cmp     w1, w0
             bne     G_M37807_IG28
-                       ;; size=20 bbWeight=1.59 PerfScore 12.71
-G_M37807_IG22:        ; bbWeight=1.46, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
+                       ;; size=24 bbWeight=1.59 PerfScore 14.30
+G_M37807_IG22:        ; bbWeight=1.46, gcVars=0000000000000020 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, gcvars, byref, isz
             cbz     w25, G_M37807_IG24
                        ;; size=4 bbWeight=1.46 PerfScore 1.46
-G_M37807_IG23:        ; bbWeight=0, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            mov     x0, x27
+G_M37807_IG23:        ; bbWeight=0, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
             mov     x1, x21
             ; gcrRegs +[x1]
             mov     w2, w26
+            ; gcrRegs -[x2]
             movz    x3, #0xD1FFAB1E      // code for System.RuntimeType:FilterApplyPrefixLookup(System.Reflection.MemberInfo,System.String,ubyte):ubyte
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
@@ -302,28 +309,26 @@ G_M37807_IG23:        ; bbWeight=0, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=1
             blr     x3
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbz     w0, G_M37807_IG39
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            cbz     w0, G_M37807_IG40
+            mov     x0, x27
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=52 bbWeight=0 PerfScore 0.00
-G_M37807_IG24:        ; bbWeight=1.46, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            cbz     x23, G_M37807_IG27
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
+            ; gcrRegs +[x2]
+                       ;; size=48 bbWeight=0 PerfScore 0.00
+G_M37807_IG24:        ; bbWeight=1.46, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            cbz     x23, G_M37807_IG30
                        ;; size=4 bbWeight=1.46 PerfScore 1.46
-G_M37807_IG25:        ; bbWeight=0.49, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref, isz
-            mov     x0, x27
+G_M37807_IG25:        ; bbWeight=0.49, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
+            add     x1, x27, #8
             bl      CORINFO_HELP_CLASSPROFILE32
-            ; gcrRegs -[x0]
+            ; gcrRegs -[x0 x2]
             ; gcr arg pop 0
-            mov     x0, x27
+            ldr     x0, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x0]
-            ldr     x1, [x27]
+            ldr     x1, [x0]
             ldr     x1, [x1, #0x58]
             ldr     x1, [x1, #0x18]
             blr     x1
@@ -332,23 +337,19 @@ G_M37807_IG25:        ; bbWeight=0.49, gcrefRegs=8A00000 {x21 x23 x27}, byrefReg
             ; gcrRegs -[x0]
             ldr     w1, [x23, #0x08]
             cmp     w0, w1
-            bne     G_M37807_IG30
-                       ;; size=56 bbWeight=0.49 PerfScore 10.37
-G_M37807_IG26:        ; bbWeight=0.25, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            bne     G_M37807_IG31
+                       ;; size=48 bbWeight=0.49 PerfScore 10.62
+G_M37807_IG26:        ; bbWeight=0.25, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.25 PerfScore 0.62
-G_M37807_IG27:        ; bbWeight=1.46, gcrefRegs=8A00000 {x21 x23 x27}, byrefRegs=10100000 {x20 x28}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+                       ;; size=8 bbWeight=0.25 PerfScore 0.37
+G_M37807_IG27:        ; bbWeight=1.46, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     x0, fp, #24    // [V10 loc4]
-            mov     x2, x27
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x2]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -357,41 +358,45 @@ G_M37807_IG27:        ; bbWeight=1.46, gcrefRegs=8A00000 {x21 x23 x27}, byrefReg
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
+            ; GC ptr vars -{V12}
             blr     x3
-            ; gcrRegs -[x2 x27]
+            ; gcrRegs -[x2]
             ; gcr arg pop 0
-                       ;; size=56 bbWeight=1.46 PerfScore 15.36
+                       ;; size=48 bbWeight=1.46 PerfScore 16.09
 G_M37807_IG28:        ; bbWeight=1.59, gcrefRegs=A00000 {x21 x23}, byrefRegs=10100000 {x20 x28}, byref, isz
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
...

+4 (+0.18%) : 242006.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Instrumented Tier1)

@@ -10,27 +10,27 @@
 ;
 ;  V00 this         [V00,T16] ( 11, 32.50)     ref  ->  [fp+0x28]  this class-hnd EH-live single-def <System.Buffers.SharedArrayPool`1[System.__Canon]>
 ;  V01 loc0         [V01,T18] (  5, 33.50)     int  ->  x19        
-;  V02 loc1         [V02,T38] (  5, 19   )     int  ->  x20        
+;  V02 loc1         [V02,T37] (  5, 19   )     int  ->  x20        
 ;  V03 loc2         [V03,T28] (  7, 27   )     ref  ->  x21         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V04 loc3         [V04,T52] (  4, 10   )     ref  ->  x22         class-hnd exact single-def <<unknown class>>
-;  V05 loc4         [V05,T37] (  6, 19   )     int  ->  x23        
-;  V06 loc5         [V06,T46] (  8, 10.50)     ref  ->  [fp+0x20]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V04 loc3         [V04,T51] (  4, 10   )     ref  ->  x22         class-hnd exact single-def <<unknown class>>
+;  V05 loc4         [V05,T36] (  6, 19   )     int  ->  x23        
+;  V06 loc5         [V06,T45] (  8, 10.50)     ref  ->  [fp+0x20]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V07 loc6         [V07    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V08 loc7         [V08,T47] (  8, 10.50)     ref  ->  [fp+0x18]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V08 loc7         [V08,T46] (  8, 10.50)     ref  ->  [fp+0x18]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V09 loc8         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V10 loc9         [V10,T32] (  3, 20   )     ref  ->  x23         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V10 loc9         [V10,T31] (  3, 20   )     ref  ->  x23         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V11 loc10        [V11,T05] (  5, 66   )     int  ->  x19        
 ;  V12 loc11        [V12,T02] (  6, 64   )     ref  ->  x26         class-hnd <<unknown class>>
-;  V13 loc12        [V13,T55] (  2,  8.50)     int  ->  x23        
-;  V14 loc13        [V14,T79] (  3,  1.50)     int  ->  x23        
-;  V15 loc14        [V15,T48] (  8, 10.50)     ref  ->  [fp+0x10]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V13 loc12        [V13,T54] (  2,  8.50)     int  ->  x23        
+;  V14 loc13        [V14,T78] (  3,  1.50)     int  ->  x23        
+;  V15 loc14        [V15,T47] (  8, 10.50)     ref  ->  [fp+0x10]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V16 loc15        [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V17 loc16        [V17,T13] (  5, 36   )     ref  ->  x24         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V17 loc16        [V17,T12] (  6, 44   )     ref  ->  x24         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V18 loc17        [V18,T00] (  5,210   )     int  ->  x25        
-;  V19 loc18        [V19,T30] (  3, 24   )     int  ->   x1        
+;  V19 loc18        [V19,T29] (  3, 24   )     int  ->  x28        
 ;  V20 loc19        [V20,T09] (  6, 48   )     ref  ->  x27         class-hnd <<unknown class>>
 ;# V21 OutArgs      [V21    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V22 tmp1         [V22,T33] (  3, 20   )     ref  ->  x24         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V22 tmp1         [V22,T32] (  3, 20   )     ref  ->  x24         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
 ;* V23 tmp2         [V23    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V24 tmp3         [V24,T14] (  2, 36   )     int  ->  x25         "impAppendStmt"
 ;* V25 tmp4         [V25    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
@@ -42,85 +42,84 @@
 ;  V31 tmp10        [V31,T23] (  2, 32   )     int  ->  x27         "impAppendStmt"
 ;  V32 tmp11        [V32,T24] (  2, 32   )     int  ->  x26         "impAppendStmt"
 ;* V33 tmp12        [V33    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V34 tmp13        [V34,T67] (  3,  3   )     ref  ->  x21         single-def "handle histogram profile tmp"
+;  V34 tmp13        [V34,T66] (  3,  3   )     ref  ->  x21         single-def "handle histogram profile tmp"
 ;* V35 tmp14        [V35    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V36 tmp15        [V36    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V37 tmp16        [V37    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V38 tmp17        [V38,T68] (  3,  3   )     ref  ->  x20         single-def "handle histogram profile tmp"
+;  V38 tmp17        [V38,T67] (  3,  3   )     ref  ->  x20         single-def "handle histogram profile tmp"
 ;* V39 tmp18        [V39    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V40 tmp19        [V40    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V41 tmp20        [V41    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V42 tmp21        [V42    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V43 tmp22        [V43,T69] (  3,  3   )     ref  ->  x24         single-def "handle histogram profile tmp"
+;  V43 tmp22        [V43,T68] (  3,  3   )     ref  ->  x24         single-def "handle histogram profile tmp"
 ;* V44 tmp23        [V44    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V45 tmp24        [V45    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V46 tmp25        [V46    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V47 tmp26        [V47    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V48 tmp27        [V48,T34] (  3, 20   )     int  ->  x26         "Inline stloc first use temp"
+;  V48 tmp27        [V48,T33] (  3, 20   )     int  ->  x26         "Inline stloc first use temp"
 ;* V49 tmp28        [V49    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V50 tmp29        [V50    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V51 tmp30        [V51,T63] (  3,  6   )     ref  ->   x0         class-hnd exact "Inline stloc first use temp" <<unknown class>>
+;  V51 tmp30        [V51,T62] (  3,  6   )     ref  ->   x0         class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;  V52 tmp31        [V52,T06] (  5, 66   )     int  ->  x24         "Inline stloc first use temp"
 ;  V53 tmp32        [V53,T25] (  2, 32   )     int  ->   x4         "Inlining Arg"
 ;  V54 tmp33        [V54,T26] (  2, 32   )     int  ->   x4         "Inlining Arg"
-;  V55 tmp34        [V55,T64] (  2,  4   )     ref  ->   x0         "field V07.key (fldOffset=0x0)" P-INDEP
-;  V56 tmp35        [V56,T76] (  1,  2   )     ref  ->   x1         "field V07.value (fldOffset=0x8)" P-INDEP
-;  V57 tmp36        [V57,T65] (  2,  4   )     ref  ->  x23         "field V09.key (fldOffset=0x0)" P-INDEP
-;  V58 tmp37        [V58,T77] (  1,  2   )     ref  ->   x1         "field V09.value (fldOffset=0x8)" P-INDEP
-;  V59 tmp38        [V59,T66] (  2,  4   )     ref  ->  x24         "field V16.key (fldOffset=0x0)" P-INDEP
-;  V60 tmp39        [V60,T78] (  1,  2   )     ref  ->   x1         "field V16.value (fldOffset=0x8)" P-INDEP
+;  V55 tmp34        [V55,T63] (  2,  4   )     ref  ->   x0         "field V07.key (fldOffset=0x0)" P-INDEP
+;  V56 tmp35        [V56,T75] (  1,  2   )     ref  ->   x1         "field V07.value (fldOffset=0x8)" P-INDEP
+;  V57 tmp36        [V57,T64] (  2,  4   )     ref  ->  x23         "field V09.key (fldOffset=0x0)" P-INDEP
+;  V58 tmp37        [V58,T76] (  1,  2   )     ref  ->   x1         "field V09.value (fldOffset=0x8)" P-INDEP
+;  V59 tmp38        [V59,T65] (  2,  4   )     ref  ->  x24         "field V16.key (fldOffset=0x0)" P-INDEP
+;  V60 tmp39        [V60,T77] (  1,  2   )     ref  ->   x1         "field V16.value (fldOffset=0x8)" P-INDEP
 ;* V61 tmp40        [V61    ] (  0,  0   )     ref  ->  zero-ref    "field V25.key (fldOffset=0x0)" P-DEP
 ;* V62 tmp41        [V62    ] (  0,  0   )     ref  ->  zero-ref    "field V25.value (fldOffset=0x8)" P-DEP
 ;* V63 tmp42        [V63    ] (  0,  0   )     ref  ->  zero-ref    "field V29.key (fldOffset=0x0)" P-DEP
 ;* V64 tmp43        [V64    ] (  0,  0   )     ref  ->  zero-ref    "field V29.value (fldOffset=0x8)" P-DEP
 ;* V65 tmp44        [V65    ] (  0,  0   )     ref  ->  zero-ref    "field V33.key (fldOffset=0x0)" P-DEP
 ;* V66 tmp45        [V66    ] (  0,  0   )     ref  ->  zero-ref    "field V33.value (fldOffset=0x8)" P-DEP
-;  V67 tmp46        [V67,T70] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V68 tmp47        [V68,T40] (  2, 16   )     ref  ->  x11         "argument with side effect"
-;  V69 tmp48        [V69,T60] (  2,  8   )     ref  ->   x0         "argument with side effect"
+;  V67 tmp46        [V67,T69] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V68 tmp47        [V68,T39] (  2, 16   )     ref  ->  x11         "argument with side effect"
+;  V69 tmp48        [V69,T59] (  2,  8   )     ref  ->   x0         "argument with side effect"
 ;  V70 tmp49        [V70,T27] (  2, 32   )    long  ->  x28         "argument with side effect"
 ;  V71 tmp50        [V71,T20] (  2, 32   )     ref  ->   x1         "argument with side effect"
-;* V72 tmp51        [V72,T43] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V73 tmp52        [V73,T81] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V74 tmp53        [V74,T71] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V75 tmp54        [V75,T72] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V76 tmp55        [V76,T41] (  2, 16   )     ref  ->  x11         "argument with side effect"
-;  V77 tmp56        [V77,T61] (  2,  8   )     ref  ->   x0         "argument with side effect"
+;* V72 tmp51        [V72,T42] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V73 tmp52        [V73,T80] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V74 tmp53        [V74,T70] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V75 tmp54        [V75,T71] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V76 tmp55        [V76,T40] (  2, 16   )     ref  ->  x11         "argument with side effect"
+;  V77 tmp56        [V77,T60] (  2,  8   )     ref  ->   x0         "argument with side effect"
 ;  V78 tmp57        [V78,T08] (  2, 64   )    long  ->   x1         "argument with side effect"
 ;  V79 tmp58        [V79,T07] (  2, 64   )     ref  ->   x2         "argument with side effect"
-;* V80 tmp59        [V80,T44] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V81 tmp60        [V81,T82] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V82 tmp61        [V82,T73] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V83 tmp62        [V83,T74] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V84 tmp63        [V84,T42] (  2, 16   )     ref  ->  x11         "argument with side effect"
-;  V85 tmp64        [V85,T62] (  2,  8   )     ref  ->   x0         "argument with side effect"
-;  V86 tmp65        [V86,T83] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V87 tmp66        [V87,T75] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V88 PSPSym       [V88,T80] (  1,  1   )    long  ->  [fp+0x38]  do-not-enreg[V] "PSPSym"
+;* V80 tmp59        [V80,T43] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V81 tmp60        [V81,T81] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V82 tmp61        [V82,T72] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V83 tmp62        [V83,T73] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V84 tmp63        [V84,T41] (  2, 16   )     ref  ->  x11         "argument with side effect"
+;  V85 tmp64        [V85,T61] (  2,  8   )     ref  ->   x0         "argument with side effect"
+;  V86 tmp65        [V86,T82] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V87 tmp66        [V87,T74] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V88 PSPSym       [V88,T79] (  1,  1   )    long  ->  [fp+0x38]  do-not-enreg[V] "PSPSym"
 ;  V89 cse0         [V89,T17] (  4, 34   )    long  ->  registers   hoist multi-def "CSE - aggressive"
-;  V90 cse1         [V90,T56] (  4,  8   )     ref  ->  x22         multi-def "CSE - moderate"
-;  V91 cse2         [V91,T49] (  6, 10.50)     ref  ->  x22         multi-def "CSE - moderate"
-;  V92 cse3         [V92,T57] (  4,  8   )     ref  ->  x23         multi-def "CSE - moderate"
-;  V93 cse4         [V93,T50] (  6, 10.50)     ref  ->  x23         multi-def "CSE - moderate"
-;  V94 cse5         [V94,T58] (  4,  8   )     ref  ->  x24         multi-def "CSE - moderate"
-;  V95 cse6         [V95,T51] (  6, 10.50)     ref  ->  x24         multi-def "CSE - moderate"
-;  V96 cse7         [V96,T29] (  3, 24   )   byref  ->  x28         "CSE - moderate"
-;  V97 cse8         [V97,T10] (  4, 48   )    long  ->  x27         "CSE - aggressive"
-;  V98 cse9         [V98,T01] ( 22,126.50)    long  ->  x22         hoist multi-def "CSE - aggressive"
-;  V99 cse10        [V99,T03] (  3, 68   )     int  ->  x26         "CSE - aggressive"
-;  V100 cse11       [V100,T04] ( 40, 67.50)    long  ->  registers   multi-def "CSE - aggressive"
-;  V101 cse12       [V101,T31] ( 21, 22.50)    long  ->  registers   multi-def "CSE - moderate"
-;  V102 cse13       [V102,T39] (  2, 18   )   byref  ->  x28         hoist "CSE - moderate"
-;  V103 cse14       [V103,T35] (  3, 20   )     int  ->  x27         "CSE - moderate"
-;  V104 cse15       [V104,T36] (  3, 20   )     int  ->  x22         "CSE - moderate"
-;  V105 rat0        [V105,T53] (  3,  9.44)    long  ->   x1         "Spilling to split statement for tree"
-;  V106 rat1        [V106,T59] (  3,  8   )    long  ->  x24         "runtime lookup"
-;  V107 rat2        [V107,T45] (  3, 11.20)    long  ->   x2         "spilling expr"
-;  V108 rat3        [V108,T54] (  3,  8.96)    long  ->  x24         "fgMakeTemp is creating a new local variable"
-;  V109 rat4        [V109,T12] (  3, 37.76)    long  ->   x1         "Spilling to split statement for tree"
-;  V110 rat5        [V110,T19] (  3, 32   )    long  ->  registers   "runtime lookup"
-;  V111 rat6        [V111,T11] (  3, 44.80)    long  ->   x2         "spilling expr"
-;  V112 rat7        [V112,T15] (  3, 35.84)    long  ->   x2         "fgMakeTemp is creating a new local variable"
+;  V90 cse1         [V90,T55] (  4,  8   )     ref  ->  x22         multi-def "CSE - moderate"
+;  V91 cse2         [V91,T48] (  6, 10.50)     ref  ->  x22         multi-def "CSE - moderate"
+;  V92 cse3         [V92,T56] (  4,  8   )     ref  ->  x23         multi-def "CSE - moderate"
+;  V93 cse4         [V93,T49] (  6, 10.50)     ref  ->  x23         multi-def "CSE - moderate"
+;  V94 cse5         [V94,T57] (  4,  8   )     ref  ->  x24         multi-def "CSE - moderate"
+;  V95 cse6         [V95,T50] (  6, 10.50)     ref  ->  x24         multi-def "CSE - moderate"
+;  V96 cse7         [V96,T10] (  5, 56   )    long  ->  x27         "CSE - aggressive"
+;  V97 cse8         [V97,T01] ( 22,126.50)    long  ->  x22         hoist multi-def "CSE - aggressive"
+;  V98 cse9         [V98,T03] (  3, 68   )     int  ->  x26         "CSE - aggressive"
+;  V99 cse10        [V99,T04] ( 40, 67.50)    long  ->  registers   multi-def "CSE - aggressive"
+;  V100 cse11       [V100,T30] ( 21, 22.50)    long  ->  registers   multi-def "CSE - moderate"
+;  V101 cse12       [V101,T38] (  2, 18   )   byref  ->  x28         hoist "CSE - moderate"
+;  V102 cse13       [V102,T34] (  3, 20   )     int  ->  x27         "CSE - moderate"
+;  V103 cse14       [V103,T35] (  3, 20   )     int  ->  x22         "CSE - moderate"
+;  V104 rat0        [V104,T52] (  3,  9.44)    long  ->   x1         "Spilling to split statement for tree"
+;  V105 rat1        [V105,T58] (  3,  8   )    long  ->  x24         "runtime lookup"
+;  V106 rat2        [V106,T44] (  3, 11.20)    long  ->   x2         "spilling expr"
+;  V107 rat3        [V107,T53] (  3,  8.96)    long  ->  x24         "fgMakeTemp is creating a new local variable"
+;  V108 rat4        [V108,T13] (  3, 37.76)    long  ->   x1         "Spilling to split statement for tree"
+;  V109 rat5        [V109,T19] (  3, 32   )    long  ->  registers   "runtime lookup"
+;  V110 rat6        [V110,T11] (  3, 44.80)    long  ->   x2         "spilling expr"
+;  V111 rat7        [V111,T15] (  3, 35.84)    long  ->   x2         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 48
 
@@ -301,7 +300,7 @@ G_M16529_IG11:        ; bbWeight=0.50, gcrefRegs=200000 {x21}, byrefRegs=0000 {}
             str     x0, [fp, #0x20]    // [V06 loc5]
             ; GC ptr vars +{V06}
                        ;; size=72 bbWeight=0.50 PerfScore 10.00
-G_M16529_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000400000010000 {V00 V06}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M16529_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000200000010000 {V00 V06}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
             b       G_M16529_IG14
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M16529_IG13:        ; bbWeight=2, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
@@ -403,7 +402,7 @@ G_M16529_IG16:        ; bbWeight=0.50, gcrefRegs=200000 {x21}, byrefRegs=0000 {}
             str     x0, [fp, #0x18]    // [V08 loc7]
             ; GC ptr vars +{V08}
                        ;; size=64 bbWeight=0.50 PerfScore 8.00
-G_M16529_IG17:        ; bbWeight=0.50, gcVars=00000000000000000000800000010000 {V00 V08}, gcrefRegs=200001 {x0 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M16529_IG17:        ; bbWeight=0.50, gcVars=00000000000000000000400000010000 {V00 V08}, gcrefRegs=200001 {x0 x21}, byrefRegs=0000 {}, gcvars, byref
             b       G_M16529_IG24
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M16529_IG18:        ; bbWeight=2, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
@@ -622,7 +621,7 @@ G_M16529_IG30:        ; bbWeight=0.50, gcrefRegs=200000 {x21}, byrefRegs=0000 {}
             str     x0, [fp, #0x10]    // [V15 loc14]
             ; GC ptr vars +{V15}
                        ;; size=64 bbWeight=0.50 PerfScore 8.00
-G_M16529_IG31:        ; bbWeight=0.50, gcVars=00000000000000000001000000010000 {V00 V15}, gcrefRegs=200001 {x0 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M16529_IG31:        ; bbWeight=0.50, gcVars=00000000000000000000800000010000 {V00 V15}, gcrefRegs=200001 {x0 x21}, byrefRegs=0000 {}, gcvars, byref
             movz    x22, #0xD1FFAB1E
             movk    x22, #0xD1FFAB1E LSL #16
             movk    x22, #0xD1FFAB1E LSL #32
@@ -660,17 +659,20 @@ G_M16529_IG33:        ; bbWeight=16, gcrefRegs=1200000 {x21 x24}, byrefRegs=0000
                        ;; size=16 bbWeight=16 PerfScore 88.00
 G_M16529_IG34:        ; bbWeight=8, gcrefRegs=1200000 {x21 x24}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
-            add     x28, x24, x27
-            ; byrRegs +[x28]
-            ldr     w1, [x28, #0x08]
-            cbnz    w1, G_M16529_IG39
+            add     x0, x24, x27
+            ; byrRegs +[x0]
+            ldr     w28, [x0, #0x08]
+            cbnz    w28, G_M16529_IG39
             add     x0, x22, #0xD1FFAB1E
+            ; byrRegs -[x0]
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-            str     w19, [x28, #0x08]
-                       ;; size=24 bbWeight=8 PerfScore 56.00
+            add     x0, x24, x27
+            ; byrRegs +[x0]
+            str     w19, [x0, #0x08]
+                       ;; size=28 bbWeight=8 PerfScore 60.00
 G_M16529_IG35:        ; bbWeight=64, gcrefRegs=1200000 {x21 x24}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[x28]
+            ; byrRegs -[x0]
             add     x0, x22, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
@@ -715,7 +717,7 @@ G_M16529_IG38:        ; bbWeight=0.50, gcrefRegs=1000000 {x24}, byrefRegs=0000 {
                        ;; size=12 bbWeight=0.50 PerfScore 1.25
 G_M16529_IG39:        ; bbWeight=8, gcrefRegs=1200000 {x21 x24}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x21]
-            sub     w0, w19, w1
+            sub     w0, w19, w28
             sxtw    x0, w0
             mov     w1, w23
             cmp     x0, x1
@@ -863,7 +865,7 @@ G_M16529_IG49:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x90
             ret     lr
                        ;; size=28 bbWeight=1 PerfScore 7.00
-G_M16529_IG50:        ; bbWeight=0, gcVars=00000000000000000000400000010000 {V00 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M16529_IG50:        ; bbWeight=0, gcVars=00000000000000000000200000010000 {V00 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
             ; GC ptr vars +{V06}
             stp     fp, lr, [sp, #-0x70]!
             stp     x19, x20, [sp, #0x20]
...

+4 (+0.32%) : 218118.dasm - System.RuntimeType:GetField(System.String,int):System.Reflection.FieldInfo:this (Instrumented Tier1)

@@ -12,13 +12,13 @@
 ;  V00 this         [V00,T02] (  4,  4   )     ref  ->  x21         this class-hnd single-def <System.RuntimeType>
 ;  V01 arg1         [V01,T01] (  6,  4.19)     ref  ->  x20         ld-addr-op class-hnd <System.String>
 ;  V02 arg2         [V02,T00] (  6,  5.42)     int  ->  x19        
-;  V03 loc0         [V03,T14] (  3,  2.04)     int  ->  x22         ld-addr-op
-;  V04 loc1         [V04,T12] (  3,  2.42)     ref  ->  x20         class-hnd single-def <System.Reflection.RuntimeFieldInfo[]>
+;  V03 loc0         [V03,T13] (  3,  2.04)     int  ->  x22         ld-addr-op
+;  V04 loc1         [V04,T11] (  4,  2.71)     ref  ->  x20         class-hnd single-def <System.Reflection.RuntimeFieldInfo[]>
 ;  V05 loc2         [V05,T10] ( 16,  2.84)     ref  ->  x21         class-hnd <System.Reflection.FieldInfo>
-;  V06 loc3         [V06,T15] (  3,  2   )   ubyte  ->  x22        
+;  V06 loc3         [V06,T14] (  3,  2   )   ubyte  ->  x22        
 ;* V07 loc4         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op
-;  V08 loc5         [V08,T11] (  5,  2.67)     int  ->  x23        
-;  V09 loc6         [V09,T17] ( 12,  1.25)     ref  ->  x25         class-hnd <System.Reflection.RuntimeFieldInfo>
+;  V08 loc5         [V08,T12] (  5,  2.67)     int  ->  x23        
+;  V09 loc6         [V09,T16] ( 12,  1.25)     ref  ->  x25         class-hnd <System.Reflection.RuntimeFieldInfo>
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V12 tmp2         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <System.Type>
@@ -48,7 +48,7 @@
 ;* V36 tmp26        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;* V37 tmp27        [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
 ;  V38 tmp28        [V38,T06] (  7,  3.91)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V39 tmp29        [V39,T16] (  4,  1.81)     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V39 tmp29        [V39,T15] (  4,  1.81)     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V40 tmp30        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V41 tmp31        [V41    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V42 tmp32        [V42    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
@@ -62,10 +62,10 @@
 ;  V50 tmp40        [V50,T26] (  2,  0   )     ref  ->   x1         "argument with side effect"
 ;  V51 tmp41        [V51,T24] (  3,  0   )     ref  ->   x0         "argument with side effect"
 ;  V52 tmp42        [V52,T25] (  3,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V53 cse0         [V53,T18] (  3,  1.25)     int  ->   x0         "CSE - moderate"
-;  V54 cse1         [V54,T08] (  3,  3   )    long  ->   x0         "CSE - aggressive"
-;  V55 cse2         [V55,T13] (  3,  2.42)     int  ->  x24         "CSE - aggressive"
-;  V56 cse3         [V56,T07] (  3,  3   )     ref  ->   x1         "CSE - moderate"
+;  V53 cse0         [V53,T17] (  3,  1.25)     int  ->   x0         "CSE - moderate"
+;  V54 cse1         [V54,T18] (  2,  0.71)   byref  ->  x24         hoist "CSE - moderate"
+;  V55 cse2         [V55,T08] (  3,  3   )    long  ->   x0         "CSE - aggressive"
+;  V56 cse3         [V56,T07] (  3,  3   )     ref  ->   x1         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -203,7 +203,7 @@ G_M40435_IG11:        ; bbWeight=0.23, gcrefRegs=900000 {x20 x23}, byrefRegs=200
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15 x23]
             ; byrRegs -[x14]
-            cbz     x21, G_M40435_IG23
+            cbz     x21, G_M40435_IG24
             mov     x0, x21
             ; byrRegs +[x0]
             mov     x1, x24
@@ -237,24 +237,25 @@ G_M40435_IG12:        ; bbWeight=1, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}
             eor     w19, w19, #2
             mov     w22, wzr
             mov     w23, wzr
-            ldr     w24, [x20, #0x08]
-            cmp     w24, #0
-            ble     G_M40435_IG18
-                       ;; size=68 bbWeight=1 PerfScore 17.00
-G_M40435_IG13:        ; bbWeight=0.42, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+            ldr     w0, [x20, #0x08]
             ; gcrRegs -[x0]
-            add     x0, x20, #16
-            ; byrRegs +[x0]
-            ldr     x25, [x0, w23, UXTW #3]
+            cmp     w0, #0
+            ble     G_M40435_IG19
+                       ;; size=68 bbWeight=1 PerfScore 17.00
+G_M40435_IG13:        ; bbWeight=0.29, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
+            add     x24, x20, #16
+            ; byrRegs +[x24]
+                       ;; size=4 bbWeight=0.29 PerfScore 0.15
+G_M40435_IG14:        ; bbWeight=0.42, gcrefRegs=300000 {x20 x21}, byrefRegs=1000000 {x24}, byref, isz
+            ldr     x25, [x24, w23, UXTW #3]
             ; gcrRegs +[x25]
             ldr     w0, [x25, #0x18]
-            ; byrRegs -[x0]
             and     w1, w19, w0
             cmp     w1, w0
-            bne     G_M40435_IG17
-            cbz     x21, G_M40435_IG16
-                       ;; size=28 bbWeight=0.42 PerfScore 3.97
-G_M40435_IG14:        ; bbWeight=0, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0000 {}, byref, isz
+            bne     G_M40435_IG18
+            cbz     x21, G_M40435_IG17
+                       ;; size=24 bbWeight=0.42 PerfScore 3.76
+G_M40435_IG15:        ; bbWeight=0, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=1000000 {x24}, byref, isz
             mov     x0, x25
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -287,7 +288,7 @@ G_M40435_IG14:        ; bbWeight=0, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0
             blr     x1
             ; gcr arg pop 0
             cmp     x26, x0
-            beq     G_M40435_IG28
+            beq     G_M40435_IG29
             mov     x0, x21
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -310,7 +311,7 @@ G_M40435_IG14:        ; bbWeight=0, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            cbz     w0, G_M40435_IG27
+            cbz     w0, G_M40435_IG28
             mov     x0, x25
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -334,7 +335,7 @@ G_M40435_IG14:        ; bbWeight=0, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            cbz     w0, G_M40435_IG26
+            cbz     w0, G_M40435_IG27
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -342,7 +343,7 @@ G_M40435_IG14:        ; bbWeight=0, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0
             ; gcr arg pop 0
             mov     w22, #1
                        ;; size=248 bbWeight=0 PerfScore 0.00
-G_M40435_IG15:        ; bbWeight=0, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0000 {}, byref, isz
+G_M40435_IG16:        ; bbWeight=0, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=1000000 {x24}, byref, isz
             mov     x0, x25
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -390,7 +391,7 @@ G_M40435_IG15:        ; bbWeight=0, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0
             blr     x2
             ; gcrRegs -[x0-x1 x26]
             ; gcr arg pop 0
-            cbnz    w0, G_M40435_IG25
+            cbnz    w0, G_M40435_IG26
             mov     x0, x21
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -414,7 +415,7 @@ G_M40435_IG15:        ; bbWeight=0, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            cbz     w0, G_M40435_IG24
+            cbz     w0, G_M40435_IG25
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -422,7 +423,7 @@ G_M40435_IG15:        ; bbWeight=0, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0
             ; gcrRegs -[x21]
             ; gcr arg pop 0
                        ;; size=212 bbWeight=0 PerfScore 0.00
-G_M40435_IG16:        ; bbWeight=0.42, gcrefRegs=2100000 {x20 x25}, byrefRegs=0000 {}, byref
+G_M40435_IG17:        ; bbWeight=0.42, gcrefRegs=2100000 {x20 x25}, byrefRegs=1000000 {x24}, byref
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -431,7 +432,7 @@ G_M40435_IG16:        ; bbWeight=0.42, gcrefRegs=2100000 {x20 x25}, byrefRegs=00
             mov     x21, x25
             ; gcrRegs +[x21]
                        ;; size=20 bbWeight=0.42 PerfScore 1.25
-G_M40435_IG17:        ; bbWeight=0.42, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M40435_IG18:        ; bbWeight=0.42, gcrefRegs=300000 {x20 x21}, byrefRegs=1000000 {x24}, byref, isz
             ; gcrRegs -[x25]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
@@ -439,14 +440,16 @@ G_M40435_IG17:        ; bbWeight=0.42, gcrefRegs=300000 {x20 x21}, byrefRegs=000
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     w23, w23, #1
-            cmp     w24, w23
-            bgt     G_M40435_IG13
-                       ;; size=28 bbWeight=0.42 PerfScore 1.88
-G_M40435_IG18:        ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref, isz
+            ldr     w0, [x20, #0x08]
+            cmp     w0, w23
+            bgt     G_M40435_IG14
+                       ;; size=32 bbWeight=0.42 PerfScore 3.14
+G_M40435_IG19:        ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x20]
-            cbz     w22, G_M40435_IG21
+            ; byrRegs -[x24]
+            cbz     w22, G_M40435_IG22
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M40435_IG19:        ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref, isz
+G_M40435_IG20:        ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref, isz
             mov     x0, x21
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -470,7 +473,7 @@ G_M40435_IG19:        ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, b
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            cbz     w0, G_M40435_IG20
+            cbz     w0, G_M40435_IG21
             mov     x0, x21
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
@@ -484,7 +487,7 @@ G_M40435_IG19:        ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, b
             ; gcrRegs -[x0]
             ; gcr arg pop 0
                        ;; size=96 bbWeight=0 PerfScore 0.00
-G_M40435_IG20:        ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
+G_M40435_IG21:        ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x21]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
@@ -492,7 +495,7 @@ G_M40435_IG20:        ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, b
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
                        ;; size=16 bbWeight=0 PerfScore 0.00
-G_M40435_IG21:        ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
+G_M40435_IG22:        ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -501,7 +504,7 @@ G_M40435_IG21:        ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, b
             mov     x0, x21
             ; gcrRegs +[x0]
                        ;; size=20 bbWeight=1 PerfScore 3.00
-G_M40435_IG22:        ; bbWeight=1, epilog, nogc, extend
+G_M40435_IG23:        ; bbWeight=1, epilog, nogc, extend
             ldp     x25, x26, [sp, #0x40]
             ldp     x23, x24, [sp, #0x30]
             ldp     x21, x22, [sp, #0x20]
@@ -509,7 +512,7 @@ G_M40435_IG22:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x50
             ret     lr
                        ;; size=24 bbWeight=1 PerfScore 6.00
-G_M40435_IG23:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M40435_IG24:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0 x21]
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowNullReferenceException()
             movk    x0, #0xD1FFAB1E LSL #16
@@ -519,8 +522,18 @@ G_M40435_IG23:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; gcr arg pop 0
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M40435_IG24:        ; bbWeight=0, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
+G_M40435_IG25:        ; bbWeight=0, gcrefRegs=300000 {x20 x21}, byrefRegs=1000000 {x24}, byref
             ; gcrRegs +[x20-x21]
+            ; byrRegs +[x24]
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
+            bl      CORINFO_HELP_COUNTPROFILE32
+            ; gcr arg pop 0
+            b       G_M40435_IG18
+                       ;; size=20 bbWeight=0 PerfScore 0.00
+G_M40435_IG26:        ; bbWeight=0, gcrefRegs=2100000 {x20 x25}, byrefRegs=1000000 {x24}, byref
+            ; gcrRegs -[x21] +[x25]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
...

+8 (+0.37%) : 27349.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Instrumented Tier1)

@@ -10,27 +10,27 @@
 ;
 ;  V00 this         [V00,T23] (  9, 22.50)     ref  ->  x19         this class-hnd single-def <System.Buffers.SharedArrayPool`1[ushort]>
 ;  V01 loc0         [V01,T14] (  5, 33.50)     int  ->  x20        
-;  V02 loc1         [V02,T33] (  5, 19   )     int  ->  x21        
+;  V02 loc1         [V02,T32] (  5, 19   )     int  ->  x21        
 ;  V03 loc2         [V03,T22] (  7, 27   )     ref  ->  x22         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V04 loc3         [V04,T46] (  4, 10   )     ref  ->  x23         class-hnd exact single-def <<unknown class>>
-;  V05 loc4         [V05,T32] (  6, 19   )     int  ->  x24        
-;  V06 loc5         [V06,T40] (  8, 10.50)     ref  ->  [fp+0x48]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V04 loc3         [V04,T45] (  4, 10   )     ref  ->  x23         class-hnd exact single-def <<unknown class>>
+;  V05 loc4         [V05,T31] (  6, 19   )     int  ->  x24        
+;  V06 loc5         [V06,T39] (  8, 10.50)     ref  ->  [fp+0x40]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V07 loc6         [V07    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V08 loc7         [V08,T41] (  8, 10.50)     ref  ->  [fp+0x40]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V08 loc7         [V08,T40] (  8, 10.50)     ref  ->  [fp+0x38]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V09 loc8         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V10 loc9         [V10,T27] (  3, 20   )     ref  ->  x24         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V10 loc9         [V10,T26] (  3, 20   )     ref  ->  x24         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V11 loc10        [V11,T06] (  5, 66   )     int  ->  x20        
 ;  V12 loc11        [V12,T04] (  6, 64   )     ref  ->  x25         class-hnd <<unknown class>>
-;  V13 loc12        [V13,T47] (  2,  8.50)     int  ->  x24        
-;  V14 loc13        [V14,T70] (  3,  1.50)     int  ->  x24        
-;  V15 loc14        [V15,T42] (  8, 10.50)     ref  ->  [fp+0x38]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V13 loc12        [V13,T46] (  2,  8.50)     int  ->  x24        
+;  V14 loc13        [V14,T69] (  3,  1.50)     int  ->  x24        
+;  V15 loc14        [V15,T41] (  8, 10.50)     ref  ->  [fp+0x30]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V16 loc15        [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V17 loc16        [V17,T12] (  5, 36   )     ref  ->  x25         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V17 loc16        [V17,T12] (  6, 44   )     ref  ->  x25         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V18 loc17        [V18,T00] (  5,210   )     int  ->  x27        
-;  V19 loc18        [V19,T25] (  3, 24   )     int  ->   x3        
-;  V20 loc19        [V20,T09] (  6, 48   )     ref  ->  [fp+0x30]  class-hnd spill-single-def <<unknown class>>
+;  V19 loc18        [V19,T24] (  3, 24   )     int  ->   x2        
+;  V20 loc19        [V20,T09] (  6, 48   )     ref  ->  [fp+0x28]  class-hnd spill-single-def <<unknown class>>
 ;# V21 OutArgs      [V21    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V22 tmp1         [V22,T28] (  3, 20   )     ref  ->  x25         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V22 tmp1         [V22,T27] (  3, 20   )     ref  ->  x25         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
 ;* V23 tmp2         [V23    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V24 tmp3         [V24,T13] (  2, 36   )     int  ->  x26         "impAppendStmt"
 ;* V25 tmp4         [V25    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
@@ -40,76 +40,75 @@
 ;  V29 tmp8         [V29,T18] (  2, 32   )     int  ->  x27         "impAppendStmt"
 ;  V30 tmp9         [V30,T19] (  2, 32   )     int  ->  x25         "impAppendStmt"
 ;* V31 tmp10        [V31    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V32 tmp11        [V32,T58] (  3,  3   )     ref  ->  x19         single-def "handle histogram profile tmp"
+;  V32 tmp11        [V32,T57] (  3,  3   )     ref  ->  x19         single-def "handle histogram profile tmp"
 ;* V33 tmp12        [V33    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V34 tmp13        [V34    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V35 tmp14        [V35    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V36 tmp15        [V36,T59] (  3,  3   )     ref  ->  x21         single-def "handle histogram profile tmp"
+;  V36 tmp15        [V36,T58] (  3,  3   )     ref  ->  x21         single-def "handle histogram profile tmp"
 ;* V37 tmp16        [V37    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;  V38 tmp17        [V38,T03] (  3, 96   )     ref  ->  x25         "handle histogram profile tmp"
 ;* V39 tmp18        [V39    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V40 tmp19        [V40    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V41 tmp20        [V41    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V42 tmp21        [V42,T60] (  3,  3   )     ref  ->  x21         single-def "handle histogram profile tmp"
+;  V42 tmp21        [V42,T59] (  3,  3   )     ref  ->  x21         single-def "handle histogram profile tmp"
 ;* V43 tmp22        [V43    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V44 tmp23        [V44,T11] (  3, 48   )     ref  ->  [fp+0x28]  spill-single-def "handle histogram profile tmp"
+;  V44 tmp23        [V44,T11] (  3, 48   )     ref  ->  [fp+0x20]  spill-single-def "handle histogram profile tmp"
 ;* V45 tmp24        [V45    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V46 tmp25        [V46    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V47 tmp26        [V47    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V48 tmp27        [V48,T29] (  3, 20   )     int  ->  x27         "Inline stloc first use temp"
+;  V48 tmp27        [V48,T28] (  3, 20   )     int  ->  x27         "Inline stloc first use temp"
 ;* V49 tmp28        [V49    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V50 tmp29        [V50    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V51 tmp30        [V51,T54] (  3,  6   )     ref  ->   x0         class-hnd exact "Inline stloc first use temp" <<unknown class>>
+;  V51 tmp30        [V51,T53] (  3,  6   )     ref  ->   x0         class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;  V52 tmp31        [V52,T07] (  5, 66   )     int  ->  x25         "Inline stloc first use temp"
 ;  V53 tmp32        [V53,T20] (  2, 32   )     int  ->   x4         "Inlining Arg"
 ;  V54 tmp33        [V54,T21] (  2, 32   )     int  ->   x4         "Inlining Arg"
-;  V55 tmp34        [V55,T55] (  2,  4   )     ref  ->   x0         "field V07.key (fldOffset=0x0)" P-INDEP
-;  V56 tmp35        [V56,T67] (  1,  2   )     ref  ->   x1         "field V07.value (fldOffset=0x8)" P-INDEP
-;  V57 tmp36        [V57,T56] (  2,  4   )     ref  ->  x24         "field V09.key (fldOffset=0x0)" P-INDEP
-;  V58 tmp37        [V58,T68] (  1,  2   )     ref  ->   x1         "field V09.value (fldOffset=0x8)" P-INDEP
-;  V59 tmp38        [V59,T57] (  2,  4   )     ref  ->  x25         "field V16.key (fldOffset=0x0)" P-INDEP
-;  V60 tmp39        [V60,T69] (  1,  2   )     ref  ->   x1         "field V16.value (fldOffset=0x8)" P-INDEP
+;  V55 tmp34        [V55,T54] (  2,  4   )     ref  ->   x0         "field V07.key (fldOffset=0x0)" P-INDEP
+;  V56 tmp35        [V56,T66] (  1,  2   )     ref  ->   x1         "field V07.value (fldOffset=0x8)" P-INDEP
+;  V57 tmp36        [V57,T55] (  2,  4   )     ref  ->  x24         "field V09.key (fldOffset=0x0)" P-INDEP
+;  V58 tmp37        [V58,T67] (  1,  2   )     ref  ->   x1         "field V09.value (fldOffset=0x8)" P-INDEP
+;  V59 tmp38        [V59,T56] (  2,  4   )     ref  ->  x25         "field V16.key (fldOffset=0x0)" P-INDEP
+;  V60 tmp39        [V60,T68] (  1,  2   )     ref  ->   x1         "field V16.value (fldOffset=0x8)" P-INDEP
 ;* V61 tmp40        [V61    ] (  0,  0   )     ref  ->  zero-ref    "field V25.key (fldOffset=0x0)" P-DEP
 ;* V62 tmp41        [V62    ] (  0,  0   )     ref  ->  zero-ref    "field V25.value (fldOffset=0x8)" P-DEP
 ;* V63 tmp42        [V63    ] (  0,  0   )     ref  ->  zero-ref    "field V28.key (fldOffset=0x0)" P-DEP
 ;* V64 tmp43        [V64    ] (  0,  0   )     ref  ->  zero-ref    "field V28.value (fldOffset=0x8)" P-DEP
 ;* V65 tmp44        [V65    ] (  0,  0   )     ref  ->  zero-ref    "field V31.key (fldOffset=0x0)" P-DEP
 ;* V66 tmp45        [V66    ] (  0,  0   )     ref  ->  zero-ref    "field V31.value (fldOffset=0x8)" P-DEP
-;  V67 tmp46        [V67,T61] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V68 tmp47        [V68,T35] (  2, 16   )     ref  ->  x11         "argument with side effect"
-;  V69 tmp48        [V69,T51] (  2,  8   )     ref  ->   x0         "argument with side effect"
+;  V67 tmp46        [V67,T60] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V68 tmp47        [V68,T34] (  2, 16   )     ref  ->  x11         "argument with side effect"
+;  V69 tmp48        [V69,T50] (  2,  8   )     ref  ->   x0         "argument with side effect"
 ;  V70 tmp49        [V70,T15] (  2, 32   )     ref  ->   x1         "argument with side effect"
-;* V71 tmp50        [V71,T38] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V72 tmp51        [V72,T72] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V73 tmp52        [V73,T62] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V74 tmp53        [V74,T63] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V75 tmp54        [V75,T36] (  2, 16   )     ref  ->  x11         "argument with side effect"
-;  V76 tmp55        [V76,T52] (  2,  8   )     ref  ->   x0         "argument with side effect"
+;* V71 tmp50        [V71,T37] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V72 tmp51        [V72,T71] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V73 tmp52        [V73,T61] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V74 tmp53        [V74,T62] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V75 tmp54        [V75,T35] (  2, 16   )     ref  ->  x11         "argument with side effect"
+;  V76 tmp55        [V76,T51] (  2,  8   )     ref  ->   x0         "argument with side effect"
 ;  V77 tmp56        [V77,T08] (  2, 64   )     ref  ->   x1         "argument with side effect"
-;* V78 tmp57        [V78,T39] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V79 tmp58        [V79,T73] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V80 tmp59        [V80,T64] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V81 tmp60        [V81,T65] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V82 tmp61        [V82,T37] (  2, 16   )     ref  ->  x11         "argument with side effect"
-;  V83 tmp62        [V83,T53] (  2,  8   )     ref  ->   x0         "argument with side effect"
-;  V84 tmp63        [V84,T74] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V85 tmp64        [V85,T66] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V86 PSPSym       [V86,T71] (  1,  1   )    long  ->  [fp+0x58]  do-not-enreg[V] "PSPSym"
-;  V87 cse0         [V87,T48] (  4,  8   )     ref  ->  x23         multi-def "CSE - moderate"
-;  V88 cse1         [V88,T43] (  6, 10.50)     ref  ->  x23         multi-def "CSE - moderate"
-;  V89 cse2         [V89,T49] (  4,  8   )     ref  ->  x24         multi-def "CSE - moderate"
-;  V90 cse3         [V90,T44] (  6, 10.50)     ref  ->  x24         multi-def "CSE - moderate"
-;  V91 cse4         [V91,T50] (  4,  8   )     ref  ->  x25         multi-def "CSE - moderate"
-;  V92 cse5         [V92,T45] (  6, 10.50)     ref  ->  x25         multi-def "CSE - moderate"
-;  V93 cse6         [V93,T24] (  3, 24   )   byref  ->  [fp+0x20]  spill-single-def "CSE - moderate"
-;  V94 cse7         [V94,T10] (  4, 48   )    long  ->   x1         "CSE - aggressive"
-;  V95 cse8         [V95,T01] ( 46,117.50)    long  ->  registers   multi-def "CSE - aggressive"
+;* V78 tmp57        [V78,T38] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V79 tmp58        [V79,T72] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V80 tmp59        [V80,T63] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V81 tmp60        [V81,T64] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V82 tmp61        [V82,T36] (  2, 16   )     ref  ->  x11         "argument with side effect"
+;  V83 tmp62        [V83,T52] (  2,  8   )     ref  ->   x0         "argument with side effect"
+;  V84 tmp63        [V84,T73] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V85 tmp64        [V85,T65] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V86 PSPSym       [V86,T70] (  1,  1   )    long  ->  [fp+0x58]  do-not-enreg[V] "PSPSym"
+;  V87 cse0         [V87,T47] (  4,  8   )     ref  ->  x23         multi-def "CSE - moderate"
+;  V88 cse1         [V88,T42] (  6, 10.50)     ref  ->  x23         multi-def "CSE - moderate"
+;  V89 cse2         [V89,T48] (  4,  8   )     ref  ->  x24         multi-def "CSE - moderate"
+;  V90 cse3         [V90,T43] (  6, 10.50)     ref  ->  x24         multi-def "CSE - moderate"
+;  V91 cse4         [V91,T49] (  4,  8   )     ref  ->  x25         multi-def "CSE - moderate"
+;  V92 cse5         [V92,T44] (  6, 10.50)     ref  ->  x25         multi-def "CSE - moderate"
+;  V93 cse6         [V93,T10] (  5, 56   )    long  ->  [fp+0x48]  spill-single-def "CSE - aggressive"
+;  V94 cse7         [V94,T01] ( 46,117.50)    long  ->  registers   multi-def "CSE - aggressive"
+;  V95 cse8         [V95,T02] ( 18,100.50)    long  ->  x23         hoist multi-def "CSE - aggressive"
 ;  V96 cse9         [V96,T05] (  3, 68   )     int  ->  x28         "CSE - aggressive"
-;  V97 cse10        [V97,T02] ( 18,100.50)    long  ->  x23         hoist multi-def "CSE - aggressive"
-;  V98 cse11        [V98,T26] ( 21, 22.50)    long  ->  registers   multi-def "CSE - moderate"
-;  V99 cse12        [V99,T34] (  2, 18   )   byref  ->  [fp+0x18]  spill-single-def hoist "CSE - moderate"
-;  V100 cse13       [V100,T30] (  3, 20   )     int  ->  x28         "CSE - moderate"
-;  V101 cse14       [V101,T31] (  3, 20   )     int  ->  x23         "CSE - moderate"
+;  V97 cse10        [V97,T25] ( 21, 22.50)    long  ->  registers   multi-def "CSE - moderate"
+;  V98 cse11        [V98,T33] (  2, 18   )   byref  ->  [fp+0x18]  spill-single-def hoist "CSE - moderate"
+;  V99 cse12        [V99,T29] (  3, 20   )     int  ->  x28         "CSE - moderate"
+;  V100 cse13       [V100,T30] (  3, 20   )     int  ->  x23         "CSE - moderate"
 ;
 ; Lcl frame size = 80
 
@@ -221,10 +220,10 @@ G_M16016_IG07:        ; bbWeight=2, gcrefRegs=2C80000 {x19 x22 x23 x25}, byrefRe
             ble     G_M16016_IG09
             add     x5, x0, #16
             ; byrRegs +[x5]
-            str     x5, [fp, #0x18]    // [V99 cse12]
-            ; GC ptr vars +{V99}
+            str     x5, [fp, #0x18]    // [V98 cse11]
+            ; GC ptr vars +{V98}
                        ;; size=28 bbWeight=2 PerfScore 19.00
-G_M16016_IG08:        ; bbWeight=16, gcVars=00000000000000000000000400000000 {V99}, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0020 {x5}, gcvars, byref, isz
+G_M16016_IG08:        ; bbWeight=16, gcVars=00000000000000000000000200000000 {V98}, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0020 {x5}, gcvars, byref, isz
             ; gcrRegs -[x0]
             ldr     x0, [x5, w25, UXTW #3]
             ; gcrRegs +[x0]
@@ -243,13 +242,13 @@ G_M16016_IG08:        ; bbWeight=16, gcVars=00000000000000000000000400000000 {V9
             ; gcr arg pop 0
             add     w25, w25, #1
             cmp     w28, w25
-            ldr     x5, [fp, #0x18]    // [V99 cse12]
+            ldr     x5, [fp, #0x18]    // [V98 cse11]
             ; byrRegs +[x5]
             bgt     G_M16016_IG08
                        ;; size=60 bbWeight=16 PerfScore 280.00
 G_M16016_IG09:        ; bbWeight=4, gcVars=00000000000000000000000000000000 {}, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, gcvars, byref, isz
             ; byrRegs -[x5]
-            ; GC ptr vars -{V99}
+            ; GC ptr vars -{V98}
             movz    x26, #0xD1FFAB1E
             movk    x26, #0xD1FFAB1E LSL #16
             movk    x26, #0xD1FFAB1E LSL #32
@@ -289,10 +288,10 @@ G_M16016_IG11:        ; bbWeight=0.50, gcrefRegs=480000 {x19 x22}, byrefRegs=000
             ldr     x1, [x11]
             blr     x1
             ; gcr arg pop 0
-            str     x0, [fp, #0x48]    // [V06 loc5]
+            str     x0, [fp, #0x40]    // [V06 loc5]
             ; GC ptr vars +{V06}
                        ;; size=68 bbWeight=0.50 PerfScore 9.00
-G_M16016_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000010000000000 {V06}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M16016_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000008000000000 {V06}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
             b       G_M16016_IG14
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M16016_IG13:        ; bbWeight=2, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
@@ -300,7 +299,7 @@ G_M16016_IG13:        ; bbWeight=2, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, b
             add     x0, x26, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-            ldr     x0, [fp, #0x48]    // [V06 loc5]
+            ldr     x0, [fp, #0x40]    // [V06 loc5]
             ; gcrRegs +[x0]
             add     x1, x26, #0xD1FFAB1E
             bl      CORINFO_HELP_CLASSPROFILE32
@@ -321,7 +320,7 @@ G_M16016_IG13:        ; bbWeight=2, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, b
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x0, [fp, #0x48]    // [V06 loc5]
+            ldr     x0, [fp, #0x40]    // [V06 loc5]
             ; gcrRegs +[x0]
                        ;; size=60 bbWeight=2 PerfScore 35.00
 G_M16016_IG14:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
@@ -329,7 +328,7 @@ G_M16016_IG14:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x0, [fp, #0x48]    // [V06 loc5]
+            ldr     x0, [fp, #0x40]    // [V06 loc5]
             ; gcrRegs +[x0]
             mov     x23, x0
             ; gcrRegs +[x23]
@@ -348,7 +347,7 @@ G_M16016_IG15:        ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}
             add     x0, x26, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-            ldr     x0, [fp, #0x48]    // [V06 loc5]
+            ldr     x0, [fp, #0x40]    // [V06 loc5]
             ; gcrRegs +[x0]
             add     x1, x26, #0xD1FFAB1E
             ; GC ptr vars -{V06}
@@ -390,15 +389,15 @@ G_M16016_IG16:        ; bbWeight=0.50, gcrefRegs=480000 {x19 x22}, byrefRegs=000
             ldr     x1, [x11]
             blr     x1
             ; gcr arg pop 0
-            str     x0, [fp, #0x40]    // [V08 loc7]
+            str     x0, [fp, #0x38]    // [V08 loc7]
             ; GC ptr vars +{V08}
                        ;; size=60 bbWeight=0.50 PerfScore 7.00
-G_M16016_IG17:        ; bbWeight=4, gcVars=00000000000000000000020000000000 {V08}, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M16016_IG17:        ; bbWeight=4, gcVars=00000000000000000000010000000000 {V08}, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, gcvars, byref, isz
...

libraries.crossgen2.windows.arm64.checked.mch

-4 (-0.19%) : 219407.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

@@ -9,25 +9,25 @@
 ; 0 inlinees with PGO data; 18 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T23] ( 18, 19   )     ref  ->  [fp+0x28]  this class-hnd EH-live single-def <System.Runtime.Caching.ExpiresBucket>
+;  V00 this         [V00,T23] ( 18, 19   )     ref  ->  [fp+0x30]  this class-hnd EH-live single-def <System.Runtime.Caching.ExpiresBucket>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.DateTime>
 ;  V02 arg2         [V02,T30] (  8,  7   )   ubyte  ->  [fp+0x54]  EH-live single-def
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V04 loc1         [V04,T01] ( 12,132   )     ref  ->  x25         class-hnd <<unknown class>>
+;  V04 loc1         [V04,T05] (  8, 68   )     ref  ->  x25         class-hnd <<unknown class>>
 ;  V05 loc2         [V05,T28] (  3, 12   )     int  ->   x0        
-;  V06 loc3         [V06,T03] (  7,108   )     ref  ->  [fp+0x20]  class-hnd <System.Runtime.Caching.MemoryCacheEntry>
+;  V06 loc3         [V06,T02] (  7,108   )     ref  ->  [fp+0x28]  class-hnd <System.Runtime.Caching.MemoryCacheEntry>
 ;  V07 loc4         [V07,T15] (  5, 35   )     int  ->  [fp+0x50]  do-not-enreg[Z] EH-live
 ;  V08 loc5         [V08,T34] (  2,  5   )     ref  ->  x19         class-hnd exact single-def <System.Runtime.Caching.MemoryCacheStore>
 ;* V09 loc6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Runtime.Caching.ExpiresEntryRef>
 ;* V10 loc7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V11 loc8         [V11,T04] ( 13, 71   )     ref  ->  [fp+0x18]  class-hnd exact EH-live spill-single-def <System.Runtime.Caching.ExpiresBucket>
+;  V11 loc8         [V11,T03] ( 13, 71   )     ref  ->  [fp+0x20]  class-hnd exact EH-live spill-single-def <System.Runtime.Caching.ExpiresBucket>
 ;  V12 loc9         [V12    ] (  4,  4   )   ubyte  ->  [fp+0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;  V13 loc10        [V13,T26] (  4, 13   )     int  ->  x22        
 ;* V14 loc11        [V14,T36] (  0,  0   )     int  ->  zero-ref    do-not-enreg[M] EH-live
 ;  V15 loc12        [V15,T07] (  7, 57   )     int  ->  x23        
 ;  V16 loc13        [V16,T08] (  4, 52   )     int  ->  x27        
 ;  V17 loc14        [V17,T00] (  6,148   )     int  ->  x28        
-;  V18 loc15        [V18,T13] (  8, 35   )     ref  ->  [fp+0x10]  class-hnd exact EH-live spill-single-def <System.Runtime.Caching.ExpiresBucket>
+;  V18 loc15        [V18,T13] (  8, 35   )     ref  ->  [fp+0x18]  class-hnd exact EH-live spill-single-def <System.Runtime.Caching.ExpiresBucket>
 ;  V19 loc16        [V19    ] (  4,  3   )   ubyte  ->  [fp+0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;# V20 OutArgs      [V20    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V21 tmp1         [V21    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.Caching.ExpiresEntryRef>
@@ -45,7 +45,7 @@
 ;  V33 tmp13        [V33,T31] (  6,  6   )     ref  ->  x19         class-hnd exact "Inlining Arg" <System.Runtime.Caching.MemoryCacheStore>
 ;  V34 tmp14        [V34,T22] (  5, 20   )    long  ->  x19         single-def "field V01._dateData (fldOffset=0x0)" P-INDEP
 ;  V35 tmp15        [V35,T16] (  5, 35   )     int  ->  [fp+0x3C]  do-not-enreg[Z] EH-live "field V03._ref (fldOffset=0x0)" P-INDEP
-;  V36 tmp16        [V36,T05] ( 13, 71   )     int  ->   x4         "field V09._ref (fldOffset=0x0)" P-INDEP
+;  V36 tmp16        [V36,T04] ( 13, 71   )     int  ->   x4         "field V09._ref (fldOffset=0x0)" P-INDEP
 ;  V37 tmp17        [V37,T19] (  4, 24   )     int  ->  x20         "field V10._ref (fldOffset=0x0)" P-INDEP
 ;  V38 tmp18        [V38,T17] (  2, 32   )     int  ->   x0         "field V21._ref (fldOffset=0x0)" P-INDEP
 ;  V39 tmp19        [V39,T18] (  2, 32   )     int  ->   x0         "field V26._ref (fldOffset=0x0)" P-INDEP
@@ -55,8 +55,8 @@
 ;  V43 tmp23        [V43,T11] (  3, 48   )     ref  ->   x1         "arr expr"
 ;  V44 PSPSym       [V44,T37] (  1,  1   )    long  ->  [fp+0x58]  do-not-enreg[V] "PSPSym"
 ;  V45 cse0         [V45,T24] (  3, 18   )     ref  ->  x21         "CSE - moderate"
-;  V46 cse1         [V46,T25] (  4, 16   )   byref  ->   x0         "CSE - moderate"
-;  V47 cse2         [V47,T02] (  6,128   )    long  ->  [fp+0x30]  spill-single-def "CSE - aggressive"
+;  V46 cse1         [V46,T01] (  6,128   )   byref  ->  [fp+0x10]  spill-single-def "CSE - aggressive"
+;  V47 cse2         [V47,T25] (  4, 16   )   byref  ->   x0         "CSE - moderate"
 ;  V48 cse3         [V48,T06] (  6, 65   )    long  ->  registers   hoist multi-def "CSE - aggressive"
 ;  V49 cse4         [V49,T14] (  8, 35   )    long  ->  x24         hoist multi-def "CSE - aggressive"
 ;  V50 cse5         [V50,T35] (  3,  3   )    long  ->  x20         "CSE - moderate"
@@ -77,7 +77,7 @@ G_M744_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, n
             stp     xzr, xzr, [fp, #0x40]  // [V19 loc16], [V12 loc9]
             add     x3, sp, #176
             str     x3, [fp, #0x58]    // [V44 PSPSym]
-            str     x0, [fp, #0x28]    // [V00 this]
+            str     x0, [fp, #0x30]    // [V00 this]
             ; GC ptr vars +{V00}
             str     w2, [fp, #0x54]    // [V02 arg2]
             mov     x19, x1
@@ -133,7 +133,7 @@ G_M744_IG06:        ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byr
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x0]
-            ldr     x1, [fp, #0x28]    // [V00 this]
+            ldr     x1, [fp, #0x30]    // [V00 this]
             ; gcrRegs +[x1]
             ldr     x0, [x1, x0]
             ; gcrRegs +[x0]
@@ -158,15 +158,15 @@ G_M744_IG06:        ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byr
 G_M744_IG07:        ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x22]
             ; byrRegs -[x1]
-            ldr     x1, [fp, #0x28]    // [V00 this]
+            ldr     x1, [fp, #0x30]    // [V00 this]
             ; gcrRegs +[x1]
             mov     x0, x1
             ; gcrRegs +[x0]
-            str     x0, [fp, #0x18]    // [V11 loc8]
+            str     x0, [fp, #0x20]    // [V11 loc8]
             ; GC ptr vars +{V11}
             str     wzr, [fp, #0x48]   // [V12 loc9]
                        ;; size=16 bbWeight=1 PerfScore 4.50
-G_M744_IG08:        ; bbWeight=1, gcVars=0000000000800010 {V00 V11}, gcrefRegs=200001 {x0 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M744_IG08:        ; bbWeight=1, gcVars=0000000000800008 {V00 V11}, gcrefRegs=200001 {x0 x21}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x1]
             add     x1, fp, #72    // [V12 loc9]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -175,7 +175,7 @@ G_M744_IG08:        ; bbWeight=1, gcVars=0000000000800010 {V00 V11}, gcrefRegs=2
             blr     x3
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x0, [fp, #0x18]    // [V11 loc8]
+            ldr     x0, [fp, #0x20]    // [V11 loc8]
             ; gcrRegs +[x0]
             ldr     w1, [x0, x20]
             cbz     w1, G_M744_IG21
@@ -187,7 +187,7 @@ G_M744_IG08:        ; bbWeight=1, gcVars=0000000000800010 {V00 V11}, gcrefRegs=2
             ; gcrRegs -[x0]
             ; gcr arg pop 0
             cbz     w0, G_M744_IG21
-            ldr     x0, [fp, #0x18]    // [V11 loc8]
+            ldr     x0, [fp, #0x20]    // [V11 loc8]
             ; gcrRegs +[x0]
             mov     x1, x19
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -199,7 +199,7 @@ G_M744_IG08:        ; bbWeight=1, gcVars=0000000000800010 {V00 V11}, gcrefRegs=2
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x0]
-            ldr     x20, [fp, #0x18]   // [V11 loc8]
+            ldr     x20, [fp, #0x20]   // [V11 loc8]
             ; gcrRegs +[x20]
             ldr     w22, [x20, x0]
             mov     w23, wzr
@@ -242,35 +242,38 @@ G_M744_IG10:        ; bbWeight=4, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=000
                        ;; size=40 bbWeight=4 PerfScore 44.00
 G_M744_IG11:        ; bbWeight=32, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0000 {}, byref, isz
             ubfiz   x0, x28, #4, #32
-            add     x2, x0, #16
-            str     x2, [fp, #0x30]    // [V47 cse2]
-            add     x0, x25, x2
-            ; byrRegs +[x0]
-            ldr     x3, [x0, #0x08]
+            add     x0, x0, #16
+            add     x2, x25, x0
+            ; byrRegs +[x2]
+            str     x2, [fp, #0x10]    // [V46 cse1]
+            ; GC ptr vars +{V46}
+            ldr     x3, [x2, #0x08]
             ; gcrRegs +[x3]
-            str     x3, [fp, #0x20]    // [V06 loc3]
+            str     x3, [fp, #0x28]    // [V06 loc3]
             ; GC ptr vars +{V06}
             cbz     x3, G_M744_IG14
                        ;; size=28 bbWeight=32 PerfScore 256.00
-G_M744_IG12:        ; bbWeight=16, gcVars=0000000000800018 {V00 V06 V11}, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M744_IG12:        ; bbWeight=16, gcVars=000000000080000E {V00 V06 V11 V46}, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0004 {x2}, gcvars, byref, isz
             ; gcrRegs -[x3]
-            ; byrRegs -[x0]
-            ldr     x0, [x25, x2]
+            ldr     x0, [x2]
             mov     x1, x19
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x4, [x11]
             blr     x4
+            ; byrRegs -[x2]
             ; gcr arg pop 0
             cbz     w0, G_M744_IG19
-            ldr     x2, [fp, #0x30]    // [V47 cse2]
-            ldr     x1, [x25, x2]
+            ldr     x2, [fp, #0x10]    // [V46 cse1]
+            ; byrRegs +[x2]
+            ldr     x1, [x2]
             mov     x0, x20
             ; gcrRegs +[x0]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x2, [x11]
-            ; GC ptr vars -{V06}
+            ; byrRegs -[x2]
+            ; GC ptr vars -{V06 V46}
             blr     x2
             ; gcrRegs -[x0]
             ; gcr arg pop 0
@@ -318,14 +321,14 @@ G_M744_IG18:        ; bbWeight=0, gcVars=0000000000800000 {V00}, gcrefRegs=0000
             blr     x0
             ; gcr arg pop 0
                        ;; size=16 bbWeight=0 PerfScore 0.00
-G_M744_IG19:        ; bbWeight=16, gcVars=0000000000800018 {V00 V06 V11}, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0000 {}, gcvars, byref
+G_M744_IG19:        ; bbWeight=16, gcVars=000000000080000E {V00 V06 V11 V46}, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x20-x21 x25]
-            ; GC ptr vars +{V04 V06 V11}
+            ; GC ptr vars +{V02 V06 V11 V46}
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x0]
             mov     w11, #255
-            ldr     x1, [fp, #0x20]    // [V06 loc3]
+            ldr     x1, [fp, #0x28]    // [V06 loc3]
             ; gcrRegs +[x1]
             strb    w11, [x1, x0]
             ldr     w0, [x21, #0x08]
@@ -333,15 +336,12 @@ G_M744_IG19:        ; bbWeight=16, gcVars=0000000000800018 {V00 V06 V11}, gcrefR
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x11, [x11]
             str     w0, [x1, x11]
-            ldr     x0, [fp, #0x30]    // [V47 cse2]
-            add     x11, x25, x0
+            mov     w0, #1
+            ldr     x11, [fp, #0x10]   // [V46 cse1]
             ; byrRegs +[x11]
-            mov     w1, #1
-            ; gcrRegs -[x1]
-            str     w1, [x11, #0x04]
-            ldr     w11, [fp, #0x3C]   // [V35 tmp15]
-            ; byrRegs -[x11]
-            str     w11, [x25, x0]
+            str     w0, [x11, #0x04]
+            ldr     w0, [fp, #0x3C]    // [V35 tmp15]
+            str     w0, [x11]
             uxtb    w0, w28
             orr     w0, w0, w23,  LSL #8
             str     w0, [fp, #0x3C]    // [V35 tmp15]
@@ -350,18 +350,19 @@ G_M744_IG19:        ; bbWeight=16, gcVars=0000000000800018 {V00 V06 V11}, gcrefR
             str     w0, [fp, #0x50]    // [V07 loc4]
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
-            ldr     x1, [x0]
-            ldr     w0, [x20, x1]
+            ldr     x2, [x0]
+            ldr     w0, [x20, x2]
             add     w0, w0, #1
-            str     w0, [x20, x1]
+            str     w0, [x20, x2]
             b       G_M744_IG13
-                       ;; size=120 bbWeight=16 PerfScore 608.00
+                       ;; size=116 bbWeight=16 PerfScore 600.00
 G_M744_IG20:        ; bbWeight=1, gcVars=0000000000800000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[x20-x21 x25]
-            ; GC ptr vars -{V04 V06 V11}
+            ; gcrRegs -[x1 x20-x21 x25]
+            ; byrRegs -[x11]
+            ; GC ptr vars -{V02 V06 V11 V46}
             ldrb    w0, [fp, #0x48]    // [V12 loc9]
             cbz     w0, G_M744_IG24
-            ldr     x0, [fp, #0x28]    // [V00 this]
+            ldr     x0, [fp, #0x30]    // [V00 this]
             ; gcrRegs +[x0]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
@@ -385,7 +386,7 @@ G_M744_IG23:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, i
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x0]
-            ldr     x1, [fp, #0x28]    // [V00 this]
+            ldr     x1, [fp, #0x30]    // [V00 this]
             ; gcrRegs +[x1]
             ldr     x0, [x1, x0]
             ; gcrRegs +[x0]
@@ -424,7 +425,7 @@ G_M744_IG26:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x0]
-            ldr     x1, [fp, #0x28]    // [V00 this]
+            ldr     x1, [fp, #0x30]    // [V00 this]
             ; gcrRegs +[x1]
             ldr     x0, [x1, x0]
             ; gcrRegs +[x0]
...

+12 (+1.80%) : 213941.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

@@ -4,46 +4,45 @@
 ; ReadyToRun compilation
 ; optimized code
 ; fp based frame
-; fully interruptible
+; partially interruptible
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] ( 12,  7   )   byref  ->  x19         this single-def
-;  V01 arg1         [V01,T05] (  4,  4   )  struct (16) [fp+0x38]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
+;  V00 this         [V00,T00] ( 12,  7   )   byref  ->  x19         this single-def
+;  V01 arg1         [V01,T02] (  4,  4   )  struct (16) [fp+0x38]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op <System.Span`1[int]>
-;  V03 loc1         [V03,T01] (  9, 12   )     int  ->  x22        
+;  V03 loc1         [V03,T06] (  9,  4.75)     int  ->  x22        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[int]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [fp+0x48]  do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
-;  V07 tmp2         [V07    ] (  4,  8   )  struct (16) [fp+0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
+;  V07 tmp2         [V07    ] (  4,  8   )  struct (16) [fp+0x28]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;  V08 tmp3         [V08    ] (  3,  6   )  struct (16) [fp+0x18]  do-not-enreg[SFAR] multireg-arg multireg-ret "Return value temp for multireg return" <System.Decimal>
-;  V09 tmp4         [V09,T09] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V10 tmp5         [V10,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V09 tmp4         [V09,T08] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V10 tmp5         [V10,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
-;  V13 tmp8         [V13,T17] (  2,  1   )     int  ->   x0        
-;  V14 tmp9         [V14,T10] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V15 tmp10        [V15,T13] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V16 tmp11        [V16,T11] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V17 tmp12        [V17,T14] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V18 tmp13        [V18,T15] (  2,  2   )     int  ->   x0         "impAppendStmt"
+;  V13 tmp8         [V13,T16] (  2,  1   )     int  ->   x0        
+;  V14 tmp9         [V14,T09] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V15 tmp10        [V15,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V16 tmp11        [V16,T10] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V17 tmp12        [V17,T13] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V18 tmp13        [V18,T14] (  2,  2   )     int  ->   x0         "impAppendStmt"
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    ptr
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp18        [V23,T18] (  2,  1   )     int  ->  x11        
-;  V24 tmp19        [V24,T03] (  9,  9   )   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V25 tmp20        [V25,T04] (  7,  8   )     int  ->  x21         "field V02._length (fldOffset=0x8)" P-INDEP
+;  V23 tmp18        [V23,T17] (  2,  1   )     int  ->  x11        
+;  V24 tmp19        [V24,T01] ( 11,  6.50)   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V25 tmp20        [V25,T07] (  5,  3.50)     int  ->  x21         "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V26 tmp21        [V26    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V27 tmp22        [V27    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V28 tmp23        [V28    ] (  3,  5   )   byref  ->  [fp+0x28]  do-not-enreg[X] addr-exposed ptr "field V07._reference (fldOffset=0x0)" P-DEP
 ;  V29 tmp24        [V29    ] (  3,  5   )     int  ->  [fp+0x30]  do-not-enreg[X] addr-exposed ptr "field V07._length (fldOffset=0x8)" P-DEP
-;  V30 tmp25        [V30,T06] (  3,  6   )     int  ->  [fp+0x18]  do-not-enreg[] "field V08._flags (fldOffset=0x0)" P-DEP
-;  V31 tmp26        [V31,T07] (  3,  6   )     int  ->  [fp+0x1C]  do-not-enreg[] "field V08._hi32 (fldOffset=0x4)" P-DEP
-;  V32 tmp27        [V32,T08] (  3,  6   )    long  ->  [fp+0x20]  do-not-enreg[] "field V08._lo64 (fldOffset=0x8)" P-DEP
+;  V30 tmp25        [V30,T03] (  3,  6   )     int  ->  [fp+0x18]  do-not-enreg[] "field V08._flags (fldOffset=0x0)" P-DEP
+;  V31 tmp26        [V31,T04] (  3,  6   )     int  ->  [fp+0x1C]  do-not-enreg[] "field V08._hi32 (fldOffset=0x4)" P-DEP
+;  V32 tmp27        [V32,T05] (  3,  6   )    long  ->  [fp+0x20]  do-not-enreg[] "field V08._lo64 (fldOffset=0x8)" P-DEP
 ;  V33 GsCookie     [V33    ] (  1,  1   )    long  ->  [fp+0x58]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V34 cse0         [V34,T16] (  3,  1.50)     int  ->   x0         "CSE - moderate"
-;  V35 cse1         [V35,T00] (  4, 14   )     int  ->  x11         "CSE - aggressive"
+;  V34 cse0         [V34,T15] (  3,  1.50)     int  ->   x0         "CSE - moderate"
 ;
 ; Lcl frame size = 80
 
@@ -52,7 +51,6 @@ G_M46478_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     x19, x20, [sp, #0x60]
             stp     x21, x22, [sp, #0x70]
             mov     fp, sp
-            str     xzr, [fp, #0x28]   // [V07 tmp2]
             adrp    x3, [HIGH RELOC #0xD1FFAB1E]      // [SetGlobalSecurityCookie]
             add     x3, x3, [LOW RELOC #0xD1FFAB1E]
             ldr     x3, [x3]
@@ -60,7 +58,7 @@ G_M46478_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     x1, x2, [fp, #0x38]    // [V01 arg1], [V01 arg1+0x08]
             mov     x19, x0
             ; byrRegs +[x19]
-                       ;; size=44 bbWeight=1 PerfScore 11.00
+                       ;; size=40 bbWeight=1 PerfScore 10.00
 G_M46478_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
             stp     xzr, xzr, [fp, #0x28]
             add     x0, fp, #40    // [V07 tmp2]
@@ -70,7 +68,6 @@ G_M46478_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, by
             mov     w2, #4
             ldr     x3, [x11]
             blr     x3
-            ; gcr arg pop 0
             ldr     x20, [fp, #0x28]   // [V28 tmp23]
             ; byrRegs +[x20]
             ldr     w21, [fp, #0x30]   // [V29 tmp24]
@@ -79,7 +76,6 @@ G_M46478_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, by
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x2, [x11]
             blr     x2
-            ; gcr arg pop 0
             stp     x0, x1, [fp, #0x18]    // [V08 tmp3], [V08 tmp3+0x08]
             mov     x2, x20
             ; byrRegs +[x2]
@@ -90,33 +86,51 @@ G_M46478_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, by
             ldr     x4, [x11]
             blr     x4
             ; byrRegs -[x2]
-            ; gcr arg pop 0
             mov     w22, #3
             b       G_M46478_IG04
                        ;; size=100 bbWeight=1 PerfScore 31.00
-G_M46478_IG03:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sxtw    w22, w11
-            cmp     w22, #0
-            ble     G_M46478_IG05
-                       ;; size=12 bbWeight=2 PerfScore 4.00
-G_M46478_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sub     w11, w22, #1
-            cmp     w11, w21
-            bhs     G_M46478_IG14
-            ldr     w0, [x20, w11, UXTW #2]
-            cbz     w0, G_M46478_IG03
-                       ;; size=20 bbWeight=4 PerfScore 24.00
-G_M46478_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            cbnz    w22, G_M46478_IG08
+G_M46478_IG03:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w22, #2
+            b       G_M46478_IG07
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            cmp     w21, #2
+            bls     G_M46478_IG20
+            ldr     w11, [x20, #0x08]
+            cbz     w11, G_M46478_IG03
+                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+G_M46478_IG05:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG11
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG06:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w22, #1
+            b       G_M46478_IG10
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w11, [x20, #0x04]
+            cbz     w11, G_M46478_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG08:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG11
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG09:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w22, wzr
+            b       G_M46478_IG11
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w11, [x20]
+            cbz     w11, G_M46478_IG09
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            cbnz    w22, G_M46478_IG14
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             ; byrRegs -[x20]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x11]
             blr     x0
             ; byrRegs +[x0]
-            ; gcr arg pop 0
             ldr     x13, [x0, #0x50]
             ; gcrRegs +[x13]
             add     x13, x13, #8
@@ -136,31 +150,30 @@ G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             ldr     xip0, [xip0]
             ldr     xip1, [fp, #0x58]  // [V33 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG07
+            beq     G_M46478_IG13
             adrp    xip0, [HIGH RELOC #0xD1FFAB1E]      // CORINFO_HELP_FAIL_FAST
             add     xip0, xip0, [LOW RELOC #0xD1FFAB1E]
             ldr     xip0, [xip0]
             blr     xip0
             ; byrRegs -[x13-x14]
-            ; gcr arg pop 0
                        ;; size=92 bbWeight=0.50 PerfScore 15.25
-G_M46478_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     x21, x22, [sp, #0x70]
             ldp     x19, x20, [sp, #0x60]
             ldp     fp, lr, [sp], #0x80
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
-G_M46478_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             cmp     w22, #1
-            bne     G_M46478_IG10
+            bne     G_M46478_IG16
             ldr     w0, [x20]
             cmp     w0, #0
-            ble     G_M46478_IG10
+            ble     G_M46478_IG16
             str     w0, [x19, #0x08]
             ldr     w0, [x19, #0x08]
             cmp     w21, #3
-            bls     G_M46478_IG14
+            bls     G_M46478_IG20
             ldr     w11, [x20, #0x0C]
             movn    w1, #0
             mov     w2, #1
@@ -174,21 +187,20 @@ G_M46478_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     xip0, [xip0]
             ldr     xip1, [fp, #0x58]  // [V33 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG09
+            beq     G_M46478_IG15
             adrp    xip0, [HIGH RELOC #0xD1FFAB1E]      // CORINFO_HELP_FAIL_FAST
             add     xip0, xip0, [LOW RELOC #0xD1FFAB1E]
             ldr     xip0, [xip0]
             blr     xip0
             ; byrRegs -[x19-x20]
-            ; gcr arg pop 0
                        ;; size=108 bbWeight=0.50 PerfScore 16.50
-G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     x21, x22, [sp, #0x70]
             ldp     x19, x20, [sp, #0x60]
             ldp     fp, lr, [sp], #0x80
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
-G_M46478_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG16:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             sxtw    x0, w22
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -196,7 +208,6 @@ G_M46478_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     x1, [x11]
             blr     x1
             ; gcrRegs +[x0]
-            ; gcr arg pop 0
             mov     x15, x0
             ; gcrRegs +[x15]
             mov     x14, x19
@@ -212,37 +223,33 @@ G_M46478_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     w1, [x20]
             ldr     w2, [x0, #0x08]
             cmp     w2, #0
-            bls     G_M46478_IG14
+            bls     G_M46478_IG20
             str     w1, [x0, #0x10]
             cmp     w22, #1
-            ble     G_M46478_IG11
+            ble     G_M46478_IG17
...

libraries.pmi.windows.arm64.checked.mch

-12 (-0.71%) : 232696.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)

@@ -10,72 +10,71 @@
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <ILCompiler.DevirtualizationManager>
 ;  V01 arg1         [V01,T00] ( 21, 26   )     ref  ->  x19         class-hnd <Internal.TypeSystem.MethodDesc>
-;  V02 arg2         [V02,T16] ( 14,  8   )     ref  ->  x20         class-hnd single-def <Internal.TypeSystem.DefType>
-;  V03 arg3         [V03,T19] (  8,  5.50)   byref  ->  x21         single-def
+;  V02 arg2         [V02,T17] ( 14,  8   )     ref  ->  x20         class-hnd single-def <Internal.TypeSystem.DefType>
+;  V03 arg3         [V03,T20] (  8,  5.50)   byref  ->  x21         single-def
 ;  V04 loc0         [V04,T22] ( 11,  5.50)     ref  ->  x23         class-hnd <Internal.TypeSystem.MethodDesc>
-;  V05 loc1         [V05,T42] (  3,  1.50)     ref  ->  x24         class-hnd single-def <Internal.TypeSystem.DefType[]>
+;  V05 loc1         [V05,T41] (  3,  1.50)     ref  ->  x24         class-hnd single-def <Internal.TypeSystem.DefType[]>
 ;  V06 loc2         [V06,T21] (  4,  6.50)     int  ->  x23        
-;  V07 loc3         [V07,T20] (  5,  7.50)     ref  ->  x25         class-hnd single-def <Internal.TypeSystem.DefType>
+;  V07 loc3         [V07,T16] (  4, 10.50)     ref  ->  x25         class-hnd single-def <Internal.TypeSystem.DefType>
 ;  V08 loc4         [V08,T07] (  5, 16.50)     int  ->  x26        
-;  V09 loc5         [V09,T04] (  7, 20   )     ref  ->  [fp+0x30]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
+;  V09 loc5         [V09,T04] (  7, 20   )     ref  ->  x28         class-hnd <Internal.TypeSystem.DefType>
 ;  V10 loc6         [V10,T26] (  6,  4.50)     ref  ->  x24         class-hnd <Internal.TypeSystem.MethodDesc>
-;  V11 loc7         [V11,T43] (  3,  1.50)     ref  ->   x0         class-hnd single-def <Internal.TypeSystem.DefType[]>
+;  V11 loc7         [V11,T42] (  3,  1.50)     ref  ->   x0         class-hnd single-def <Internal.TypeSystem.DefType[]>
 ;  V12 loc8         [V12,T08] (  5, 16.50)     int  ->  x25        
 ;  V13 loc9         [V13,T05] (  6, 20   )     ref  ->  x28         class-hnd <Internal.TypeSystem.DefType>
 ;  V14 loc10        [V14    ] (  4,  2   )     ref  ->  [fp+0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <Internal.TypeSystem.MethodDesc>
-;  V15 loc11        [V15,T48] (  3,  1.50)     int  ->   x0         single-def
+;  V15 loc11        [V15,T47] (  3,  1.50)     int  ->   x0         single-def
 ;  V16 loc12        [V16,T03] ( 10, 20   )     ref  ->  x23         class-hnd <Internal.TypeSystem.TypeDesc>
 ;* V17 loc13        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Internal.TypeSystem.MethodDesc>
 ;* V18 loc14        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Internal.TypeSystem.MethodDesc>
 ;# V19 OutArgs      [V19    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V20 tmp1         [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
-;  V21 tmp2         [V21,T34] (  3,  2.25)     ref  ->   x1         single-def "CASTCLASS eval op1"
-;  V22 tmp3         [V22,T49] (  3,  1.25)    long  ->   x2         "fgMakeTemp is creating a new local variable"
-;  V23 tmp4         [V23,T31] (  5,  3.75)     ref  ->  x25         class-hnd "spilling QMark2" <Internal.TypeSystem.DefType>
+;  V21 tmp2         [V21,T33] (  3,  2.25)     ref  ->   x1         single-def "CASTCLASS eval op1"
+;  V22 tmp3         [V22,T48] (  3,  1.25)    long  ->   x2         "fgMakeTemp is creating a new local variable"
+;  V23 tmp4         [V23,T30] (  5,  3.75)     ref  ->  x25         class-hnd "spilling QMark2" <Internal.TypeSystem.DefType>
 ;  V24 tmp5         [V24,T23] (  3,  5   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
-;  V25 tmp6         [V25,T35] (  3,  2   )     int  ->   x2         "Inline return value spill temp"
-;  V26 tmp7         [V26,T33] (  3,  2.50)     int  ->   x2         single-def "Inline stloc first use temp"
-;  V27 tmp8         [V27,T44] (  3,  1.50)     ref  ->  x24         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
+;  V25 tmp6         [V25,T34] (  3,  2   )     int  ->   x2         "Inline return value spill temp"
+;  V26 tmp7         [V26,T32] (  3,  2.50)     int  ->   x2         single-def "Inline stloc first use temp"
+;  V27 tmp8         [V27,T43] (  3,  1.50)     ref  ->  x24         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
 ;* V28 tmp9         [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V29 tmp10        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
-;  V30 tmp11        [V30,T17] (  5, 10   )     ref  ->  [fp+0x28]  class-hnd "Inline stloc first use temp" <Internal.TypeSystem.TypeDesc>
-;  V31 tmp12        [V31,T30] (  2,  4   )     ref  ->   x2         class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
+;  V30 tmp11        [V30,T18] (  5, 10   )     ref  ->  [fp+0x30]  class-hnd "Inline stloc first use temp" <Internal.TypeSystem.TypeDesc>
+;  V31 tmp12        [V31,T29] (  2,  4   )     ref  ->   x1         class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
 ;* V32 tmp13        [V32    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V33 tmp14        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <<unknown class>>
 ;* V34 tmp15        [V34    ] (  0,  0   )     int  ->  zero-ref   
 ;* V35 tmp16        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc>
-;  V36 tmp17        [V36,T45] (  3,  1.50)     ref  ->   x0         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
-;  V37 tmp18        [V37,T01] (  3, 24   )     ref  ->  [fp+0x20]  class-hnd spill-single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
+;  V36 tmp17        [V36,T44] (  3,  1.50)     ref  ->   x0         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
+;  V37 tmp18        [V37,T01] (  3, 24   )     ref  ->  [fp+0x28]  class-hnd spill-single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V38 tmp19        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V39 tmp20        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V40 tmp21        [V40    ] (  0,  0   )     int  ->  zero-ref   
 ;  V41 tmp22        [V41,T02] (  3, 24   )     ref  ->  x24         class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V42 tmp23        [V42    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V43 tmp24        [V43    ] (  0,  0   )     int  ->  zero-ref   
-;  V44 tmp25        [V44,T36] (  2,  2   )     ref  ->   x0         single-def "Single return block return value"
+;  V44 tmp25        [V44,T35] (  2,  2   )     ref  ->   x0         single-def "Single return block return value"
 ;  V45 tmp26        [V45,T09] (  2, 16   )     ref  ->  x25         "argument with side effect"
 ;  V46 tmp27        [V46,T10] (  2, 16   )     ref  ->   x1         "argument with side effect"
-;  V47 tmp28        [V47,T37] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V48 tmp29        [V48,T38] (  2,  2   )     ref  ->  x24         single-def "argument with side effect"
-;  V49 tmp30        [V49,T39] (  2,  2   )     ref  ->   x1         single-def "argument with side effect"
-;  V50 tmp31        [V50,T32] (  3,  3   )     ref  ->   x0         single-def "argument with side effect"
-;  V51 tmp32        [V51,T40] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V52 tmp33        [V52,T11] (  2, 16   )     ref  ->  [fp+0x18]  spill-single-def "argument with side effect"
+;  V47 tmp28        [V47,T36] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V48 tmp29        [V48,T37] (  2,  2   )     ref  ->  x24         single-def "argument with side effect"
+;  V49 tmp30        [V49,T38] (  2,  2   )     ref  ->   x1         single-def "argument with side effect"
+;  V50 tmp31        [V50,T31] (  3,  3   )     ref  ->   x0         single-def "argument with side effect"
+;  V51 tmp32        [V51,T39] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V52 tmp33        [V52,T11] (  2, 16   )     ref  ->  [fp+0x20]  spill-single-def "argument with side effect"
 ;  V53 tmp34        [V53,T12] (  2, 16   )     ref  ->   x1         "argument with side effect"
 ;* V54 tmp35        [V54    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V55 tmp36        [V55,T41] (  2,  2   )     ref  ->   x1         single-def "argument with side effect"
+;  V55 tmp36        [V55,T40] (  2,  2   )     ref  ->   x1         single-def "argument with side effect"
 ;  V56 tmp37        [V56,T13] (  2, 16   )     ref  ->   x1         "argument with side effect"
-;  V57 tmp38        [V57,T14] (  2, 16   )     ref  ->  [fp+0x10]  spill-single-def "argument with side effect"
+;  V57 tmp38        [V57,T14] (  2, 16   )     ref  ->  [fp+0x18]  spill-single-def "argument with side effect"
 ;  V58 tmp39        [V58,T15] (  2, 16   )     ref  ->   x1         "argument with side effect"
-;  V59 tmp40        [V59,T18] (  2,  8   )     ref  ->   x1         "argument with side effect"
+;  V59 tmp40        [V59,T19] (  2,  8   )     ref  ->   x1         "argument with side effect"
 ;  V60 cse0         [V60,T06] ( 10, 18   )    long  ->  x22         "CSE - aggressive"
-;  V61 cse1         [V61,T29] (  2,  4.50)    long  ->  x28         hoist "CSE - moderate"
-;  V62 cse2         [V62,T46] (  3,  1.50)     ref  ->  x23         "CSE - conservative"
-;  V63 cse3         [V63,T47] (  3,  1.50)     ref  ->  x25         "CSE - conservative"
+;  V61 cse1         [V61,T45] (  3,  1.50)     ref  ->  x23         "CSE - moderate"
+;  V62 cse2         [V62,T46] (  3,  1.50)     ref  ->  x25         "CSE - moderate"
+;  V63 cse3         [V63,T24] (  3,  5   )     int  ->  x27         "CSE - moderate"
 ;  V64 cse4         [V64,T27] (  2,  4.50)   byref  ->  x24         hoist "CSE - moderate"
-;  V65 cse5         [V65,T24] (  3,  5   )     int  ->  x27         "CSE - moderate"
-;  V66 cse6         [V66,T28] (  2,  4.50)   byref  ->  x27         hoist "CSE - moderate"
-;  V67 cse7         [V67,T25] (  3,  5   )     int  ->  x26         "CSE - moderate"
+;  V65 cse5         [V65,T28] (  2,  4.50)   byref  ->  x27         hoist "CSE - moderate"
+;  V66 cse6         [V66,T25] (  3,  5   )     int  ->  x26         "CSE - moderate"
 ;
 ; Lcl frame size = 48
 
@@ -215,30 +214,26 @@ G_M48343_IG12:        ; bbWeight=0.50, gcrefRegs=3180000 {x19 x20 x24 x25}, byre
             add     x24, x24, #16
             ; gcrRegs -[x24]
             ; byrRegs +[x24]
-            ldr     xzr, [x25]
-            ldr     x0, [x25]
-            ldr     x28, [x0, #0x58]
-                       ;; size=32 bbWeight=0.50 PerfScore 7.25
+                       ;; size=20 bbWeight=0.50 PerfScore 2.75
 G_M48343_IG13:        ; bbWeight=4, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=1200000 {x21 x24}, byref, isz
-            ldr     x1, [x24, w26, UXTW #3]
-            ; gcrRegs +[x1]
-            str     x1, [fp, #0x30]    // [V09 loc5]
-            ; GC ptr vars +{V09}
+            ldr     x28, [x24, w26, UXTW #3]
+            ; gcrRegs +[x28]
             mov     x0, x25
             ; gcrRegs +[x0]
-            ldr     x2, [x28, #0x20]
-            blr     x2
-            ; gcrRegs -[x1]
-            str     x0, [fp, #0x18]    // [V52 tmp33]
+            ldr     x1, [x25]
+            ldr     x1, [x1, #0x58]
+            ldr     x1, [x1, #0x20]
+            blr     x1
+            str     x0, [fp, #0x20]    // [V52 tmp33]
             ; GC ptr vars +{V52}
-            ldr     x0, [fp, #0x30]    // [V09 loc5]
-            ldr     x2, [x0]
+            mov     x0, x28
+            ldr     x2, [x28]
             ldr     x2, [x2, #0x58]
             ldr     x2, [x2, #0x20]
             blr     x2
             mov     x1, x0
             ; gcrRegs +[x1]
-            ldr     x0, [fp, #0x18]    // [V52 tmp33]
+            ldr     x0, [fp, #0x20]    // [V52 tmp33]
             movz    x2, #0xD1FFAB1E      // code for Internal.TypeSystem.TypeDesc:op_Equality(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc):ubyte
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
@@ -247,28 +242,26 @@ G_M48343_IG13:        ; bbWeight=4, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=1
             blr     x2
             ; gcrRegs -[x0-x1]
             cbz     w0, G_M48343_IG16
-                       ;; size=76 bbWeight=4 PerfScore 122.00
-G_M48343_IG14:        ; bbWeight=2, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=1200000 {x21 x24}, byref, isz
-            ldr     x1, [fp, #0x30]    // [V09 loc5]
+                       ;; size=80 bbWeight=4 PerfScore 136.00
+G_M48343_IG14:        ; bbWeight=2, gcrefRegs=12180000 {x19 x20 x25 x28}, byrefRegs=1200000 {x21 x24}, byref, isz
+            ldr     x1, [x28, #0x08]
             ; gcrRegs +[x1]
-            ldr     x2, [x1, #0x08]
-            ; gcrRegs +[x2]
-            str     x2, [fp, #0x28]    // [V30 tmp11]
+            str     x1, [fp, #0x30]    // [V30 tmp11]
             ; GC ptr vars +{V30}
             mov     w0, #1
-            movz    x3, #0xD1FFAB1E      // code for <unknown method>
-            movk    x3, #0xD1FFAB1E LSL #16
-            movk    x3, #0xD1FFAB1E LSL #32
-            ldr     x3, [x3]
-            blr     x3
-            ; gcrRegs -[x1-x2]
-            ldr     x2, [fp, #0x28]    // [V30 tmp11]
+            movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #0xD1FFAB1E LSL #32
+            ldr     x2, [x2]
+            blr     x2
+            ; gcrRegs -[x1]
+            ldr     x2, [fp, #0x30]    // [V30 tmp11]
             ; gcrRegs +[x2]
             cbnz    x2, G_M48343_IG15
-            ldr     x0, [fp, #0x30]    // [V09 loc5]
+            mov     x0, x28
             ; gcrRegs +[x0]
             mov     w1, wzr
-            ldr     x2, [x0]
+            ldr     x2, [x28]
             ; gcrRegs -[x2]
             ldr     x2, [x2, #0x48]
             ldr     x2, [x2, #0x28]
@@ -276,8 +269,8 @@ G_M48343_IG14:        ; bbWeight=2, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=1
             blr     x2
             mov     x3, x0
             ; gcrRegs +[x3]
-            ldr     x0, [fp, #0x30]    // [V09 loc5]
-            str     x3, [fp, #0x28]    // [V30 tmp11]
+            mov     x0, x28
+            str     x3, [fp, #0x30]    // [V30 tmp11]
             ; GC ptr vars +{V30}
             mov     x2, x3
             ; gcrRegs +[x2]
@@ -286,12 +279,11 @@ G_M48343_IG14:        ; bbWeight=2, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=1
             movk    x4, #0xD1FFAB1E LSL #16
             movk    x4, #0xD1FFAB1E LSL #32
             ldr     x4, [x4]
-            ; GC ptr vars -{V09}
             blr     x4
-            ; gcrRegs -[x0 x2-x3]
-            ldr     x2, [fp, #0x28]    // [V30 tmp11]
+            ; gcrRegs -[x0 x2-x3 x28]
+            ldr     x2, [fp, #0x30]    // [V30 tmp11]
             ; gcrRegs +[x2]
-                       ;; size=112 bbWeight=2 PerfScore 79.00
+                       ;; size=108 bbWeight=2 PerfScore 69.00
 G_M48343_IG15:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=2180004 {x2 x19 x20 x25}, byrefRegs=1200000 {x21 x24}, gcvars, byref, isz
             ; GC ptr vars -{V30}
             mov     x0, x2
@@ -426,16 +418,16 @@ G_M48343_IG23:        ; bbWeight=4, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRe
             ; gcrRegs +[x0]
             ldr     x1, [x22, #0x18]
             blr     x1
-            str     x0, [fp, #0x20]    // [V37 tmp18]
+            str     x0, [fp, #0x28]    // [V37 tmp18]
             ; GC ptr vars +{V37}
             mov     x0, x28
             ldr     x2, [x28]
             ldr     x2, [x2, #0x58]
             ldr     x2, [x2, #0x20]
             blr     x2
-            str     x0, [fp, #0x10]    // [V57 tmp38]
+            str     x0, [fp, #0x18]    // [V57 tmp38]
             ; GC ptr vars +{V57}
-            ldr     x0, [fp, #0x20]    // [V37 tmp18]
+            ldr     x0, [fp, #0x28]    // [V37 tmp18]
             ldr     x2, [x0]
             ldr     x2, [x2, #0x58]
             ldr     x2, [x2, #0x20]
@@ -443,7 +435,7 @@ G_M48343_IG23:        ; bbWeight=4, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRe
             blr     x2
             mov     x1, x0
             ; gcrRegs +[x1]
-            ldr     x0, [fp, #0x10]    // [V57 tmp38]
+            ldr     x0, [fp, #0x18]    // [V57 tmp38]
             movz    x2, #0xD1FFAB1E      // code for Internal.TypeSystem.TypeDesc:op_Equality(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc):ubyte
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
@@ -727,7 +719,7 @@ G_M48343_IG40:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=28 bbWeight=0.50 PerfScore 3.50
 
-; Total bytes of code 1684, prolog size 32, PerfScore 829.50, instruction count 421, allocated bytes for code 1684 (MethodHash=11874328) for method ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
...

-4 (-0.20%) : 291023.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

@@ -12,14 +12,14 @@
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.DateTime>
 ;  V02 arg2         [V02,T30] (  8,  7   )   ubyte  ->  [fp+0x44]  EH-live single-def
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V04 loc1         [V04,T01] ( 11,116   )     ref  ->  x24         class-hnd <<unknown class>>
+;  V04 loc1         [V04,T05] (  8, 68   )     ref  ->  x24         class-hnd <<unknown class>>
 ;  V05 loc2         [V05,T28] (  3, 12   )     int  ->   x1        
-;  V06 loc3         [V06,T03] (  7,108   )     ref  ->   x2         class-hnd <System.Runtime.Caching.MemoryCacheEntry>
+;  V06 loc3         [V06,T02] (  7,108   )     ref  ->   x2         class-hnd <System.Runtime.Caching.MemoryCacheEntry>
 ;  V07 loc4         [V07,T14] (  5, 35   )     int  ->  [fp+0x40]  do-not-enreg[Z] EH-live
 ;  V08 loc5         [V08,T38] (  2,  5   )     ref  ->  x20         class-hnd exact single-def <System.Runtime.Caching.MemoryCacheStore>
 ;* V09 loc6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Runtime.Caching.ExpiresEntryRef>
 ;* V10 loc7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V11 loc8         [V11,T04] ( 16, 74   )     ref  ->  [fp+0x18]  class-hnd exact EH-live single-def <System.Runtime.Caching.ExpiresBucket>
+;  V11 loc8         [V11,T03] ( 16, 74   )     ref  ->  [fp+0x18]  class-hnd exact EH-live single-def <System.Runtime.Caching.ExpiresBucket>
 ;  V12 loc9         [V12    ] (  6,  6   )   ubyte  ->  [fp+0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;  V13 loc10        [V13,T26] (  4, 13   )     int  ->  x19        
 ;* V14 loc11        [V14,T47] (  0,  0   )     int  ->  zero-ref    do-not-enreg[M] EH-live
@@ -59,7 +59,7 @@
 ;  V48 tmp28        [V48,T32] (  6,  6   )     ref  ->  x19         class-hnd exact "Inlining Arg" <System.Runtime.Caching.MemoryCacheStore>
 ;  V49 tmp29        [V49,T31] (  5,  5   )    long  ->  x19         single-def "field V01._dateData (fldOffset=0x0)" P-INDEP
 ;  V50 tmp30        [V50,T15] (  5, 35   )     int  ->  [fp+0x2C]  do-not-enreg[Z] EH-live "field V03._ref (fldOffset=0x0)" P-INDEP
-;  V51 tmp31        [V51,T05] ( 13, 71   )     int  ->   x1         "field V09._ref (fldOffset=0x0)" P-INDEP
+;  V51 tmp31        [V51,T04] ( 13, 71   )     int  ->   x1         "field V09._ref (fldOffset=0x0)" P-INDEP
 ;  V52 tmp32        [V52,T20] (  4, 24   )     int  ->  registers   "field V10._ref (fldOffset=0x0)" P-INDEP
 ;  V53 tmp33        [V53,T16] (  2, 32   )     int  ->   x0         "field V21._ref (fldOffset=0x0)" P-INDEP
 ;* V54 tmp34        [V54    ] (  0,  0   )    long  ->  zero-ref    single-def "field V26._dateData (fldOffset=0x0)" P-INDEP
@@ -77,9 +77,9 @@
 ;  V66 tmp46        [V66,T10] (  3, 48   )     ref  ->   x0         "arr expr"
 ;  V67 PSPSym       [V67,T50] (  1,  1   )    long  ->  [fp+0x48]  do-not-enreg[V] "PSPSym"
 ;* V68 cse0         [V68,T51] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
-;  V69 cse1         [V69,T25] (  4, 16   )   byref  ->   x1         "CSE - moderate"
-;  V70 cse2         [V70,T11] (  3, 48   )    long  ->   x1         "CSE - aggressive"
-;  V71 cse3         [V71,T02] (  5,112   )    long  ->  x28         "CSE - aggressive"
+;  V69 cse1         [V69,T11] (  3, 48   )    long  ->   x1         "CSE - aggressive"
+;  V70 cse2         [V70,T01] (  5,112   )   byref  ->  x28         "CSE - aggressive"
+;  V71 cse3         [V71,T25] (  4, 16   )   byref  ->   x1         "CSE - moderate"
 ;  V72 cse4         [V72,T45] (  3,  3   )     ref  ->   x2         "CSE - moderate"
 ;  V73 cse5         [V73,T46] (  3,  3   )     ref  ->   x1         "CSE - moderate"
 ;  V74 cse6         [V74,T12] (  4, 44   )     int  ->  x25         "CSE - aggressive"
@@ -215,7 +215,7 @@ G_M744_IG10:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; GC ptr vars +{V11}
             str     wzr, [fp, #0x38]   // [V12 loc9]
                        ;; size=12 bbWeight=1 PerfScore 2.50
-G_M744_IG11:        ; bbWeight=1, gcVars=0000000000080010 {V00 V11}, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M744_IG11:        ; bbWeight=1, gcVars=0000000000080008 {V00 V11}, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0]
             ldrb    w1, [fp, #0x38]    // [V12 loc9]
             cbz     w1, G_M744_IG14
@@ -235,9 +235,9 @@ G_M744_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M744_IG14:        ; bbWeight=1, gcVars=0000000000080010 {V00 V11}, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M744_IG14:        ; bbWeight=1, gcVars=0000000000080008 {V00 V11}, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x22]
-            ; GC ptr vars +{V04 V11}
+            ; GC ptr vars +{V11}
             add     x1, fp, #56    // [V12 loc9]
             mov     x0, x22
             ; gcrRegs +[x0]
@@ -344,16 +344,15 @@ G_M744_IG19:        ; bbWeight=4, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}
                        ;; size=40 bbWeight=4 PerfScore 44.00
 G_M744_IG20:        ; bbWeight=32, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
             ubfiz   x1, x27, #4, #32
-            add     x28, x1, #16
-            add     x1, x24, x28
-            ; byrRegs +[x1]
-            ldr     x2, [x1, #0x08]
+            add     x1, x1, #16
+            add     x28, x24, x1
+            ; byrRegs +[x28]
+            ldr     x2, [x28, #0x08]
             ; gcrRegs +[x2]
             cbz     x2, G_M744_IG24
                        ;; size=20 bbWeight=32 PerfScore 192.00
-G_M744_IG21:        ; bbWeight=16, gcrefRegs=1400004 {x2 x22 x24}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[x1]
-            ldr     x1, [x24, x28]
+G_M744_IG21:        ; bbWeight=16, gcrefRegs=1400004 {x2 x22 x24}, byrefRegs=10000000 {x28}, byref, isz
+            ldr     x1, [x28]
             mov     x0, x1
             and     x0, x0, #0xD1FFAB1E
             cmp     x0, x20
@@ -367,22 +366,21 @@ G_M744_IG21:        ; bbWeight=16, gcrefRegs=1400004 {x2 x22 x24}, byrefRegs=000
             ldr     x2, [x2]
             blr     x2
             ; gcrRegs -[x0]
+            ; byrRegs -[x28]
             ; gcr arg pop 0
             b       G_M744_IG23
                        ;; size=48 bbWeight=16 PerfScore 200.00
-G_M744_IG22:        ; bbWeight=16, gcrefRegs=1400004 {x2 x22 x24}, byrefRegs=0000 {}, byref
+G_M744_IG22:        ; bbWeight=16, gcrefRegs=1400004 {x2 x22 x24}, byrefRegs=10000000 {x28}, byref
             ; gcrRegs +[x2]
+            ; byrRegs +[x28]
             mov     w0, #255
             strb    w0, [x2, #0x30]
             ldr     w0, [x21]
             str     w0, [x2, #0x50]
-            add     x0, x24, x28
-            ; byrRegs +[x0]
-            mov     w1, #1
-            str     w1, [x0, #0x04]
+            mov     w0, #1
+            str     w0, [x28, #0x04]
             ldr     w0, [fp, #0x2C]    // [V50 tmp30]
-            ; byrRegs -[x0]
-            str     w0, [x24, x28]
+            str     w0, [x28]
             uxtb    w0, w27
             orr     w0, w0, w23,  LSL #8
             str     w0, [fp, #0x2C]    // [V50 tmp30]
@@ -392,9 +390,10 @@ G_M744_IG22:        ; bbWeight=16, gcrefRegs=1400004 {x2 x22 x24}, byrefRegs=000
             ldr     w0, [x22, #0x28]
             add     w0, w0, #1
             str     w0, [x22, #0x28]
-                       ;; size=72 bbWeight=16 PerfScore 336.00
+                       ;; size=68 bbWeight=16 PerfScore 328.00
 G_M744_IG23:        ; bbWeight=16, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x2]
+            ; byrRegs -[x28]
             sub     w26, w26, #1
             cbz     w26, G_M744_IG25
                        ;; size=8 bbWeight=16 PerfScore 24.00
@@ -425,7 +424,7 @@ G_M744_IG27:        ; bbWeight=1, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byr
                        ;; size=16 bbWeight=1 PerfScore 4.50
 G_M744_IG28:        ; bbWeight=1, gcVars=0000000000080000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x22]
-            ; GC ptr vars -{V04 V11}
+            ; GC ptr vars -{V11}
             ldrb    w0, [fp, #0x38]    // [V12 loc9]
             cbz     w0, G_M744_IG32
             ldr     x0, [fp, #0x20]    // [V00 this]
@@ -884,7 +883,7 @@ G_M744_IG65:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, f
             ret     lr
                        ;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1960, prolog size 52, PerfScore 1888.50, instruction count 490, allocated bytes for code 1960 (MethodHash=d871fd17) for method System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)
+; Total bytes of code 1956, prolog size 52, PerfScore 1880.50, instruction count 489, allocated bytes for code 1956 (MethodHash=d871fd17) for method System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -895,7 +894,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 392 (0x00188) Actual length = 1568 (0x000620)
+  Function Length   : 391 (0x00187) Actual length = 1564 (0x00061c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+3.97%) : 291942.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

@@ -3,48 +3,48 @@
 ; FullOpts code
 ; optimized code
 ; fp based frame
-; fully interruptible
+; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] ( 12,  7   )   byref  ->  x19         this single-def
-;  V01 arg1         [V01,T04] (  3,  3   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
+;  V00 this         [V00,T01] ( 12,  7   )   byref  ->  x19         this single-def
+;  V01 arg1         [V01,T02] (  3,  3   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
-;  V03 loc1         [V03,T02] (  9, 12   )     int  ->  x21        
+;  V03 loc1         [V03,T03] (  9,  4.75)     int  ->  x21        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[int]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [fp+0x30]  do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Decimal>
-;  V09 tmp4         [V09,T05] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V10 tmp5         [V10,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V09 tmp4         [V09,T04] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V10 tmp5         [V10,T10] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
-;  V13 tmp8         [V13,T18] (  2,  1   )     int  ->   x0        
-;  V14 tmp9         [V14,T06] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V15 tmp10        [V15,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V16 tmp11        [V16,T07] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V17 tmp12        [V17,T13] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V18 tmp13        [V18,T14] (  2,  2   )     int  ->   x1         "impAppendStmt"
+;  V13 tmp8         [V13,T17] (  2,  1   )     int  ->   x0        
+;  V14 tmp9         [V14,T05] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V15 tmp10        [V15,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V16 tmp11        [V16,T06] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V17 tmp12        [V17,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V18 tmp13        [V18,T13] (  2,  2   )     int  ->   x1         "impAppendStmt"
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    ptr
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp18        [V23,T19] (  2,  1   )     int  ->   x0        
+;  V23 tmp18        [V23,T18] (  2,  1   )     int  ->   x0        
 ;  V24 tmp19        [V24    ] (  6, 11   )  struct (16) [fp+0x10]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
-;  V25 tmp20        [V25,T09] (  3,  2.50)     int  ->   x1         "Inline stloc first use temp"
+;  V25 tmp20        [V25,T08] (  3,  2.50)     int  ->   x1         "Inline stloc first use temp"
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Decimal>
 ;* V28 tmp23        [V28    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V29 tmp24        [V29    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V30 tmp25        [V30    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;  V31 tmp26        [V31,T01] ( 12, 12   )   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V32 tmp27        [V32,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp26        [V31,T00] ( 14,  9.50)   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V32 tmp27        [V32,T19] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp28        [V33    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V34 tmp29        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V35 tmp30        [V35,T10] (  2,  2   )   byref  ->  x20         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V36 tmp31        [V36,T21] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
+;  V35 tmp30        [V35,T09] (  2,  2   )   byref  ->  x20         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V36 tmp31        [V36,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V37 tmp32        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V08._flags (fldOffset=0x0)" P-INDEP
 ;* V38 tmp33        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V08._hi32 (fldOffset=0x4)" P-INDEP
 ;* V39 tmp34        [V39    ] (  0,  0   )    long  ->  zero-ref    "field V08._lo64 (fldOffset=0x8)" P-INDEP
@@ -53,12 +53,11 @@
 ;  V42 tmp37        [V42    ] (  3,  4   )    long  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V24._lo64 (fldOffset=0x8)" P-DEP
 ;* V43 tmp38        [V43    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V44 tmp39        [V44    ] (  0,  0   )     int  ->  zero-ref    ptr "field V26._length (fldOffset=0x8)" P-INDEP
-;  V45 tmp40        [V45,T15] (  2,  2   )     int  ->  x13         "field V27._flags (fldOffset=0x0)" P-INDEP
-;  V46 tmp41        [V46,T16] (  2,  2   )     int  ->  x14         "field V27._hi32 (fldOffset=0x4)" P-INDEP
-;  V47 tmp42        [V47,T08] (  3,  3   )    long  ->  x12         "field V27._lo64 (fldOffset=0x8)" P-INDEP
+;  V45 tmp40        [V45,T14] (  2,  2   )     int  ->  x13         "field V27._flags (fldOffset=0x0)" P-INDEP
+;  V46 tmp41        [V46,T15] (  2,  2   )     int  ->  x14         "field V27._hi32 (fldOffset=0x4)" P-INDEP
+;  V47 tmp42        [V47,T07] (  3,  3   )    long  ->  x12         "field V27._lo64 (fldOffset=0x8)" P-INDEP
 ;  V48 GsCookie     [V48    ] (  1,  1   )    long  ->  [fp+0x40]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V49 cse0         [V49,T17] (  3,  1.50)     int  ->   x1         "CSE - moderate"
-;  V50 cse1         [V50,T00] (  4, 14   )     int  ->  x13         "CSE - aggressive"
+;  V49 cse0         [V49,T16] (  3,  1.50)     int  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 56
 
@@ -95,7 +94,6 @@ G_M46478_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-            ; gcr arg pop 0
                        ;; size=36 bbWeight=0.50 PerfScore 4.00
 G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
             ldp     w13, w14, [fp, #0x10]  // [V40 tmp35], [V41 tmp36]
@@ -107,30 +105,48 @@ G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20
             mov     w21, #3
             b       G_M46478_IG06
                        ;; size=32 bbWeight=1 PerfScore 9.50
-G_M46478_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sxtw    w21, w13
-            cmp     w21, #0
-            ble     G_M46478_IG07
-                       ;; size=12 bbWeight=2 PerfScore 4.00
-G_M46478_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sub     w13, w21, #1
-            cmp     w13, #4
-            bhs     G_M46478_IG17
-            ldr     w14, [x20, w13, UXTW #2]
-            cbz     w14, G_M46478_IG05
-                       ;; size=20 bbWeight=4 PerfScore 24.00
-G_M46478_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            cbnz    w21, G_M46478_IG11
+G_M46478_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, #2
+            b       G_M46478_IG09
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20, #0x08]
+            cbz     w13, G_M46478_IG05
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG07:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG13
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG08:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, #1
+            b       G_M46478_IG12
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20, #0x04]
+            cbz     w13, G_M46478_IG08
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG10:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG13
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG11:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, wzr
+            b       G_M46478_IG13
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20]
+            cbz     w13, G_M46478_IG11
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            cbnz    w21, G_M46478_IG17
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M46478_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             ; byrRegs -[x20]
             movz    x13, #0xD1FFAB1E
             movk    x13, #0xD1FFAB1E LSL #16
             movk    x13, #0xD1FFAB1E LSL #32
             ldr     w13, [x13]
-            tbz     w13, #0, G_M46478_IG18
+            tbz     w13, #0, G_M46478_IG24
                        ;; size=20 bbWeight=0.50 PerfScore 2.75
-G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             movz    x13, #0xD1FFAB1E      // box for <unknown class>:<unknown field>
             movk    x13, #0xD1FFAB1E LSL #16
             movk    x13, #0xD1FFAB1E LSL #32
@@ -151,24 +167,23 @@ G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             movk    xip0, #0xD1FFAB1E LSL #48
             ldr     xip1, [fp, #0x40]  // [V48 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG10
+            beq     G_M46478_IG16
             bl      CORINFO_HELP_FAIL_FAST
             ; byrRegs -[x13-x14]
-            ; gcr arg pop 0
                        ;; size=68 bbWeight=0.50 PerfScore 8.50
-G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x21, [sp, #0x58]
             ldp     x19, x20, [sp, #0x48]
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M46478_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG17:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             cmp     w21, #1
-            bne     G_M46478_IG13
+            bne     G_M46478_IG19
             ldr     w1, [x20]
             cmp     w1, #0
-            ble     G_M46478_IG13
+            ble     G_M46478_IG19
             str     w1, [x19, #0x08]
             ldr     w1, [x19, #0x08]
             ldr     w0, [x20, #0x0C]
@@ -185,18 +200,17 @@ G_M46478_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             movk    xip0, #0xD1FFAB1E LSL #48
             ldr     xip1, [fp, #0x40]  // [V48 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG12
+            beq     G_M46478_IG18
             bl      CORINFO_HELP_FAIL_FAST
             ; byrRegs -[x19-x20]
-            ; gcr arg pop 0
                        ;; size=92 bbWeight=0.50 PerfScore 12.75
-G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG18:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x21, [sp, #0x58]
             ldp     x19, x20, [sp, #0x48]
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG19:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             sxtw    x1, w21
             movz    x0, #0xD1FFAB1E
@@ -204,7 +218,6 @@ G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWARR_1_VC
             ; gcrRegs +[x0]
-            ; gcr arg pop 0
             mov     x15, x0
             ; gcrRegs +[x15]
             mov     x14, x19
@@ -217,30 +230,30 @@ G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     w1, [x20]
             ldr     w2, [x0, #0x08]
             cmp     w2, #0
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x10]
             cmp     w21, #1
-            ble     G_M46478_IG14
+            ble     G_M46478_IG20
             ldr     x0, [x19]
             ldr     w1, [x20, #0x04]
             ldr     w2, [x0, #0x08]
             cmp     w2, #1
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x14]
                        ;; size=88 bbWeight=0.50 PerfScore 14.75
-G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+G_M46478_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
             ; gcrRegs -[x0]
             cmp     w21, #2
-            ble     G_M46478_IG15
+            ble     G_M46478_IG21
             ldr     x0, [x19]
             ; gcrRegs +[x0]
             ldr     w1, [x20, #0x08]
             ldr     w2, [x0, #0x08]
             cmp     w2, #2
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x18]
...

libraries_tests.run.windows.arm64.Release.mch

-44 (-6.59%) : 467988.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (Tier1)

@@ -4,7 +4,7 @@
 ; optimized code
 ; optimized using Dynamic PGO
 ; fp based frame
-; partially interruptible
+; fully interruptible
 ; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 78
 ; 3 inlinees with PGO data; 13 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
@@ -12,27 +12,27 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ubyte]>
 ;  V01 arg1         [V01,T01] (  7,  3   )   byref  ->  x19         single-def
 ;  V02 arg2         [V02,T02] (  7,  3   )   byref  ->  x20         single-def
-;  V03 loc0         [V03,T05] ( 20,  3.08)     int  ->  x21        
+;  V03 loc0         [V03,T05] ( 11,  3.08)     int  ->  x21        
 ;  V04 loc1         [V04,T04] (  6,  3.97)     int  ->  x22        
 ;  V05 loc2         [V05,T17] (  2,  0   )     int  ->   x0        
-;  V06 loc3         [V06    ] (  2,  0   )  struct ( 8) [fp+0x18]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Text.Rune>
-;  V07 loc4         [V07    ] (  3,  0   )     int  ->  [fp+0x10]  do-not-enreg[X] addr-exposed ld-addr-op
-;* V08 loc5         [V08,T07] (  0,  0   )     int  ->  zero-ref   
+;  V06 loc3         [V06    ] (  2,  0   )  struct ( 8) [fp+0x20]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Text.Rune>
+;  V07 loc4         [V07    ] (  3,  0   )     int  ->  [fp+0x18]  do-not-enreg[X] addr-exposed ld-addr-op
+;  V08 loc5         [V08,T07] (  4,  0.03)     int  ->  x23        
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V11 tmp2         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Rune>
 ;* V12 tmp3         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;  V13 tmp4         [V13,T10] (  3,  0   )     int  ->  x21         "Inlining Arg"
-;  V14 tmp5         [V14,T12] (  2,  0   )   byref  ->  x22         single-def "Inlining Arg"
+;  V14 tmp5         [V14,T12] (  2,  0   )   byref  ->  x23         single-def "Inlining Arg"
 ;* V15 tmp6         [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Rune>
 ;* V16 tmp7         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;  V17 tmp8         [V17,T09] (  5,  0   )     int  ->  x21         "Inlining Arg"
 ;  V18 tmp9         [V18,T13] (  2,  0   )   byref  ->  x22         "Inlining Arg"
 ;* V19 tmp10        [V19    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Rune>
 ;  V20 tmp11        [V20,T11] (  3,  0   )     int  ->   x0         "Single return block return value"
-;  V21 tmp12        [V21,T03] (  7,  2   )   byref  ->   x0         "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V22 tmp13        [V22,T00] (  9,  3.03)     int  ->   x1         "field V00._length (fldOffset=0x8)" P-INDEP
-;  V23 tmp14        [V23    ] (  2,  0   )     int  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V06._value (fldOffset=0x0)" P-DEP
+;  V21 tmp12        [V21,T03] (  5,  2   )   byref  ->   x0         "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V22 tmp13        [V22,T00] (  6,  3.03)     int  ->   x1         "field V00._length (fldOffset=0x8)" P-INDEP
+;  V23 tmp14        [V23    ] (  2,  0   )     int  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V06._value (fldOffset=0x0)" P-DEP
 ;* V24 tmp15        [V24    ] (  0,  0   )   byref  ->  zero-ref    "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V25 tmp16        [V25    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
 ;  V26 tmp17        [V26,T06] (  2,  1.95)     int  ->  x22         "field V11._value (fldOffset=0x0)" P-INDEP
@@ -44,18 +44,19 @@
 ;* V32 tmp23        [V32,T20] (  0,  0   )     int  ->  zero-ref    "field V19._value (fldOffset=0x0)" P-INDEP
 ;  V33 tmp24        [V33,T16] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 24
 
 G_M6810_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x20]
-            stp     x21, x22, [sp, #0x30]
+            stp     fp, lr, [sp, #-0x50]!
+            stp     x19, x20, [sp, #0x28]
+            stp     x21, x22, [sp, #0x38]
+            str     x23, [sp, #0x48]
             mov     fp, sp
             mov     x19, x2
             ; byrRegs +[x19]
             mov     x20, x3
             ; byrRegs +[x20]
-                       ;; size=24 bbWeight=1 PerfScore 4.50
+                       ;; size=28 bbWeight=1 PerfScore 5.50
 G_M6810_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x20}, byref, isz
             ; byrRegs +[x0]
             sub     w21, w1, #1
@@ -70,17 +71,19 @@ G_M6810_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             blr     x1
+            ; gcr arg pop 0
             mov     w0, #0xD1FFAB1E
             str     w0, [x19]
             str     wzr, [x20]
             mov     w0, #2
                        ;; size=40 bbWeight=0 PerfScore 0.00
 G_M6810_IG04:        ; bbWeight=0, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x30]
-            ldp     x19, x20, [sp, #0x20]
-            ldp     fp, lr, [sp], #0x40
+            ldr     x23, [sp, #0x48]
+            ldp     x21, x22, [sp, #0x38]
+            ldp     x19, x20, [sp, #0x28]
+            ldp     fp, lr, [sp], #0x50
             ret     lr
-                       ;; size=16 bbWeight=0 PerfScore 0.00
+                       ;; size=20 bbWeight=0 PerfScore 0.00
 G_M6810_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x20}, gcvars, byref, isz
             ; byrRegs +[x0]
             ldrb    w22, [x0, w21, UXTW #2]
@@ -108,6 +111,7 @@ G_M6810_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byr
             ldr     x1, [x1]
             blr     x1
             ; gcrRegs +[x0]
+            ; gcr arg pop 0
             mov     x1, x0
             ; gcrRegs +[x1]
             movz    x0, #0xD1FFAB1E
@@ -123,31 +127,34 @@ G_M6810_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byr
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x1] +[x0]
+            ; gcr arg pop 0
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             blr     x1
             ; gcrRegs -[x0]
+            ; gcr arg pop 0
                        ;; size=92 bbWeight=0 PerfScore 0.00
 G_M6810_IG08:        ; bbWeight=0.97, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
             str     w22, [x19]
             mov     w0, wzr
                        ;; size=8 bbWeight=0.97 PerfScore 1.46
 G_M6810_IG09:        ; bbWeight=0.97, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x30]
-            ldp     x19, x20, [sp, #0x20]
-            ldp     fp, lr, [sp], #0x40
+            ldr     x23, [sp, #0x48]
+            ldp     x21, x22, [sp, #0x38]
+            ldp     x19, x20, [sp, #0x28]
+            ldp     fp, lr, [sp], #0x50
             ret     lr
-                       ;; size=16 bbWeight=0.97 PerfScore 3.90
+                       ;; size=20 bbWeight=0.97 PerfScore 5.85
 G_M6810_IG10:        ; bbWeight=0.03, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x20}, gcvars, byref, isz
             ; byrRegs +[x0 x20]
             tbz     w22, #6, G_M6810_IG12
                        ;; size=4 bbWeight=0.03 PerfScore 0.03
 G_M6810_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x20}, byref
             mov     w2, w21
-            add     x22, x0, x2
-            ; byrRegs +[x22]
+            add     x23, x0, x2
+            ; byrRegs +[x23]
             sub     w21, w1, w21
             cmp     w21, #0
             cset    x0, ge
@@ -157,7 +164,8 @@ G_M6810_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             blr     x1
-            mov     x0, x22
+            ; gcr arg pop 0
+            mov     x0, x23
             ; byrRegs +[x0]
             sxtw    w1, w21
             mov     x2, x19
@@ -169,33 +177,28 @@ G_M6810_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x
             movk    x4, #0xD1FFAB1E LSL #32
             ldr     x4, [x4]
             blr     x4
-            ; byrRegs -[x0 x2-x3 x19-x20 x22]
+            ; byrRegs -[x0 x2-x3 x19-x20 x23]
+            ; gcr arg pop 0
             b       G_M6810_IG18
                        ;; size=80 bbWeight=0 PerfScore 0.00
-G_M6810_IG12:        ; bbWeight=0.03, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x20}, byref, isz
+G_M6810_IG12:        ; bbWeight=0.03, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x20}, byref
             ; byrRegs +[x0 x19-x20]
+            mov     w23, #3
+                       ;; size=4 bbWeight=0.03 PerfScore 0.01
+G_M6810_IG13:        ; bbWeight=0.03, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x20}, byref, isz
             sub     w21, w21, #1
             cmp     w21, w1
-            bhs     G_M6810_IG14
+            bhs     G_M6810_IG15
                        ;; size=12 bbWeight=0.03 PerfScore 0.05
-G_M6810_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x20}, byref, isz
+G_M6810_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x20}, byref, isz
             ldrsb   w2, [x0, w21, UXTW #2]
             cmn     w2, #64
-            bge     G_M6810_IG16
-            sub     w21, w21, #1
-            cmp     w21, w1
-            bhs     G_M6810_IG14
-            ldrsb   w2, [x0, w21, UXTW #2]
-            cmn     w2, #64
-            bge     G_M6810_IG16
-            sub     w21, w21, #1
-            cmp     w21, w1
-            bhs     G_M6810_IG14
-            ldrsb   w2, [x0, w21, UXTW #2]
-            cmn     w2, #64
-            bge     G_M6810_IG16
-                       ;; size=60 bbWeight=0 PerfScore 0.00
-G_M6810_IG14:        ; bbWeight=0.03, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            bge     G_M6810_IG17
+            sub     w23, w23, #1
+            cmp     w23, #0
+            bgt     G_M6810_IG13
+                       ;; size=24 bbWeight=0 PerfScore 0.00
+G_M6810_IG15:        ; bbWeight=0.03, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
             ; byrRegs -[x0]
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E      // code for System.Text.UnicodeDebug:AssertIsValidScalar(uint)
@@ -203,33 +206,22 @@ G_M6810_IG14:        ; bbWeight=0.03, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             blr     x1
+            ; gcr arg pop 0
             mov     w0, #0xD1FFAB1E
             str     w0, [x19]
             mov     w0, #1
             str     w0, [x20]
             mov     w0, #3
                        ;; size=44 bbWeight=0.03 PerfScore 0.24
-G_M6810_IG15:        ; bbWeight=0.03, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x30]
-            ldp     x19, x20, [sp, #0x20]
-            ldp     fp, lr, [sp], #0x40
+G_M6810_IG16:        ; bbWeight=0.03, epilog, nogc, extend
+            ldr     x23, [sp, #0x48]
+            ldp     x21, x22, [sp, #0x38]
+            ldp     x19, x20, [sp, #0x28]
+            ldp     fp, lr, [sp], #0x50
             ret     lr
-                       ;; size=16 bbWeight=0.03 PerfScore 0.10
-G_M6810_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x20}, gcvars, byref, isz
+                       ;; size=20 bbWeight=0.03 PerfScore 0.15
+G_M6810_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x20}, gcvars, byref, isz
             ; byrRegs +[x0]
-            cmp     w21, w1
-            bls     G_M6810_IG17
-            movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
-            ; byrRegs -[x0]
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            ldr     x0, [x0]
-            blr     x0
-            ; byrRegs -[x19-x20]
-            brk_windows #0
-                       ;; size=32 bbWeight=0 PerfScore 0.00
-G_M6810_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x20}, byref, isz
-            ; byrRegs +[x0 x19-x20]
             mov     w2, w21
             add     x22, x0, x2
             ; byrRegs +[x22]
@@ -242,6 +234,7 @@ G_M6810_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=180001 {x0 x19 x
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             blr     x1
+            ; gcr arg pop 0
             sxtw    w0, w21
             cmp     w0, #0
...

-28 (-3.21%) : 68609.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)

@@ -9,27 +9,27 @@
 ; 3 inlinees with PGO data; 10 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T08] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
+;  V00 this         [V00,T09] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
 ;  V01 RetBuf       [V01,T00] (  6,  6   )   byref  ->  x19         single-def
-;  V02 arg1         [V02,T07] ( 11,  4   )     ref  ->  x21         ld-addr-op class-hnd <System.String>
+;  V02 arg1         [V02,T08] ( 11,  4   )     ref  ->  x21         ld-addr-op class-hnd <System.String>
 ;  V03 arg2         [V03,T03] (  6,  5.62)     int  ->  x20        
-;  V04 arg3         [V04,T09] (  4,  3.96)     ref  ->  x23         class-hnd single-def <System.Type[]>
-;  V05 arg4         [V05,T14] (  3,  2.03)   ubyte  ->  x24         single-def
-;  V06 loc0         [V06,T20] (  3,  2.46)   ubyte  ->  x25         ld-addr-op
-;  V07 loc1         [V07,T23] (  3,  1   )   ubyte  ->  x26         ld-addr-op
-;  V08 loc2         [V08,T22] (  4,  2   )     int  ->  x27         ld-addr-op
-;  V09 loc3         [V09,T19] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
+;  V04 arg3         [V04,T10] (  4,  3.96)     ref  ->  x23         class-hnd single-def <System.Type[]>
+;  V05 arg4         [V05,T15] (  3,  2.03)   ubyte  ->  x24         single-def
+;  V06 loc0         [V06,T21] (  3,  2.46)   ubyte  ->  x25         ld-addr-op
+;  V07 loc1         [V07,T24] (  3,  1   )   ubyte  ->  x26         ld-addr-op
+;  V08 loc2         [V08,T23] (  4,  2   )     int  ->  x27         ld-addr-op
+;  V09 loc3         [V09,T20] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
 ;  V10 loc4         [V10    ] (  9,  9.46)  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]>
 ;  V11 loc5         [V11,T04] (  5,  7.36)     int  ->  x24        
-;  V12 loc6         [V12,T06] (  7,  6.12)     ref  ->  x28         class-hnd exact <System.Reflection.RuntimePropertyInfo>
+;  V12 loc6         [V12,T07] (  7,  6.12)     ref  ->  [fp+0x10]  class-hnd exact spill-single-def <System.Reflection.RuntimePropertyInfo>
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V16 tmp3         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
-;  V18 tmp5         [V18,T10] (  5,  5   )     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
-;  V19 tmp6         [V19,T11] (  4,  4   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
-;* V20 tmp7         [V20,T18] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
+;  V18 tmp5         [V18,T11] (  5,  5   )     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
+;  V19 tmp6         [V19,T12] (  4,  4   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;* V20 tmp7         [V20,T19] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
 ;* V21 tmp8         [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.RuntimeType+RuntimeTypeCache>
 ;* V22 tmp9         [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp10        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -42,17 +42,18 @@
 ;  V30 tmp17        [V30,T05] (  7,  7   )     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V31 tmp18        [V31,T02] (  4,  8   )     ref  ->  x28         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V32 tmp19        [V32    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V33 tmp20        [V33,T15] (  2,  4   )     int  ->   x1         "Inlining Arg"
+;  V33 tmp20        [V33,T16] (  2,  4   )     int  ->   x1         "Inlining Arg"
 ;  V34 tmp21        [V34    ] (  3,  3.46)     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V10._items (fldOffset=0x0)" P-DEP
 ;  V35 tmp22        [V35    ] (  3,  3.46)     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V10._item (fldOffset=0x8)" P-DEP
 ;  V36 tmp23        [V36    ] (  3,  3.46)     int  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V10._count (fldOffset=0x10)" P-DEP
 ;  V37 tmp24        [V37    ] (  3,  3.46)     int  ->  [fp+0x2C]  do-not-enreg[X] addr-exposed "field V10._capacity (fldOffset=0x14)" P-DEP
-;* V38 tmp25        [V38,T24] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V39 cse0         [V39,T12] (  3,  4.77)     int  ->   x0         "CSE - moderate"
-;  V40 cse1         [V40,T17] (  3,  3   )    long  ->   x0         "CSE - moderate"
-;  V41 cse2         [V41,T13] (  4,  4.59)     int  ->  x22         "CSE - aggressive"
-;  V42 cse3         [V42,T21] (  2,  2.20)   byref  ->  x27         hoist "CSE - moderate"
-;  V43 cse4         [V43,T16] (  3,  3   )     ref  ->   x1         "CSE - moderate"
+;* V38 tmp25        [V38,T25] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V39 cse0         [V39,T13] (  3,  4.77)     int  ->   x0         "CSE - moderate"
+;  V40 cse1         [V40,T18] (  3,  3   )    long  ->   x0         "CSE - moderate"
+;  V41 cse2         [V41,T06] ( 10,  6.65)    long  ->  x28         hoist multi-def "CSE - aggressive"
+;  V42 cse3         [V42,T14] (  4,  4.59)     int  ->  x22         "CSE - moderate"
+;  V43 cse4         [V43,T22] (  2,  2.20)   byref  ->  x27         hoist "CSE - moderate"
+;  V44 cse5         [V44,T17] (  3,  3   )     ref  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -216,7 +217,7 @@ G_M37807_IG12:        ; bbWeight=1, gcrefRegs=1A00000 {x21 x23 x24}, byrefRegs=8
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15 x24]
             ; byrRegs -[x14]
-            cbz     x22, G_M37807_IG27
+            cbz     x22, G_M37807_IG28
             mov     x0, x22
             ; byrRegs +[x0]
             mov     x1, x28
@@ -250,30 +251,36 @@ G_M37807_IG13:        ; bbWeight=1, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=800
             stp     wzr, w1, [fp, #0x28]   // [V36 tmp23], [V37 tmp24]
             mov     w24, wzr
             cmp     w22, #0
-            ble     G_M37807_IG25
+            ble     G_M37807_IG26
                        ;; size=68 bbWeight=1 PerfScore 18.00
 G_M37807_IG14:        ; bbWeight=0.61, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=80000 {x19}, byref
             add     x27, x0, #16
             ; byrRegs +[x27]
-                       ;; size=4 bbWeight=0.61 PerfScore 0.31
+            movz    x28, #0xD1FFAB1E
+            movk    x28, #0xD1FFAB1E LSL #16
+            movk    x28, #0xD1FFAB1E LSL #32
+                       ;; size=16 bbWeight=0.61 PerfScore 1.23
 G_M37807_IG15:        ; bbWeight=1.59, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x28, [x27, w24, UXTW #3]
-            ; gcrRegs +[x28]
-            ldr     w0, [x28, #0x58]
+            ldr     x2, [x27, w24, UXTW #3]
+            ; gcrRegs +[x2]
+            str     x2, [fp, #0x10]    // [V12 loc6]
+            ; GC ptr vars +{V12}
+            ldr     w0, [x2, #0x58]
             and     w1, w20, w0
             cmp     w1, w0
             bne     G_M37807_IG22
-                       ;; size=20 bbWeight=1.59 PerfScore 12.71
-G_M37807_IG16:        ; bbWeight=1.46, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref, isz
+                       ;; size=24 bbWeight=1.59 PerfScore 14.30
+G_M37807_IG16:        ; bbWeight=1.46, gcVars=0000000000000080 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, gcvars, byref, isz
             cbz     w25, G_M37807_IG18
                        ;; size=4 bbWeight=1.46 PerfScore 1.46
-G_M37807_IG17:        ; bbWeight=0, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref, isz
-            mov     x0, x28
+G_M37807_IG17:        ; bbWeight=0, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
             mov     x1, x21
             ; gcrRegs +[x1]
             mov     w2, w26
+            ; gcrRegs -[x2]
             movz    x3, #0xD1FFAB1E      // code for System.RuntimeType:FilterApplyPrefixLookup(System.Reflection.MemberInfo,System.String,ubyte):ubyte
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
@@ -281,28 +288,26 @@ G_M37807_IG17:        ; bbWeight=0, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=
             blr     x3
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbz     w0, G_M37807_IG28
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            cbz     w0, G_M37807_IG29
+            mov     x0, x28
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=52 bbWeight=0 PerfScore 0.00
-G_M37807_IG18:        ; bbWeight=1.46, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref, isz
-            cbz     x23, G_M37807_IG21
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
+            ; gcrRegs +[x2]
+                       ;; size=48 bbWeight=0 PerfScore 0.00
+G_M37807_IG18:        ; bbWeight=1.46, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
+            cbz     x23, G_M37807_IG24
                        ;; size=4 bbWeight=1.46 PerfScore 1.46
-G_M37807_IG19:        ; bbWeight=0.49, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref, isz
-            mov     x0, x28
+G_M37807_IG19:        ; bbWeight=0.49, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
+            add     x1, x28, #8
             bl      CORINFO_HELP_CLASSPROFILE32
-            ; gcrRegs -[x0]
+            ; gcrRegs -[x0 x2]
             ; gcr arg pop 0
-            mov     x0, x28
+            ldr     x0, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x0]
-            ldr     x1, [x28]
+            ldr     x1, [x0]
             ldr     x1, [x1, #0x58]
             ldr     x1, [x1, #0x18]
             blr     x1
@@ -311,23 +316,19 @@ G_M37807_IG19:        ; bbWeight=0.49, gcrefRegs=10A00000 {x21 x23 x28}, byrefRe
             ; gcrRegs -[x0]
             ldr     w1, [x23, #0x08]
             cmp     w0, w1
-            bne     G_M37807_IG24
-                       ;; size=56 bbWeight=0.49 PerfScore 10.37
-G_M37807_IG20:        ; bbWeight=0.25, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            bne     G_M37807_IG25
+                       ;; size=48 bbWeight=0.49 PerfScore 10.62
+G_M37807_IG20:        ; bbWeight=0.25, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.25 PerfScore 0.62
-G_M37807_IG21:        ; bbWeight=1.46, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+                       ;; size=8 bbWeight=0.25 PerfScore 0.37
+G_M37807_IG21:        ; bbWeight=1.46, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     x0, fp, #24    // [V10 loc4]
-            mov     x2, x28
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x2]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -336,41 +337,45 @@ G_M37807_IG21:        ; bbWeight=1.46, gcrefRegs=10A00000 {x21 x23 x28}, byrefRe
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
+            ; GC ptr vars -{V12}
             blr     x3
-            ; gcrRegs -[x2 x28]
+            ; gcrRegs -[x2]
             ; gcr arg pop 0
-                       ;; size=56 bbWeight=1.46 PerfScore 15.36
+                       ;; size=48 bbWeight=1.46 PerfScore 16.09
 G_M37807_IG22:        ; bbWeight=1.59, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     w24, w24, #1
             cmp     w22, w24
             bgt     G_M37807_IG15
-                       ;; size=28 bbWeight=1.59 PerfScore 7.15
+                       ;; size=20 bbWeight=1.59 PerfScore 5.56
 G_M37807_IG23:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
             ; gcrRegs -[x21 x23]
             ; byrRegs -[x27]
-            b       G_M37807_IG25
+            b       G_M37807_IG26
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M37807_IG24:        ; bbWeight=0.25, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref
-            ; gcrRegs +[x21 x23]
+G_M37807_IG24:        ; bbWeight=0.73, gcVars=0000000000000080 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, gcvars, byref
+            ; gcrRegs +[x2 x21 x23]
             ; byrRegs +[x27]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            ; GC ptr vars +{V07 V12}
+            b       G_M37807_IG21
+                       ;; size=4 bbWeight=0.73 PerfScore 0.73
+G_M37807_IG25:        ; bbWeight=0.25, gcVars=0000000000000000 {}, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, gcvars, byref
+            ; gcrRegs -[x2]
+            ; GC ptr vars -{V07 V12}
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             b       G_M37807_IG22
-                       ;; size=20 bbWeight=0.25 PerfScore 0.86
-G_M37807_IG25:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+                       ;; size=12 bbWeight=0.25 PerfScore 0.62
+G_M37807_IG26:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
             ; gcrRegs -[x21 x23]
             ; byrRegs -[x27]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
...

-28 (-3.21%) : 119521.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)

@@ -9,27 +9,27 @@
 ; 3 inlinees with PGO data; 10 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T08] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
+;  V00 this         [V00,T09] (  4,  4   )     ref  ->  x22         this class-hnd single-def <System.RuntimeType>
 ;  V01 RetBuf       [V01,T00] (  6,  6   )   byref  ->  x19         single-def
-;  V02 arg1         [V02,T07] ( 11,  4   )     ref  ->  x21         ld-addr-op class-hnd <System.String>
+;  V02 arg1         [V02,T08] ( 11,  4   )     ref  ->  x21         ld-addr-op class-hnd <System.String>
 ;  V03 arg2         [V03,T03] (  6,  5.68)     int  ->  x20        
-;  V04 arg3         [V04,T09] (  4,  3.96)     ref  ->  x23         class-hnd single-def <System.Type[]>
-;  V05 arg4         [V05,T14] (  3,  2.09)   ubyte  ->  x24         single-def
-;  V06 loc0         [V06,T20] (  3,  2.46)   ubyte  ->  x25         ld-addr-op
-;  V07 loc1         [V07,T23] (  3,  1   )   ubyte  ->  x26         ld-addr-op
-;  V08 loc2         [V08,T22] (  4,  2   )     int  ->  x27         ld-addr-op
-;  V09 loc3         [V09,T19] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
+;  V04 arg3         [V04,T10] (  4,  3.96)     ref  ->  x23         class-hnd single-def <System.Type[]>
+;  V05 arg4         [V05,T15] (  3,  2.09)   ubyte  ->  x24         single-def
+;  V06 loc0         [V06,T21] (  3,  2.46)   ubyte  ->  x25         ld-addr-op
+;  V07 loc1         [V07,T24] (  3,  1   )   ubyte  ->  x26         ld-addr-op
+;  V08 loc2         [V08,T23] (  4,  2   )     int  ->  x27         ld-addr-op
+;  V09 loc3         [V09,T20] (  3,  2.61)     ref  ->   x0         class-hnd exact single-def <System.Reflection.RuntimePropertyInfo[]>
 ;  V10 loc4         [V10    ] (  9,  9.46)  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]>
 ;  V11 loc5         [V11,T04] (  5,  7.36)     int  ->  x24        
-;  V12 loc6         [V12,T06] (  7,  6.12)     ref  ->  x28         class-hnd exact <System.Reflection.RuntimePropertyInfo>
+;  V12 loc6         [V12,T07] (  7,  6.12)     ref  ->  [fp+0x10]  class-hnd exact spill-single-def <System.Reflection.RuntimePropertyInfo>
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V16 tmp3         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
-;  V18 tmp5         [V18,T10] (  5,  5   )     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
-;  V19 tmp6         [V19,T11] (  4,  4   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
-;* V20 tmp7         [V20,T18] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
+;  V18 tmp5         [V18,T11] (  5,  5   )     ref  ->  x24         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
+;  V19 tmp6         [V19,T12] (  4,  4   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;* V20 tmp7         [V20,T19] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType+RuntimeTypeCache>
 ;* V21 tmp8         [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.RuntimeType+RuntimeTypeCache>
 ;* V22 tmp9         [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp10        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -42,17 +42,18 @@
 ;  V30 tmp17        [V30,T05] (  7,  7   )     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V31 tmp18        [V31,T02] (  4,  8   )     ref  ->  x28         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V32 tmp19        [V32    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V33 tmp20        [V33,T15] (  2,  4   )     int  ->   x1         "Inlining Arg"
+;  V33 tmp20        [V33,T16] (  2,  4   )     int  ->   x1         "Inlining Arg"
 ;  V34 tmp21        [V34    ] (  3,  3.46)     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V10._items (fldOffset=0x0)" P-DEP
 ;  V35 tmp22        [V35    ] (  3,  3.46)     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V10._item (fldOffset=0x8)" P-DEP
 ;  V36 tmp23        [V36    ] (  3,  3.46)     int  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V10._count (fldOffset=0x10)" P-DEP
 ;  V37 tmp24        [V37    ] (  3,  3.46)     int  ->  [fp+0x2C]  do-not-enreg[X] addr-exposed "field V10._capacity (fldOffset=0x14)" P-DEP
-;* V38 tmp25        [V38,T24] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V39 cse0         [V39,T12] (  3,  4.77)     int  ->   x0         "CSE - moderate"
-;  V40 cse1         [V40,T17] (  3,  3   )    long  ->   x0         "CSE - moderate"
-;  V41 cse2         [V41,T13] (  4,  4.59)     int  ->  x22         "CSE - aggressive"
-;  V42 cse3         [V42,T21] (  2,  2.20)   byref  ->  x27         hoist "CSE - moderate"
-;  V43 cse4         [V43,T16] (  3,  3   )     ref  ->   x1         "CSE - moderate"
+;* V38 tmp25        [V38,T25] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V39 cse0         [V39,T13] (  3,  4.77)     int  ->   x0         "CSE - moderate"
+;  V40 cse1         [V40,T18] (  3,  3   )    long  ->   x0         "CSE - moderate"
+;  V41 cse2         [V41,T06] ( 10,  6.65)    long  ->  x28         hoist multi-def "CSE - aggressive"
+;  V42 cse3         [V42,T14] (  4,  4.59)     int  ->  x22         "CSE - moderate"
+;  V43 cse4         [V43,T22] (  2,  2.20)   byref  ->  x27         hoist "CSE - moderate"
+;  V44 cse5         [V44,T17] (  3,  3   )     ref  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -216,7 +217,7 @@ G_M37807_IG12:        ; bbWeight=1, gcrefRegs=1A00000 {x21 x23 x24}, byrefRegs=8
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15 x24]
             ; byrRegs -[x14]
-            cbz     x22, G_M37807_IG27
+            cbz     x22, G_M37807_IG28
             mov     x0, x22
             ; byrRegs +[x0]
             mov     x1, x28
@@ -250,30 +251,36 @@ G_M37807_IG13:        ; bbWeight=1, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=800
             stp     wzr, w1, [fp, #0x28]   // [V36 tmp23], [V37 tmp24]
             mov     w24, wzr
             cmp     w22, #0
-            ble     G_M37807_IG25
+            ble     G_M37807_IG26
                        ;; size=68 bbWeight=1 PerfScore 18.00
 G_M37807_IG14:        ; bbWeight=0.61, gcrefRegs=A00001 {x0 x21 x23}, byrefRegs=80000 {x19}, byref
             add     x27, x0, #16
             ; byrRegs +[x27]
-                       ;; size=4 bbWeight=0.61 PerfScore 0.31
+            movz    x28, #0xD1FFAB1E
+            movk    x28, #0xD1FFAB1E LSL #16
+            movk    x28, #0xD1FFAB1E LSL #32
+                       ;; size=16 bbWeight=0.61 PerfScore 1.23
 G_M37807_IG15:        ; bbWeight=1.59, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x28, [x27, w24, UXTW #3]
-            ; gcrRegs +[x28]
-            ldr     w0, [x28, #0x58]
+            ldr     x2, [x27, w24, UXTW #3]
+            ; gcrRegs +[x2]
+            str     x2, [fp, #0x10]    // [V12 loc6]
+            ; GC ptr vars +{V12}
+            ldr     w0, [x2, #0x58]
             and     w1, w20, w0
             cmp     w1, w0
             bne     G_M37807_IG22
-                       ;; size=20 bbWeight=1.59 PerfScore 12.71
-G_M37807_IG16:        ; bbWeight=1.46, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref, isz
+                       ;; size=24 bbWeight=1.59 PerfScore 14.30
+G_M37807_IG16:        ; bbWeight=1.46, gcVars=0000000000000080 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, gcvars, byref, isz
             cbz     w25, G_M37807_IG18
                        ;; size=4 bbWeight=1.46 PerfScore 1.46
-G_M37807_IG17:        ; bbWeight=0, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref, isz
-            mov     x0, x28
+G_M37807_IG17:        ; bbWeight=0, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
             mov     x1, x21
             ; gcrRegs +[x1]
             mov     w2, w26
+            ; gcrRegs -[x2]
             movz    x3, #0xD1FFAB1E      // code for System.RuntimeType:FilterApplyPrefixLookup(System.Reflection.MemberInfo,System.String,ubyte):ubyte
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
@@ -281,28 +288,26 @@ G_M37807_IG17:        ; bbWeight=0, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=
             blr     x3
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbz     w0, G_M37807_IG28
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            cbz     w0, G_M37807_IG29
+            mov     x0, x28
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=52 bbWeight=0 PerfScore 0.00
-G_M37807_IG18:        ; bbWeight=1.46, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref, isz
-            cbz     x23, G_M37807_IG21
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
+            ; gcrRegs +[x2]
+                       ;; size=48 bbWeight=0 PerfScore 0.00
+G_M37807_IG18:        ; bbWeight=1.46, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
+            cbz     x23, G_M37807_IG24
                        ;; size=4 bbWeight=1.46 PerfScore 1.46
-G_M37807_IG19:        ; bbWeight=0.49, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref, isz
-            mov     x0, x28
+G_M37807_IG19:        ; bbWeight=0.49, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
+            mov     x0, x2
             ; gcrRegs +[x0]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
+            add     x1, x28, #8
             bl      CORINFO_HELP_CLASSPROFILE32
-            ; gcrRegs -[x0]
+            ; gcrRegs -[x0 x2]
             ; gcr arg pop 0
-            mov     x0, x28
+            ldr     x0, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x0]
-            ldr     x1, [x28]
+            ldr     x1, [x0]
             ldr     x1, [x1, #0x58]
             ldr     x1, [x1, #0x18]
             blr     x1
@@ -311,23 +316,19 @@ G_M37807_IG19:        ; bbWeight=0.49, gcrefRegs=10A00000 {x21 x23 x28}, byrefRe
             ; gcrRegs -[x0]
             ldr     w1, [x23, #0x08]
             cmp     w0, w1
-            bne     G_M37807_IG24
-                       ;; size=56 bbWeight=0.49 PerfScore 10.37
-G_M37807_IG20:        ; bbWeight=0.25, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            bne     G_M37807_IG25
+                       ;; size=48 bbWeight=0.49 PerfScore 10.62
+G_M37807_IG20:        ; bbWeight=0.25, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.25 PerfScore 0.62
-G_M37807_IG21:        ; bbWeight=1.46, gcrefRegs=10A00000 {x21 x23 x28}, byrefRegs=8080000 {x19 x27}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+                       ;; size=8 bbWeight=0.25 PerfScore 0.37
+G_M37807_IG21:        ; bbWeight=1.46, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     x0, fp, #24    // [V10 loc4]
-            mov     x2, x28
+            ldr     x2, [fp, #0x10]    // [V12 loc6]
             ; gcrRegs +[x2]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -336,41 +337,45 @@ G_M37807_IG21:        ; bbWeight=1.46, gcrefRegs=10A00000 {x21 x23 x28}, byrefRe
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
+            ; GC ptr vars -{V12}
             blr     x3
-            ; gcrRegs -[x2 x28]
+            ; gcrRegs -[x2]
             ; gcr arg pop 0
-                       ;; size=56 bbWeight=1.46 PerfScore 15.36
+                       ;; size=48 bbWeight=1.46 PerfScore 16.09
 G_M37807_IG22:        ; bbWeight=1.59, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref, isz
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     w24, w24, #1
             cmp     w22, w24
             bgt     G_M37807_IG15
-                       ;; size=28 bbWeight=1.59 PerfScore 7.15
+                       ;; size=20 bbWeight=1.59 PerfScore 5.56
 G_M37807_IG23:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
             ; gcrRegs -[x21 x23]
             ; byrRegs -[x27]
-            b       G_M37807_IG25
+            b       G_M37807_IG26
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M37807_IG24:        ; bbWeight=0.25, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, byref
-            ; gcrRegs +[x21 x23]
+G_M37807_IG24:        ; bbWeight=0.73, gcVars=0000000000000080 {V12}, gcrefRegs=A00004 {x2 x21 x23}, byrefRegs=8080000 {x19 x27}, gcvars, byref
+            ; gcrRegs +[x2 x21 x23]
             ; byrRegs +[x27]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            ; GC ptr vars +{V07 V12}
+            b       G_M37807_IG21
+                       ;; size=4 bbWeight=0.73 PerfScore 0.73
+G_M37807_IG25:        ; bbWeight=0.25, gcVars=0000000000000000 {}, gcrefRegs=A00000 {x21 x23}, byrefRegs=8080000 {x19 x27}, gcvars, byref
+            ; gcrRegs -[x2]
+            ; GC ptr vars -{V07 V12}
+            add     x0, x28, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             b       G_M37807_IG22
-                       ;; size=20 bbWeight=0.25 PerfScore 0.86
-G_M37807_IG25:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+                       ;; size=12 bbWeight=0.25 PerfScore 0.62
+G_M37807_IG26:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
             ; gcrRegs -[x21 x23]
             ; byrRegs -[x27]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
...

+4 (+0.21%) : 237132.dasm - System.Diagnostics.Tracing.EventSource:DebugCheckEvent(byref,System.Diagnostics.Tracing.EventSource+EventMetadata[],System.Reflection.MethodInfo,System.Diagnostics.Tracing.EventAttribute,System.Diagnostics.Tracing.ManifestBuilder,int) (Instrumented Tier1)

@@ -9,19 +9,19 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T15] (  6,  5.50)   byref  ->  x23         single-def
-;  V01 arg1         [V01,T04] (  7, 11.50)     ref  ->  x19         class-hnd single-def <System.Diagnostics.Tracing.EventSource+EventMetadata[]>
+;  V01 arg1         [V01,T04] (  8, 13.50)     ref  ->  x19         class-hnd single-def <System.Diagnostics.Tracing.EventSource+EventMetadata[]>
 ;  V02 arg2         [V02,T10] (  6,  6   )     ref  ->  x22         class-hnd single-def <System.Reflection.MethodInfo>
-;  V03 arg3         [V03,T05] (  9, 10   )     ref  ->  x20         class-hnd single-def <System.Diagnostics.Tracing.EventAttribute>
+;  V03 arg3         [V03,T06] (  9, 10   )     ref  ->  x20         class-hnd single-def <System.Diagnostics.Tracing.EventAttribute>
 ;  V04 arg4         [V04,T09] ( 12,  8.50)     ref  ->  x21         class-hnd single-def <System.Diagnostics.Tracing.ManifestBuilder>
-;  V05 arg5         [V05,T24] (  3,  4   )     int  ->  x24         single-def
+;  V05 arg5         [V05,T23] (  3,  4   )     int  ->  x24         single-def
 ;  V06 loc0         [V06,T14] ( 10,  7.50)     int  ->  x25        
 ;  V07 loc1         [V07,T11] (  9,  8   )     ref  ->  x27         class-hnd exact single-def <System.String>
-;  V08 loc2         [V08,T26] (  4,  3   )     int  ->  x22        
+;  V08 loc2         [V08,T25] (  4,  3   )     int  ->  x22        
 ;  V09 loc3         [V09,T00] (  6, 55   )     int  ->  x28        
-;* V10 loc4         [V10,T54] (  0,  0   )   ubyte  ->  zero-ref   
-;  V11 loc5         [V11,T55] (  2,  1   )     int  ->  x20        
+;* V10 loc4         [V10,T53] (  0,  0   )   ubyte  ->  zero-ref   
+;  V11 loc5         [V11,T54] (  2,  1   )     int  ->  x20        
 ;# V12 OutArgs      [V12    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V13 tmp1         [V13,T37] (  3,  2   )     int  ->   x0        
+;  V13 tmp1         [V13,T36] (  3,  2   )     int  ->   x0        
 ;* V14 tmp2         [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V15 tmp3         [V15    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V16 tmp4         [V16,T02] (  6, 24   )     ref  ->  [fp+0x20]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
@@ -29,52 +29,51 @@
 ;  V18 tmp6         [V18,T07] (  3, 12   )     ref  ->   x0         class-hnd exact "Single-def Box Helper" <<unknown class>>
 ;  V19 tmp7         [V19,T13] (  2,  8   )     ref  ->  x15         class-hnd exact "Strict ordering of exceptions for Array store" <System.String>
 ;  V20 tmp8         [V20,T08] (  3, 12   )     ref  ->   x0         class-hnd exact "Single-def Box Helper" <<unknown class>>
-;  V21 tmp9         [V21,T28] (  3,  3   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V22 tmp10        [V22,T29] (  3,  3   )     ref  ->  x19         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V23 tmp11        [V23,T38] (  2,  2   )     ref  ->   x0         class-hnd exact single-def "impImportAndPushBox" <System.String>
-;  V24 tmp12        [V24,T30] (  3,  3   )     ref  ->  x28         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V25 tmp13        [V25,T39] (  2,  2   )     ref  ->   x0         class-hnd exact single-def "impImportAndPushBox" <System.String>
-;  V26 tmp14        [V26,T31] (  3,  3   )     ref  ->  x28         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V27 tmp15        [V27,T40] (  2,  2   )     ref  ->  [fp+0x10]  class-hnd exact spill-single-def "impImportAndPushBox" <System.String>
-;  V28 tmp16        [V28,T32] (  3,  3   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
+;  V21 tmp9         [V21,T27] (  3,  3   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V22 tmp10        [V22,T28] (  3,  3   )     ref  ->  x19         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
+;  V23 tmp11        [V23,T37] (  2,  2   )     ref  ->   x0         class-hnd exact single-def "impImportAndPushBox" <System.String>
+;  V24 tmp12        [V24,T29] (  3,  3   )     ref  ->  x28         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
+;  V25 tmp13        [V25,T38] (  2,  2   )     ref  ->   x0         class-hnd exact single-def "impImportAndPushBox" <System.String>
+;  V26 tmp14        [V26,T30] (  3,  3   )     ref  ->  x28         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
+;  V27 tmp15        [V27,T39] (  2,  2   )     ref  ->  [fp+0x10]  class-hnd exact spill-single-def "impImportAndPushBox" <System.String>
+;  V28 tmp16        [V28,T31] (  3,  3   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
 ;* V29 tmp17        [V29    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
-;  V30 tmp18        [V30,T33] (  4,  2.64)     ref  ->  x22         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V31 tmp19        [V31,T56] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V30 tmp18        [V30,T32] (  4,  2.64)     ref  ->  x22         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V31 tmp19        [V31,T55] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V32 tmp20        [V32,T16] (  7,  6.64)     ref  ->   x0         class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V33 tmp21        [V33,T49] (  3,  1.32)     ref  ->  x14         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V34 tmp22        [V34,T43] (  4,  1.64)     int  ->  x15         "Inline stloc first use temp"
+;  V33 tmp21        [V33,T48] (  3,  1.32)     ref  ->  x14         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V34 tmp22        [V34,T42] (  4,  1.64)     int  ->  x15         "Inline stloc first use temp"
 ;* V35 tmp23        [V35    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V36 tmp24        [V36,T34] (  4,  2.64)     ref  ->  x28         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V37 tmp25        [V37,T57] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V36 tmp24        [V36,T33] (  4,  2.64)     ref  ->  x28         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V37 tmp25        [V37,T56] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V38 tmp26        [V38,T17] (  7,  6.64)     ref  ->   x0         class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V39 tmp27        [V39,T50] (  3,  1.32)     ref  ->  x14         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V40 tmp28        [V40,T44] (  4,  1.64)     int  ->  x15         "Inline stloc first use temp"
+;  V39 tmp27        [V39,T49] (  3,  1.32)     ref  ->  x14         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V40 tmp28        [V40,T43] (  4,  1.64)     int  ->  x15         "Inline stloc first use temp"
 ;* V41 tmp29        [V41    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V42 tmp30        [V42    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V43 tmp31        [V43,T25] (  3,  5   )     ref  ->   x1         class-hnd exact "Inlining Arg" <System.String>
+;  V43 tmp31        [V43,T24] (  3,  5   )     ref  ->   x1         class-hnd exact "Inlining Arg" <System.String>
 ;  V44 tmp32        [V44,T19] (  7,  6.00)     ref  ->   x0         class-hnd "Inlining Arg" <<unknown class>>
-;  V45 tmp33        [V45,T51] (  3,  1.32)     ref  ->  x14         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V46 tmp34        [V46,T45] (  4,  1.64)     int  ->  x15         "Inline stloc first use temp"
-;  V47 tmp35        [V47,T36] (  3,  2   )     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V45 tmp33        [V45,T50] (  3,  1.32)     ref  ->  x14         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V46 tmp34        [V46,T44] (  4,  1.64)     int  ->  x15         "Inline stloc first use temp"
+;  V47 tmp35        [V47,T35] (  3,  2   )     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V48 tmp36        [V48,T20] (  7,  6.00)     ref  ->   x0         class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V49 tmp37        [V49,T52] (  3,  1.32)     ref  ->  x14         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V50 tmp38        [V50,T46] (  4,  1.64)     int  ->  x15         "Inline stloc first use temp"
+;  V49 tmp37        [V49,T51] (  3,  1.32)     ref  ->  x14         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V50 tmp38        [V50,T45] (  4,  1.64)     int  ->  x15         "Inline stloc first use temp"
 ;  V51 tmp39        [V51,T21] (  3,  6   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]>
-;  V52 tmp40        [V52,T35] (  4,  2.64)     ref  ->  x19         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V53 tmp41        [V53,T58] (  3,  0   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V52 tmp40        [V52,T34] (  4,  2.64)     ref  ->  x19         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V53 tmp41        [V53,T57] (  3,  0   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V54 tmp42        [V54,T18] (  7,  6.64)     ref  ->   x0         class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V55 tmp43        [V55,T53] (  3,  1.32)     ref  ->  x14         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V56 tmp44        [V56,T47] (  4,  1.64)     int  ->  x15         "Inline stloc first use temp"
+;  V55 tmp43        [V55,T52] (  3,  1.32)     ref  ->  x14         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V56 tmp44        [V56,T46] (  4,  1.64)     int  ->  x15         "Inline stloc first use temp"
 ;  V57 tmp45        [V57,T22] (  3,  6   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]>
 ;* V58 tmp46        [V58    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V59 tmp47        [V59,T42] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V60 tmp48        [V60,T41] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;  V61 cse0         [V61,T23] (  3,  6   )   byref  ->   x0         "CSE - moderate"
-;  V62 cse1         [V62,T06] (  4, 12   )    long  ->  [fp+0x28]  spill-single-def "CSE - aggressive"
-;  V63 cse2         [V63,T27] (  4,  3   )     int  ->  x19         "CSE - moderate"
-;  V64 cse3         [V64,T48] (  3,  1.50)     int  ->  x22         "CSE - moderate"
+;* V59 tmp47        [V59,T41] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V60 tmp48        [V60,T40] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
+;  V61 cse0         [V61,T05] (  5, 14   )    long  ->  [fp+0x28]  spill-single-def "CSE - aggressive"
+;  V62 cse1         [V62,T26] (  4,  3   )     int  ->  x19         "CSE - moderate"
+;  V63 cse2         [V63,T47] (  3,  1.50)     int  ->  x22         "CSE - moderate"
+;  V64 cse3         [V64,T01] ( 21, 29.25)    long  ->  x26         "CSE - aggressive"
 ;  V65 cse4         [V65,T03] (  5, 19.50)     int  ->  x22         "CSE - aggressive"
-;  V66 cse5         [V66,T01] ( 21, 29.25)    long  ->  x26         "CSE - aggressive"
 ;
 ; Lcl frame size = 32
 
@@ -361,7 +360,7 @@ G_M46894_IG18:        ; bbWeight=4, gcrefRegs=8380000 {x19 x20 x21 x27}, byrefRe
             mov     w0, #96
             mov     x1, #16
             umaddl  x1, w28, w0, x1
-            str     x1, [fp, #0x28]    // [V62 cse1]
+            str     x1, [fp, #0x28]    // [V61 cse0]
             ldr     x0, [x19, x1]
             ; gcrRegs +[x0]
             cbz     x0, G_M46894_IG25
@@ -370,10 +369,13 @@ G_M46894_IG19:        ; bbWeight=2, gcrefRegs=8380000 {x19 x20 x21 x27}, byrefRe
             ; gcrRegs -[x0]
             add     x0, x19, x1
             ; byrRegs +[x0]
-            ldrh    w2, [x0, #0x56]
-            ldr     w3, [x20, #0x20]
-            cmp     w2, w3
+            ldrh    w0, [x0, #0x56]
+            ; byrRegs -[x0]
+            ldr     w2, [x20, #0x20]
+            cmp     w0, w2
             bne     G_M46894_IG28
+            add     x0, x19, x1
+            ; byrRegs +[x0]
             ldrb    w0, [x0, #0x55]
             ; byrRegs -[x0]
             ldr     w2, [x20, #0x2C]
@@ -426,7 +428,7 @@ G_M46894_IG19:        ; bbWeight=2, gcrefRegs=8380000 {x19 x20 x21 x27}, byrefRe
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15]
             ; byrRegs -[x14]
-            ldr     x14, [fp, #0x28]   // [V62 cse1]
+            ldr     x14, [fp, #0x28]   // [V61 cse0]
             ldr     x15, [x19, x14]
             ; gcrRegs +[x15]
             add     x14, x1, #32
@@ -464,7 +466,7 @@ G_M46894_IG19:        ; bbWeight=2, gcrefRegs=8380000 {x19 x20 x21 x27}, byrefRe
             ; gcrRegs +[x1]
             ldr     w14, [x21, #0x88]
             tbz     w14, #0, G_M46894_IG23
-                       ;; size=236 bbWeight=2 PerfScore 127.00
+                       ;; size=240 bbWeight=2 PerfScore 128.00
 G_M46894_IG20:        ; bbWeight=0.50, gcrefRegs=8380002 {x1 x19 x20 x21 x27}, byrefRegs=800000 {x23}, byref, isz
             ; gcrRegs -[x0]
             ldr     x0, [x21, #0x60]
@@ -909,7 +911,7 @@ G_M46894_IG53:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             brk_windows #0
                        ;; size=56 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1924, prolog size 52, PerfScore 471.38, instruction count 481, allocated bytes for code 1924 (MethodHash=3e2a48d1) for method System.Diagnostics.Tracing.EventSource:DebugCheckEvent(byref,System.Diagnostics.Tracing.EventSource+EventMetadata[],System.Reflection.MethodInfo,System.Diagnostics.Tracing.EventAttribute,System.Diagnostics.Tracing.ManifestBuilder,int) (Instrumented Tier1)
+; Total bytes of code 1928, prolog size 52, PerfScore 472.38, instruction count 482, allocated bytes for code 1928 (MethodHash=3e2a48d1) for method System.Diagnostics.Tracing.EventSource:DebugCheckEvent(byref,System.Diagnostics.Tracing.EventSource+EventMetadata[],System.Reflection.MethodInfo,System.Diagnostics.Tracing.EventAttribute,System.Diagnostics.Tracing.ManifestBuilder,int) (Instrumented Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -920,7 +922,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 481 (0x001e1) Actual length = 1924 (0x000784)
+  Function Length   : 482 (0x001e2) Actual length = 1928 (0x000788)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+0.33%) : 27256.dasm - System.RuntimeType:GetField(System.String,int):System.Reflection.FieldInfo:this (Instrumented Tier1)

@@ -12,13 +12,13 @@
 ;  V00 this         [V00,T05] (  4,  4   )     ref  ->  x21         this class-hnd single-def <System.RuntimeType>
 ;  V01 arg1         [V01,T04] (  6,  4   )     ref  ->  x20         ld-addr-op class-hnd <System.String>
 ;  V02 arg2         [V02,T02] (  6,  5.42)     int  ->  x19        
-;  V03 loc0         [V03,T17] (  3,  1.02)     int  ->  x22         ld-addr-op
-;  V04 loc1         [V04,T12] (  3,  2.42)     ref  ->  x21         class-hnd single-def <System.Reflection.RuntimeFieldInfo[]>
+;  V03 loc0         [V03,T16] (  3,  1.02)     int  ->  x22         ld-addr-op
+;  V04 loc1         [V04,T11] (  4,  2.71)     ref  ->  x21         class-hnd single-def <System.Reflection.RuntimeFieldInfo[]>
 ;  V05 loc2         [V05,T10] ( 16,  2.84)     ref  ->  x22         class-hnd <System.Reflection.FieldInfo>
-;  V06 loc3         [V06,T14] (  3,  2   )   ubyte  ->  x23        
+;  V06 loc3         [V06,T13] (  3,  2   )   ubyte  ->  x23        
 ;* V07 loc4         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op
-;  V08 loc5         [V08,T11] (  5,  2.67)     int  ->  x24        
-;  V09 loc6         [V09,T15] ( 12,  1.25)     ref  ->  x26         class-hnd <System.Reflection.RuntimeFieldInfo>
+;  V08 loc5         [V08,T12] (  5,  2.67)     int  ->  x24        
+;  V09 loc6         [V09,T14] ( 12,  1.25)     ref  ->  x26         class-hnd <System.Reflection.RuntimeFieldInfo>
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V12 tmp2         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <System.Type>
@@ -60,9 +60,9 @@
 ;  V48 tmp38        [V48,T25] (  2,  0   )     ref  ->   x1         "argument with side effect"
 ;  V49 tmp39        [V49,T23] (  3,  0   )     ref  ->   x0         "argument with side effect"
 ;  V50 tmp40        [V50,T24] (  3,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V51 cse0         [V51,T16] (  3,  1.25)     int  ->   x0         "CSE - moderate"
-;  V52 cse1         [V52,T09] (  3,  3   )    long  ->   x0         "CSE - aggressive"
-;  V53 cse2         [V53,T13] (  3,  2.42)     int  ->  x25         "CSE - aggressive"
+;  V51 cse0         [V51,T15] (  3,  1.25)     int  ->   x0         "CSE - moderate"
+;  V52 cse1         [V52,T17] (  2,  0.71)   byref  ->  x25         hoist "CSE - moderate"
+;  V53 cse2         [V53,T09] (  3,  3   )    long  ->   x0         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -195,7 +195,7 @@ G_M40435_IG09:        ; bbWeight=1, gcrefRegs=900000 {x20 x23}, byrefRegs=0000 {
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15 x23]
             ; byrRegs -[x14]
-            cbz     x21, G_M40435_IG21
+            cbz     x21, G_M40435_IG22
             mov     x0, x21
             ; byrRegs +[x0]
             mov     x1, x24
@@ -229,24 +229,25 @@ G_M40435_IG10:        ; bbWeight=1, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}
             eor     w19, w19, #2
             mov     w23, wzr
             mov     w24, wzr
-            ldr     w25, [x21, #0x08]
-            cmp     w25, #0
-            ble     G_M40435_IG16
-                       ;; size=68 bbWeight=1 PerfScore 17.00
-G_M40435_IG11:        ; bbWeight=0.42, gcrefRegs=600000 {x21 x22}, byrefRegs=0000 {}, byref, isz
+            ldr     w0, [x21, #0x08]
             ; gcrRegs -[x0]
-            add     x0, x21, #16
-            ; byrRegs +[x0]
-            ldr     x26, [x0, w24, UXTW #3]
+            cmp     w0, #0
+            ble     G_M40435_IG17
+                       ;; size=68 bbWeight=1 PerfScore 17.00
+G_M40435_IG11:        ; bbWeight=0.29, gcrefRegs=600000 {x21 x22}, byrefRegs=0000 {}, byref
+            add     x25, x21, #16
+            ; byrRegs +[x25]
+                       ;; size=4 bbWeight=0.29 PerfScore 0.15
+G_M40435_IG12:        ; bbWeight=0.42, gcrefRegs=600000 {x21 x22}, byrefRegs=2000000 {x25}, byref, isz
+            ldr     x26, [x25, w24, UXTW #3]
             ; gcrRegs +[x26]
             ldr     w0, [x26, #0x18]
-            ; byrRegs -[x0]
             and     w1, w19, w0
             cmp     w1, w0
-            bne     G_M40435_IG15
-            cbz     x22, G_M40435_IG14
-                       ;; size=28 bbWeight=0.42 PerfScore 3.97
-G_M40435_IG12:        ; bbWeight=0, gcrefRegs=4600000 {x21 x22 x26}, byrefRegs=0000 {}, byref, isz
+            bne     G_M40435_IG16
+            cbz     x22, G_M40435_IG15
+                       ;; size=24 bbWeight=0.42 PerfScore 3.76
+G_M40435_IG13:        ; bbWeight=0, gcrefRegs=4600000 {x21 x22 x26}, byrefRegs=2000000 {x25}, byref, isz
             mov     x0, x26
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -279,7 +280,7 @@ G_M40435_IG12:        ; bbWeight=0, gcrefRegs=4600000 {x21 x22 x26}, byrefRegs=0
             blr     x1
             ; gcr arg pop 0
             cmp     x20, x0
-            beq     G_M40435_IG26
+            beq     G_M40435_IG27
             mov     x0, x22
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -302,7 +303,7 @@ G_M40435_IG12:        ; bbWeight=0, gcrefRegs=4600000 {x21 x22 x26}, byrefRegs=0
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            cbz     w0, G_M40435_IG25
+            cbz     w0, G_M40435_IG26
             mov     x0, x26
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -326,7 +327,7 @@ G_M40435_IG12:        ; bbWeight=0, gcrefRegs=4600000 {x21 x22 x26}, byrefRegs=0
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            cbz     w0, G_M40435_IG24
+            cbz     w0, G_M40435_IG25
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -334,7 +335,7 @@ G_M40435_IG12:        ; bbWeight=0, gcrefRegs=4600000 {x21 x22 x26}, byrefRegs=0
             ; gcr arg pop 0
             mov     w23, #1
                        ;; size=248 bbWeight=0 PerfScore 0.00
-G_M40435_IG13:        ; bbWeight=0, gcrefRegs=4600000 {x21 x22 x26}, byrefRegs=0000 {}, byref, isz
+G_M40435_IG14:        ; bbWeight=0, gcrefRegs=4600000 {x21 x22 x26}, byrefRegs=2000000 {x25}, byref, isz
             mov     x0, x26
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -382,7 +383,7 @@ G_M40435_IG13:        ; bbWeight=0, gcrefRegs=4600000 {x21 x22 x26}, byrefRegs=0
             blr     x2
             ; gcrRegs -[x0-x1 x20]
             ; gcr arg pop 0
-            cbnz    w0, G_M40435_IG23
+            cbnz    w0, G_M40435_IG24
             mov     x0, x22
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -406,7 +407,7 @@ G_M40435_IG13:        ; bbWeight=0, gcrefRegs=4600000 {x21 x22 x26}, byrefRegs=0
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            cbz     w0, G_M40435_IG22
+            cbz     w0, G_M40435_IG23
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -414,7 +415,7 @@ G_M40435_IG13:        ; bbWeight=0, gcrefRegs=4600000 {x21 x22 x26}, byrefRegs=0
             ; gcrRegs -[x22]
             ; gcr arg pop 0
                        ;; size=212 bbWeight=0 PerfScore 0.00
-G_M40435_IG14:        ; bbWeight=0.42, gcrefRegs=4200000 {x21 x26}, byrefRegs=0000 {}, byref
+G_M40435_IG15:        ; bbWeight=0.42, gcrefRegs=4200000 {x21 x26}, byrefRegs=2000000 {x25}, byref
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -423,7 +424,7 @@ G_M40435_IG14:        ; bbWeight=0.42, gcrefRegs=4200000 {x21 x26}, byrefRegs=00
             mov     x22, x26
             ; gcrRegs +[x22]
                        ;; size=20 bbWeight=0.42 PerfScore 1.25
-G_M40435_IG15:        ; bbWeight=0.42, gcrefRegs=600000 {x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M40435_IG16:        ; bbWeight=0.42, gcrefRegs=600000 {x21 x22}, byrefRegs=2000000 {x25}, byref, isz
             ; gcrRegs -[x26]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
@@ -431,14 +432,16 @@ G_M40435_IG15:        ; bbWeight=0.42, gcrefRegs=600000 {x21 x22}, byrefRegs=000
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             add     w24, w24, #1
-            cmp     w25, w24
-            bgt     G_M40435_IG11
-                       ;; size=28 bbWeight=0.42 PerfScore 1.88
-G_M40435_IG16:        ; bbWeight=1, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
+            ldr     w0, [x21, #0x08]
+            cmp     w0, w24
+            bgt     G_M40435_IG12
+                       ;; size=32 bbWeight=0.42 PerfScore 3.14
+G_M40435_IG17:        ; bbWeight=1, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x21]
-            cbz     w23, G_M40435_IG19
+            ; byrRegs -[x25]
+            cbz     w23, G_M40435_IG20
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M40435_IG17:        ; bbWeight=0, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
+G_M40435_IG18:        ; bbWeight=0, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
             mov     x0, x22
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -462,7 +465,7 @@ G_M40435_IG17:        ; bbWeight=0, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, b
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            cbz     w0, G_M40435_IG18
+            cbz     w0, G_M40435_IG19
             mov     x0, x22
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
@@ -476,7 +479,7 @@ G_M40435_IG17:        ; bbWeight=0, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, b
             ; gcrRegs -[x0]
             ; gcr arg pop 0
                        ;; size=96 bbWeight=0 PerfScore 0.00
-G_M40435_IG18:        ; bbWeight=0, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
+G_M40435_IG19:        ; bbWeight=0, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x22]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
@@ -484,7 +487,7 @@ G_M40435_IG18:        ; bbWeight=0, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, b
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
                        ;; size=16 bbWeight=0 PerfScore 0.00
-G_M40435_IG19:        ; bbWeight=1, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
+G_M40435_IG20:        ; bbWeight=1, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -493,7 +496,7 @@ G_M40435_IG19:        ; bbWeight=1, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, b
             mov     x0, x22
             ; gcrRegs +[x0]
                        ;; size=20 bbWeight=1 PerfScore 3.00
-G_M40435_IG20:        ; bbWeight=1, epilog, nogc, extend
+G_M40435_IG21:        ; bbWeight=1, epilog, nogc, extend
             ldp     x25, x26, [sp, #0x40]
             ldp     x23, x24, [sp, #0x30]
             ldp     x21, x22, [sp, #0x20]
@@ -501,7 +504,7 @@ G_M40435_IG20:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x50
             ret     lr
                        ;; size=24 bbWeight=1 PerfScore 6.00
-G_M40435_IG21:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M40435_IG22:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0 x22]
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowNullReferenceException()
             movk    x0, #0xD1FFAB1E LSL #16
@@ -511,8 +514,18 @@ G_M40435_IG21:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; gcr arg pop 0
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M40435_IG22:        ; bbWeight=0, gcrefRegs=600000 {x21 x22}, byrefRegs=0000 {}, byref
+G_M40435_IG23:        ; bbWeight=0, gcrefRegs=600000 {x21 x22}, byrefRegs=2000000 {x25}, byref
             ; gcrRegs +[x21-x22]
+            ; byrRegs +[x25]
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
+            bl      CORINFO_HELP_COUNTPROFILE32
+            ; gcr arg pop 0
+            b       G_M40435_IG16
+                       ;; size=20 bbWeight=0 PerfScore 0.00
+G_M40435_IG24:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=2000000 {x25}, byref
+            ; gcrRegs -[x22] +[x26]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -520,8 +533,8 @@ G_M40435_IG22:        ; bbWeight=0, gcrefRegs=600000 {x21 x22}, byrefRegs=0000 {
             ; gcr arg pop 0
             b       G_M40435_IG15
                        ;; size=20 bbWeight=0 PerfScore 0.00
-G_M40435_IG23:        ; bbWeight=0, gcrefRegs=4200000 {x21 x26}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x22] +[x26]
+G_M40435_IG25:        ; bbWeight=0, gcrefRegs=4600000 {x21 x22 x26}, byrefRegs=2000000 {x25}, byref
+            ; gcrRegs +[x22]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
...

+24 (+3.97%) : 258412.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (Tier0-FullOpts)

@@ -3,48 +3,48 @@
 ; Tier-0 switched to FullOpts code
 ; optimized code
 ; fp based frame
-; fully interruptible
+; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] ( 12,  7   )   byref  ->  x19         this single-def
-;  V01 arg1         [V01,T04] (  3,  3   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
+;  V00 this         [V00,T01] ( 12,  7   )   byref  ->  x19         this single-def
+;  V01 arg1         [V01,T02] (  3,  3   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
-;  V03 loc1         [V03,T02] (  9, 12   )     int  ->  x21        
+;  V03 loc1         [V03,T03] (  9,  4.75)     int  ->  x21        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[int]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [fp+0x30]  do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Decimal>
-;  V09 tmp4         [V09,T05] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V10 tmp5         [V10,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V09 tmp4         [V09,T04] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V10 tmp5         [V10,T10] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
-;  V13 tmp8         [V13,T18] (  2,  1   )     int  ->   x0        
-;  V14 tmp9         [V14,T06] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V15 tmp10        [V15,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V16 tmp11        [V16,T07] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V17 tmp12        [V17,T13] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V18 tmp13        [V18,T14] (  2,  2   )     int  ->   x1         "impAppendStmt"
+;  V13 tmp8         [V13,T17] (  2,  1   )     int  ->   x0        
+;  V14 tmp9         [V14,T05] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V15 tmp10        [V15,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V16 tmp11        [V16,T06] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V17 tmp12        [V17,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V18 tmp13        [V18,T13] (  2,  2   )     int  ->   x1         "impAppendStmt"
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    ptr
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp18        [V23,T19] (  2,  1   )     int  ->   x0        
+;  V23 tmp18        [V23,T18] (  2,  1   )     int  ->   x0        
 ;  V24 tmp19        [V24    ] (  6, 11   )  struct (16) [fp+0x10]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
-;  V25 tmp20        [V25,T09] (  3,  2.50)     int  ->   x1         "Inline stloc first use temp"
+;  V25 tmp20        [V25,T08] (  3,  2.50)     int  ->   x1         "Inline stloc first use temp"
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Decimal>
 ;* V28 tmp23        [V28    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V29 tmp24        [V29    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V30 tmp25        [V30    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;  V31 tmp26        [V31,T01] ( 12, 12   )   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V32 tmp27        [V32,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp26        [V31,T00] ( 14,  9.50)   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V32 tmp27        [V32,T19] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp28        [V33    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V34 tmp29        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V35 tmp30        [V35,T10] (  2,  2   )   byref  ->  x20         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V36 tmp31        [V36,T21] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
+;  V35 tmp30        [V35,T09] (  2,  2   )   byref  ->  x20         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V36 tmp31        [V36,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V37 tmp32        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V08._flags (fldOffset=0x0)" P-INDEP
 ;* V38 tmp33        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V08._hi32 (fldOffset=0x4)" P-INDEP
 ;* V39 tmp34        [V39    ] (  0,  0   )    long  ->  zero-ref    "field V08._lo64 (fldOffset=0x8)" P-INDEP
@@ -53,12 +53,11 @@
 ;  V42 tmp37        [V42    ] (  3,  4   )    long  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V24._lo64 (fldOffset=0x8)" P-DEP
 ;* V43 tmp38        [V43    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V44 tmp39        [V44    ] (  0,  0   )     int  ->  zero-ref    ptr "field V26._length (fldOffset=0x8)" P-INDEP
-;  V45 tmp40        [V45,T15] (  2,  2   )     int  ->  x13         "field V27._flags (fldOffset=0x0)" P-INDEP
-;  V46 tmp41        [V46,T16] (  2,  2   )     int  ->  x14         "field V27._hi32 (fldOffset=0x4)" P-INDEP
-;  V47 tmp42        [V47,T08] (  3,  3   )    long  ->  x12         "field V27._lo64 (fldOffset=0x8)" P-INDEP
+;  V45 tmp40        [V45,T14] (  2,  2   )     int  ->  x13         "field V27._flags (fldOffset=0x0)" P-INDEP
+;  V46 tmp41        [V46,T15] (  2,  2   )     int  ->  x14         "field V27._hi32 (fldOffset=0x4)" P-INDEP
+;  V47 tmp42        [V47,T07] (  3,  3   )    long  ->  x12         "field V27._lo64 (fldOffset=0x8)" P-INDEP
 ;  V48 GsCookie     [V48    ] (  1,  1   )    long  ->  [fp+0x40]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V49 cse0         [V49,T17] (  3,  1.50)     int  ->   x1         "CSE - moderate"
-;  V50 cse1         [V50,T00] (  4, 14   )     int  ->  x13         "CSE - aggressive"
+;  V49 cse0         [V49,T16] (  3,  1.50)     int  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 56
 
@@ -95,7 +94,6 @@ G_M46478_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-            ; gcr arg pop 0
                        ;; size=36 bbWeight=0.50 PerfScore 4.00
 G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
             ldp     w13, w14, [fp, #0x10]  // [V40 tmp35], [V41 tmp36]
@@ -107,30 +105,48 @@ G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20
             mov     w21, #3
             b       G_M46478_IG06
                        ;; size=32 bbWeight=1 PerfScore 9.50
-G_M46478_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sxtw    w21, w13
-            cmp     w21, #0
-            ble     G_M46478_IG07
-                       ;; size=12 bbWeight=2 PerfScore 4.00
-G_M46478_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sub     w13, w21, #1
-            cmp     w13, #4
-            bhs     G_M46478_IG17
-            ldr     w14, [x20, w13, UXTW #2]
-            cbz     w14, G_M46478_IG05
-                       ;; size=20 bbWeight=4 PerfScore 24.00
-G_M46478_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            cbnz    w21, G_M46478_IG11
+G_M46478_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, #2
+            b       G_M46478_IG09
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20, #0x08]
+            cbz     w13, G_M46478_IG05
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG07:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG13
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG08:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, #1
+            b       G_M46478_IG12
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20, #0x04]
+            cbz     w13, G_M46478_IG08
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG10:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG13
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG11:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, wzr
+            b       G_M46478_IG13
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20]
+            cbz     w13, G_M46478_IG11
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            cbnz    w21, G_M46478_IG17
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M46478_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             ; byrRegs -[x20]
             movz    x13, #0xD1FFAB1E
             movk    x13, #0xD1FFAB1E LSL #16
             movk    x13, #0xD1FFAB1E LSL #32
             ldr     w13, [x13]
-            tbz     w13, #0, G_M46478_IG18
+            tbz     w13, #0, G_M46478_IG24
                        ;; size=20 bbWeight=0.50 PerfScore 2.75
-G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             movz    x13, #0xD1FFAB1E      // box for <unknown class>:<unknown field>
             movk    x13, #0xD1FFAB1E LSL #16
             movk    x13, #0xD1FFAB1E LSL #32
@@ -151,24 +167,23 @@ G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             movk    xip0, #0xD1FFAB1E LSL #48
             ldr     xip1, [fp, #0x40]  // [V48 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG10
+            beq     G_M46478_IG16
             bl      CORINFO_HELP_FAIL_FAST
             ; byrRegs -[x13-x14]
-            ; gcr arg pop 0
                        ;; size=68 bbWeight=0.50 PerfScore 8.50
-G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x21, [sp, #0x58]
             ldp     x19, x20, [sp, #0x48]
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M46478_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG17:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             cmp     w21, #1
-            bne     G_M46478_IG13
+            bne     G_M46478_IG19
             ldr     w1, [x20]
             cmp     w1, #0
-            ble     G_M46478_IG13
+            ble     G_M46478_IG19
             str     w1, [x19, #0x08]
             ldr     w1, [x19, #0x08]
             ldr     w0, [x20, #0x0C]
@@ -185,18 +200,17 @@ G_M46478_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             movk    xip0, #0xD1FFAB1E LSL #48
             ldr     xip1, [fp, #0x40]  // [V48 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG12
+            beq     G_M46478_IG18
             bl      CORINFO_HELP_FAIL_FAST
             ; byrRegs -[x19-x20]
-            ; gcr arg pop 0
                        ;; size=92 bbWeight=0.50 PerfScore 12.75
-G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG18:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x21, [sp, #0x58]
             ldp     x19, x20, [sp, #0x48]
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG19:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             sxtw    x1, w21
             movz    x0, #0xD1FFAB1E
@@ -204,7 +218,6 @@ G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWARR_1_VC
             ; gcrRegs +[x0]
-            ; gcr arg pop 0
             mov     x15, x0
             ; gcrRegs +[x15]
             mov     x14, x19
@@ -217,30 +230,30 @@ G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     w1, [x20]
             ldr     w2, [x0, #0x08]
             cmp     w2, #0
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x10]
             cmp     w21, #1
-            ble     G_M46478_IG14
+            ble     G_M46478_IG20
             ldr     x0, [x19]
             ldr     w1, [x20, #0x04]
             ldr     w2, [x0, #0x08]
             cmp     w2, #1
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x14]
                        ;; size=88 bbWeight=0.50 PerfScore 14.75
-G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+G_M46478_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
             ; gcrRegs -[x0]
             cmp     w21, #2
-            ble     G_M46478_IG15
+            ble     G_M46478_IG21
             ldr     x0, [x19]
             ; gcrRegs +[x0]
             ldr     w1, [x20, #0x08]
             ldr     w2, [x0, #0x08]
             cmp     w2, #2
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x18]
...

librariestestsnotieredcompilation.run.windows.arm64.Release.mch

+24 (+3.97%) : 118968.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

@@ -3,48 +3,48 @@
 ; FullOpts code
 ; optimized code
 ; fp based frame
-; fully interruptible
+; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] ( 12,  7   )   byref  ->  x19         this single-def
-;  V01 arg1         [V01,T04] (  3,  3   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
+;  V00 this         [V00,T01] ( 12,  7   )   byref  ->  x19         this single-def
+;  V01 arg1         [V01,T02] (  3,  3   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <System.Decimal>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
-;  V03 loc1         [V03,T02] (  9, 12   )     int  ->  x21        
+;  V03 loc1         [V03,T03] (  9,  4.75)     int  ->  x21        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[int]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [fp+0x30]  do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Decimal>
-;  V09 tmp4         [V09,T05] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V10 tmp5         [V10,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V09 tmp4         [V09,T04] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V10 tmp5         [V10,T10] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
-;  V13 tmp8         [V13,T18] (  2,  1   )     int  ->   x0        
-;  V14 tmp9         [V14,T06] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V15 tmp10        [V15,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V16 tmp11        [V16,T07] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V17 tmp12        [V17,T13] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
-;  V18 tmp13        [V18,T14] (  2,  2   )     int  ->   x1         "impAppendStmt"
+;  V13 tmp8         [V13,T17] (  2,  1   )     int  ->   x0        
+;  V14 tmp9         [V14,T05] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V15 tmp10        [V15,T11] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V16 tmp11        [V16,T06] (  3,  3   )     ref  ->   x0         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V17 tmp12        [V17,T12] (  2,  2   )     int  ->   x1         "Strict ordering of exceptions for Array store"
+;  V18 tmp13        [V18,T13] (  2,  2   )     int  ->   x1         "impAppendStmt"
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    ptr
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp18        [V23,T19] (  2,  1   )     int  ->   x0        
+;  V23 tmp18        [V23,T18] (  2,  1   )     int  ->   x0        
 ;  V24 tmp19        [V24    ] (  6, 11   )  struct (16) [fp+0x10]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
-;  V25 tmp20        [V25,T09] (  3,  2.50)     int  ->   x1         "Inline stloc first use temp"
+;  V25 tmp20        [V25,T08] (  3,  2.50)     int  ->   x1         "Inline stloc first use temp"
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Decimal>
 ;* V28 tmp23        [V28    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V29 tmp24        [V29    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V30 tmp25        [V30    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;  V31 tmp26        [V31,T01] ( 12, 12   )   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V32 tmp27        [V32,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp26        [V31,T00] ( 14,  9.50)   byref  ->  x20         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V32 tmp27        [V32,T19] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp28        [V33    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V34 tmp29        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V35 tmp30        [V35,T10] (  2,  2   )   byref  ->  x20         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V36 tmp31        [V36,T21] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
+;  V35 tmp30        [V35,T09] (  2,  2   )   byref  ->  x20         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V36 tmp31        [V36,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V37 tmp32        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V08._flags (fldOffset=0x0)" P-INDEP
 ;* V38 tmp33        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V08._hi32 (fldOffset=0x4)" P-INDEP
 ;* V39 tmp34        [V39    ] (  0,  0   )    long  ->  zero-ref    "field V08._lo64 (fldOffset=0x8)" P-INDEP
@@ -53,12 +53,11 @@
 ;  V42 tmp37        [V42    ] (  3,  4   )    long  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V24._lo64 (fldOffset=0x8)" P-DEP
 ;* V43 tmp38        [V43    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V44 tmp39        [V44    ] (  0,  0   )     int  ->  zero-ref    ptr "field V26._length (fldOffset=0x8)" P-INDEP
-;  V45 tmp40        [V45,T15] (  2,  2   )     int  ->  x13         "field V27._flags (fldOffset=0x0)" P-INDEP
-;  V46 tmp41        [V46,T16] (  2,  2   )     int  ->  x14         "field V27._hi32 (fldOffset=0x4)" P-INDEP
-;  V47 tmp42        [V47,T08] (  3,  3   )    long  ->  x12         "field V27._lo64 (fldOffset=0x8)" P-INDEP
+;  V45 tmp40        [V45,T14] (  2,  2   )     int  ->  x13         "field V27._flags (fldOffset=0x0)" P-INDEP
+;  V46 tmp41        [V46,T15] (  2,  2   )     int  ->  x14         "field V27._hi32 (fldOffset=0x4)" P-INDEP
+;  V47 tmp42        [V47,T07] (  3,  3   )    long  ->  x12         "field V27._lo64 (fldOffset=0x8)" P-INDEP
 ;  V48 GsCookie     [V48    ] (  1,  1   )    long  ->  [fp+0x40]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V49 cse0         [V49,T17] (  3,  1.50)     int  ->   x1         "CSE - moderate"
-;  V50 cse1         [V50,T00] (  4, 14   )     int  ->  x13         "CSE - aggressive"
+;  V49 cse0         [V49,T16] (  3,  1.50)     int  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 56
 
@@ -95,7 +94,6 @@ G_M46478_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-            ; gcr arg pop 0
                        ;; size=36 bbWeight=0.50 PerfScore 4.00
 G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
             ldp     w13, w14, [fp, #0x10]  // [V40 tmp35], [V41 tmp36]
@@ -107,30 +105,48 @@ G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20
             mov     w21, #3
             b       G_M46478_IG06
                        ;; size=32 bbWeight=1 PerfScore 9.50
-G_M46478_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sxtw    w21, w13
-            cmp     w21, #0
-            ble     G_M46478_IG07
-                       ;; size=12 bbWeight=2 PerfScore 4.00
-G_M46478_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            sub     w13, w21, #1
-            cmp     w13, #4
-            bhs     G_M46478_IG17
-            ldr     w14, [x20, w13, UXTW #2]
-            cbz     w14, G_M46478_IG05
-                       ;; size=20 bbWeight=4 PerfScore 24.00
-G_M46478_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            cbnz    w21, G_M46478_IG11
+G_M46478_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, #2
+            b       G_M46478_IG09
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20, #0x08]
+            cbz     w13, G_M46478_IG05
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG07:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG13
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG08:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, #1
+            b       G_M46478_IG12
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20, #0x04]
+            cbz     w13, G_M46478_IG08
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG10:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            b       G_M46478_IG13
+                       ;; size=4 bbWeight=0.12 PerfScore 0.12
+G_M46478_IG11:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            mov     w21, wzr
+            b       G_M46478_IG13
+                       ;; size=8 bbWeight=0.25 PerfScore 0.38
+G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            ldr     w13, [x20]
+            cbz     w13, G_M46478_IG11
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+            cbnz    w21, G_M46478_IG17
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M46478_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             ; byrRegs -[x20]
             movz    x13, #0xD1FFAB1E
             movk    x13, #0xD1FFAB1E LSL #16
             movk    x13, #0xD1FFAB1E LSL #32
             ldr     w13, [x13]
-            tbz     w13, #0, G_M46478_IG18
+            tbz     w13, #0, G_M46478_IG24
                        ;; size=20 bbWeight=0.50 PerfScore 2.75
-G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M46478_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             movz    x13, #0xD1FFAB1E      // box for <unknown class>:<unknown field>
             movk    x13, #0xD1FFAB1E LSL #16
             movk    x13, #0xD1FFAB1E LSL #32
@@ -151,24 +167,23 @@ G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             movk    xip0, #0xD1FFAB1E LSL #48
             ldr     xip1, [fp, #0x40]  // [V48 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG10
+            beq     G_M46478_IG16
             bl      CORINFO_HELP_FAIL_FAST
             ; byrRegs -[x13-x14]
-            ; gcr arg pop 0
                        ;; size=68 bbWeight=0.50 PerfScore 8.50
-G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x21, [sp, #0x58]
             ldp     x19, x20, [sp, #0x48]
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M46478_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG17:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             cmp     w21, #1
-            bne     G_M46478_IG13
+            bne     G_M46478_IG19
             ldr     w1, [x20]
             cmp     w1, #0
-            ble     G_M46478_IG13
+            ble     G_M46478_IG19
             str     w1, [x19, #0x08]
             ldr     w1, [x19, #0x08]
             ldr     w0, [x20, #0x0C]
@@ -185,18 +200,17 @@ G_M46478_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             movk    xip0, #0xD1FFAB1E LSL #48
             ldr     xip1, [fp, #0x40]  // [V48 GsCookie]
             cmp     xip0, xip1
-            beq     G_M46478_IG12
+            beq     G_M46478_IG18
             bl      CORINFO_HELP_FAIL_FAST
             ; byrRegs -[x19-x20]
-            ; gcr arg pop 0
                        ;; size=92 bbWeight=0.50 PerfScore 12.75
-G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M46478_IG18:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x21, [sp, #0x58]
             ldp     x19, x20, [sp, #0x48]
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
+G_M46478_IG19:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref, isz
             ; byrRegs +[x19-x20]
             sxtw    x1, w21
             movz    x0, #0xD1FFAB1E
@@ -204,7 +218,6 @@ G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWARR_1_VC
             ; gcrRegs +[x0]
-            ; gcr arg pop 0
             mov     x15, x0
             ; gcrRegs +[x15]
             mov     x14, x19
@@ -217,30 +230,30 @@ G_M46478_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     w1, [x20]
             ldr     w2, [x0, #0x08]
             cmp     w2, #0
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x10]
             cmp     w21, #1
-            ble     G_M46478_IG14
+            ble     G_M46478_IG20
             ldr     x0, [x19]
             ldr     w1, [x20, #0x04]
             ldr     w2, [x0, #0x08]
             cmp     w2, #1
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x14]
                        ;; size=88 bbWeight=0.50 PerfScore 14.75
-G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
+G_M46478_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
             ; gcrRegs -[x0]
             cmp     w21, #2
-            ble     G_M46478_IG15
+            ble     G_M46478_IG21
             ldr     x0, [x19]
             ; gcrRegs +[x0]
             ldr     w1, [x20, #0x08]
             ldr     w2, [x0, #0x08]
             cmp     w2, #2
-            bls     G_M46478_IG17
+            bls     G_M46478_IG23
             str     w1, [x0, #0x18]
...

smoke_tests.nativeaot.windows.arm64.checked.mch

+64 (+2.96%) : 4605.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)

@@ -13,8 +13,8 @@
 ;  V02 arg2         [V02,T24] (  5, 15   )     ref  ->  x20         class-hnd exact single-def <System.String>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Object]>
 ;  V04 loc0         [V04,T54] (  3,  7   )     ref  ->  x24         class-hnd single-def <<unknown class>>
-;  V05 loc1         [V05,T00] ( 61,455   )     int  ->  x25         ld-addr-op
-;  V06 loc2         [V06,T01] ( 31,260   )  ushort  ->  [fp+0x6C] 
+;  V05 loc1         [V05,T00] ( 71,459   )     int  ->  x25         ld-addr-op
+;  V06 loc2         [V06,T01] ( 35,260   )  ushort  ->  [fp+0x6C] 
 ;  V07 loc3         [V07,T06] ( 12,102   )     int  ->  x28        
 ;  V08 loc4         [V08,T13] (  5, 46   )   ubyte  ->  [fp+0x68] 
 ;* V09 loc5         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op <System.ReadOnlySpan`1[ushort]>
@@ -130,9 +130,9 @@
 ;  V119 tmp98       [V119,T49] (  2,  8   )     int  ->   x2         "field V75._length (fldOffset=0x8)" P-INDEP
 ;  V120 tmp99       [V120,T37] (  3, 12   )     ref  ->   x0         "argument with side effect"
 ;  V121 cse0        [V121,T39] (  3, 12   )     int  ->   x2         "CSE - moderate"
-;  V122 cse1        [V122,T03] ( 18,142   )     int  ->  x26         "CSE - aggressive"
+;  V122 cse1        [V122,T03] ( 20,142   )     int  ->  x26         "CSE - aggressive"
 ;  V123 cse2        [V123,T05] (  7,108   )     int  ->  x27         "CSE - aggressive"
-;  V124 cse3        [V124,T04] ( 15,120   )   byref  ->  x27         "CSE - aggressive"
+;  V124 cse3        [V124,T04] ( 17,120   )   byref  ->  x27         "CSE - aggressive"
 ;  V125 cse4        [V125,T40] (  3, 12   )     int  ->   x0         "CSE - moderate"
 ;  V126 cse5        [V126,T14] ( 20, 40   )     ref  ->  registers   multi-def "CSE - aggressive"
 ;  V127 rat0        [V127,T41] (  3, 12   )    long  ->   x6         "ReplaceWithLclVar is creating a new local variable"
@@ -160,7 +160,7 @@ G_M36935_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             mov     w23, w4
                        ;; size=48 bbWeight=1 PerfScore 9.00
 G_M36935_IG02:        ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=480000 {x19 x22}, byref, isz
-            cbz     x20, G_M36935_IG73
+            cbz     x20, G_M36935_IG77
             cbnz    x21, G_M36935_IG04
                        ;; size=8 bbWeight=1 PerfScore 2.00
 G_M36935_IG03:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=480000 {x19 x22}, byref
@@ -232,7 +232,7 @@ G_M36935_IG10:        ; bbWeight=8, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=4
             ; gcrRegs -[x0]
             ldr     w26, [x20, #0x08]
             cmp     w26, w25
-            bls     G_M36935_IG69
+            bls     G_M36935_IG73
                        ;; size=12 bbWeight=8 PerfScore 36.00
 G_M36935_IG11:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=480000 {x19 x22}, byref, isz
             add     x27, x20, #12
@@ -271,10 +271,10 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=1
             ; gcr arg pop 0
             sxtw    w3, w0
             str     w3, [fp, #0x60]    // [V15 loc11]
-            tbnz    w3, #31, G_M36935_IG70
+            tbnz    w3, #31, G_M36935_IG74
             ldr     w4, [fp, #0x44]    // [V97 tmp76]
             cmp     w3, w4
-            bhi     G_M36935_IG80
+            bhi     G_M36935_IG84
             mov     x1, x28
             ; byrRegs +[x1]
             mov     w2, w3
@@ -286,11 +286,11 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=1
             ldr     w28, [fp, #0x60]   // [V15 loc11]
             add     w25, w25, w28
             cmp     w25, w26
-            bhs     G_M36935_IG72
+            bhs     G_M36935_IG76
             ldrh    w28, [x27, w25, UXTW #2]
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w28, w2
             bne     G_M36935_IG17
@@ -324,7 +324,7 @@ G_M36935_IG16:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=4
 G_M36935_IG17:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             ; byrRegs +[x27]
             cmp     w28, #123
-            bne     G_M36935_IG74
+            bne     G_M36935_IG78
             mov     w28, wzr
             str     wzr, [fp, #0x68]   // [V08 loc4]
             str     xzr, [fp, #0x18]   // [V88 tmp67]
@@ -332,7 +332,7 @@ G_M36935_IG17:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8
             str     wzr, [fp, #0x48]   // [V89 tmp68]
             sub     w0, w25, #1
             cmp     w0, w26
-            bhs     G_M36935_IG72
+            bhs     G_M36935_IG76
             ldrh    w0, [x27, w0, UXTW #2]
             cmp     w0, #123
             beq     G_M36935_IG19
@@ -372,10 +372,10 @@ G_M36935_IG21:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8
             ldr     w2, [fp, #0x6C]    // [V06 loc2]
             sub     w6, w2, #48
             cmp     w6, #10
-            bhs     G_M36935_IG75
+            bhs     G_M36935_IG79
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #125
             beq     G_M36935_IG23
@@ -386,7 +386,7 @@ G_M36935_IG22:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8
 G_M36935_IG23:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref
             ldr     x4, [fp, #0x18]    // [V88 tmp67]
             ; byrRegs +[x4]
-            b       G_M36935_IG40
+            b       G_M36935_IG44
                        ;; size=8 bbWeight=2 PerfScore 6.00
 G_M36935_IG24:        ; bbWeight=8, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             ; byrRegs -[x4]
@@ -396,7 +396,7 @@ G_M36935_IG24:        ; bbWeight=8, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8
             str     w6, [fp, #0x64]    // [V10 loc6]
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
             ldr     w6, [fp, #0x64]    // [V10 loc6]
                        ;; size=36 bbWeight=8 PerfScore 88.00
@@ -410,101 +410,125 @@ G_M36935_IG25:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=
                        ;; size=24 bbWeight=16 PerfScore 56.00
 G_M36935_IG26:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             cmp     w2, #32
-            bne     G_M36935_IG28
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M36935_IG27:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+            bne     G_M36935_IG30
+            tbnz    w25, #31, G_M36935_IG29
+                       ;; size=12 bbWeight=2 PerfScore 5.00
+G_M36935_IG27:        ; bbWeight=15.84, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #32
             beq     G_M36935_IG27
-                       ;; size=24 bbWeight=16 PerfScore 104.00
-G_M36935_IG28:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
-            cmp     w2, #44
-            bne     G_M36935_IG36
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M36935_IG29:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+                       ;; size=24 bbWeight=15.84 PerfScore 102.96
+G_M36935_IG28:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref
+            b       G_M36935_IG30
+                       ;; size=4 bbWeight=2 PerfScore 2.00
+G_M36935_IG29:        ; bbWeight=0.16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #32
             beq     G_M36935_IG29
-                       ;; size=24 bbWeight=16 PerfScore 104.00
+                       ;; size=24 bbWeight=0.16 PerfScore 1.04
 G_M36935_IG30:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+            cmp     w2, #44
+            bne     G_M36935_IG40
+                       ;; size=8 bbWeight=2 PerfScore 3.00
+G_M36935_IG31:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+            add     w25, w25, #1
+            cmp     w26, w25
+            bls     G_M36935_IG80
+            ldrh    w2, [x27, w25, UXTW #2]
+            cmp     w2, #32
+            beq     G_M36935_IG31
+                       ;; size=24 bbWeight=16 PerfScore 104.00
+G_M36935_IG32:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             cmp     w2, #45
-            bne     G_M36935_IG31
+            bne     G_M36935_IG33
             mov     w3, #1
             str     w3, [fp, #0x68]    // [V08 loc4]
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
                        ;; size=32 bbWeight=2 PerfScore 16.00
-G_M36935_IG31:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+G_M36935_IG33:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             sub     w28, w2, #48
             cmp     w28, #10
-            bhs     G_M36935_IG75
+            bhs     G_M36935_IG79
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
-            b       G_M36935_IG33
+            bls     G_M36935_IG80
+            b       G_M36935_IG35
                        ;; size=28 bbWeight=2 PerfScore 10.00
-G_M36935_IG32:        ; bbWeight=8, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+G_M36935_IG34:        ; bbWeight=8, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             mov     w0, #10
             madd    w2, w28, w0, w2
             sub     w28, w2, #48
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
                        ;; size=24 bbWeight=8 PerfScore 40.00
-G_M36935_IG33:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+G_M36935_IG35:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             cmp     w25, w26
-            bhs     G_M36935_IG72
+            bhs     G_M36935_IG76
             ldrh    w2, [x27, w25, UXTW #2]
             sub     w0, w2, #48
             movz    w1, #0xD1FFAB1E
             movk    w1, #15 LSL #16
             cmp     w0, #9
             ccmp    w28, w1, z, ls
-            blt     G_M36935_IG32
+            blt     G_M36935_IG34
                        ;; size=36 bbWeight=16 PerfScore 128.00
-G_M36935_IG34:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+G_M36935_IG36:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             cmp     w2, #32
-            bne     G_M36935_IG36
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M36935_IG35:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+            bne     G_M36935_IG40
+            tbnz    w25, #31, G_M36935_IG39
+                       ;; size=12 bbWeight=2 PerfScore 5.00
+G_M36935_IG37:        ; bbWeight=15.84, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #32
-            beq     G_M36935_IG35
-                       ;; size=24 bbWeight=16 PerfScore 104.00
-G_M36935_IG36:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+            beq     G_M36935_IG37
+                       ;; size=24 bbWeight=15.84 PerfScore 102.96
+G_M36935_IG38:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref
+            b       G_M36935_IG40
+                       ;; size=4 bbWeight=2 PerfScore 2.00
+G_M36935_IG39:        ; bbWeight=0.16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+            add     w25, w25, #1
+            cmp     w26, w25
+            bls     G_M36935_IG80
+            ldrh    w2, [x27, w25, UXTW #2]
+            cmp     w2, #32
+            beq     G_M36935_IG39
+                       ;; size=24 bbWeight=0.16 PerfScore 1.04
+G_M36935_IG40:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             cmp     w2, #125
...

+64 (+3.09%) : 1579.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)

@@ -12,8 +12,8 @@
 ;  V02 arg2         [V02,T24] (  5, 15   )     ref  ->  x20         class-hnd exact single-def <System.String>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Object]>
 ;  V04 loc0         [V04,T50] (  3,  7   )     ref  ->  x24         class-hnd single-def <<unknown class>>
-;  V05 loc1         [V05,T00] ( 61,455   )     int  ->  x25         ld-addr-op
-;  V06 loc2         [V06,T01] ( 31,260   )  ushort  ->  [fp+0x6C] 
+;  V05 loc1         [V05,T00] ( 71,459   )     int  ->  x25         ld-addr-op
+;  V06 loc2         [V06,T01] ( 35,260   )  ushort  ->  [fp+0x6C] 
 ;  V07 loc3         [V07,T06] ( 12,102   )     int  ->  x28        
 ;  V08 loc4         [V08,T13] (  5, 46   )   ubyte  ->  [fp+0x68] 
 ;* V09 loc5         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op <System.ReadOnlySpan`1[ushort]>
@@ -128,9 +128,9 @@
 ;  V118 tmp97       [V118,T42] (  2,  8   )   byref  ->   x1         "field V75._reference (fldOffset=0x0)" P-INDEP
 ;  V119 tmp98       [V119,T45] (  2,  8   )     int  ->   x2         "field V75._length (fldOffset=0x8)" P-INDEP
 ;  V120 cse0        [V120,T37] (  3, 12   )     int  ->   x2         "CSE - moderate"
-;  V121 cse1        [V121,T03] ( 18,142   )     int  ->  x26         "CSE - aggressive"
+;  V121 cse1        [V121,T03] ( 20,142   )     int  ->  x26         "CSE - aggressive"
 ;  V122 cse2        [V122,T05] (  7,108   )     int  ->  x27         "CSE - aggressive"
-;  V123 cse3        [V123,T04] ( 15,120   )   byref  ->  x27         "CSE - aggressive"
+;  V123 cse3        [V123,T04] ( 17,120   )   byref  ->  x27         "CSE - aggressive"
 ;  V124 cse4        [V124,T38] (  3, 12   )     int  ->   x0         "CSE - moderate"
 ;  V125 cse5        [V125,T14] ( 20, 40   )     ref  ->  registers   multi-def "CSE - aggressive"
 ;
@@ -155,7 +155,7 @@ G_M36935_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             mov     w23, w4
                        ;; size=48 bbWeight=1 PerfScore 9.00
 G_M36935_IG02:        ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=480000 {x19 x22}, byref, isz
-            cbz     x20, G_M36935_IG73
+            cbz     x20, G_M36935_IG77
             cbnz    x21, G_M36935_IG04
                        ;; size=8 bbWeight=1 PerfScore 2.00
 G_M36935_IG03:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=480000 {x19 x22}, byref
@@ -227,7 +227,7 @@ G_M36935_IG10:        ; bbWeight=8, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=4
             ; gcrRegs -[x0]
             ldr     w26, [x20, #0x08]
             cmp     w26, w25
-            bls     G_M36935_IG69
+            bls     G_M36935_IG73
                        ;; size=12 bbWeight=8 PerfScore 36.00
 G_M36935_IG11:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=480000 {x19 x22}, byref, isz
             add     x27, x20, #12
@@ -266,10 +266,10 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=1
             ; gcr arg pop 0
             sxtw    w3, w0
             str     w3, [fp, #0x60]    // [V15 loc11]
-            tbnz    w3, #31, G_M36935_IG70
+            tbnz    w3, #31, G_M36935_IG74
             ldr     w4, [fp, #0x44]    // [V97 tmp76]
             cmp     w3, w4
-            bhi     G_M36935_IG80
+            bhi     G_M36935_IG84
             mov     x1, x28
             ; byrRegs +[x1]
             mov     w2, w3
@@ -281,11 +281,11 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=1
             ldr     w28, [fp, #0x60]   // [V15 loc11]
             add     w25, w25, w28
             cmp     w25, w26
-            bhs     G_M36935_IG72
+            bhs     G_M36935_IG76
             ldrh    w28, [x27, w25, UXTW #2]
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w28, w2
             bne     G_M36935_IG17
@@ -319,7 +319,7 @@ G_M36935_IG16:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=4
 G_M36935_IG17:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             ; byrRegs +[x27]
             cmp     w28, #123
-            bne     G_M36935_IG74
+            bne     G_M36935_IG78
             mov     w28, wzr
             str     wzr, [fp, #0x68]   // [V08 loc4]
             str     xzr, [fp, #0x18]   // [V88 tmp67]
@@ -327,7 +327,7 @@ G_M36935_IG17:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8
             str     wzr, [fp, #0x48]   // [V89 tmp68]
             sub     w0, w25, #1
             cmp     w0, w26
-            bhs     G_M36935_IG72
+            bhs     G_M36935_IG76
             ldrh    w0, [x27, w0, UXTW #2]
             cmp     w0, #123
             beq     G_M36935_IG19
@@ -367,10 +367,10 @@ G_M36935_IG21:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8
             ldr     w2, [fp, #0x6C]    // [V06 loc2]
             sub     w6, w2, #48
             cmp     w6, #10
-            bhs     G_M36935_IG75
+            bhs     G_M36935_IG79
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #125
             beq     G_M36935_IG23
@@ -381,7 +381,7 @@ G_M36935_IG22:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8
 G_M36935_IG23:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref
             ldr     x4, [fp, #0x18]    // [V88 tmp67]
             ; byrRegs +[x4]
-            b       G_M36935_IG40
+            b       G_M36935_IG44
                        ;; size=8 bbWeight=2 PerfScore 6.00
 G_M36935_IG24:        ; bbWeight=8, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             ; byrRegs -[x4]
@@ -391,7 +391,7 @@ G_M36935_IG24:        ; bbWeight=8, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8
             str     w6, [fp, #0x64]    // [V10 loc6]
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
             ldr     w6, [fp, #0x64]    // [V10 loc6]
                        ;; size=36 bbWeight=8 PerfScore 88.00
@@ -405,101 +405,125 @@ G_M36935_IG25:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=
                        ;; size=24 bbWeight=16 PerfScore 56.00
 G_M36935_IG26:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             cmp     w2, #32
-            bne     G_M36935_IG28
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M36935_IG27:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+            bne     G_M36935_IG30
+            tbnz    w25, #31, G_M36935_IG29
+                       ;; size=12 bbWeight=2 PerfScore 5.00
+G_M36935_IG27:        ; bbWeight=15.84, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #32
             beq     G_M36935_IG27
-                       ;; size=24 bbWeight=16 PerfScore 104.00
-G_M36935_IG28:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
-            cmp     w2, #44
-            bne     G_M36935_IG36
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M36935_IG29:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+                       ;; size=24 bbWeight=15.84 PerfScore 102.96
+G_M36935_IG28:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref
+            b       G_M36935_IG30
+                       ;; size=4 bbWeight=2 PerfScore 2.00
+G_M36935_IG29:        ; bbWeight=0.16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #32
             beq     G_M36935_IG29
-                       ;; size=24 bbWeight=16 PerfScore 104.00
+                       ;; size=24 bbWeight=0.16 PerfScore 1.04
 G_M36935_IG30:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+            cmp     w2, #44
+            bne     G_M36935_IG40
+                       ;; size=8 bbWeight=2 PerfScore 3.00
+G_M36935_IG31:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+            add     w25, w25, #1
+            cmp     w26, w25
+            bls     G_M36935_IG80
+            ldrh    w2, [x27, w25, UXTW #2]
+            cmp     w2, #32
+            beq     G_M36935_IG31
+                       ;; size=24 bbWeight=16 PerfScore 104.00
+G_M36935_IG32:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             cmp     w2, #45
-            bne     G_M36935_IG31
+            bne     G_M36935_IG33
             mov     w3, #1
             str     w3, [fp, #0x68]    // [V08 loc4]
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
                        ;; size=32 bbWeight=2 PerfScore 16.00
-G_M36935_IG31:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+G_M36935_IG33:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             sub     w28, w2, #48
             cmp     w28, #10
-            bhs     G_M36935_IG75
+            bhs     G_M36935_IG79
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
-            b       G_M36935_IG33
+            bls     G_M36935_IG80
+            b       G_M36935_IG35
                        ;; size=28 bbWeight=2 PerfScore 10.00
-G_M36935_IG32:        ; bbWeight=8, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+G_M36935_IG34:        ; bbWeight=8, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             mov     w0, #10
             madd    w2, w28, w0, w2
             sub     w28, w2, #48
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
                        ;; size=24 bbWeight=8 PerfScore 40.00
-G_M36935_IG33:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+G_M36935_IG35:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             cmp     w25, w26
-            bhs     G_M36935_IG72
+            bhs     G_M36935_IG76
             ldrh    w2, [x27, w25, UXTW #2]
             sub     w0, w2, #48
             movz    w1, #0xD1FFAB1E
             movk    w1, #15 LSL #16
             cmp     w0, #9
             ccmp    w28, w1, z, ls
-            blt     G_M36935_IG32
+            blt     G_M36935_IG34
                        ;; size=36 bbWeight=16 PerfScore 128.00
-G_M36935_IG34:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+G_M36935_IG36:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             cmp     w2, #32
-            bne     G_M36935_IG36
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M36935_IG35:        ; bbWeight=16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+            bne     G_M36935_IG40
+            tbnz    w25, #31, G_M36935_IG39
+                       ;; size=12 bbWeight=2 PerfScore 5.00
+G_M36935_IG37:        ; bbWeight=15.84, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M36935_IG76
+            bls     G_M36935_IG80
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #32
-            beq     G_M36935_IG35
-                       ;; size=24 bbWeight=16 PerfScore 104.00
-G_M36935_IG36:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+            beq     G_M36935_IG37
+                       ;; size=24 bbWeight=15.84 PerfScore 102.96
+G_M36935_IG38:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref
+            b       G_M36935_IG40
+                       ;; size=4 bbWeight=2 PerfScore 2.00
+G_M36935_IG39:        ; bbWeight=0.16, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
+            add     w25, w25, #1
+            cmp     w26, w25
+            bls     G_M36935_IG80
+            ldrh    w2, [x27, w25, UXTW #2]
+            cmp     w2, #32
+            beq     G_M36935_IG39
+                       ;; size=24 bbWeight=0.16 PerfScore 1.04
+G_M36935_IG40:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8480000 {x19 x22 x27}, byref, isz
             cmp     w2, #125
...

+64 (+3.26%) : 6510.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)

@@ -13,8 +13,8 @@
 ;  V02 arg2         [V02,T19] (  5, 15   )     ref  ->  x20         class-hnd exact single-def <System.String>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Object]>
 ;  V04 loc0         [V04,T53] (  3,  7   )     ref  ->  x24         class-hnd single-def <<unknown class>>
-;  V05 loc1         [V05,T00] ( 61,455   )     int  ->  x25         ld-addr-op
-;  V06 loc2         [V06,T01] ( 30,260   )  ushort  ->  [fp+0x5C] 
+;  V05 loc1         [V05,T00] ( 71,459   )     int  ->  x25         ld-addr-op
+;  V06 loc2         [V06,T01] ( 34,260   )  ushort  ->  [fp+0x5C] 
 ;  V07 loc3         [V07,T05] ( 12, 74   )     int  ->  x28        
 ;  V08 loc4         [V08,T09] (  5, 46   )   ubyte  ->  [fp+0x58] 
 ;* V09 loc5         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op <System.ReadOnlySpan`1[ushort]>
@@ -136,8 +136,8 @@
 ;  V125 cse1        [V125,T35] (  3, 12   )     ref  ->  x15         "CSE - moderate"
 ;  V126 cse2        [V126,T38] (  3, 12   )     int  ->  x10         "CSE - moderate"
 ;  V127 cse3        [V127,T36] (  3, 12   )     ref  ->   x0         "CSE - moderate"
-;  V128 cse4        [V128,T02] ( 18,142   )     int  ->  x26         "CSE - aggressive"
-;  V129 cse5        [V129,T03] ( 15,120   )   byref  ->  x27         "CSE - aggressive"
+;  V128 cse4        [V128,T02] ( 20,142   )     int  ->  x26         "CSE - aggressive"
+;  V129 cse5        [V129,T03] ( 17,120   )   byref  ->  x27         "CSE - aggressive"
 ;  V130 cse6        [V130,T06] (  6, 60   )     int  ->  x27         "CSE - aggressive"
 ;  V131 cse7        [V131,T39] (  3, 12   )     int  ->   x0         "CSE - moderate"
 ;  V132 cse8        [V132,T10] ( 17, 34   )     ref  ->  registers   multi-def "CSE - aggressive"
@@ -166,7 +166,7 @@ G_M4730_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             mov     w23, w4
                        ;; size=48 bbWeight=1 PerfScore 9.00
 G_M4730_IG02:        ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=400000 {x22}, byref, isz
-            cbz     x20, G_M4730_IG65
+            cbz     x20, G_M4730_IG69
             cbnz    x21, G_M4730_IG04
                        ;; size=8 bbWeight=1 PerfScore 2.00
 G_M4730_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=400000 {x22}, byref
@@ -238,7 +238,7 @@ G_M4730_IG10:        ; bbWeight=8, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             ; gcrRegs -[x0]
             ldr     w26, [x20, #0x08]
             cmp     w26, w25
-            bls     G_M4730_IG60
+            bls     G_M4730_IG64
                        ;; size=12 bbWeight=8 PerfScore 36.00
 G_M4730_IG11:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=400000 {x22}, byref, isz
             add     x27, x20, #12
@@ -277,10 +277,10 @@ G_M4730_IG13:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             ; gcr arg pop 0
             sxtw    w3, w0
             str     w3, [fp, #0x50]    // [V15 loc11]
-            tbnz    w3, #31, G_M4730_IG62
+            tbnz    w3, #31, G_M4730_IG66
             ldr     w4, [fp, #0x38]    // [V96 tmp74]
             cmp     w3, w4
-            bhi     G_M4730_IG72
+            bhi     G_M4730_IG76
             mov     x0, x19
             ; gcrRegs +[x0]
             mov     x1, x28
@@ -293,11 +293,11 @@ G_M4730_IG13:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             ldr     w28, [fp, #0x50]   // [V15 loc11]
             add     w25, w25, w28
             cmp     w25, w26
-            bhs     G_M4730_IG64
+            bhs     G_M4730_IG68
             ldrh    w28, [x27, w25, UXTW #2]
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w28, w2
             bne     G_M4730_IG14
@@ -314,7 +314,7 @@ G_M4730_IG14:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             ; gcrRegs -[x0]
             ; byrRegs +[x27]
             cmp     w28, #123
-            bne     G_M4730_IG66
+            bne     G_M4730_IG70
             mov     w28, wzr
             str     wzr, [fp, #0x58]   // [V08 loc4]
             str     xzr, [fp, #0x18]   // [V85 tmp63]
@@ -322,7 +322,7 @@ G_M4730_IG14:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             str     wzr, [fp, #0x3C]   // [V86 tmp64]
             sub     w0, w25, #1
             cmp     w0, w26
-            bhs     G_M4730_IG64
+            bhs     G_M4730_IG68
             ldrh    w0, [x27, w0, UXTW #2]
             cmp     w0, #123
             beq     G_M4730_IG16
@@ -362,10 +362,10 @@ G_M4730_IG18:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             ldr     w2, [fp, #0x5C]    // [V06 loc2]
             sub     w6, w2, #48
             cmp     w6, #10
-            bhs     G_M4730_IG67
+            bhs     G_M4730_IG71
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #125
             beq     G_M4730_IG20
@@ -376,7 +376,7 @@ G_M4730_IG19:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
 G_M4730_IG20:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref
             ldr     x4, [fp, #0x18]    // [V85 tmp63]
             ; byrRegs +[x4]
-            b       G_M4730_IG37
+            b       G_M4730_IG41
                        ;; size=8 bbWeight=2 PerfScore 6.00
 G_M4730_IG21:        ; bbWeight=8, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             ; byrRegs -[x4]
@@ -386,7 +386,7 @@ G_M4730_IG21:        ; bbWeight=8, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             str     w6, [fp, #0x54]    // [V10 loc6]
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
             ldr     w6, [fp, #0x54]    // [V10 loc6]
                        ;; size=36 bbWeight=8 PerfScore 88.00
@@ -400,101 +400,125 @@ G_M4730_IG22:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
                        ;; size=24 bbWeight=16 PerfScore 56.00
 G_M4730_IG23:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             cmp     w2, #32
-            bne     G_M4730_IG25
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M4730_IG24:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+            bne     G_M4730_IG27
+            tbnz    w25, #31, G_M4730_IG26
+                       ;; size=12 bbWeight=2 PerfScore 5.00
+G_M4730_IG24:        ; bbWeight=15.84, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #32
             beq     G_M4730_IG24
-                       ;; size=24 bbWeight=16 PerfScore 104.00
-G_M4730_IG25:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
-            cmp     w2, #44
-            bne     G_M4730_IG33
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M4730_IG26:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+                       ;; size=24 bbWeight=15.84 PerfScore 102.96
+G_M4730_IG25:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref
+            b       G_M4730_IG27
+                       ;; size=4 bbWeight=2 PerfScore 2.00
+G_M4730_IG26:        ; bbWeight=0.16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #32
             beq     G_M4730_IG26
-                       ;; size=24 bbWeight=16 PerfScore 104.00
+                       ;; size=24 bbWeight=0.16 PerfScore 1.04
 G_M4730_IG27:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+            cmp     w2, #44
+            bne     G_M4730_IG37
+                       ;; size=8 bbWeight=2 PerfScore 3.00
+G_M4730_IG28:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+            add     w25, w25, #1
+            cmp     w26, w25
+            bls     G_M4730_IG72
+            ldrh    w2, [x27, w25, UXTW #2]
+            cmp     w2, #32
+            beq     G_M4730_IG28
+                       ;; size=24 bbWeight=16 PerfScore 104.00
+G_M4730_IG29:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             cmp     w2, #45
-            bne     G_M4730_IG28
+            bne     G_M4730_IG30
             mov     w3, #1
             str     w3, [fp, #0x58]    // [V08 loc4]
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
                        ;; size=32 bbWeight=2 PerfScore 16.00
-G_M4730_IG28:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+G_M4730_IG30:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             sub     w28, w2, #48
             cmp     w28, #10
-            bhs     G_M4730_IG67
+            bhs     G_M4730_IG71
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
-            b       G_M4730_IG30
+            bls     G_M4730_IG72
+            b       G_M4730_IG32
                        ;; size=28 bbWeight=2 PerfScore 10.00
-G_M4730_IG29:        ; bbWeight=8, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+G_M4730_IG31:        ; bbWeight=8, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             mov     w0, #10
             madd    w2, w28, w0, w2
             sub     w28, w2, #48
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
                        ;; size=24 bbWeight=8 PerfScore 40.00
-G_M4730_IG30:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+G_M4730_IG32:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             cmp     w25, w26
-            bhs     G_M4730_IG64
+            bhs     G_M4730_IG68
             ldrh    w2, [x27, w25, UXTW #2]
             sub     w0, w2, #48
             movz    w1, #0xD1FFAB1E
             movk    w1, #15 LSL #16
             cmp     w0, #9
             ccmp    w28, w1, z, ls
-            blt     G_M4730_IG29
+            blt     G_M4730_IG31
                        ;; size=36 bbWeight=16 PerfScore 128.00
-G_M4730_IG31:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+G_M4730_IG33:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             cmp     w2, #32
-            bne     G_M4730_IG33
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M4730_IG32:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+            bne     G_M4730_IG37
+            tbnz    w25, #31, G_M4730_IG36
+                       ;; size=12 bbWeight=2 PerfScore 5.00
+G_M4730_IG34:        ; bbWeight=15.84, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #32
-            beq     G_M4730_IG32
-                       ;; size=24 bbWeight=16 PerfScore 104.00
-G_M4730_IG33:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+            beq     G_M4730_IG34
+                       ;; size=24 bbWeight=15.84 PerfScore 102.96
+G_M4730_IG35:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref
+            b       G_M4730_IG37
+                       ;; size=4 bbWeight=2 PerfScore 2.00
+G_M4730_IG36:        ; bbWeight=0.16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+            add     w25, w25, #1
+            cmp     w26, w25
+            bls     G_M4730_IG72
+            ldrh    w2, [x27, w25, UXTW #2]
+            cmp     w2, #32
+            beq     G_M4730_IG36
+                       ;; size=24 bbWeight=0.16 PerfScore 1.04
+G_M4730_IG37:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             cmp     w2, #125
             ldr     x4, [fp, #0x18]    // [V85 tmp63]
...

+64 (+3.41%) : 11754.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)

@@ -12,8 +12,8 @@
 ;  V02 arg2         [V02,T19] (  5, 15   )     ref  ->  x20         class-hnd exact single-def <System.String>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Object]>
 ;  V04 loc0         [V04,T49] (  3,  7   )     ref  ->  x24         class-hnd single-def <<unknown class>>
-;  V05 loc1         [V05,T00] ( 61,455   )     int  ->  x25         ld-addr-op
-;  V06 loc2         [V06,T01] ( 30,260   )  ushort  ->  [fp+0x5C] 
+;  V05 loc1         [V05,T00] ( 71,459   )     int  ->  x25         ld-addr-op
+;  V06 loc2         [V06,T01] ( 34,260   )  ushort  ->  [fp+0x5C] 
 ;  V07 loc3         [V07,T05] ( 12, 74   )     int  ->  x28        
 ;  V08 loc4         [V08,T09] (  5, 46   )   ubyte  ->  [fp+0x58] 
 ;* V09 loc5         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op <System.ReadOnlySpan`1[ushort]>
@@ -134,8 +134,8 @@
 ;  V124 cse1        [V124,T33] (  3, 12   )     ref  ->   x4         "CSE - moderate"
 ;  V125 cse2        [V125,T36] (  3, 12   )     int  ->   x1         "CSE - moderate"
 ;  V126 cse3        [V126,T34] (  3, 12   )     ref  ->   x0         "CSE - moderate"
-;  V127 cse4        [V127,T02] ( 18,142   )     int  ->  x26         "CSE - aggressive"
-;  V128 cse5        [V128,T03] ( 15,120   )   byref  ->  x27         "CSE - aggressive"
+;  V127 cse4        [V127,T02] ( 20,142   )     int  ->  x26         "CSE - aggressive"
+;  V128 cse5        [V128,T03] ( 17,120   )   byref  ->  x27         "CSE - aggressive"
 ;  V129 cse6        [V129,T06] (  6, 60   )     int  ->  x27         "CSE - aggressive"
 ;  V130 cse7        [V130,T37] (  3, 12   )     int  ->   x0         "CSE - moderate"
 ;  V131 cse8        [V131,T10] ( 17, 34   )     ref  ->  registers   multi-def "CSE - aggressive"
@@ -161,7 +161,7 @@ G_M4730_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             mov     w23, w4
                        ;; size=48 bbWeight=1 PerfScore 9.00
 G_M4730_IG02:        ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=400000 {x22}, byref, isz
-            cbz     x20, G_M4730_IG65
+            cbz     x20, G_M4730_IG69
             cbnz    x21, G_M4730_IG04
                        ;; size=8 bbWeight=1 PerfScore 2.00
 G_M4730_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=400000 {x22}, byref
@@ -233,7 +233,7 @@ G_M4730_IG10:        ; bbWeight=8, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             ; gcrRegs -[x0]
             ldr     w26, [x20, #0x08]
             cmp     w26, w25
-            bls     G_M4730_IG60
+            bls     G_M4730_IG64
                        ;; size=12 bbWeight=8 PerfScore 36.00
 G_M4730_IG11:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=400000 {x22}, byref, isz
             add     x27, x20, #12
@@ -272,10 +272,10 @@ G_M4730_IG13:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             ; gcr arg pop 0
             sxtw    w3, w0
             str     w3, [fp, #0x50]    // [V15 loc11]
-            tbnz    w3, #31, G_M4730_IG62
+            tbnz    w3, #31, G_M4730_IG66
             ldr     w4, [fp, #0x38]    // [V96 tmp74]
             cmp     w3, w4
-            bhi     G_M4730_IG72
+            bhi     G_M4730_IG76
             mov     x0, x19
             ; gcrRegs +[x0]
             mov     x1, x28
@@ -288,11 +288,11 @@ G_M4730_IG13:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             ldr     w28, [fp, #0x50]   // [V15 loc11]
             add     w25, w25, w28
             cmp     w25, w26
-            bhs     G_M4730_IG64
+            bhs     G_M4730_IG68
             ldrh    w28, [x27, w25, UXTW #2]
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w28, w2
             bne     G_M4730_IG14
@@ -309,7 +309,7 @@ G_M4730_IG14:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             ; gcrRegs -[x0]
             ; byrRegs +[x27]
             cmp     w28, #123
-            bne     G_M4730_IG66
+            bne     G_M4730_IG70
             mov     w28, wzr
             str     wzr, [fp, #0x58]   // [V08 loc4]
             str     xzr, [fp, #0x18]   // [V85 tmp63]
@@ -317,7 +317,7 @@ G_M4730_IG14:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             str     wzr, [fp, #0x3C]   // [V86 tmp64]
             sub     w0, w25, #1
             cmp     w0, w26
-            bhs     G_M4730_IG64
+            bhs     G_M4730_IG68
             ldrh    w0, [x27, w0, UXTW #2]
             cmp     w0, #123
             beq     G_M4730_IG16
@@ -357,10 +357,10 @@ G_M4730_IG18:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             ldr     w2, [fp, #0x5C]    // [V06 loc2]
             sub     w6, w2, #48
             cmp     w6, #10
-            bhs     G_M4730_IG67
+            bhs     G_M4730_IG71
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #125
             beq     G_M4730_IG20
@@ -371,7 +371,7 @@ G_M4730_IG19:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
 G_M4730_IG20:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref
             ldr     x4, [fp, #0x18]    // [V85 tmp63]
             ; byrRegs +[x4]
-            b       G_M4730_IG37
+            b       G_M4730_IG41
                        ;; size=8 bbWeight=2 PerfScore 6.00
 G_M4730_IG21:        ; bbWeight=8, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             ; byrRegs -[x4]
@@ -381,7 +381,7 @@ G_M4730_IG21:        ; bbWeight=8, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefReg
             str     w6, [fp, #0x54]    // [V10 loc6]
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
             ldr     w6, [fp, #0x54]    // [V10 loc6]
                        ;; size=36 bbWeight=8 PerfScore 88.00
@@ -395,101 +395,125 @@ G_M4730_IG22:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
                        ;; size=24 bbWeight=16 PerfScore 56.00
 G_M4730_IG23:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             cmp     w2, #32
-            bne     G_M4730_IG25
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M4730_IG24:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+            bne     G_M4730_IG27
+            tbnz    w25, #31, G_M4730_IG26
+                       ;; size=12 bbWeight=2 PerfScore 5.00
+G_M4730_IG24:        ; bbWeight=15.84, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #32
             beq     G_M4730_IG24
-                       ;; size=24 bbWeight=16 PerfScore 104.00
-G_M4730_IG25:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
-            cmp     w2, #44
-            bne     G_M4730_IG33
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M4730_IG26:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+                       ;; size=24 bbWeight=15.84 PerfScore 102.96
+G_M4730_IG25:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref
+            b       G_M4730_IG27
+                       ;; size=4 bbWeight=2 PerfScore 2.00
+G_M4730_IG26:        ; bbWeight=0.16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #32
             beq     G_M4730_IG26
-                       ;; size=24 bbWeight=16 PerfScore 104.00
+                       ;; size=24 bbWeight=0.16 PerfScore 1.04
 G_M4730_IG27:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+            cmp     w2, #44
+            bne     G_M4730_IG37
+                       ;; size=8 bbWeight=2 PerfScore 3.00
+G_M4730_IG28:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+            add     w25, w25, #1
+            cmp     w26, w25
+            bls     G_M4730_IG72
+            ldrh    w2, [x27, w25, UXTW #2]
+            cmp     w2, #32
+            beq     G_M4730_IG28
+                       ;; size=24 bbWeight=16 PerfScore 104.00
+G_M4730_IG29:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             cmp     w2, #45
-            bne     G_M4730_IG28
+            bne     G_M4730_IG30
             mov     w3, #1
             str     w3, [fp, #0x58]    // [V08 loc4]
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
                        ;; size=32 bbWeight=2 PerfScore 16.00
-G_M4730_IG28:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+G_M4730_IG30:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             sub     w28, w2, #48
             cmp     w28, #10
-            bhs     G_M4730_IG67
+            bhs     G_M4730_IG71
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
-            b       G_M4730_IG30
+            bls     G_M4730_IG72
+            b       G_M4730_IG32
                        ;; size=28 bbWeight=2 PerfScore 10.00
-G_M4730_IG29:        ; bbWeight=8, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+G_M4730_IG31:        ; bbWeight=8, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             mov     w0, #10
             madd    w2, w28, w0, w2
             sub     w28, w2, #48
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
                        ;; size=24 bbWeight=8 PerfScore 40.00
-G_M4730_IG30:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+G_M4730_IG32:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             cmp     w25, w26
-            bhs     G_M4730_IG64
+            bhs     G_M4730_IG68
             ldrh    w2, [x27, w25, UXTW #2]
             sub     w0, w2, #48
             movz    w1, #0xD1FFAB1E
             movk    w1, #15 LSL #16
             cmp     w0, #9
             ccmp    w28, w1, z, ls
-            blt     G_M4730_IG29
+            blt     G_M4730_IG31
                        ;; size=36 bbWeight=16 PerfScore 128.00
-G_M4730_IG31:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+G_M4730_IG33:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             cmp     w2, #32
-            bne     G_M4730_IG33
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M4730_IG32:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+            bne     G_M4730_IG37
+            tbnz    w25, #31, G_M4730_IG36
+                       ;; size=12 bbWeight=2 PerfScore 5.00
+G_M4730_IG34:        ; bbWeight=15.84, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             add     w25, w25, #1
             cmp     w26, w25
-            bls     G_M4730_IG68
+            bls     G_M4730_IG72
             ldrh    w2, [x27, w25, UXTW #2]
             cmp     w2, #32
-            beq     G_M4730_IG32
-                       ;; size=24 bbWeight=16 PerfScore 104.00
-G_M4730_IG33:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+            beq     G_M4730_IG34
+                       ;; size=24 bbWeight=15.84 PerfScore 102.96
+G_M4730_IG35:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref
+            b       G_M4730_IG37
+                       ;; size=4 bbWeight=2 PerfScore 2.00
+G_M4730_IG36:        ; bbWeight=0.16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
+            add     w25, w25, #1
+            cmp     w26, w25
+            bls     G_M4730_IG72
+            ldrh    w2, [x27, w25, UXTW #2]
+            cmp     w2, #32
+            beq     G_M4730_IG36
+                       ;; size=24 bbWeight=0.16 PerfScore 1.04
+G_M4730_IG37:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=8400000 {x22 x27}, byref, isz
             cmp     w2, #125
             ldr     x4, [fp, #0x18]    // [V85 tmp63]
...

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.windows.arm64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.windows.arm64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_tiered.windows.arm64.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.windows.arm64.checked.mch 109 15 94 0 -308 +20,092
libraries.crossgen2.windows.arm64.checked.mch 6 5 1 0 -396 +12
libraries.pmi.windows.arm64.checked.mch 7 5 2 0 -296 +356
libraries_tests.run.windows.arm64.Release.mch 587 150 437 0 -5,092 +718,212
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 11 9 2 0 -1,060 +172
realworld.run.windows.arm64.checked.mch 0 0 0 0 -0 +0
smoke_tests.nativeaot.windows.arm64.checked.mch 4 0 4 0 -0 +256
724 184 540 0 -7,152 +739,100

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.arm64.checked.mch 24,449 4 24,445 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.windows.arm64.checked.mch 98,319 48,543 49,776 114 (0.12%) 114 (0.12%)
benchmarks.run_tiered.windows.arm64.checked.mch 48,505 36,685 11,820 0 (0.00%) 0 (0.00%)
coreclr_tests.run.windows.arm64.checked.mch 595,369 362,737 232,632 315 (0.05%) 316 (0.05%)
libraries.crossgen2.windows.arm64.checked.mch 243,430 15 243,415 0 (0.00%) 0 (0.00%)
libraries.pmi.windows.arm64.checked.mch 304,053 6 304,047 0 (0.00%) 0 (0.00%)
libraries_tests.run.windows.arm64.Release.mch 630,491 461,984 168,507 2,158 (0.34%) 2,171 (0.34%)
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 316,301 21,559 294,742 0 (0.00%) 0 (0.00%)
realworld.run.windows.arm64.checked.mch 33,195 3 33,192 0 (0.00%) 0 (0.00%)
smoke_tests.nativeaot.windows.arm64.checked.mch 24,181 7 24,174 0 (0.00%) 0 (0.00%)
2,318,293 931,543 1,386,750 2,587 (0.11%) 2,601 (0.11%)

jit-analyze output

coreclr_tests.run.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 495323964 (overridden on cmd)
Total bytes of diff: 495343748 (overridden on cmd)
Total bytes of delta: 19784 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         904 : 2551.dasm (35.59 % of base)
         540 : 147869.dasm (17.88 % of base)
         540 : 253005.dasm (18.22 % of base)
         536 : 199352.dasm (15.86 % of base)
         532 : 36668.dasm (15.89 % of base)
         528 : 99870.dasm (17.72 % of base)
         528 : 140240.dasm (16.02 % of base)
         520 : 31074.dasm (14.72 % of base)
         204 : 1926.dasm (22.27 % of base)
         200 : 149597.dasm (10.02 % of base)
         200 : 377448.dasm (10.10 % of base)
         200 : 377491.dasm (10.10 % of base)
         200 : 226527.dasm (10.02 % of base)
         200 : 377566.dasm (10.10 % of base)
         200 : 380117.dasm (10.02 % of base)
         200 : 391008.dasm (10.02 % of base)
         200 : 1429.dasm (10.02 % of base)
         200 : 269985.dasm (9.88 % of base)
         200 : 357948.dasm (10.02 % of base)
         184 : 257857.dasm (9.47 % of base)

Top file improvements (bytes):
         -28 : 218315.dasm (-3.21 % of base)
         -28 : 24991.dasm (-2.42 % of base)
         -28 : 382578.dasm (-2.44 % of base)
         -28 : 383302.dasm (-2.48 % of base)
         -28 : 145537.dasm (-2.42 % of base)
         -28 : 252784.dasm (-2.42 % of base)
         -28 : 296826.dasm (-2.47 % of base)
         -28 : 383911.dasm (-2.47 % of base)
         -28 : 391056.dasm (-2.47 % of base)
         -16 : 1376.dasm (-1.39 % of base)
         -12 : 592166.dasm (-0.71 % of base)
         -12 : 193666.dasm (-1.04 % of base)
          -8 : 528182.dasm (-0.36 % of base)
          -4 : 63892.dasm (-0.19 % of base)
          -4 : 242828.dasm (-0.19 % of base)

41 total files with Code Size differences (15 improved, 26 regressed), 0 unchanged.

Top method regressions (bytes):
         904 (35.59 % of base) : 2551.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (Instrumented Tier1)
         540 (17.88 % of base) : 147869.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         540 (18.22 % of base) : 253005.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         536 (15.86 % of base) : 199352.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         532 (15.89 % of base) : 36668.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         528 (17.72 % of base) : 99870.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         528 (16.02 % of base) : 140240.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         520 (14.72 % of base) : 31074.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         204 (22.27 % of base) : 1926.dasm - System.IO.PathInternal:NormalizeDirectorySeparators(System.String):System.String (Instrumented Tier1)
         200 (10.02 % of base) : 149597.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         200 (10.10 % of base) : 377448.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         200 (10.10 % of base) : 377491.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         200 (10.02 % of base) : 226527.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         200 (10.10 % of base) : 377566.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         200 (10.02 % of base) : 380117.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         200 (10.02 % of base) : 391008.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         200 (10.02 % of base) : 1429.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         200 (9.88 % of base) : 269985.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         200 (10.02 % of base) : 357948.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         184 (9.47 % of base) : 257857.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)

Top method improvements (bytes):
         -28 (-3.21 % of base) : 218315.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.42 % of base) : 24991.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.44 % of base) : 382578.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.48 % of base) : 383302.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.42 % of base) : 145537.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.42 % of base) : 252784.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 296826.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 383911.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 391056.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -16 (-1.39 % of base) : 1376.dasm - System.RuntimeType:GetConstructorCandidates(System.String,int,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.ConstructorInfo]:this (Instrumented Tier1)
         -12 (-0.71 % of base) : 592166.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
         -12 (-1.04 % of base) : 193666.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
          -8 (-0.36 % of base) : 528182.dasm - JitTest_array1_refany_il.Test:Main():int (FullOpts)
          -4 (-0.19 % of base) : 242828.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Instrumented Tier1)
          -4 (-0.19 % of base) : 63892.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Trim():ubyte:this (Instrumented Tier1)

Top method regressions (percentages):
         904 (35.59 % of base) : 2551.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (Instrumented Tier1)
         204 (22.27 % of base) : 1926.dasm - System.IO.PathInternal:NormalizeDirectorySeparators(System.String):System.String (Instrumented Tier1)
         540 (18.22 % of base) : 253005.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         540 (17.88 % of base) : 147869.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         528 (17.72 % of base) : 99870.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         528 (16.02 % of base) : 140240.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         532 (15.89 % of base) : 36668.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         536 (15.86 % of base) : 199352.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         520 (14.72 % of base) : 31074.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         200 (10.10 % of base) : 377448.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         200 (10.10 % of base) : 377491.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         200 (10.10 % of base) : 377566.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         200 (10.02 % of base) : 149597.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         200 (10.02 % of base) : 226527.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         200 (10.02 % of base) : 380117.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         200 (10.02 % of base) : 391008.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         200 (10.02 % of base) : 1429.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         200 (10.02 % of base) : 357948.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         200 (9.88 % of base) : 269985.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         184 (9.54 % of base) : 515416.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)

Top method improvements (percentages):
         -28 (-3.21 % of base) : 218315.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.48 % of base) : 383302.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 296826.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 383911.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.47 % of base) : 391056.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.44 % of base) : 382578.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.42 % of base) : 24991.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.42 % of base) : 145537.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-2.42 % of base) : 252784.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -16 (-1.39 % of base) : 1376.dasm - System.RuntimeType:GetConstructorCandidates(System.String,int,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.ConstructorInfo]:this (Instrumented Tier1)
         -12 (-1.04 % of base) : 193666.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -12 (-0.71 % of base) : 592166.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
          -8 (-0.36 % of base) : 528182.dasm - JitTest_array1_refany_il.Test:Main():int (FullOpts)
          -4 (-0.19 % of base) : 242828.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Instrumented Tier1)
          -4 (-0.19 % of base) : 63892.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Trim():ubyte:this (Instrumented Tier1)


libraries.crossgen2.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 58963476 (overridden on cmd)
Total bytes of diff: 58963092 (overridden on cmd)
Total bytes of delta: -384 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          12 : 213941.dasm (1.80 % of base)

Top file improvements (bytes):
        -220 : 96547.dasm (-15.15 % of base)
         -60 : 10374.dasm (-11.03 % of base)
         -56 : 189810.dasm (-13.86 % of base)
         -56 : 217819.dasm (-13.86 % of base)
          -4 : 219407.dasm (-0.19 % of base)

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

Top method regressions (bytes):
          12 (1.80 % of base) : 213941.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (bytes):
        -220 (-15.15 % of base) : 96547.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]],int):this (FullOpts)
         -60 (-11.03 % of base) : 10374.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (FullOpts)
         -56 (-13.86 % of base) : 217819.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -56 (-13.86 % of base) : 189810.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
          -4 (-0.19 % of base) : 219407.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

Top method regressions (percentages):
          12 (1.80 % of base) : 213941.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (percentages):
        -220 (-15.15 % of base) : 96547.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]],int):this (FullOpts)
         -56 (-13.86 % of base) : 217819.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -56 (-13.86 % of base) : 189810.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -60 (-11.03 % of base) : 10374.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (FullOpts)
          -4 (-0.19 % of base) : 219407.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

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


libraries.pmi.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 79567996 (overridden on cmd)
Total bytes of diff: 79568056 (overridden on cmd)
Total bytes of delta: 60 (0.00 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         332 : 243736.dasm (2.71 % of base)
          24 : 291942.dasm (3.97 % of base)

Top file improvements (bytes):
        -168 : 98933.dasm (-14.53 % of base)
         -56 : 203164.dasm (-11.97 % of base)
         -56 : 250402.dasm (-11.97 % of base)
         -12 : 232696.dasm (-0.71 % of base)
          -4 : 291023.dasm (-0.20 % of base)

7 total files with Code Size differences (5 improved, 2 regressed), 0 unchanged.

Top method regressions (bytes):
         332 (2.71 % of base) : 243736.dasm - R2RDump.TextDumper:DumpSectionContents(ILCompiler.Reflection.ReadyToRun.ReadyToRunSection):this (FullOpts)
          24 (3.97 % of base) : 291942.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (bytes):
        -168 (-14.53 % of base) : 98933.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]],int):this (FullOpts)
         -56 (-11.97 % of base) : 250402.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -56 (-11.97 % of base) : 203164.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -12 (-0.71 % of base) : 232696.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
          -4 (-0.20 % of base) : 291023.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

Top method regressions (percentages):
          24 (3.97 % of base) : 291942.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)
         332 (2.71 % of base) : 243736.dasm - R2RDump.TextDumper:DumpSectionContents(ILCompiler.Reflection.ReadyToRun.ReadyToRunSection):this (FullOpts)

Top method improvements (percentages):
        -168 (-14.53 % of base) : 98933.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]],int):this (FullOpts)
         -56 (-11.97 % of base) : 250402.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -56 (-11.97 % of base) : 203164.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -12 (-0.71 % of base) : 232696.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
          -4 (-0.20 % of base) : 291023.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

7 total methods with Code Size differences (5 improved, 2 regressed).


libraries_tests.run.windows.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 309697012 (overridden on cmd)
Total bytes of diff: 310410132 (overridden on cmd)
Total bytes of delta: 713120 (0.23 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        6676 : 169009.dasm (74.98 % of base)
        6624 : 187537.dasm (75.51 % of base)
        6624 : 114038.dasm (75.51 % of base)
        6624 : 478480.dasm (75.07 % of base)
        6608 : 201665.dasm (74.89 % of base)
        6608 : 374667.dasm (74.89 % of base)
        6604 : 423296.dasm (74.88 % of base)
        6592 : 276034.dasm (74.84 % of base)
        6592 : 508727.dasm (74.84 % of base)
        6576 : 125815.dasm (74.52 % of base)
        6576 : 501299.dasm (74.52 % of base)
        6576 : 105349.dasm (74.52 % of base)
        6532 : 120761.dasm (75.08 % of base)
        6532 : 235461.dasm (75.08 % of base)
        6516 : 288162.dasm (73.41 % of base)
        6512 : 122881.dasm (73.23 % of base)
        6512 : 372245.dasm (73.23 % of base)
        6504 : 367202.dasm (73.34 % of base)
        6452 : 242711.dasm (72.69 % of base)
        6452 : 72400.dasm (72.69 % of base)

Top file improvements (bytes):
        -228 : 573184.dasm (-14.54 % of base)
        -228 : 591157.dasm (-14.18 % of base)
        -192 : 591492.dasm (-21.62 % of base)
        -148 : 573211.dasm (-20.56 % of base)
        -140 : 573221.dasm (-18.32 % of base)
        -140 : 573215.dasm (-22.01 % of base)
        -120 : 455998.dasm (-15.71 % of base)
        -104 : 573362.dasm (-17.93 % of base)
         -80 : 601714.dasm (-14.93 % of base)
         -52 : 591491.dasm (-10.57 % of base)
         -44 : 467988.dasm (-6.59 % of base)
         -28 : 274909.dasm (-3.21 % of base)
         -28 : 119521.dasm (-3.21 % of base)
         -28 : 242669.dasm (-3.21 % of base)
         -28 : 270025.dasm (-3.21 % of base)
         -28 : 285285.dasm (-3.21 % of base)
         -28 : 337097.dasm (-3.21 % of base)
         -28 : 123121.dasm (-3.17 % of base)
         -28 : 68609.dasm (-3.21 % of base)
         -28 : 124465.dasm (-3.17 % of base)

59 total files with Code Size differences (29 improved, 30 regressed), 0 unchanged.

Top method regressions (bytes):
        6676 (74.98 % of base) : 169009.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6624 (75.51 % of base) : 187537.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6624 (75.51 % of base) : 114038.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6624 (75.07 % of base) : 478480.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6608 (74.89 % of base) : 201665.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6608 (74.89 % of base) : 374667.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6604 (74.88 % of base) : 423296.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6592 (74.84 % of base) : 276034.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6592 (74.84 % of base) : 508727.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6576 (74.52 % of base) : 125815.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6576 (74.52 % of base) : 501299.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6576 (74.52 % of base) : 105349.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6532 (75.08 % of base) : 120761.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6532 (75.08 % of base) : 235461.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6516 (73.41 % of base) : 288162.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6512 (73.23 % of base) : 122881.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6512 (73.23 % of base) : 372245.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6504 (73.34 % of base) : 367202.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6452 (72.69 % of base) : 242711.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6452 (72.69 % of base) : 72400.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)

Top method improvements (bytes):
        -228 (-14.54 % of base) : 573184.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1455_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -228 (-14.18 % of base) : 591157.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29613_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -192 (-21.62 % of base) : 591492.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29910_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -148 (-20.56 % of base) : 573211.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1486_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -140 (-22.01 % of base) : 573215.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1493_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -140 (-18.32 % of base) : 573221.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1500_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -120 (-15.71 % of base) : 455998.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (Instrumented Tier1)
        -104 (-17.93 % of base) : 573362.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1595_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -80 (-14.93 % of base) : 601714.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex33032_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -52 (-10.57 % of base) : 591491.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29909_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -44 (-6.59 % of base) : 467988.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (Tier1)
         -28 (-3.21 % of base) : 274909.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 119521.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 242669.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 270025.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 285285.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 337097.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.17 % of base) : 123121.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 68609.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.17 % of base) : 124465.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)

Top method regressions (percentages):
        6624 (75.51 % of base) : 187537.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6624 (75.51 % of base) : 114038.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6532 (75.08 % of base) : 120761.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6532 (75.08 % of base) : 235461.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6624 (75.07 % of base) : 478480.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6676 (74.98 % of base) : 169009.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6448 (74.94 % of base) : 343326.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6448 (74.94 % of base) : 226927.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6448 (74.94 % of base) : 285450.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6448 (74.94 % of base) : 67858.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6448 (74.94 % of base) : 230314.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6448 (74.94 % of base) : 352703.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6608 (74.89 % of base) : 201665.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6608 (74.89 % of base) : 374667.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6604 (74.88 % of base) : 423296.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6592 (74.84 % of base) : 276034.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6592 (74.84 % of base) : 508727.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6576 (74.52 % of base) : 125815.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6576 (74.52 % of base) : 501299.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6576 (74.52 % of base) : 105349.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)

Top method improvements (percentages):
        -140 (-22.01 % of base) : 573215.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1493_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -192 (-21.62 % of base) : 591492.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29910_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -148 (-20.56 % of base) : 573211.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1486_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -140 (-18.32 % of base) : 573221.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1500_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -104 (-17.93 % of base) : 573362.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1595_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -120 (-15.71 % of base) : 455998.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (Instrumented Tier1)
         -80 (-14.93 % of base) : 601714.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex33032_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -228 (-14.54 % of base) : 573184.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1455_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -228 (-14.18 % of base) : 591157.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29613_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -52 (-10.57 % of base) : 591491.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29909_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -44 (-6.59 % of base) : 467988.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (Tier1)
         -28 (-3.21 % of base) : 274909.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 119521.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 242669.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 270025.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 285285.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 337097.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 68609.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 213949.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)
         -28 (-3.21 % of base) : 288105.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Instrumented Tier1)


librariestestsnotieredcompilation.run.windows.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 169004992 (overridden on cmd)
Total bytes of diff: 169004104 (overridden on cmd)
Total bytes of delta: -888 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         148 : 279104.dasm (6.29 % of base)
          24 : 118968.dasm (3.97 % of base)

Top file improvements (bytes):
        -204 : 301867.dasm (-22.08 % of base)
        -172 : 297961.dasm (-22.75 % of base)
        -164 : 297964.dasm (-23.56 % of base)
        -160 : 297967.dasm (-18.60 % of base)
        -116 : 298049.dasm (-18.83 % of base)
         -68 : 286285.dasm (-12.98 % of base)
         -64 : 301866.dasm (-12.12 % of base)
         -56 : 204853.dasm (-11.97 % of base)
         -56 : 62524.dasm (-11.97 % of base)

11 total files with Code Size differences (9 improved, 2 regressed), 0 unchanged.

Top method regressions (bytes):
         148 (6.29 % of base) : 279104.dasm - System.Text.RegularExpressions.Tests.CustomDerivedRegex+CustomRegexRunnerFactory+CustomRegexRunner:Go():this (FullOpts)
          24 (3.97 % of base) : 118968.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (bytes):
        -204 (-22.08 % of base) : 301867.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32921_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -172 (-22.75 % of base) : 297961.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31846_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -164 (-23.56 % of base) : 297964.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31853_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -160 (-18.60 % of base) : 297967.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31861_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -116 (-18.83 % of base) : 298049.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31956_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -68 (-12.98 % of base) : 286285.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2746_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -64 (-12.12 % of base) : 301866.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32920_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -56 (-11.97 % of base) : 62524.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -56 (-11.97 % of base) : 204853.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)

Top method regressions (percentages):
         148 (6.29 % of base) : 279104.dasm - System.Text.RegularExpressions.Tests.CustomDerivedRegex+CustomRegexRunnerFactory+CustomRegexRunner:Go():this (FullOpts)
          24 (3.97 % of base) : 118968.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (percentages):
        -164 (-23.56 % of base) : 297964.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31853_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -172 (-22.75 % of base) : 297961.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31846_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -204 (-22.08 % of base) : 301867.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32921_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -116 (-18.83 % of base) : 298049.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31956_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -160 (-18.60 % of base) : 297967.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31861_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -68 (-12.98 % of base) : 286285.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2746_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -64 (-12.12 % of base) : 301866.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32920_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -56 (-11.97 % of base) : 62524.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -56 (-11.97 % of base) : 204853.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)

11 total methods with Code Size differences (9 improved, 2 regressed).


smoke_tests.nativeaot.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 3972452 (overridden on cmd)
Total bytes of diff: 3972708 (overridden on cmd)
Total bytes of delta: 256 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          64 : 1579.dasm (3.09 % of base)
          64 : 11754.dasm (3.41 % of base)
          64 : 4605.dasm (2.96 % of base)
          64 : 6510.dasm (3.26 % of base)

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

Top method regressions (bytes):
          64 (3.41 % of base) : 11754.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
          64 (3.26 % of base) : 6510.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
          64 (3.09 % of base) : 1579.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          64 (2.96 % of base) : 4605.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)

Top method regressions (percentages):
          64 (3.41 % of base) : 11754.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
          64 (3.26 % of base) : 6510.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
          64 (3.09 % of base) : 1579.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          64 (2.96 % of base) : 4605.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)

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



windows x64

Diffs are based on 2,492,949 contexts (983,689 MinOpts, 1,509,260 FullOpts).

MISSED contexts: base: 3,859 (0.15%), diff: 3,862 (0.15%)

Overall (+879,433 bytes)

Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 41,762,326 +26,409
coreclr_tests.run.windows.x64.checked.mch 392,865,429 +22,605
libraries.crossgen2.windows.x64.checked.mch 39,442,575 -362
libraries.pmi.windows.x64.checked.mch 61,196,926 -77
libraries_tests.run.windows.x64.Release.mch 279,033,795 +831,714
librariestestsnotieredcompilation.run.windows.x64.Release.mch 133,435,993 -1,213
smoke_tests.nativeaot.windows.x64.checked.mch 5,091,660 +357

FullOpts (+879,433 bytes)

Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 27,103,601 +26,409
coreclr_tests.run.windows.x64.checked.mch 119,322,437 +22,605
libraries.crossgen2.windows.x64.checked.mch 39,441,386 -362
libraries.pmi.windows.x64.checked.mch 61,083,407 -77
libraries_tests.run.windows.x64.Release.mch 100,665,479 +831,714
librariestestsnotieredcompilation.run.windows.x64.Release.mch 123,012,623 -1,213
smoke_tests.nativeaot.windows.x64.checked.mch 5,090,751 +357

Example diffs

aspnet.run.windows.x64.checked.mch

-9 (-0.50%) : 95770.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateInterfaces(System.RuntimeType+RuntimeTypeCache+Filter):System.RuntimeType[]:this (Instrumented Tier1)

@@ -12,74 +12,74 @@
 ;  V00 this         [V00,T05] (  8,  4.04)     ref  ->  rsi         this class-hnd single-def <System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]>
 ;  V01 arg1         [V01,T01] ( 14, 10.04)   byref  ->  rbx         ld-addr-op single-def
 ;  V02 loc0         [V02    ] ( 13,  4.87)  struct (24) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.RuntimeType]>
-;  V03 loc1         [V03,T13] (  5,  3   )     ref  ->  rdi         class-hnd exact single-def <System.RuntimeType>
+;  V03 loc1         [V03,T12] (  5,  3   )     ref  ->  rdi         class-hnd exact single-def <System.RuntimeType>
 ;  V04 loc2         [V04,T04] (  5,  6.65)     ref  ->  rdi         class-hnd single-def <<unknown class>>
 ;  V05 loc3         [V05,T02] (  5,  8.71)     int  ->  r14        
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.RuntimeType>
 ;* V07 loc5         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.RuntimeType>
-;  V08 loc6         [V08,T50] (  4,  0   )     ref  ->  rsi         class-hnd exact single-def <<unknown class>>
-;  V09 loc7         [V09,T52] (  3,  0   )     ref  ->  rdi         class-hnd single-def <<unknown class>>
-;  V10 loc8         [V10,T48] (  5,  0   )     int  ->  r14        
+;  V08 loc6         [V08,T49] (  4,  0   )     ref  ->  rsi         class-hnd exact single-def <<unknown class>>
+;  V09 loc7         [V09,T51] (  3,  0   )     ref  ->  rdi         class-hnd single-def <<unknown class>>
+;  V10 loc8         [V10,T47] (  5,  0   )     int  ->  r14        
 ;* V11 loc9         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.RuntimeType>
-;  V12 loc10        [V12,T53] (  3,  0   )     ref  ->  r15         class-hnd <<unknown class>>
-;  V13 loc11        [V13,T49] (  5,  0   )     int  ->  r13        
+;  V12 loc10        [V12,T52] (  3,  0   )     ref  ->  r15         class-hnd <<unknown class>>
+;  V13 loc11        [V13,T48] (  5,  0   )     int  ->  r13        
 ;  V14 loc12        [V14    ] (  3,  0   )  struct (24) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.HashSet`1+Enumerator[System.RuntimeType]>
-;  V15 loc13        [V15,T54] (  3,  0   )     ref  ->  rsi         class-hnd exact <System.RuntimeType>
+;  V15 loc13        [V15,T53] (  3,  0   )     ref  ->  rsi         class-hnd exact <System.RuntimeType>
 ;  V16 OutArgs      [V16    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V17 tmp1         [V17,T55] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V18 tmp2         [V18,T56] (  3,  0   )     ref  ->  rdx         "CASTCLASS eval op1"
-;  V19 tmp3         [V19,T60] (  3,  0   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V20 tmp4         [V20,T47] (  7,  0   )     ref  ->  r15         class-hnd "spilling QMark2" <System.RuntimeType>
-;  V21 tmp5         [V21,T57] (  3,  0   )     ref  ->  rdx         "CASTCLASS eval op1"
-;  V22 tmp6         [V22,T61] (  3,  0   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V23 tmp7         [V23,T51] (  4,  0   )     ref  ->  rax         class-hnd "spilling QMark2" <System.RuntimeType>
+;  V17 tmp1         [V17,T54] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V18 tmp2         [V18,T55] (  3,  0   )     ref  ->  rdx         "CASTCLASS eval op1"
+;  V19 tmp3         [V19,T59] (  3,  0   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V20 tmp4         [V20,T46] (  7,  0   )     ref  ->  r15         class-hnd "spilling QMark2" <System.RuntimeType>
+;  V21 tmp5         [V21,T56] (  3,  0   )     ref  ->  rdx         "CASTCLASS eval op1"
+;  V22 tmp6         [V22,T60] (  3,  0   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V23 tmp7         [V23,T50] (  4,  0   )     ref  ->  rax         class-hnd "spilling QMark2" <System.RuntimeType>
 ;* V24 tmp8         [V24    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.MdUtf8String>
-;  V25 tmp9         [V25,T32] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
-;  V26 tmp10        [V26,T39] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V27 tmp11        [V27,T21] (  8,  0.15)     ref  ->  r13         class-hnd single-def "spilling QMark2" <System.RuntimeType>
-;  V28 tmp12        [V28,T25] (  3,  0.06)     ref  ->  rdi         class-hnd exact single-def "dup spill" <<unknown class>>
+;  V25 tmp9         [V25,T31] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
+;  V26 tmp10        [V26,T38] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V27 tmp11        [V27,T20] (  8,  0.15)     ref  ->  r15         class-hnd single-def "spilling QMark2" <System.RuntimeType>
+;  V28 tmp12        [V28,T24] (  3,  0.06)     ref  ->  rdi         class-hnd exact single-def "dup spill" <<unknown class>>
 ;  V29 tmp13        [V29    ] (  2,  0.04)  struct (24) [rbp-0x80]  do-not-enreg[XS] addr-exposed "impAppendStmt" <System.RuntimeType+RuntimeTypeCache+Filter>
 ;* V30 tmp14        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
-;  V31 tmp15        [V31,T33] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
-;  V32 tmp16        [V32,T40] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V33 tmp17        [V33,T22] (  4,  0.07)     ref  ->   r9         class-hnd single-def "spilling QMark2" <System.RuntimeType>
-;  V34 tmp18        [V34,T26] (  3,  0.06)     ref  ->  r14         class-hnd exact single-def "dup spill" <<unknown class>>
+;  V31 tmp15        [V31,T32] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
+;  V32 tmp16        [V32,T39] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V33 tmp17        [V33,T21] (  4,  0.07)     ref  ->   r9         class-hnd single-def "spilling QMark2" <System.RuntimeType>
+;  V34 tmp18        [V34,T25] (  3,  0.06)     ref  ->  r14         class-hnd exact single-def "dup spill" <<unknown class>>
 ;  V35 tmp19        [V35    ] (  2,  0.04)  struct (24) [rbp-0x98]  do-not-enreg[XS] addr-exposed "impAppendStmt" <System.RuntimeType+RuntimeTypeCache+Filter>
 ;* V36 tmp20        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
-;  V37 tmp21        [V37,T34] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
-;  V38 tmp22        [V38,T41] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V39 tmp23        [V39,T23] (  4,  0.07)     ref  ->   r9         class-hnd single-def "spilling QMark2" <System.RuntimeType>
-;  V40 tmp24        [V40,T27] (  3,  0.06)     ref  ->  rbx         class-hnd exact single-def "dup spill" <<unknown class>>
+;  V37 tmp21        [V37,T33] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
+;  V38 tmp22        [V38,T40] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V39 tmp23        [V39,T22] (  4,  0.07)     ref  ->   r9         class-hnd single-def "spilling QMark2" <System.RuntimeType>
+;  V40 tmp24        [V40,T26] (  3,  0.06)     ref  ->  rbx         class-hnd exact single-def "dup spill" <<unknown class>>
 ;  V41 tmp25        [V41    ] (  2,  0.04)  struct (24) [rbp-0xB0]  do-not-enreg[XS] addr-exposed "impAppendStmt" <System.RuntimeType+RuntimeTypeCache+Filter>
 ;* V42 tmp26        [V42    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
-;  V43 tmp27        [V43,T35] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
-;  V44 tmp28        [V44,T42] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V45 tmp29        [V45,T24] (  4,  0.07)     ref  ->   r9         class-hnd single-def "spilling QMark2" <System.RuntimeType>
+;  V43 tmp27        [V43,T34] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
+;  V44 tmp28        [V44,T41] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V45 tmp29        [V45,T23] (  4,  0.07)     ref  ->   r9         class-hnd single-def "spilling QMark2" <System.RuntimeType>
 ;  V46 tmp30        [V46,T03] (  3,  8.11)     ref  ->  rdx         "CASTCLASS eval op1"
-;  V47 tmp31        [V47,T11] (  3,  4.06)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V48 tmp32        [V48,T00] (  5, 17.87)     ref  ->  r13         class-hnd "spilling QMark2" <System.RuntimeType>
+;  V47 tmp31        [V47,T10] (  3,  4.06)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V48 tmp32        [V48,T00] (  5, 17.87)     ref  ->  r15         class-hnd "spilling QMark2" <System.RuntimeType>
 ;* V49 tmp33        [V49    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.MdUtf8String>
 ;  V50 tmp34        [V50,T06] (  3,  6   )     ref  ->  rdi         single-def "handle histogram profile tmp"
-;  V51 tmp35        [V51,T28] (  3,  0.06)     ref  ->  r14         single-def "handle histogram profile tmp"
+;  V51 tmp35        [V51,T27] (  3,  0.06)     ref  ->  r14         single-def "handle histogram profile tmp"
 ;* V52 tmp36        [V52    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
 ;* V53 tmp37        [V53    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
 ;* V54 tmp38        [V54    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
 ;* V55 tmp39        [V55    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
 ;* V56 tmp40        [V56    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V57 tmp41        [V57    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.RuntimeType+RuntimeTypeCache>
-;* V58 tmp42        [V58,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V58 tmp42        [V58,T13] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V59 tmp43        [V59    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.MdUtf8String>
-;  V60 tmp44        [V60,T12] (  5,  9.95)    long  ->  r12         "Inlining Arg"
+;  V60 tmp44        [V60,T11] (  5,  9.95)    long  ->  r13         "Inlining Arg"
 ;* V61 tmp45        [V61    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V62 tmp46        [V62,T16] (  3,  0.88)   ubyte  ->  r15         "Inline stloc first use temp"
-;  V63 tmp47        [V63,T19] (  3,  0.88)   ubyte  ->  r15         "Inline return value spill temp"
+;  V62 tmp46        [V62,T15] (  3,  0.88)   ubyte  ->  r12         "Inline stloc first use temp"
+;  V63 tmp47        [V63,T18] (  3,  0.88)   ubyte  ->  r12         "Inline return value spill temp"
 ;* V64 tmp48        [V64    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.RuntimeType+RuntimeTypeCache>
 ;* V65 tmp49        [V65    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.RuntimeType+RuntimeTypeCache>
 ;* V66 tmp50        [V66    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;  V67 tmp51        [V67    ] (  1,  0   )     int  ->  [rbp-0xB8]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;  V68 tmp52        [V68    ] (  1,  0   )     int  ->  [rbp-0xC0]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;  V69 tmp53        [V69    ] (  3,  0   )  struct (16) [rbp-0xD0]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.MdUtf8String>
-;  V70 tmp54        [V70,T15] (  4,  2   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.RuntimeType[]>
+;  V70 tmp54        [V70,T14] (  4,  2   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.RuntimeType[]>
 ;  V71 tmp55        [V71,T07] (  3,  6   )     ref  ->  rbx         class-hnd exact single-def "dup spill" <System.RuntimeType[]>
 ;  V72 tmp56        [V72    ] (  7,  1.87)     ref  ->  [rbp-0x50]  do-not-enreg[X] addr-exposed "field V02._items (fldOffset=0x0)" P-DEP
 ;  V73 tmp57        [V73    ] (  6,  2.87)     ref  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V02._item (fldOffset=0x8)" P-DEP
@@ -93,29 +93,28 @@
 ;* V81 tmp65        [V81    ] (  0,  0   )     int  ->  zero-ref    "field V24.m_StringHeapByteLength (fldOffset=0x8)" P-INDEP
 ;* V82 tmp66        [V82    ] (  0,  0   )    long  ->  zero-ref    "field V49.m_pStringHeap (fldOffset=0x0)" P-INDEP
 ;* V83 tmp67        [V83    ] (  0,  0   )     int  ->  zero-ref    "field V49.m_StringHeapByteLength (fldOffset=0x8)" P-INDEP
-;  V84 tmp68        [V84,T20] (  2,  0.44)    long  ->  r15         "field V59.m_pStringHeap (fldOffset=0x0)" P-INDEP
-;  V85 tmp69        [V85,T18] (  4,  0.88)     int  ->  rax         "field V59.m_StringHeapByteLength (fldOffset=0x8)" P-INDEP
+;  V84 tmp68        [V84,T19] (  2,  0.44)    long  ->  r12         "field V59.m_pStringHeap (fldOffset=0x0)" P-INDEP
+;  V85 tmp69        [V85,T17] (  4,  0.88)     int  ->  rax         "field V59.m_StringHeapByteLength (fldOffset=0x8)" P-INDEP
 ;  V86 tmp70        [V86    ] (  3,  0   )    long  ->  [rbp-0xD0]  do-not-enreg[X] addr-exposed "field V69.m_pStringHeap (fldOffset=0x0)" P-DEP
 ;  V87 tmp71        [V87    ] (  3,  0   )     int  ->  [rbp-0xC8]  do-not-enreg[X] addr-exposed "field V69.m_StringHeapByteLength (fldOffset=0x8)" P-DEP
-;  V88 tmp72        [V88,T58] (  3,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V89 tmp73        [V89,T59] (  3,  0   )     ref  ->  rcx         "argument with side effect"
-;  V90 tmp74        [V90,T62] (  2,  0   )    long  ->  rdx         "argument with side effect"
+;  V88 tmp72        [V88,T57] (  3,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V89 tmp73        [V89,T58] (  3,  0   )     ref  ->  rcx         "argument with side effect"
+;  V90 tmp74        [V90,T61] (  2,  0   )    long  ->  rdx         "argument with side effect"
 ;  V91 tmp75        [V91    ] (  5,  0.01)  struct (16) [rbp-0xE0]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.MdUtf8String>
-;* V92 tmp76        [V92,T63] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V93 tmp77        [V93,T46] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
+;* V92 tmp76        [V92,T62] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
+;* V93 tmp77        [V93,T45] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
 ;  V94 tmp78        [V94,T08] (  3,  6   )     ref  ->  rcx         single-def "argument with side effect"
-;  V95 tmp79        [V95,T29] (  3,  0.06)     ref  ->  rcx         single-def "argument with side effect"
-;* V96 tmp80        [V96,T43] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;* V97 tmp81        [V97,T44] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;* V98 tmp82        [V98,T45] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V99 PSPSym       [V99,T17] (  1,  1   )    long  ->  [rbp-0xE8]  do-not-enreg[V] "PSPSym"
-;  V100 cse0        [V100,T30] (  4,  0.04)    long  ->  rdi         "CSE - conservative"
-;  V101 cse1        [V101,T10] (  3,  5.00)     int  ->  rcx         "CSE - aggressive"
-;  V102 cse2        [V102,T09] (  4,  5.25)     int  ->  r15         multi-def "CSE - aggressive"
-;  V103 cse3        [V103,T31] (  4,  0.04)    long  ->  r12         "CSE - conservative"
+;  V95 tmp79        [V95,T28] (  3,  0.06)     ref  ->  rcx         single-def "argument with side effect"
+;* V96 tmp80        [V96,T42] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;* V97 tmp81        [V97,T43] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;* V98 tmp82        [V98,T44] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V99 PSPSym       [V99,T16] (  1,  1   )    long  ->  [rbp-0xE8]  do-not-enreg[V] "PSPSym"
+;  V100 cse0        [V100,T29] (  4,  0.04)    long  ->  rdi         "CSE - conservative"
+;  V101 cse1        [V101,T09] (  3,  5.00)     int  ->  rcx         "CSE - aggressive"
+;  V102 cse2        [V102,T30] (  4,  0.04)    long  ->  r13         "CSE - conservative"
+;  V103 cse3        [V103,T35] (  2,  0.02)     ref  ->  rcx         "CSE - conservative"
 ;  V104 cse4        [V104,T36] (  2,  0.02)     ref  ->  rcx         "CSE - conservative"
 ;  V105 cse5        [V105,T37] (  2,  0.02)     ref  ->  rcx         "CSE - conservative"
-;  V106 cse6        [V106,T38] (  2,  0.02)     ref  ->  rcx         "CSE - conservative"
 ;
 ; Lcl frame size = 216
 
@@ -202,104 +201,103 @@ G_M12189_IG04:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rb
 G_M12189_IG05:        ; bbWeight=0.60, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref
        ; gcrRegs -[rax]
        xor      r14d, r14d
-       mov      r15d, dword ptr [rdi+0x08]
-       test     r15d, r15d
+       cmp      dword ptr [rdi+0x08], 0
        jle      G_M12189_IG25
-                       ;; size=16 bbWeight=0.60 PerfScore 2.09
+                       ;; size=13 bbWeight=0.60 PerfScore 2.54
 G_M12189_IG06:        ; bbWeight=2.03, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
        mov      ecx, r14d
        mov      rdx, gword ptr [rdi+8*rcx+0x10]
        ; gcrRegs +[rdx]
-       mov      r13, rdx
-       ; gcrRegs +[r13]
-       test     r13, r13
+       mov      r15, rdx
+       ; gcrRegs +[r15]
+       test     r15, r15
        je       SHORT G_M12189_IG09
                        ;; size=16 bbWeight=2.03 PerfScore 7.60
-G_M12189_IG07:        ; bbWeight=1.01, gcrefRegs=20C4 {rdx rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
+G_M12189_IG07:        ; bbWeight=1.01, gcrefRegs=80C4 {rdx rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
        mov      rcx, 0xD1FFAB1E      ; System.RuntimeType
-       cmp      qword ptr [r13], rcx
+       cmp      qword ptr [r15], rcx
        je       SHORT G_M12189_IG09
-                       ;; size=16 bbWeight=1.01 PerfScore 4.31
+                       ;; size=15 bbWeight=1.01 PerfScore 4.31
 G_M12189_IG08:        ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi rdi r13]
+       ; gcrRegs -[rsi rdi r15]
        ; byrRegs -[rbx]
        call     CORINFO_HELP_CHKCASTCLASS_SPECIAL
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
-G_M12189_IG09:        ; bbWeight=2.03, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
-       ; gcrRegs -[rax] +[rsi rdi r13]
+G_M12189_IG09:        ; bbWeight=2.03, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
+       ; gcrRegs -[rax] +[rsi rdi r15]
        ; byrRegs +[rbx]
        mov      ecx, dword ptr [rbx+0x10]
        cmp      ecx, 1
        je       SHORT G_M12189_IG11
                        ;; size=8 bbWeight=2.03 PerfScore 6.59
-G_M12189_IG10:        ; bbWeight=0.94, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
+G_M12189_IG10:        ; bbWeight=0.94, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
        cmp      ecx, 2
        jne      SHORT G_M12189_IG21
                        ;; size=5 bbWeight=0.94 PerfScore 1.18
-G_M12189_IG11:        ; bbWeight=2.03, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rcx, r13
+G_M12189_IG11:        ; bbWeight=2.03, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
+       mov      rcx, r15
        ; gcrRegs +[rcx]
        call     <unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      r12, rax
-       test     r12, r12
+       mov      r13, rax
+       test     r13, r13
        jne      SHORT G_M12189_IG16
                        ;; size=16 bbWeight=2.03 PerfScore 5.58
-G_M12189_IG12:        ; bbWeight=0, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref
+G_M12189_IG12:        ; bbWeight=0, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0 PerfScore 0.00
-G_M12189_IG13:        ; bbWeight=0.44, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
-       mov      r15, r12
+G_M12189_IG13:        ; bbWeight=0.44, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
+       mov      r12, r13
        cmp      dword ptr [rbx+0x10], 1
        jne      SHORT G_M12189_IG17
                        ;; size=9 bbWeight=0.44 PerfScore 1.87
-G_M12189_IG14:        ; bbWeight=0.44, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
+G_M12189_IG14:        ; bbWeight=0.44, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
        cmp      eax, dword ptr [rbx+0x08]
        je       SHORT G_M12189_IG18
                        ;; size=5 bbWeight=0.44 PerfScore 1.75
-G_M12189_IG15:        ; bbWeight=0.40, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
-       xor      r15d, r15d
+G_M12189_IG15:        ; bbWeight=0.40, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
+       xor      r12d, r12d
        jmp      SHORT G_M12189_IG19
                        ;; size=5 bbWeight=0.40 PerfScore 0.90
-G_M12189_IG16:        ; bbWeight=0.44, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rcx, r12
+G_M12189_IG16:        ; bbWeight=0.44, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
...

-9 (-0.50%) : 96631.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateInterfaces(System.RuntimeType+RuntimeTypeCache+Filter):System.RuntimeType[]:this (Instrumented Tier1)

@@ -12,74 +12,74 @@
 ;  V00 this         [V00,T05] (  8,  4.04)     ref  ->  rsi         this class-hnd single-def <System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]>
 ;  V01 arg1         [V01,T01] ( 14, 10.04)   byref  ->  rbx         ld-addr-op single-def
 ;  V02 loc0         [V02    ] ( 13,  4.87)  struct (24) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.RuntimeType]>
-;  V03 loc1         [V03,T13] (  5,  3   )     ref  ->  rdi         class-hnd exact single-def <System.RuntimeType>
+;  V03 loc1         [V03,T12] (  5,  3   )     ref  ->  rdi         class-hnd exact single-def <System.RuntimeType>
 ;  V04 loc2         [V04,T04] (  5,  6.65)     ref  ->  rdi         class-hnd single-def <<unknown class>>
 ;  V05 loc3         [V05,T02] (  5,  8.71)     int  ->  r14        
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.RuntimeType>
 ;* V07 loc5         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.RuntimeType>
-;  V08 loc6         [V08,T50] (  4,  0   )     ref  ->  rsi         class-hnd exact single-def <<unknown class>>
-;  V09 loc7         [V09,T52] (  3,  0   )     ref  ->  rdi         class-hnd single-def <<unknown class>>
-;  V10 loc8         [V10,T48] (  5,  0   )     int  ->  r14        
+;  V08 loc6         [V08,T49] (  4,  0   )     ref  ->  rsi         class-hnd exact single-def <<unknown class>>
+;  V09 loc7         [V09,T51] (  3,  0   )     ref  ->  rdi         class-hnd single-def <<unknown class>>
+;  V10 loc8         [V10,T47] (  5,  0   )     int  ->  r14        
 ;* V11 loc9         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.RuntimeType>
-;  V12 loc10        [V12,T53] (  3,  0   )     ref  ->  r15         class-hnd <<unknown class>>
-;  V13 loc11        [V13,T49] (  5,  0   )     int  ->  r13        
+;  V12 loc10        [V12,T52] (  3,  0   )     ref  ->  r15         class-hnd <<unknown class>>
+;  V13 loc11        [V13,T48] (  5,  0   )     int  ->  r13        
 ;  V14 loc12        [V14    ] (  3,  0   )  struct (24) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.HashSet`1+Enumerator[System.RuntimeType]>
-;  V15 loc13        [V15,T54] (  3,  0   )     ref  ->  rsi         class-hnd exact <System.RuntimeType>
+;  V15 loc13        [V15,T53] (  3,  0   )     ref  ->  rsi         class-hnd exact <System.RuntimeType>
 ;  V16 OutArgs      [V16    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V17 tmp1         [V17,T55] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V18 tmp2         [V18,T56] (  3,  0   )     ref  ->  rdx         "CASTCLASS eval op1"
-;  V19 tmp3         [V19,T60] (  3,  0   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V20 tmp4         [V20,T47] (  7,  0   )     ref  ->  r15         class-hnd "spilling QMark2" <System.RuntimeType>
-;  V21 tmp5         [V21,T57] (  3,  0   )     ref  ->  rdx         "CASTCLASS eval op1"
-;  V22 tmp6         [V22,T61] (  3,  0   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V23 tmp7         [V23,T51] (  4,  0   )     ref  ->  rax         class-hnd "spilling QMark2" <System.RuntimeType>
+;  V17 tmp1         [V17,T54] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V18 tmp2         [V18,T55] (  3,  0   )     ref  ->  rdx         "CASTCLASS eval op1"
+;  V19 tmp3         [V19,T59] (  3,  0   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V20 tmp4         [V20,T46] (  7,  0   )     ref  ->  r15         class-hnd "spilling QMark2" <System.RuntimeType>
+;  V21 tmp5         [V21,T56] (  3,  0   )     ref  ->  rdx         "CASTCLASS eval op1"
+;  V22 tmp6         [V22,T60] (  3,  0   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V23 tmp7         [V23,T50] (  4,  0   )     ref  ->  rax         class-hnd "spilling QMark2" <System.RuntimeType>
 ;* V24 tmp8         [V24    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.MdUtf8String>
-;  V25 tmp9         [V25,T32] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
-;  V26 tmp10        [V26,T39] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V27 tmp11        [V27,T21] (  8,  0.15)     ref  ->  r13         class-hnd single-def "spilling QMark2" <System.RuntimeType>
-;  V28 tmp12        [V28,T25] (  3,  0.06)     ref  ->  rdi         class-hnd exact single-def "dup spill" <<unknown class>>
+;  V25 tmp9         [V25,T31] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
+;  V26 tmp10        [V26,T38] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V27 tmp11        [V27,T20] (  8,  0.15)     ref  ->  r15         class-hnd single-def "spilling QMark2" <System.RuntimeType>
+;  V28 tmp12        [V28,T24] (  3,  0.06)     ref  ->  rdi         class-hnd exact single-def "dup spill" <<unknown class>>
 ;  V29 tmp13        [V29    ] (  2,  0.04)  struct (24) [rbp-0x80]  do-not-enreg[XS] addr-exposed "impAppendStmt" <System.RuntimeType+RuntimeTypeCache+Filter>
 ;* V30 tmp14        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
-;  V31 tmp15        [V31,T33] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
-;  V32 tmp16        [V32,T40] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V33 tmp17        [V33,T22] (  4,  0.07)     ref  ->   r9         class-hnd single-def "spilling QMark2" <System.RuntimeType>
-;  V34 tmp18        [V34,T26] (  3,  0.06)     ref  ->  r14         class-hnd exact single-def "dup spill" <<unknown class>>
+;  V31 tmp15        [V31,T32] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
+;  V32 tmp16        [V32,T39] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V33 tmp17        [V33,T21] (  4,  0.07)     ref  ->   r9         class-hnd single-def "spilling QMark2" <System.RuntimeType>
+;  V34 tmp18        [V34,T25] (  3,  0.06)     ref  ->  r14         class-hnd exact single-def "dup spill" <<unknown class>>
 ;  V35 tmp19        [V35    ] (  2,  0.04)  struct (24) [rbp-0x98]  do-not-enreg[XS] addr-exposed "impAppendStmt" <System.RuntimeType+RuntimeTypeCache+Filter>
 ;* V36 tmp20        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
-;  V37 tmp21        [V37,T34] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
-;  V38 tmp22        [V38,T41] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V39 tmp23        [V39,T23] (  4,  0.07)     ref  ->   r9         class-hnd single-def "spilling QMark2" <System.RuntimeType>
-;  V40 tmp24        [V40,T27] (  3,  0.06)     ref  ->  rbx         class-hnd exact single-def "dup spill" <<unknown class>>
+;  V37 tmp21        [V37,T33] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
+;  V38 tmp22        [V38,T40] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V39 tmp23        [V39,T22] (  4,  0.07)     ref  ->   r9         class-hnd single-def "spilling QMark2" <System.RuntimeType>
+;  V40 tmp24        [V40,T26] (  3,  0.06)     ref  ->  rbx         class-hnd exact single-def "dup spill" <<unknown class>>
 ;  V41 tmp25        [V41    ] (  2,  0.04)  struct (24) [rbp-0xB0]  do-not-enreg[XS] addr-exposed "impAppendStmt" <System.RuntimeType+RuntimeTypeCache+Filter>
 ;* V42 tmp26        [V42    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
-;  V43 tmp27        [V43,T35] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
-;  V44 tmp28        [V44,T42] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V45 tmp29        [V45,T24] (  4,  0.07)     ref  ->   r9         class-hnd single-def "spilling QMark2" <System.RuntimeType>
+;  V43 tmp27        [V43,T34] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
+;  V44 tmp28        [V44,T41] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V45 tmp29        [V45,T23] (  4,  0.07)     ref  ->   r9         class-hnd single-def "spilling QMark2" <System.RuntimeType>
 ;  V46 tmp30        [V46,T03] (  3,  8.11)     ref  ->  rdx         "CASTCLASS eval op1"
-;  V47 tmp31        [V47,T11] (  3,  4.06)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V48 tmp32        [V48,T00] (  5, 17.87)     ref  ->  r13         class-hnd "spilling QMark2" <System.RuntimeType>
+;  V47 tmp31        [V47,T10] (  3,  4.06)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V48 tmp32        [V48,T00] (  5, 17.87)     ref  ->  r15         class-hnd "spilling QMark2" <System.RuntimeType>
 ;* V49 tmp33        [V49    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.MdUtf8String>
 ;  V50 tmp34        [V50,T06] (  3,  6   )     ref  ->  rdi         single-def "handle histogram profile tmp"
-;  V51 tmp35        [V51,T28] (  3,  0.06)     ref  ->  r14         single-def "handle histogram profile tmp"
+;  V51 tmp35        [V51,T27] (  3,  0.06)     ref  ->  r14         single-def "handle histogram profile tmp"
 ;* V52 tmp36        [V52    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
 ;* V53 tmp37        [V53    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
 ;* V54 tmp38        [V54    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
 ;* V55 tmp39        [V55    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
 ;* V56 tmp40        [V56    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V57 tmp41        [V57    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.RuntimeType+RuntimeTypeCache>
-;* V58 tmp42        [V58,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V58 tmp42        [V58,T13] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V59 tmp43        [V59    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.MdUtf8String>
-;  V60 tmp44        [V60,T12] (  5,  9.95)    long  ->  r12         "Inlining Arg"
+;  V60 tmp44        [V60,T11] (  5,  9.95)    long  ->  r13         "Inlining Arg"
 ;* V61 tmp45        [V61    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V62 tmp46        [V62,T16] (  3,  0.88)   ubyte  ->  r15         "Inline stloc first use temp"
-;  V63 tmp47        [V63,T19] (  3,  0.88)   ubyte  ->  r15         "Inline return value spill temp"
+;  V62 tmp46        [V62,T15] (  3,  0.88)   ubyte  ->  r12         "Inline stloc first use temp"
+;  V63 tmp47        [V63,T18] (  3,  0.88)   ubyte  ->  r12         "Inline return value spill temp"
 ;* V64 tmp48        [V64    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.RuntimeType+RuntimeTypeCache>
 ;* V65 tmp49        [V65    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.RuntimeType+RuntimeTypeCache>
 ;* V66 tmp50        [V66    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;  V67 tmp51        [V67    ] (  1,  0   )     int  ->  [rbp-0xB8]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;  V68 tmp52        [V68    ] (  1,  0   )     int  ->  [rbp-0xC0]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;  V69 tmp53        [V69    ] (  3,  0   )  struct (16) [rbp-0xD0]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.MdUtf8String>
-;  V70 tmp54        [V70,T15] (  4,  2   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.RuntimeType[]>
+;  V70 tmp54        [V70,T14] (  4,  2   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.RuntimeType[]>
 ;  V71 tmp55        [V71,T07] (  3,  6   )     ref  ->  rbx         class-hnd exact single-def "dup spill" <System.RuntimeType[]>
 ;  V72 tmp56        [V72    ] (  7,  1.87)     ref  ->  [rbp-0x50]  do-not-enreg[X] addr-exposed "field V02._items (fldOffset=0x0)" P-DEP
 ;  V73 tmp57        [V73    ] (  6,  2.87)     ref  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V02._item (fldOffset=0x8)" P-DEP
@@ -93,29 +93,28 @@
 ;* V81 tmp65        [V81    ] (  0,  0   )     int  ->  zero-ref    "field V24.m_StringHeapByteLength (fldOffset=0x8)" P-INDEP
 ;* V82 tmp66        [V82    ] (  0,  0   )    long  ->  zero-ref    "field V49.m_pStringHeap (fldOffset=0x0)" P-INDEP
 ;* V83 tmp67        [V83    ] (  0,  0   )     int  ->  zero-ref    "field V49.m_StringHeapByteLength (fldOffset=0x8)" P-INDEP
-;  V84 tmp68        [V84,T20] (  2,  0.44)    long  ->  r15         "field V59.m_pStringHeap (fldOffset=0x0)" P-INDEP
-;  V85 tmp69        [V85,T18] (  4,  0.88)     int  ->  rax         "field V59.m_StringHeapByteLength (fldOffset=0x8)" P-INDEP
+;  V84 tmp68        [V84,T19] (  2,  0.44)    long  ->  r12         "field V59.m_pStringHeap (fldOffset=0x0)" P-INDEP
+;  V85 tmp69        [V85,T17] (  4,  0.88)     int  ->  rax         "field V59.m_StringHeapByteLength (fldOffset=0x8)" P-INDEP
 ;  V86 tmp70        [V86    ] (  3,  0   )    long  ->  [rbp-0xD0]  do-not-enreg[X] addr-exposed "field V69.m_pStringHeap (fldOffset=0x0)" P-DEP
 ;  V87 tmp71        [V87    ] (  3,  0   )     int  ->  [rbp-0xC8]  do-not-enreg[X] addr-exposed "field V69.m_StringHeapByteLength (fldOffset=0x8)" P-DEP
-;  V88 tmp72        [V88,T58] (  3,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V89 tmp73        [V89,T59] (  3,  0   )     ref  ->  rcx         "argument with side effect"
-;  V90 tmp74        [V90,T62] (  2,  0   )    long  ->  rdx         "argument with side effect"
+;  V88 tmp72        [V88,T57] (  3,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V89 tmp73        [V89,T58] (  3,  0   )     ref  ->  rcx         "argument with side effect"
+;  V90 tmp74        [V90,T61] (  2,  0   )    long  ->  rdx         "argument with side effect"
 ;  V91 tmp75        [V91    ] (  5,  0.01)  struct (16) [rbp-0xE0]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.MdUtf8String>
-;* V92 tmp76        [V92,T63] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V93 tmp77        [V93,T46] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
+;* V92 tmp76        [V92,T62] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
+;* V93 tmp77        [V93,T45] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
 ;  V94 tmp78        [V94,T08] (  3,  6   )     ref  ->  rcx         single-def "argument with side effect"
-;  V95 tmp79        [V95,T29] (  3,  0.06)     ref  ->  rcx         single-def "argument with side effect"
-;* V96 tmp80        [V96,T43] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;* V97 tmp81        [V97,T44] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;* V98 tmp82        [V98,T45] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V99 PSPSym       [V99,T17] (  1,  1   )    long  ->  [rbp-0xE8]  do-not-enreg[V] "PSPSym"
-;  V100 cse0        [V100,T30] (  4,  0.04)    long  ->  rdi         "CSE - conservative"
-;  V101 cse1        [V101,T10] (  3,  5.00)     int  ->  rcx         "CSE - aggressive"
-;  V102 cse2        [V102,T09] (  4,  5.25)     int  ->  r15         multi-def "CSE - aggressive"
-;  V103 cse3        [V103,T31] (  4,  0.04)    long  ->  r12         "CSE - conservative"
+;  V95 tmp79        [V95,T28] (  3,  0.06)     ref  ->  rcx         single-def "argument with side effect"
+;* V96 tmp80        [V96,T42] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;* V97 tmp81        [V97,T43] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;* V98 tmp82        [V98,T44] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V99 PSPSym       [V99,T16] (  1,  1   )    long  ->  [rbp-0xE8]  do-not-enreg[V] "PSPSym"
+;  V100 cse0        [V100,T29] (  4,  0.04)    long  ->  rdi         "CSE - conservative"
+;  V101 cse1        [V101,T09] (  3,  5.00)     int  ->  rcx         "CSE - aggressive"
+;  V102 cse2        [V102,T30] (  4,  0.04)    long  ->  r13         "CSE - conservative"
+;  V103 cse3        [V103,T35] (  2,  0.02)     ref  ->  rcx         "CSE - conservative"
 ;  V104 cse4        [V104,T36] (  2,  0.02)     ref  ->  rcx         "CSE - conservative"
 ;  V105 cse5        [V105,T37] (  2,  0.02)     ref  ->  rcx         "CSE - conservative"
-;  V106 cse6        [V106,T38] (  2,  0.02)     ref  ->  rcx         "CSE - conservative"
 ;
 ; Lcl frame size = 216
 
@@ -202,104 +201,103 @@ G_M12189_IG04:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rb
 G_M12189_IG05:        ; bbWeight=0.60, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref
        ; gcrRegs -[rax]
        xor      r14d, r14d
-       mov      r15d, dword ptr [rdi+0x08]
-       test     r15d, r15d
+       cmp      dword ptr [rdi+0x08], 0
        jle      G_M12189_IG25
-                       ;; size=16 bbWeight=0.60 PerfScore 2.09
+                       ;; size=13 bbWeight=0.60 PerfScore 2.54
 G_M12189_IG06:        ; bbWeight=2.03, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
        mov      ecx, r14d
        mov      rdx, gword ptr [rdi+8*rcx+0x10]
        ; gcrRegs +[rdx]
-       mov      r13, rdx
-       ; gcrRegs +[r13]
-       test     r13, r13
+       mov      r15, rdx
+       ; gcrRegs +[r15]
+       test     r15, r15
        je       SHORT G_M12189_IG09
                        ;; size=16 bbWeight=2.03 PerfScore 7.60
-G_M12189_IG07:        ; bbWeight=1.01, gcrefRegs=20C4 {rdx rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
+G_M12189_IG07:        ; bbWeight=1.01, gcrefRegs=80C4 {rdx rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
        mov      rcx, 0xD1FFAB1E      ; System.RuntimeType
-       cmp      qword ptr [r13], rcx
+       cmp      qword ptr [r15], rcx
        je       SHORT G_M12189_IG09
-                       ;; size=16 bbWeight=1.01 PerfScore 4.31
+                       ;; size=15 bbWeight=1.01 PerfScore 4.31
 G_M12189_IG08:        ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi rdi r13]
+       ; gcrRegs -[rsi rdi r15]
        ; byrRegs -[rbx]
        call     CORINFO_HELP_CHKCASTCLASS_SPECIAL
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
-G_M12189_IG09:        ; bbWeight=2.03, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
-       ; gcrRegs -[rax] +[rsi rdi r13]
+G_M12189_IG09:        ; bbWeight=2.03, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
+       ; gcrRegs -[rax] +[rsi rdi r15]
        ; byrRegs +[rbx]
        mov      ecx, dword ptr [rbx+0x10]
        cmp      ecx, 1
        je       SHORT G_M12189_IG11
                        ;; size=8 bbWeight=2.03 PerfScore 6.59
-G_M12189_IG10:        ; bbWeight=0.94, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
+G_M12189_IG10:        ; bbWeight=0.94, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
        cmp      ecx, 2
        jne      SHORT G_M12189_IG21
                        ;; size=5 bbWeight=0.94 PerfScore 1.18
-G_M12189_IG11:        ; bbWeight=2.03, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rcx, r13
+G_M12189_IG11:        ; bbWeight=2.03, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
+       mov      rcx, r15
        ; gcrRegs +[rcx]
        call     <unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      r12, rax
-       test     r12, r12
+       mov      r13, rax
+       test     r13, r13
        jne      SHORT G_M12189_IG16
                        ;; size=16 bbWeight=2.03 PerfScore 5.58
-G_M12189_IG12:        ; bbWeight=0, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref
+G_M12189_IG12:        ; bbWeight=0, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0 PerfScore 0.00
-G_M12189_IG13:        ; bbWeight=0.44, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
-       mov      r15, r12
+G_M12189_IG13:        ; bbWeight=0.44, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
+       mov      r12, r13
        cmp      dword ptr [rbx+0x10], 1
        jne      SHORT G_M12189_IG17
                        ;; size=9 bbWeight=0.44 PerfScore 1.87
-G_M12189_IG14:        ; bbWeight=0.44, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
+G_M12189_IG14:        ; bbWeight=0.44, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
        cmp      eax, dword ptr [rbx+0x08]
        je       SHORT G_M12189_IG18
                        ;; size=5 bbWeight=0.44 PerfScore 1.75
-G_M12189_IG15:        ; bbWeight=0.40, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
-       xor      r15d, r15d
+G_M12189_IG15:        ; bbWeight=0.40, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
+       xor      r12d, r12d
        jmp      SHORT G_M12189_IG19
                        ;; size=5 bbWeight=0.40 PerfScore 0.90
-G_M12189_IG16:        ; bbWeight=0.44, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rcx, r12
+G_M12189_IG16:        ; bbWeight=0.44, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
...

-9 (-0.50%) : 112679.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateInterfaces(System.RuntimeType+RuntimeTypeCache+Filter):System.RuntimeType[]:this (Instrumented Tier1)

@@ -12,74 +12,74 @@
 ;  V00 this         [V00,T05] (  8,  4.04)     ref  ->  rsi         this class-hnd single-def <System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]>
 ;  V01 arg1         [V01,T01] ( 14, 10.04)   byref  ->  rbx         ld-addr-op single-def
 ;  V02 loc0         [V02    ] ( 13,  4.87)  struct (24) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.RuntimeType]>
-;  V03 loc1         [V03,T13] (  5,  3   )     ref  ->  rdi         class-hnd exact single-def <System.RuntimeType>
+;  V03 loc1         [V03,T12] (  5,  3   )     ref  ->  rdi         class-hnd exact single-def <System.RuntimeType>
 ;  V04 loc2         [V04,T04] (  5,  6.65)     ref  ->  rdi         class-hnd single-def <<unknown class>>
 ;  V05 loc3         [V05,T02] (  5,  8.71)     int  ->  r14        
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.RuntimeType>
 ;* V07 loc5         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.RuntimeType>
-;  V08 loc6         [V08,T50] (  4,  0   )     ref  ->  rsi         class-hnd exact single-def <<unknown class>>
-;  V09 loc7         [V09,T52] (  3,  0   )     ref  ->  rdi         class-hnd single-def <<unknown class>>
-;  V10 loc8         [V10,T48] (  5,  0   )     int  ->  r14        
+;  V08 loc6         [V08,T49] (  4,  0   )     ref  ->  rsi         class-hnd exact single-def <<unknown class>>
+;  V09 loc7         [V09,T51] (  3,  0   )     ref  ->  rdi         class-hnd single-def <<unknown class>>
+;  V10 loc8         [V10,T47] (  5,  0   )     int  ->  r14        
 ;* V11 loc9         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.RuntimeType>
-;  V12 loc10        [V12,T53] (  3,  0   )     ref  ->  r15         class-hnd <<unknown class>>
-;  V13 loc11        [V13,T49] (  5,  0   )     int  ->  r13        
+;  V12 loc10        [V12,T52] (  3,  0   )     ref  ->  r15         class-hnd <<unknown class>>
+;  V13 loc11        [V13,T48] (  5,  0   )     int  ->  r13        
 ;  V14 loc12        [V14    ] (  3,  0   )  struct (24) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.HashSet`1+Enumerator[System.RuntimeType]>
-;  V15 loc13        [V15,T54] (  3,  0   )     ref  ->  rsi         class-hnd exact <System.RuntimeType>
+;  V15 loc13        [V15,T53] (  3,  0   )     ref  ->  rsi         class-hnd exact <System.RuntimeType>
 ;  V16 OutArgs      [V16    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V17 tmp1         [V17,T55] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V18 tmp2         [V18,T56] (  3,  0   )     ref  ->  rdx         "CASTCLASS eval op1"
-;  V19 tmp3         [V19,T60] (  3,  0   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V20 tmp4         [V20,T47] (  7,  0   )     ref  ->  r15         class-hnd "spilling QMark2" <System.RuntimeType>
-;  V21 tmp5         [V21,T57] (  3,  0   )     ref  ->  rdx         "CASTCLASS eval op1"
-;  V22 tmp6         [V22,T61] (  3,  0   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V23 tmp7         [V23,T51] (  4,  0   )     ref  ->  rax         class-hnd "spilling QMark2" <System.RuntimeType>
+;  V17 tmp1         [V17,T54] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V18 tmp2         [V18,T55] (  3,  0   )     ref  ->  rdx         "CASTCLASS eval op1"
+;  V19 tmp3         [V19,T59] (  3,  0   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V20 tmp4         [V20,T46] (  7,  0   )     ref  ->  r15         class-hnd "spilling QMark2" <System.RuntimeType>
+;  V21 tmp5         [V21,T56] (  3,  0   )     ref  ->  rdx         "CASTCLASS eval op1"
+;  V22 tmp6         [V22,T60] (  3,  0   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V23 tmp7         [V23,T50] (  4,  0   )     ref  ->  rax         class-hnd "spilling QMark2" <System.RuntimeType>
 ;* V24 tmp8         [V24    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.MdUtf8String>
-;  V25 tmp9         [V25,T32] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
-;  V26 tmp10        [V26,T39] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V27 tmp11        [V27,T21] (  8,  0.15)     ref  ->  r13         class-hnd single-def "spilling QMark2" <System.RuntimeType>
-;  V28 tmp12        [V28,T25] (  3,  0.06)     ref  ->  rdi         class-hnd exact single-def "dup spill" <<unknown class>>
+;  V25 tmp9         [V25,T31] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
+;  V26 tmp10        [V26,T38] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V27 tmp11        [V27,T20] (  8,  0.15)     ref  ->  r15         class-hnd single-def "spilling QMark2" <System.RuntimeType>
+;  V28 tmp12        [V28,T24] (  3,  0.06)     ref  ->  rdi         class-hnd exact single-def "dup spill" <<unknown class>>
 ;  V29 tmp13        [V29    ] (  2,  0.04)  struct (24) [rbp-0x80]  do-not-enreg[XS] addr-exposed "impAppendStmt" <System.RuntimeType+RuntimeTypeCache+Filter>
 ;* V30 tmp14        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
-;  V31 tmp15        [V31,T33] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
-;  V32 tmp16        [V32,T40] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V33 tmp17        [V33,T22] (  4,  0.07)     ref  ->   r9         class-hnd single-def "spilling QMark2" <System.RuntimeType>
-;  V34 tmp18        [V34,T26] (  3,  0.06)     ref  ->  r14         class-hnd exact single-def "dup spill" <<unknown class>>
+;  V31 tmp15        [V31,T32] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
+;  V32 tmp16        [V32,T39] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V33 tmp17        [V33,T21] (  4,  0.07)     ref  ->   r9         class-hnd single-def "spilling QMark2" <System.RuntimeType>
+;  V34 tmp18        [V34,T25] (  3,  0.06)     ref  ->  r14         class-hnd exact single-def "dup spill" <<unknown class>>
 ;  V35 tmp19        [V35    ] (  2,  0.04)  struct (24) [rbp-0x98]  do-not-enreg[XS] addr-exposed "impAppendStmt" <System.RuntimeType+RuntimeTypeCache+Filter>
 ;* V36 tmp20        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
-;  V37 tmp21        [V37,T34] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
-;  V38 tmp22        [V38,T41] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V39 tmp23        [V39,T23] (  4,  0.07)     ref  ->   r9         class-hnd single-def "spilling QMark2" <System.RuntimeType>
-;  V40 tmp24        [V40,T27] (  3,  0.06)     ref  ->  rbx         class-hnd exact single-def "dup spill" <<unknown class>>
+;  V37 tmp21        [V37,T33] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
+;  V38 tmp22        [V38,T40] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V39 tmp23        [V39,T22] (  4,  0.07)     ref  ->   r9         class-hnd single-def "spilling QMark2" <System.RuntimeType>
+;  V40 tmp24        [V40,T26] (  3,  0.06)     ref  ->  rbx         class-hnd exact single-def "dup spill" <<unknown class>>
 ;  V41 tmp25        [V41    ] (  2,  0.04)  struct (24) [rbp-0xB0]  do-not-enreg[XS] addr-exposed "impAppendStmt" <System.RuntimeType+RuntimeTypeCache+Filter>
 ;* V42 tmp26        [V42    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
-;  V43 tmp27        [V43,T35] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
-;  V44 tmp28        [V44,T42] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V45 tmp29        [V45,T24] (  4,  0.07)     ref  ->   r9         class-hnd single-def "spilling QMark2" <System.RuntimeType>
+;  V43 tmp27        [V43,T34] (  3,  0.04)     ref  ->  rax         single-def "CASTCLASS eval op1"
+;  V44 tmp28        [V44,T41] (  3,  0.02)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V45 tmp29        [V45,T23] (  4,  0.07)     ref  ->   r9         class-hnd single-def "spilling QMark2" <System.RuntimeType>
 ;  V46 tmp30        [V46,T03] (  3,  8.11)     ref  ->  rdx         "CASTCLASS eval op1"
-;  V47 tmp31        [V47,T11] (  3,  4.06)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V48 tmp32        [V48,T00] (  5, 17.87)     ref  ->  r13         class-hnd "spilling QMark2" <System.RuntimeType>
+;  V47 tmp31        [V47,T10] (  3,  4.06)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V48 tmp32        [V48,T00] (  5, 17.87)     ref  ->  r15         class-hnd "spilling QMark2" <System.RuntimeType>
 ;* V49 tmp33        [V49    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.MdUtf8String>
 ;  V50 tmp34        [V50,T06] (  3,  6   )     ref  ->  rdi         single-def "handle histogram profile tmp"
-;  V51 tmp35        [V51,T28] (  3,  0.06)     ref  ->  r14         single-def "handle histogram profile tmp"
+;  V51 tmp35        [V51,T27] (  3,  0.06)     ref  ->  r14         single-def "handle histogram profile tmp"
 ;* V52 tmp36        [V52    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
 ;* V53 tmp37        [V53    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
 ;* V54 tmp38        [V54    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
 ;* V55 tmp39        [V55    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
 ;* V56 tmp40        [V56    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V57 tmp41        [V57    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.RuntimeType+RuntimeTypeCache>
-;* V58 tmp42        [V58,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V58 tmp42        [V58,T13] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V59 tmp43        [V59    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.MdUtf8String>
-;  V60 tmp44        [V60,T12] (  5,  9.95)    long  ->  r12         "Inlining Arg"
+;  V60 tmp44        [V60,T11] (  5,  9.95)    long  ->  r13         "Inlining Arg"
 ;* V61 tmp45        [V61    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V62 tmp46        [V62,T16] (  3,  0.88)   ubyte  ->  r15         "Inline stloc first use temp"
-;  V63 tmp47        [V63,T19] (  3,  0.88)   ubyte  ->  r15         "Inline return value spill temp"
+;  V62 tmp46        [V62,T15] (  3,  0.88)   ubyte  ->  r12         "Inline stloc first use temp"
+;  V63 tmp47        [V63,T18] (  3,  0.88)   ubyte  ->  r12         "Inline return value spill temp"
 ;* V64 tmp48        [V64    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.RuntimeType+RuntimeTypeCache>
 ;* V65 tmp49        [V65    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.RuntimeType+RuntimeTypeCache>
 ;* V66 tmp50        [V66    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;  V67 tmp51        [V67    ] (  1,  0   )     int  ->  [rbp-0xB8]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;  V68 tmp52        [V68    ] (  1,  0   )     int  ->  [rbp-0xC0]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;  V69 tmp53        [V69    ] (  3,  0   )  struct (16) [rbp-0xD0]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.MdUtf8String>
-;  V70 tmp54        [V70,T15] (  4,  2   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.RuntimeType[]>
+;  V70 tmp54        [V70,T14] (  4,  2   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.RuntimeType[]>
 ;  V71 tmp55        [V71,T07] (  3,  6   )     ref  ->  rbx         class-hnd exact single-def "dup spill" <System.RuntimeType[]>
 ;  V72 tmp56        [V72    ] (  7,  1.87)     ref  ->  [rbp-0x50]  do-not-enreg[X] addr-exposed "field V02._items (fldOffset=0x0)" P-DEP
 ;  V73 tmp57        [V73    ] (  6,  2.87)     ref  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V02._item (fldOffset=0x8)" P-DEP
@@ -93,29 +93,28 @@
 ;* V81 tmp65        [V81    ] (  0,  0   )     int  ->  zero-ref    "field V24.m_StringHeapByteLength (fldOffset=0x8)" P-INDEP
 ;* V82 tmp66        [V82    ] (  0,  0   )    long  ->  zero-ref    "field V49.m_pStringHeap (fldOffset=0x0)" P-INDEP
 ;* V83 tmp67        [V83    ] (  0,  0   )     int  ->  zero-ref    "field V49.m_StringHeapByteLength (fldOffset=0x8)" P-INDEP
-;  V84 tmp68        [V84,T20] (  2,  0.44)    long  ->  r15         "field V59.m_pStringHeap (fldOffset=0x0)" P-INDEP
-;  V85 tmp69        [V85,T18] (  4,  0.88)     int  ->  rax         "field V59.m_StringHeapByteLength (fldOffset=0x8)" P-INDEP
+;  V84 tmp68        [V84,T19] (  2,  0.44)    long  ->  r12         "field V59.m_pStringHeap (fldOffset=0x0)" P-INDEP
+;  V85 tmp69        [V85,T17] (  4,  0.88)     int  ->  rax         "field V59.m_StringHeapByteLength (fldOffset=0x8)" P-INDEP
 ;  V86 tmp70        [V86    ] (  3,  0   )    long  ->  [rbp-0xD0]  do-not-enreg[X] addr-exposed "field V69.m_pStringHeap (fldOffset=0x0)" P-DEP
 ;  V87 tmp71        [V87    ] (  3,  0   )     int  ->  [rbp-0xC8]  do-not-enreg[X] addr-exposed "field V69.m_StringHeapByteLength (fldOffset=0x8)" P-DEP
-;  V88 tmp72        [V88,T58] (  3,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V89 tmp73        [V89,T59] (  3,  0   )     ref  ->  rcx         "argument with side effect"
-;  V90 tmp74        [V90,T62] (  2,  0   )    long  ->  rdx         "argument with side effect"
+;  V88 tmp72        [V88,T57] (  3,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V89 tmp73        [V89,T58] (  3,  0   )     ref  ->  rcx         "argument with side effect"
+;  V90 tmp74        [V90,T61] (  2,  0   )    long  ->  rdx         "argument with side effect"
 ;  V91 tmp75        [V91    ] (  5,  0.01)  struct (16) [rbp-0xE0]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.MdUtf8String>
-;* V92 tmp76        [V92,T63] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V93 tmp77        [V93,T46] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
+;* V92 tmp76        [V92,T62] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
+;* V93 tmp77        [V93,T45] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
 ;  V94 tmp78        [V94,T08] (  3,  6   )     ref  ->  rcx         single-def "argument with side effect"
-;  V95 tmp79        [V95,T29] (  3,  0.06)     ref  ->  rcx         single-def "argument with side effect"
-;* V96 tmp80        [V96,T43] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;* V97 tmp81        [V97,T44] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;* V98 tmp82        [V98,T45] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V99 PSPSym       [V99,T17] (  1,  1   )    long  ->  [rbp-0xE8]  do-not-enreg[V] "PSPSym"
-;  V100 cse0        [V100,T30] (  4,  0.04)    long  ->  rdi         "CSE - conservative"
-;  V101 cse1        [V101,T10] (  3,  5.00)     int  ->  rcx         "CSE - aggressive"
-;  V102 cse2        [V102,T09] (  4,  5.25)     int  ->  r15         multi-def "CSE - aggressive"
-;  V103 cse3        [V103,T31] (  4,  0.04)    long  ->  r12         "CSE - conservative"
+;  V95 tmp79        [V95,T28] (  3,  0.06)     ref  ->  rcx         single-def "argument with side effect"
+;* V96 tmp80        [V96,T42] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;* V97 tmp81        [V97,T43] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;* V98 tmp82        [V98,T44] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V99 PSPSym       [V99,T16] (  1,  1   )    long  ->  [rbp-0xE8]  do-not-enreg[V] "PSPSym"
+;  V100 cse0        [V100,T29] (  4,  0.04)    long  ->  rdi         "CSE - conservative"
+;  V101 cse1        [V101,T09] (  3,  5.00)     int  ->  rcx         "CSE - aggressive"
+;  V102 cse2        [V102,T30] (  4,  0.04)    long  ->  r13         "CSE - conservative"
+;  V103 cse3        [V103,T35] (  2,  0.02)     ref  ->  rcx         "CSE - conservative"
 ;  V104 cse4        [V104,T36] (  2,  0.02)     ref  ->  rcx         "CSE - conservative"
 ;  V105 cse5        [V105,T37] (  2,  0.02)     ref  ->  rcx         "CSE - conservative"
-;  V106 cse6        [V106,T38] (  2,  0.02)     ref  ->  rcx         "CSE - conservative"
 ;
 ; Lcl frame size = 216
 
@@ -202,104 +201,103 @@ G_M12189_IG04:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rb
 G_M12189_IG05:        ; bbWeight=0.60, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref
        ; gcrRegs -[rax]
        xor      r14d, r14d
-       mov      r15d, dword ptr [rdi+0x08]
-       test     r15d, r15d
+       cmp      dword ptr [rdi+0x08], 0
        jle      G_M12189_IG25
-                       ;; size=16 bbWeight=0.60 PerfScore 2.09
+                       ;; size=13 bbWeight=0.60 PerfScore 2.54
 G_M12189_IG06:        ; bbWeight=2.03, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
        mov      ecx, r14d
        mov      rdx, gword ptr [rdi+8*rcx+0x10]
        ; gcrRegs +[rdx]
-       mov      r13, rdx
-       ; gcrRegs +[r13]
-       test     r13, r13
+       mov      r15, rdx
+       ; gcrRegs +[r15]
+       test     r15, r15
        je       SHORT G_M12189_IG09
                        ;; size=16 bbWeight=2.03 PerfScore 7.60
-G_M12189_IG07:        ; bbWeight=1.01, gcrefRegs=20C4 {rdx rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
+G_M12189_IG07:        ; bbWeight=1.01, gcrefRegs=80C4 {rdx rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
        mov      rcx, 0xD1FFAB1E      ; System.RuntimeType
-       cmp      qword ptr [r13], rcx
+       cmp      qword ptr [r15], rcx
        je       SHORT G_M12189_IG09
-                       ;; size=16 bbWeight=1.01 PerfScore 4.31
+                       ;; size=15 bbWeight=1.01 PerfScore 4.31
 G_M12189_IG08:        ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi rdi r13]
+       ; gcrRegs -[rsi rdi r15]
        ; byrRegs -[rbx]
        call     CORINFO_HELP_CHKCASTCLASS_SPECIAL
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
-G_M12189_IG09:        ; bbWeight=2.03, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
-       ; gcrRegs -[rax] +[rsi rdi r13]
+G_M12189_IG09:        ; bbWeight=2.03, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
+       ; gcrRegs -[rax] +[rsi rdi r15]
        ; byrRegs +[rbx]
        mov      ecx, dword ptr [rbx+0x10]
        cmp      ecx, 1
        je       SHORT G_M12189_IG11
                        ;; size=8 bbWeight=2.03 PerfScore 6.59
-G_M12189_IG10:        ; bbWeight=0.94, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
+G_M12189_IG10:        ; bbWeight=0.94, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
        cmp      ecx, 2
        jne      SHORT G_M12189_IG21
                        ;; size=5 bbWeight=0.94 PerfScore 1.18
-G_M12189_IG11:        ; bbWeight=2.03, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rcx, r13
+G_M12189_IG11:        ; bbWeight=2.03, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
+       mov      rcx, r15
        ; gcrRegs +[rcx]
        call     <unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      r12, rax
-       test     r12, r12
+       mov      r13, rax
+       test     r13, r13
        jne      SHORT G_M12189_IG16
                        ;; size=16 bbWeight=2.03 PerfScore 5.58
-G_M12189_IG12:        ; bbWeight=0, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref
+G_M12189_IG12:        ; bbWeight=0, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0 PerfScore 0.00
-G_M12189_IG13:        ; bbWeight=0.44, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
-       mov      r15, r12
+G_M12189_IG13:        ; bbWeight=0.44, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
+       mov      r12, r13
        cmp      dword ptr [rbx+0x10], 1
        jne      SHORT G_M12189_IG17
                        ;; size=9 bbWeight=0.44 PerfScore 1.87
-G_M12189_IG14:        ; bbWeight=0.44, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
+G_M12189_IG14:        ; bbWeight=0.44, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
        cmp      eax, dword ptr [rbx+0x08]
        je       SHORT G_M12189_IG18
                        ;; size=5 bbWeight=0.44 PerfScore 1.75
-G_M12189_IG15:        ; bbWeight=0.40, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
-       xor      r15d, r15d
+G_M12189_IG15:        ; bbWeight=0.40, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
+       xor      r12d, r12d
        jmp      SHORT G_M12189_IG19
                        ;; size=5 bbWeight=0.40 PerfScore 0.90
-G_M12189_IG16:        ; bbWeight=0.44, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rcx, r12
+G_M12189_IG16:        ; bbWeight=0.44, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0008 {rbx}, byref, isz
...

+3 (+0.27%) : 94043.dasm - System.RuntimeType:GetField(System.String,int):System.Reflection.FieldInfo:this (Instrumented Tier1)

@@ -12,13 +12,13 @@
 ;  V00 this         [V00,T02] (  4,  3.01)     ref  ->  rdi         this class-hnd single-def <System.RuntimeType>
 ;  V01 arg1         [V01,T01] (  9,  3.02)     ref  ->  rsi         ld-addr-op class-hnd <System.String>
 ;  V02 arg2         [V02,T00] (  6,  5.33)     int  ->  rbx        
-;  V03 loc0         [V03,T12] (  5,  2.02)     int  ->  rbp         ld-addr-op
-;  V04 loc1         [V04,T09] (  3,  2.33)     ref  ->  rdi         class-hnd single-def <System.Reflection.RuntimeFieldInfo[]>
+;  V03 loc0         [V03,T11] (  5,  2.02)     int  ->  rbp         ld-addr-op
+;  V04 loc1         [V04,T09] (  4,  2.66)     ref  ->  rdi         class-hnd single-def <System.Reflection.RuntimeFieldInfo[]>
 ;  V05 loc2         [V05,T08] ( 16,  2.66)     ref  ->  rbp         class-hnd <System.Reflection.FieldInfo>
-;  V06 loc3         [V06,T14] (  3,  2   )   ubyte  ->  r14        
+;  V06 loc3         [V06,T13] (  3,  2   )   ubyte  ->  r14        
 ;* V07 loc4         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op
-;  V08 loc5         [V08,T11] (  5,  2.32)     int  ->  r13        
-;  V09 loc6         [V09,T15] ( 12,  0.99)     ref  ->  rsi         class-hnd <System.Reflection.RuntimeFieldInfo>
+;  V08 loc5         [V08,T10] (  5,  2.32)     int  ->  r13        
+;  V09 loc6         [V09,T14] ( 12,  0.99)     ref  ->  r12         class-hnd <System.Reflection.RuntimeFieldInfo>
 ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V12 tmp2         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <System.Type>
@@ -28,7 +28,7 @@
 ;* V16 tmp6         [V16    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V17 tmp7         [V17    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V18 tmp8         [V18    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V19 tmp9         [V19,T20] (  3,  0   )     ref  ->  r15         "handle histogram profile tmp"
+;  V19 tmp9         [V19,T19] (  3,  0   )     ref  ->  rsi         "handle histogram profile tmp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V21 tmp11        [V21    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V22 tmp12        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
@@ -46,28 +46,27 @@
 ;* V34 tmp24        [V34    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V35 tmp25        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
 ;  V36 tmp26        [V36,T03] ( 14,  5.00)     ref  ->  r15         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V37 tmp27        [V37,T17] (  4,  0.00)     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V37 tmp27        [V37,T16] (  4,  0.00)     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V38 tmp28        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V39 tmp29        [V39,T13] (  5,  2   )     ref  ->  rdi         class-hnd "Inline return value spill temp" <System.Reflection.RuntimeFieldInfo[]>
-;  V40 tmp30        [V40,T27] (  2,  0   )     ref  ->  rax         class-hnd single-def "dup spill" <System.__Canon>
-;  V41 tmp31        [V41,T18] (  4,  0   )     ref  ->  rdi        
-;  V42 tmp32        [V42,T28] (  2,  0   )     ref  ->  rax         class-hnd single-def "dup spill" <System.__Canon>
-;  V43 tmp33        [V43,T19] (  4,  0   )     ref  ->  rdi        
+;  V39 tmp29        [V39,T12] (  5,  2   )     ref  ->  rdi         class-hnd "Inline return value spill temp" <System.Reflection.RuntimeFieldInfo[]>
+;  V40 tmp30        [V40,T26] (  2,  0   )     ref  ->  rax         class-hnd single-def "dup spill" <System.__Canon>
+;  V41 tmp31        [V41,T17] (  4,  0   )     ref  ->  rdi        
+;  V42 tmp32        [V42,T27] (  2,  0   )     ref  ->  rax         class-hnd single-def "dup spill" <System.__Canon>
+;  V43 tmp33        [V43,T18] (  4,  0   )     ref  ->  rdi        
 ;* V44 tmp34        [V44    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V45 tmp35        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V46 tmp36        [V46,T30] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V47 tmp37        [V47,T21] (  3,  0   )     ref  ->  rcx         "argument with side effect"
-;  V48 tmp38        [V48,T22] (  3,  0   )     ref  ->  rcx         "argument with side effect"
-;* V49 tmp39        [V49,T31] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;* V50 tmp40        [V50,T32] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V51 tmp41        [V51,T23] (  3,  0   )     ref  ->  rcx         "argument with side effect"
-;  V52 tmp42        [V52,T24] (  3,  0   )     ref  ->  r15         "argument with side effect"
-;  V53 tmp43        [V53,T29] (  2,  0   )     ref  ->  rdx         "argument with side effect"
-;  V54 tmp44        [V54,T25] (  3,  0   )     ref  ->  rcx         "argument with side effect"
-;  V55 tmp45        [V55,T26] (  3,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V56 cse0         [V56,T16] (  3,  0.99)     int  ->  rcx         "CSE - conservative"
-;  V57 cse1         [V57,T10] (  3,  2.33)     int  ->  r12         "CSE - moderate"
-;  V58 cse2         [V58,T06] (  3,  2.99)    long  ->  rcx         "CSE - moderate"
+;* V46 tmp36        [V46,T29] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V47 tmp37        [V47,T20] (  3,  0   )     ref  ->  rcx         "argument with side effect"
+;  V48 tmp38        [V48,T21] (  3,  0   )     ref  ->  rcx         "argument with side effect"
+;* V49 tmp39        [V49,T30] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;* V50 tmp40        [V50,T31] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V51 tmp41        [V51,T22] (  3,  0   )     ref  ->  rcx         "argument with side effect"
+;  V52 tmp42        [V52,T23] (  3,  0   )     ref  ->  rsi         "argument with side effect"
+;  V53 tmp43        [V53,T28] (  2,  0   )     ref  ->  rdx         "argument with side effect"
+;  V54 tmp44        [V54,T24] (  3,  0   )     ref  ->  rcx         "argument with side effect"
+;  V55 tmp45        [V55,T25] (  3,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V56 cse0         [V56,T15] (  3,  0.99)     int  ->  rcx         "CSE - conservative"
+;  V57 cse1         [V57,T06] (  3,  2.99)    long  ->  rcx         "CSE - moderate"
 ;
 ; Lcl frame size = 40
 
@@ -249,15 +248,14 @@ G_M40435_IG17:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
        xor      ebx, 2
        xor      r14d, r14d
        xor      r13d, r13d
-       mov      r12d, dword ptr [rdi+0x08]
-       test     r12d, r12d
+       cmp      dword ptr [rdi+0x08], 0
        jle      SHORT G_M40435_IG21
-                       ;; size=20 bbWeight=1 PerfScore 4.25
+                       ;; size=17 bbWeight=1 PerfScore 5.00
 G_M40435_IG18:        ; bbWeight=0.33, gcrefRegs=00A0 {rbp rdi}, byrefRegs=0000 {}, byref, isz
        mov      ecx, r13d
-       mov      rsi, gword ptr [rdi+8*rcx+0x10]
-       ; gcrRegs +[rsi]
-       mov      ecx, dword ptr [rsi+0x18]
+       mov      r12, gword ptr [rdi+8*rcx+0x10]
+       ; gcrRegs +[r12]
+       mov      ecx, dword ptr [r12+0x18]
        mov      eax, ebx
        and      eax, ecx
        cmp      eax, ecx
@@ -265,9 +263,9 @@ G_M40435_IG18:        ; bbWeight=0.33, gcrefRegs=00A0 {rbp rdi}, byrefRegs=0000
        test     rbp, rbp
        je       G_M40435_IG28
        jmp      SHORT G_M40435_IG26
-                       ;; size=34 bbWeight=0.33 PerfScore 3.04
+                       ;; size=36 bbWeight=0.33 PerfScore 3.04
 G_M40435_IG19:        ; bbWeight=1.00, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbp rsi rdi] +[r15]
+       ; gcrRegs -[rbp rdi r12] +[r15]
        mov      rdi, gword ptr [r15+0x08]
        ; gcrRegs +[rdi]
        jmp      SHORT G_M40435_IG17
@@ -325,23 +323,23 @@ G_M40435_IG25:        ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
        ; gcrRegs -[rax]
        jmp      G_M40435_IG17
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M40435_IG26:        ; bbWeight=0, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rbp rsi]
-       mov      rcx, rsi
+G_M40435_IG26:        ; bbWeight=0, gcrefRegs=10A0 {rbp rdi r12}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rbp r12]
+       mov      rcx, r12
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rcx, rsi
+       mov      rcx, r12
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [rsi]
+       mov      rax, qword ptr [r12]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x38]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       mov      r15, rax
-       ; gcrRegs +[r15]
+       mov      rsi, rax
+       ; gcrRegs +[rsi]
        mov      rcx, rbp
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
@@ -355,13 +353,13 @@ G_M40435_IG26:        ; bbWeight=0, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000
        call     [rax+0x38]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       cmp      r15, rax
+       cmp      rsi, rax
        je       G_M40435_IG37
        mov      rcx, rbp
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
-       ; gcrRegs -[rax rcx r15]
+       ; gcrRegs -[rax rcx rsi]
        ; gcr arg pop 0
        mov      rcx, rbp
        ; gcrRegs +[rcx]
@@ -378,15 +376,15 @@ G_M40435_IG26:        ; bbWeight=0, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000
        ; gcr arg pop 0
        test     eax, eax
        je       G_M40435_IG36
-       mov      rcx, rsi
+       mov      rcx, r12
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rcx, rsi
+       mov      rcx, r12
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [rsi]
+       mov      rax, qword ptr [r12]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x38]<unknown method>
        ; gcrRegs -[rcx] +[rax]
@@ -403,24 +401,24 @@ G_M40435_IG26:        ; bbWeight=0, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
        mov      r14d, 1
-                       ;; size=195 bbWeight=0 PerfScore 0.00
-G_M40435_IG27:        ; bbWeight=0, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
-       mov      rcx, rsi
+                       ;; size=197 bbWeight=0 PerfScore 0.00
+G_M40435_IG27:        ; bbWeight=0, gcrefRegs=10A0 {rbp rdi r12}, byrefRegs=0000 {}, byref, isz
+       mov      rcx, r12
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rcx, rsi
+       mov      rcx, r12
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [rsi]
+       mov      rax, qword ptr [r12]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x38]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       mov      r15, rax
-       ; gcrRegs +[r15]
-       mov      rcx, r15
+       mov      rsi, rax
+       ; gcrRegs +[rsi]
+       mov      rcx, rsi
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
@@ -441,13 +439,13 @@ G_M40435_IG27:        ; bbWeight=0, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000
        ; gcr arg pop 0
        mov      rdx, rax
        ; gcrRegs +[rdx]
-       mov      rcx, r15
+       mov      rcx, rsi
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [r15]
+       mov      rax, qword ptr [rsi]
        ; gcrRegs -[rax]
        mov      rax, qword ptr [rax+0xB0]
        call     [rax+0x18]<unknown method>
-       ; gcrRegs -[rcx rdx r15]
+       ; gcrRegs -[rcx rdx rsi]
        ; gcr arg pop 0
        test     eax, eax
        jne      G_M40435_IG34
@@ -476,24 +474,24 @@ G_M40435_IG27:        ; bbWeight=0, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcrRegs -[rbp]
        ; gcr arg pop 0
-                       ;; size=171 bbWeight=0 PerfScore 0.00
-G_M40435_IG28:        ; bbWeight=0.33, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
+                       ;; size=172 bbWeight=0 PerfScore 0.00
+G_M40435_IG28:        ; bbWeight=0.33, gcrefRegs=1080 {rdi r12}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       mov      rbp, rsi
+       mov      rbp, r12
        ; gcrRegs +[rbp]
                        ;; size=18 bbWeight=0.33 PerfScore 0.49
 G_M40435_IG29:        ; bbWeight=0.33, gcrefRegs=00A0 {rbp rdi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi]
+       ; gcrRegs -[r12]
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
        inc      r13d
-       cmp      r12d, r13d
+       cmp      dword ptr [rdi+0x08], r13d
        jg       G_M40435_IG18
        jmp      G_M40435_IG21
...

+9 (+0.56%) : 95486.dasm - Microsoft.AspNetCore.Routing.Matching.CandidateSet:ExpandEndpoint(int,System.Collections.Generic.IReadOnlyList1[Microsoft.AspNetCore.Http.Endpoint],System.Collections.Generic.IComparer1[Microsoft.AspNetCore.Http.Endpoint]):this (Instrumented Tier1)

@@ -10,19 +10,19 @@
 ;
 ;  V00 this         [V00,T10] ( 13, 25.50)     ref  ->  rsi         this class-hnd single-def <Microsoft.AspNetCore.Routing.Matching.CandidateSet>
 ;  V01 arg1         [V01,T05] ( 21, 31   )     int  ->  rbx         single-def
-;  V02 arg2         [V02,T21] ( 12, 12   )     ref  ->  rbp         class-hnd single-def <System.Collections.Generic.IReadOnlyList`1[Microsoft.AspNetCore.Http.Endpoint]>
-;  V03 arg3         [V03,T14] (  6, 11.50)     ref  ->  rdi         class-hnd single-def <System.Collections.Generic.IComparer`1[Microsoft.AspNetCore.Http.Endpoint]>
-;  V04 loc0         [V04,T15] (  3, 17   )     int  ->  r15         single-def
-;  V05 loc1         [V05,T04] (  3, 17   )     ref  ->  [rsp+0x60]  class-hnd spill-single-def <Microsoft.AspNetCore.Routing.RouteValueDictionary>
-;  V06 loc2         [V06,T27] (  6,  9   )     ref  ->  r13         class-hnd exact single-def <<unknown class>>
-;  V07 loc3         [V07,T36] (  8,  6.54)     ref  ->  [rsp+0x58]  class-hnd exact spill-single-def <<unknown class>>
-;  V08 loc4         [V08,T11] (  8, 26.50)     ref  ->  [rsp+0x50]  class-hnd spill-single-def <<unknown class>>
-;  V09 loc5         [V09,T12] (  5, 22.50)     int  ->  [rsp+0x84] 
-;  V10 loc6         [V10,T50] (  3,  2.50)     int  ->  rax         single-def
-;  V11 loc7         [V11,T16] ( 11, 16.58)     int  ->  [rsp+0x80] 
-;  V12 loc8         [V12,T02] (  8, 88.50)     int  ->  [rsp+0x7C] 
-;  V13 loc9         [V13,T26] (  3, 10   )     int  ->  rax        
-;  V14 loc10        [V14,T20] (  7, 14.50)     int  ->  rbx        
+;  V02 arg2         [V02,T22] ( 12, 12   )     ref  ->  rbp         class-hnd single-def <System.Collections.Generic.IReadOnlyList`1[Microsoft.AspNetCore.Http.Endpoint]>
+;  V03 arg3         [V03,T15] (  6, 11.50)     ref  ->  rdi         class-hnd single-def <System.Collections.Generic.IComparer`1[Microsoft.AspNetCore.Http.Endpoint]>
+;  V04 loc0         [V04,T16] (  3, 17   )     int  ->  r15         single-def
+;  V05 loc1         [V05,T04] (  3, 17   )     ref  ->  [rsp+0x58]  class-hnd spill-single-def <Microsoft.AspNetCore.Routing.RouteValueDictionary>
+;  V06 loc2         [V06,T28] (  6,  9   )     ref  ->  r13         class-hnd exact single-def <<unknown class>>
+;  V07 loc3         [V07,T37] (  8,  6.54)     ref  ->  [rsp+0x50]  class-hnd exact spill-single-def <<unknown class>>
+;  V08 loc4         [V08,T11] (  8, 26.50)     ref  ->  [rsp+0x48]  class-hnd spill-single-def <<unknown class>>
+;  V09 loc5         [V09,T13] (  5, 22.50)     int  ->  [rsp+0x84] 
+;  V10 loc6         [V10,T51] (  3,  2.50)     int  ->  rax         single-def
+;  V11 loc7         [V11,T17] ( 11, 16.58)     int  ->  [rsp+0x80] 
+;  V12 loc8         [V12,T02] (  7, 72.50)     int  ->  [rsp+0x7C] 
+;  V13 loc9         [V13,T27] (  3, 10   )     int  ->  rax        
+;  V14 loc10        [V14,T21] (  7, 14.50)     int  ->  rbx        
 ;  V15 OutArgs      [V15    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V16 tmp1         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.__Canon>
 ;* V17 tmp2         [V17    ] (  0,  0   )     int  ->  zero-ref    "non-inline candidate call"
@@ -30,20 +30,20 @@
 ;* V19 tmp4         [V19    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.AspNetCore.Routing.Matching.CandidateState>
 ;* V20 tmp5         [V20    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.AspNetCore.Routing.Matching.CandidateState>
 ;  V21 tmp6         [V21,T01] (  3, 96   )     ref  ->  rcx         class-hnd exact "impAppendStmt" <<unknown class>>
-;  V22 tmp7         [V22,T22] (  3, 12   )     ref  ->  rdi         class-hnd exact "non-inline candidate call" <<unknown class>>
-;  V23 tmp8         [V23,T23] (  3, 12   )     int  ->  rcx         "impAppendStmt"
-;  V24 tmp9         [V24,T32] (  2,  8   )     ref  ->  rax         class-hnd "impAppendStmt" <Microsoft.AspNetCore.Http.Endpoint>
-;  V25 tmp10        [V25,T33] (  2,  8   )     ref  ->  r15         class-hnd "impAppendStmt" <Microsoft.AspNetCore.Routing.RouteValueDictionary>
+;  V22 tmp7         [V22,T23] (  3, 12   )     ref  ->  rdi         class-hnd exact "non-inline candidate call" <<unknown class>>
+;  V23 tmp8         [V23,T24] (  3, 12   )     int  ->  rcx         "impAppendStmt"
+;  V24 tmp9         [V24,T33] (  2,  8   )     ref  ->  rax         class-hnd "impAppendStmt" <Microsoft.AspNetCore.Http.Endpoint>
+;  V25 tmp10        [V25,T34] (  2,  8   )     ref  ->  r15         class-hnd "impAppendStmt" <Microsoft.AspNetCore.Routing.RouteValueDictionary>
 ;* V26 tmp11        [V26    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.AspNetCore.Routing.Matching.CandidateState>
 ;* V27 tmp12        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
 ;* V28 tmp13        [V28    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
 ;* V29 tmp14        [V29    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
 ;* V30 tmp15        [V30    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V31 tmp16        [V31    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;* V32 tmp17        [V32,T64] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <<unknown class>>
+;* V32 tmp17        [V32,T65] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <<unknown class>>
 ;* V33 tmp18        [V33    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.AspNetCore.Routing.Matching.CandidateState>
 ;* V34 tmp19        [V34    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V35 tmp20        [V35,T57] (  2,  2   )     int  ->  rdx         "Inlining Arg"
+;  V35 tmp20        [V35,T58] (  2,  2   )     int  ->  rdx         "Inlining Arg"
 ;* V36 tmp21        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V37 tmp22        [V37    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V38 tmp23        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.AspNetCore.Http.Endpoint>
@@ -52,55 +52,56 @@
 ;* V41 tmp26        [V41    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V42 tmp27        [V42    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V43 tmp28        [V43    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V44 tmp29        [V44,T34] (  2,  8   )     int  ->  r10         "Inlining Arg"
-;  V45 tmp30        [V45,T29] (  4,  8   )     ref  ->  rdx         "field V18.<Endpoint>k__BackingField (fldOffset=0x0)" P-INDEP
-;  V46 tmp31        [V46,T30] (  4,  8   )     ref  ->  [rsp+0x48]  "field V18.<Values>k__BackingField (fldOffset=0x8)" P-INDEP
-;  V47 tmp32        [V47,T31] (  4,  8   )     int  ->  [rsp+0x78]  "field V18.<Score>k__BackingField (fldOffset=0x10)" P-INDEP
-;  V48 tmp33        [V48,T62] (  2,  1   )     ref  ->  rdx         single-def "field V19.<Endpoint>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V49 tmp34        [V49,T66] (  0,  0   )     ref  ->  zero-ref    single-def "field V19.<Values>k__BackingField (fldOffset=0x8)" P-INDEP
-;* V50 tmp35        [V50,T69] (  0,  0   )     int  ->  zero-ref    single-def "field V19.<Score>k__BackingField (fldOffset=0x10)" P-INDEP
+;  V44 tmp29        [V44,T35] (  2,  8   )     int  ->  r10         "Inlining Arg"
+;  V45 tmp30        [V45,T30] (  4,  8   )     ref  ->  rdx         "field V18.<Endpoint>k__BackingField (fldOffset=0x0)" P-INDEP
+;  V46 tmp31        [V46,T31] (  4,  8   )     ref  ->  [rsp+0x40]  "field V18.<Values>k__BackingField (fldOffset=0x8)" P-INDEP
+;  V47 tmp32        [V47,T32] (  4,  8   )     int  ->  [rsp+0x78]  "field V18.<Score>k__BackingField (fldOffset=0x10)" P-INDEP
+;  V48 tmp33        [V48,T63] (  2,  1   )     ref  ->  rdx         single-def "field V19.<Endpoint>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V49 tmp34        [V49,T67] (  0,  0   )     ref  ->  zero-ref    single-def "field V19.<Values>k__BackingField (fldOffset=0x8)" P-INDEP
+;* V50 tmp35        [V50,T70] (  0,  0   )     int  ->  zero-ref    single-def "field V19.<Score>k__BackingField (fldOffset=0x10)" P-INDEP
 ;  V51 tmp36        [V51,T08] (  2, 32   )     ref  ->  rdx         "field V20.<Endpoint>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V52 tmp37        [V52,T19] (  0,  0   )     ref  ->  zero-ref    "field V20.<Values>k__BackingField (fldOffset=0x8)" P-INDEP
+;* V52 tmp37        [V52,T20] (  0,  0   )     ref  ->  zero-ref    "field V20.<Values>k__BackingField (fldOffset=0x8)" P-INDEP
 ;  V53 tmp38        [V53,T09] (  2, 32   )     int  ->  [rsp+0x74]  spill-single-def "field V20.<Score>k__BackingField (fldOffset=0x10)" P-INDEP
-;  V54 tmp39        [V54,T43] (  2,  4   )     ref  ->  rax         "field V26.<Endpoint>k__BackingField (fldOffset=0x0)" P-INDEP
-;  V55 tmp40        [V55,T44] (  2,  4   )     ref  ->  r15         "field V26.<Values>k__BackingField (fldOffset=0x8)" P-INDEP
-;  V56 tmp41        [V56,T45] (  2,  4   )     int  ->  [rsp+0x70]  spill-single-def "field V26.<Score>k__BackingField (fldOffset=0x10)" P-INDEP
-;* V57 tmp42        [V57,T67] (  0,  0   )     ref  ->  zero-ref    single-def "field V33.<Endpoint>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V58 tmp43        [V58,T68] (  0,  0   )     ref  ->  zero-ref    single-def "field V33.<Values>k__BackingField (fldOffset=0x8)" P-INDEP
-;  V59 tmp44        [V59,T63] (  2,  1   )     int  ->  rdx         single-def "field V33.<Score>k__BackingField (fldOffset=0x10)" P-INDEP
-;* V60 tmp45        [V60,T59] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V61 tmp46        [V61,T47] (  3,  3   )     ref  ->  rcx         single-def "arr expr"
-;  V62 tmp47        [V62,T40] (  4,  4   )   byref  ->  rcx         single-def "BlockOp address local"
-;  V63 tmp48        [V63,T52] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V64 tmp49        [V64,T48] (  3,  3   )     ref  ->  rdx         single-def "arr expr"
-;  V65 tmp50        [V65,T53] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
-;  V66 tmp51        [V66,T42] (  4,  4   )     int  ->  rbx         "argument with side effect"
-;  V67 tmp52        [V67,T54] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V68 tmp53        [V68,T55] (  2,  2   )     ref  ->   r9         single-def "argument with side effect"
-;  V69 tmp54        [V69,T49] (  3,  3   )     ref  ->  rcx         single-def "arr expr"
-;* V70 tmp55        [V70,T65] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V71 tmp56        [V71,T58] (  2,  2   )    long  ->  rdx         "argument with side effect"
+;  V54 tmp39        [V54,T44] (  2,  4   )     ref  ->  rax         "field V26.<Endpoint>k__BackingField (fldOffset=0x0)" P-INDEP
+;  V55 tmp40        [V55,T45] (  2,  4   )     ref  ->  r15         "field V26.<Values>k__BackingField (fldOffset=0x8)" P-INDEP
+;  V56 tmp41        [V56,T46] (  2,  4   )     int  ->  [rsp+0x70]  spill-single-def "field V26.<Score>k__BackingField (fldOffset=0x10)" P-INDEP
+;* V57 tmp42        [V57,T68] (  0,  0   )     ref  ->  zero-ref    single-def "field V33.<Endpoint>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V58 tmp43        [V58,T69] (  0,  0   )     ref  ->  zero-ref    single-def "field V33.<Values>k__BackingField (fldOffset=0x8)" P-INDEP
+;  V59 tmp44        [V59,T64] (  2,  1   )     int  ->  rdx         single-def "field V33.<Score>k__BackingField (fldOffset=0x10)" P-INDEP
+;* V60 tmp45        [V60,T60] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V61 tmp46        [V61,T48] (  3,  3   )     ref  ->  rcx         single-def "arr expr"
+;  V62 tmp47        [V62,T41] (  4,  4   )   byref  ->  rcx         single-def "BlockOp address local"
+;  V63 tmp48        [V63,T53] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V64 tmp49        [V64,T49] (  3,  3   )     ref  ->  rdx         single-def "arr expr"
+;  V65 tmp50        [V65,T54] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
+;  V66 tmp51        [V66,T43] (  4,  4   )     int  ->  rbx         "argument with side effect"
+;  V67 tmp52        [V67,T55] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V68 tmp53        [V68,T56] (  2,  2   )     ref  ->   r9         single-def "argument with side effect"
+;  V69 tmp54        [V69,T50] (  3,  3   )     ref  ->  rcx         single-def "arr expr"
+;* V70 tmp55        [V70,T66] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V71 tmp56        [V71,T59] (  2,  2   )    long  ->  rdx         "argument with side effect"
 ;  V72 tmp57        [V72,T06] (  8, 32   )   byref  ->   r8         "BlockOp address local"
-;  V73 tmp58        [V73,T07] (  8, 32   )   byref  ->  [rsp+0x40]  "BlockOp address local"
-;  V74 tmp59        [V74,T41] (  4,  4   )   byref  ->  [rsp+0x38]  spill-single-def "BlockOp address local"
-;* V75 tmp60        [V75,T35] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V76 tmp61        [V76,T18] (  2, 16   )     ref  ->  rdx         "argument with side effect"
-;  V77 tmp62        [V77,T00] (  4,128   )   byref  ->  [rsp+0x30]  spill-single-def "BlockOp address local"
-;* V78 tmp63        [V78,T46] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V79 tmp64        [V79,T17] (  4, 16   )   byref  ->  rdi         "BlockOp address local"
-;  V80 cse0         [V80,T56] (  2,  2   )     ref  ->  r14         "CSE - moderate"
-;  V81 cse1         [V81,T39] (  2,  1.50)     ref  ->  r14         "CSE - moderate"
-;  V82 cse2         [V82,T37] (  3,  6   )   byref  ->  rdx         "CSE - moderate"
-;  V83 cse3         [V83,T60] (  3,  1.50)   byref  ->  rcx         "CSE - conservative"
-;  V84 cse4         [V84,T38] (  3,  6   )    long  ->  rdx         "CSE - moderate"
-;  V85 cse5         [V85,T25] (  3, 11.88)    long  ->  rcx         "CSE - moderate"
-;  V86 cse6         [V86,T70] (  3,  0.12)    long  ->  rcx         "CSE - conservative"
-;  V87 cse7         [V87,T51] (  3,  1.50)     ref  ->  rcx         "CSE - conservative"
-;  V88 cse8         [V88,T61] (  3,  1.50)     ref  ->  r13         "CSE - conservative"
-;  V89 cse9         [V89,T13] (  6, 22   )     int  ->  [rsp+0x6C]  spill-single-def "CSE - aggressive"
+;  V73 tmp58        [V73,T07] (  8, 32   )   byref  ->  [rsp+0x38]  "BlockOp address local"
+;  V74 tmp59        [V74,T42] (  4,  4   )   byref  ->  [rsp+0x30]  spill-single-def "BlockOp address local"
+;* V75 tmp60        [V75,T36] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V76 tmp61        [V76,T19] (  2, 16   )     ref  ->  rdx         "argument with side effect"
+;  V77 tmp62        [V77,T00] (  4,128   )   byref  ->  [rsp+0x28]  spill-single-def "BlockOp address local"
+;* V78 tmp63        [V78,T47] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V79 tmp64        [V79,T18] (  4, 16   )   byref  ->  rdi         "BlockOp address local"
+;  V80 cse0         [V80,T57] (  2,  2   )     ref  ->  r14         "CSE - moderate"
+;  V81 cse1         [V81,T40] (  2,  1.50)     ref  ->  r14         "CSE - moderate"
+;  V82 cse2         [V82,T38] (  3,  6   )   byref  ->  rdx         "CSE - moderate"
+;  V83 cse3         [V83,T61] (  3,  1.50)   byref  ->  rcx         "CSE - conservative"
+;  V84 cse4         [V84,T39] (  3,  6   )    long  ->  rdx         "CSE - moderate"
+;  V85 cse5         [V85,T26] (  3, 11.88)    long  ->  rcx         "CSE - moderate"
+;  V86 cse6         [V86,T71] (  3,  0.12)    long  ->  rcx         "CSE - conservative"
+;  V87 cse7         [V87,T52] (  3,  1.50)     ref  ->  rcx         "CSE - conservative"
+;  V88 cse8         [V88,T62] (  3,  1.50)     ref  ->  r13         "CSE - conservative"
+;  V89 cse9         [V89,T14] (  6, 22   )     int  ->  [rsp+0x6C]  spill-single-def "CSE - moderate"
 ;  V90 cse10        [V90,T03] (  3, 48   )     int  ->  r11         "CSE - aggressive"
-;  V91 cse11        [V91,T28] (  7,  8.04)     int  ->  r12         "CSE - moderate"
-;  V92 cse12        [V92,T24] (  3, 12   )     int  ->  rcx         "CSE - moderate"
+;  V91 cse11        [V91,T29] (  7,  8.04)     int  ->  r12         "CSE - moderate"
+;  V92 cse12        [V92,T25] (  3, 12   )     int  ->  rcx         "CSE - moderate"
+;  V93 cse13        [V93,T12] (  3, 24   )    long  ->  [rsp+0x60]  spill-single-def "CSE - aggressive"
 ;
 ; Lcl frame size = 136
 
@@ -287,7 +288,7 @@ G_M5072_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000000000000000 {}
        lea      rdx, [rdx+2*rdx]
        mov      rax, gword ptr [rcx+8*rdx+0x18]
        ; gcrRegs +[rax]
-       mov      gword ptr [rsp+0x60], rax
+       mov      gword ptr [rsp+0x58], rax
        ; GC ptr vars +{V05}
        mov      rcx, rbp
        mov      rdx, 0xD1FFAB1E
@@ -306,7 +307,7 @@ G_M5072_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000000000000000 {}
        call     CORINFO_HELP_NEWARR_1_VC
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rsp+0x58], rax
+       mov      gword ptr [rsp+0x50], rax
        ; GC ptr vars +{V07}
        lea      rcx, bword ptr [rsi+0x08]
        ; byrRegs +[rcx]
@@ -323,7 +324,7 @@ G_M5072_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000000000000000 {}
        je       G_M5072_IG15
        cmp      r12d, ebx
        jl       G_M5072_IG15
-       mov      rdx, gword ptr [rsp+0x58]
+       mov      rdx, gword ptr [rsp+0x50]
        ; gcrRegs +[rdx]
        cmp      dword ptr [rdx+0x08], ebx
        jl       G_M5072_IG15
@@ -341,30 +342,30 @@ G_M5072_IG13:        ; bbWeight=3.96, gcrefRegs=60E0 {rbp rsi rdi r13 r14}, byre
        ; gcrRegs +[rdx]
        mov      r10, gword ptr [r8+0x08]
        ; gcrRegs +[r10]
-       mov      gword ptr [rsp+0x48], r10
+       mov      gword ptr [rsp+0x40], r10
        ; GC ptr vars +{V46}
        mov      r9d, dword ptr [r8+0x10]
        mov      dword ptr [rsp+0x78], r9d
-       mov      r11, gword ptr [rsp+0x58]
+       mov      r11, gword ptr [rsp+0x50]
        ; gcrRegs +[r11]
        lea      rcx, bword ptr [r11+8*rcx+0x10]
        ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x40], rcx
+       mov      bword ptr [rsp+0x38], rcx
        ; GC ptr vars +{V73}
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        ; gcrRegs -[rdx r10-r11]
        ; byrRegs -[rcx r8]
-       mov      rax, bword ptr [rsp+0x40]
+       mov      rax, bword ptr [rsp+0x38]
        ; byrRegs +[rax]
        lea      rcx, bword ptr [rax+0x08]
        ; byrRegs +[rcx]
-       mov      rdx, gword ptr [rsp+0x48]
+       mov      rdx, gword ptr [rsp+0x40]
        ; gcrRegs +[rdx]
        ; GC ptr vars -{V46}
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        ; gcrRegs -[rdx]
        ; byrRegs -[rax rcx]
-       mov      rax, bword ptr [rsp+0x40]
+       mov      rax, bword ptr [rsp+0x38]
        ; byrRegs +[rax]
        mov      edx, dword ptr [rsp+0x78]
        mov      dword ptr [rax+0x10], edx
@@ -375,7 +376,7 @@ G_M5072_IG13:        ; bbWeight=3.96, gcrefRegs=60E0 {rbp rsi rdi r13 r14}, byre
        mov      dword ptr [rsp+0x80], eax
        jl       SHORT G_M5072_IG13
                        ;; size=123 bbWeight=3.96 PerfScore 105.93
-G_M5072_IG14:        ; bbWeight=0.50, gcVars=00000000000000000000001000000010 {V05 V07}, gcrefRegs=60E0 {rbp rsi rdi r13 r14}, byrefRegs=0000 {}, gcvars, byref
+G_M5072_IG14:        ; bbWeight=0.50, gcVars=00000000000000000000002000000010 {V05 V07}, gcrefRegs=60E0 {rbp rsi rdi r13 r14}, byrefRegs=0000 {}, gcvars, byref
        ; GC ptr vars -{V07 V73}
        jmp      G_M5072_IG16
                        ;; size=5 bbWeight=0.50 PerfScore 1.00
@@ -394,35 +395,35 @@ G_M5072_IG15:        ; bbWeight=0.04, gcrefRegs=60E0 {rbp rsi rdi r13 r14}, byre
        ; gcrRegs +[rdx]
        mov      r10, gword ptr [r8+0x08]
        ; gcrRegs +[r10]
-       mov      gword ptr [rsp+0x48], r10
+       mov      gword ptr [rsp+0x40], r10
        ; GC ptr vars +{V46}
        mov      r8d, dword ptr [r8+0x10]
        ; byrRegs -[r8]
        mov      dword ptr [rsp+0x78], r8d
        mov      dword ptr [rsp+0x80], eax
-       mov      r9, gword ptr [rsp+0x58]
+       mov      r9, gword ptr [rsp+0x50]
        ; gcrRegs +[r9]
        cmp      eax, dword ptr [r9+0x08]
...

+10 (+1.15%) : 94267.dasm - Microsoft.Extensions.Options.OptionsFactory`1[System.Canon]:Create(System.String):System.Canon:this (Instrumented Tier1)

@@ -8,58 +8,61 @@
 ; 1 inlinees with PGO data; 9 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T19] (  9,  8.50)     ref  ->  rsi         this class-hnd single-def <Microsoft.Extensions.Options.OptionsFactory`1[System.__Canon]>
-;  V01 arg1         [V01,T06] ( 11, 17.59)     ref  ->  rbx         class-hnd single-def <System.String>
-;  V02 loc0         [V02,T14] (  6, 12   )     ref  ->  rbp         class-hnd single-def <System.__Canon>
-;  V03 loc1         [V03,T30] (  3,  6   )     ref  ->  r14         class-hnd single-def <<unknown class>>
+;  V00 this         [V00,T14] (  9,  8.50)     ref  ->  rsi         this class-hnd single-def <Microsoft.Extensions.Options.OptionsFactory`1[System.__Canon]>
+;  V01 arg1         [V01,T03] ( 11, 17.59)     ref  ->  rbx         class-hnd single-def <System.String>
+;  V02 loc0         [V02,T09] (  6, 12   )     ref  ->  rbp         class-hnd single-def <System.__Canon>
+;  V03 loc1         [V03,T25] (  3,  6   )     ref  ->  r14         class-hnd single-def <<unknown class>>
 ;  V04 loc2         [V04,T00] (  5, 53   )     int  ->  r15        
-;  V05 loc3         [V05,T23] (  3, 10   )     ref  ->  r12         class-hnd <<unknown class>>
-;  V06 loc4         [V06,T24] (  3, 10   )     ref  ->  [rsp+0x20]  class-hnd spill-single-def <<unknown class>>
-;  V07 loc5         [V07,T35] (  3,  4   )     ref  ->  r14         class-hnd single-def <<unknown class>>
-;  V08 loc6         [V08,T13] (  5, 15   )     int  ->  r15        
+;  V05 loc3         [V05,T18] (  3, 10   )     ref  ->  [rsp+0x30]  class-hnd spill-single-def <<unknown class>>
+;  V06 loc4         [V06,T19] (  3, 10   )     ref  ->  [rsp+0x28]  class-hnd spill-single-def <<unknown class>>
+;  V07 loc5         [V07,T34] (  3,  4   )     ref  ->  r14         class-hnd single-def <<unknown class>>
+;  V08 loc6         [V08,T07] (  5, 15   )     int  ->  r15        
 ;  V09 loc7         [V09,T36] (  2,  4   )     ref  ->  r12         class-hnd <<unknown class>>
 ;  V10 loc8         [V10,T37] (  4,  3   )     ref  ->  r14         class-hnd exact single-def <<unknown class>>
-;  V11 loc9         [V11,T33] (  3,  5   )     ref  ->  rsi         class-hnd single-def <<unknown class>>
+;  V11 loc9         [V11,T29] (  3,  5   )     ref  ->  rsi         class-hnd single-def <<unknown class>>
 ;  V12 loc10        [V12,T01] (  5, 52.50)     int  ->  r15        
-;  V13 loc11        [V13,T29] (  2,  8   )     ref  ->  r12         class-hnd <<unknown class>>
-;  V14 loc12        [V14,T15] (  4, 12   )     ref  ->  r12         class-hnd <Microsoft.Extensions.Options.ValidateOptionsResult>
+;  V13 loc11        [V13,T24] (  2,  8   )     ref  ->  rcx         class-hnd <<unknown class>>
+;  V14 loc12        [V14,T10] (  4, 12   )     ref  ->  [rsp+0x20]  class-hnd spill-single-def <Microsoft.Extensions.Options.ValidateOptionsResult>
 ;  V15 OutArgs      [V15    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V16 tmp1         [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V17 tmp2         [V17    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V18 tmp3         [V18,T16] (  4, 12   )    long  ->  r11         "VirtualCall with runtime lookup"
+;  V18 tmp3         [V18,T11] (  4, 12   )    long  ->  r11         "VirtualCall with runtime lookup"
 ;* V19 tmp4         [V19    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V20 tmp5         [V20,T17] (  4, 12   )    long  ->  r11         "VirtualCall with runtime lookup"
+;  V20 tmp5         [V20,T12] (  4, 12   )    long  ->  r11         "VirtualCall with runtime lookup"
 ;* V21 tmp6         [V21    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V22 tmp7         [V22,T18] (  4, 12   )    long  ->  r11         "VirtualCall with runtime lookup"
+;  V22 tmp7         [V22,T13] (  4, 12   )    long  ->  r11         "VirtualCall with runtime lookup"
 ;  V23 tmp8         [V23,T38] (  3,  3   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V24 tmp9         [V24    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V25 tmp10        [V25,T02] (  4, 24   )    long  ->  r11         "VirtualCall with runtime lookup"
-;  V26 tmp11        [V26,T40] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V25 tmp10        [V25,T02] (  3, 24   )    long  ->  r11         "VirtualCall with runtime lookup"
+;  V26 tmp11        [V26,T43] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V27 tmp12        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
-;  V28 tmp13        [V28,T32] (  2,  4   )   ubyte  ->  rax         "Inline return value spill temp"
+;  V28 tmp13        [V28,T28] (  2,  4   )   ubyte  ->  rax         "Inline return value spill temp"
 ;* V29 tmp14        [V29    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;* V30 tmp15        [V30,T39] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V31 tmp16        [V31,T12] (  2, 16   )    long  ->  rcx         "argument with side effect"
-;  V32 tmp17        [V32,T41] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
-;  V33 cse0         [V33,T10] (  3, 17   )     int  ->  r13         "CSE - aggressive"
-;  V34 cse1         [V34,T07] (  3, 18   )     int  ->  r13         "CSE - aggressive"
-;  V35 cse2         [V35,T05] ( 13, 21.04)    long  ->  rdi         "CSE - aggressive"
-;  V36 cse3         [V36,T25] (  2,  9   )     int  ->  r13         hoist "CSE - moderate"
-;  V37 cse4         [V37,T31] (  3,  6   )     ref  ->  rdx         "CSE - moderate"
-;  V38 cse5         [V38,T34] (  3,  4.58)     int  ->   r8         "CSE - moderate"
-;  V39 rat0         [V39,T11] (  3, 16   )    long  ->  rcx         "runtime lookup"
-;  V40 rat1         [V40,T03] (  3, 22.40)    long  ->  rcx         "spilling expr"
-;  V41 rat2         [V41,T08] (  3, 17.92)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V42 rat3         [V42,T20] (  3, 11.20)    long  ->  rcx         "spilling expr"
-;  V43 rat4         [V43,T26] (  3,  8.96)    long  ->  r11         "fgMakeTemp is creating a new local variable"
-;  V44 rat5         [V44,T21] (  3, 11.20)    long  ->  rcx         "spilling expr"
-;  V45 rat6         [V45,T27] (  3,  8.96)    long  ->  r11         "fgMakeTemp is creating a new local variable"
-;  V46 rat7         [V46,T22] (  3, 11.20)    long  ->  rcx         "spilling expr"
-;  V47 rat8         [V47,T28] (  3,  8.96)    long  ->  r11         "fgMakeTemp is creating a new local variable"
-;  V48 rat9         [V48,T04] (  3, 22.40)    long  ->  rcx         "spilling expr"
-;  V49 rat10        [V49,T09] (  3, 17.92)    long  ->  r11         "fgMakeTemp is creating a new local variable"
+;* V30 tmp15        [V30,T42] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V31 tmp16        [V31,T06] (  2, 16   )    long  ->  rcx         "argument with side effect"
+;  V32 tmp17        [V32,T44] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
+;  V33 cse0         [V33,T32] (  2,  4.50)    long  ->  r12         hoist "CSE - moderate"
+;  V34 cse1         [V34,T30] (  2,  5   )    long  ->  r12         hoist "CSE - moderate"
+;  V35 cse2         [V35,T05] (  3, 17   )     int  ->  r13         "CSE - aggressive"
+;  V36 cse3         [V36,T04] (  3, 18   )     int  ->  r13         "CSE - aggressive"
+;  V37 cse4         [V37,T08] ( 13, 12.20)    long  ->  rdi         "CSE - moderate"
+;  V38 cse5         [V38,T20] (  2,  9   )     int  ->  r13         hoist "CSE - moderate"
+;  V39 cse6         [V39,T26] (  3,  6   )     ref  ->  rdx         "CSE - moderate"
+;  V40 cse7         [V40,T31] (  3,  4.58)     int  ->   r8         "CSE - moderate"
+;  V41 rat0         [V41,T35] (  3,  4   )    long  ->  r12         "runtime lookup"
+;  V42 rat1         [V42,T27] (  3,  5.60)    long  ->  rcx         "spilling expr"
+;  V43 rat2         [V43,T33] (  3,  4.48)    long  ->  r12         "fgMakeTemp is creating a new local variable"
+;  V44 rat3         [V44,T15] (  3, 11.20)    long  ->  rcx         "spilling expr"
+;  V45 rat4         [V45,T21] (  3,  8.96)    long  ->  r11         "fgMakeTemp is creating a new local variable"
+;  V46 rat5         [V46,T16] (  3, 11.20)    long  ->  rcx         "spilling expr"
+;  V47 rat6         [V47,T22] (  3,  8.96)    long  ->  r11         "fgMakeTemp is creating a new local variable"
+;  V48 rat7         [V48,T17] (  3, 11.20)    long  ->  rcx         "spilling expr"
+;  V49 rat8         [V49,T23] (  3,  8.96)    long  ->  r11         "fgMakeTemp is creating a new local variable"
+;  V50 rat9         [V50,T41] (  3,  2   )    long  ->  r12         "runtime lookup"
+;  V51 rat10        [V51,T39] (  3,  2.80)    long  ->  rcx         "spilling expr"
+;  V52 rat11        [V52,T40] (  3,  2.24)    long  ->  r12         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 56
 
 G_M22830_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
@@ -70,13 +73,13 @@ G_M22830_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 40
+       sub      rsp, 56
        mov      rsi, rcx
        ; gcrRegs +[rsi]
        mov      rbx, rdx
        ; gcrRegs +[rbx]
                        ;; size=22 bbWeight=1 PerfScore 8.75
-G_M22830_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M22830_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
@@ -99,74 +102,76 @@ G_M22830_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        xor      r15d, r15d
        mov      r13d, dword ptr [r14+0x08]
        test     r13d, r13d
-       jle      G_M22830_IG26
-                       ;; size=57 bbWeight=1 PerfScore 14.75
-G_M22830_IG03:        ; bbWeight=4, gcrefRegs=4068 {rbx rbp rsi r14}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
-       mov      ecx, r15d
-       mov      r12, gword ptr [r14+8*rcx+0x10]
-       ; gcrRegs +[r12]
+       jle      G_M22830_IG25
        mov      rcx, qword ptr [rdi+0x30]
        mov      rcx, qword ptr [rcx]
        cmp      qword ptr [rcx+0x08], 136
-       jle      SHORT G_M22830_IG06
-                       ;; size=25 bbWeight=4 PerfScore 41.00
-G_M22830_IG04:        ; bbWeight=3.20, gcrefRegs=5068 {rbx rbp rsi r12 r14}, byrefRegs=0000 {}, byref, isz
-       mov      rcx, qword ptr [rcx+0x88]
-       test     rcx, rcx
-       je       SHORT G_M22830_IG06
-                       ;; size=12 bbWeight=3.20 PerfScore 10.40
-G_M22830_IG05:        ; bbWeight=2.56, gcrefRegs=5068 {rbx rbp rsi r12 r14}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M22830_IG07
-                       ;; size=2 bbWeight=2.56 PerfScore 5.12
-G_M22830_IG06:        ; bbWeight=1.44, gcrefRegs=5068 {rbx rbp rsi r12 r14}, byrefRegs=0000 {}, byref
+       jle      SHORT G_M22830_IG05
+                       ;; size=74 bbWeight=1 PerfScore 22.75
+G_M22830_IG03:        ; bbWeight=0.80, gcrefRegs=4068 {rbx rbp rsi r14}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rax]
+       mov      r12, qword ptr [rcx+0x88]
+       test     r12, r12
+       je       SHORT G_M22830_IG05
+                       ;; size=12 bbWeight=0.80 PerfScore 2.60
+G_M22830_IG04:        ; bbWeight=0.64, gcrefRegs=4068 {rbx rbp rsi r14}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M22830_IG06
+                       ;; size=2 bbWeight=0.64 PerfScore 1.28
+G_M22830_IG05:        ; bbWeight=0.36, gcrefRegs=4068 {rbx rbp rsi r14}, byrefRegs=0000 {}, byref
        mov      rcx, rdi
        mov      rdx, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        ; gcr arg pop 0
-       mov      rcx, rax
-                       ;; size=21 bbWeight=1.44 PerfScore 2.52
-G_M22830_IG07:        ; bbWeight=4, gcrefRegs=5068 {rbx rbp rsi r12 r14}, byrefRegs=0000 {}, byref, isz
-       mov      rdx, r12
+       mov      r12, rax
+                       ;; size=21 bbWeight=0.36 PerfScore 0.63
+G_M22830_IG06:        ; bbWeight=4, gcrefRegs=4068 {rbx rbp rsi r14}, byrefRegs=0000 {}, byref, isz
+       mov      ecx, r15d
+       mov      rax, gword ptr [r14+8*rcx+0x10]
+       ; gcrRegs +[rax]
+       mov      gword ptr [rsp+0x30], rax
+       ; GC ptr vars +{V05}
+       mov      rcx, r12
+       mov      rdx, rax
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_ISINSTANCEOFANY
-       ; gcrRegs -[rdx] +[rax]
+       ; gcrRegs -[rdx]
        ; gcr arg pop 0
-       mov      gword ptr [rsp+0x20], rax
+       mov      gword ptr [rsp+0x28], rax
        ; GC ptr vars +{V06}
        test     rax, rax
-       je       SHORT G_M22830_IG14
-                       ;; size=18 bbWeight=4 PerfScore 14.00
-G_M22830_IG08:        ; bbWeight=2, gcVars=0000000001000000 {V06}, gcrefRegs=4068 {rbx rbp rsi r14}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax r12]
-       mov      rax, gword ptr [rsp+0x20]
+       je       SHORT G_M22830_IG13
+                       ;; size=34 bbWeight=4 PerfScore 28.00
+G_M22830_IG07:        ; bbWeight=2, gcVars=0000000000080000 {V06}, gcrefRegs=4068 {rbx rbp rsi r14}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax]
+       ; GC ptr vars -{V05}
+       mov      rax, gword ptr [rsp+0x28]
        ; gcrRegs +[rax]
        mov      rcx, qword ptr [rdi+0x30]
        mov      rcx, qword ptr [rcx]
        cmp      qword ptr [rcx+0x08], 152
-       jle      SHORT G_M22830_IG12
+       jle      SHORT G_M22830_IG11
                        ;; size=22 bbWeight=2 PerfScore 18.00
-G_M22830_IG09:        ; bbWeight=1.60, gcrefRegs=4069 {rax rbx rbp rsi r14}, byrefRegs=0000 {}, byref, isz
+G_M22830_IG08:        ; bbWeight=1.60, gcrefRegs=4069 {rax rbx rbp rsi r14}, byrefRegs=0000 {}, byref, isz
        mov      r11, qword ptr [rcx+0x98]
        test     r11, r11
-       je       SHORT G_M22830_IG11
+       je       SHORT G_M22830_IG10
                        ;; size=12 bbWeight=1.60 PerfScore 5.20
-G_M22830_IG10:        ; bbWeight=1.28, gcrefRegs=4069 {rax rbx rbp rsi r14}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M22830_IG13
+G_M22830_IG09:        ; bbWeight=1.28, gcrefRegs=4069 {rax rbx rbp rsi r14}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M22830_IG12
                        ;; size=2 bbWeight=1.28 PerfScore 2.56
-G_M22830_IG11:        ; bbWeight=0.80, gcrefRegs=4069 {rax rbx rbp rsi r14}, byrefRegs=0000 {}, byref, isz
+G_M22830_IG10:        ; bbWeight=0.80, gcrefRegs=4069 {rax rbx rbp rsi r14}, byrefRegs=0000 {}, byref, isz
                        ;; size=0 bbWeight=0.80 PerfScore 0.00
-G_M22830_IG12:        ; bbWeight=0.72, gcrefRegs=4068 {rbx rbp rsi r14}, byrefRegs=0000 {}, byref
+G_M22830_IG11:        ; bbWeight=0.72, gcrefRegs=4068 {rbx rbp rsi r14}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rcx, rdi
        mov      rdx, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        ; gcr arg pop 0
        mov      r11, rax
-       mov      rax, gword ptr [rsp+0x20]
+       mov      rax, gword ptr [rsp+0x28]
        ; gcrRegs +[rax]
                        ;; size=26 bbWeight=0.72 PerfScore 1.98
-G_M22830_IG13:        ; bbWeight=2, gcrefRegs=4069 {rax rbx rbp rsi r14}, byrefRegs=0000 {}, byref
+G_M22830_IG12:        ; bbWeight=2, gcrefRegs=4069 {rax rbx rbp rsi r14}, byrefRegs=0000 {}, byref
        mov      rcx, rax
        ; gcrRegs +[rcx]
        mov      rdx, rbx
@@ -177,25 +182,25 @@ G_M22830_IG13:        ; bbWeight=2, gcrefRegs=4069 {rax rbx rbp rsi r14}, byrefR
        call     [r11]
        ; gcrRegs -[rax rcx rdx r8]
        ; gcr arg pop 0
-       jmp      G_M22830_IG23
+       jmp      G_M22830_IG22
                        ;; size=17 bbWeight=2 PerfScore 11.50
-G_M22830_IG14:        ; bbWeight=2, gcrefRegs=5068 {rbx rbp rsi r12 r14}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[r12]
+G_M22830_IG13:        ; bbWeight=2, gcVars=0000000000040000 {V05}, gcrefRegs=4068 {rbx rbp rsi r14}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; GC ptr vars +{V05 V18}
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        cmp      rbx, rdx
-       je       SHORT G_M22830_IG18
+       je       SHORT G_M22830_IG17
                        ;; size=15 bbWeight=2 PerfScore 3.00
-G_M22830_IG15:        ; bbWeight=1.30, gcrefRegs=506C {rdx rbx rbp rsi r12 r14}, byrefRegs=0000 {}, byref
+G_M22830_IG14:        ; bbWeight=1.30, gcrefRegs=406C {rdx rbx rbp rsi r14}, byrefRegs=0000 {}, byref
...

coreclr_tests.run.windows.x64.checked.mch

-6 (-0.91%) : 193233.dasm - System.RuntimeType:GetEventCandidates(System.String,int,ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.EventInfo]:this (Instrumented Tier1)

@@ -13,14 +13,14 @@
 ;  V01 RetBuf       [V01,T00] (  7,  7   )   byref  ->  rbx         single-def
 ;  V02 arg1         [V02    ] (  5,  4   )     ref  ->  [rsp+0xB0]  do-not-enreg[X] addr-exposed ld-addr-op class-hnd single-def <System.String>
 ;  V03 arg2         [V03,T01] (  6,  5.38)     int  ->  rsi        
-;  V04 arg3         [V04,T18] (  1,  1   )   ubyte  ->  [rsp+0xC0]  single-def
+;  V04 arg3         [V04,T17] (  1,  1   )   ubyte  ->  [rsp+0xC0]  single-def
 ;  V05 loc0         [V05    ] (  2,  1.38)   ubyte  ->  [rsp+0x58]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V06 loc1         [V06    ] (  2,  1   )   ubyte  ->  [rsp+0x50]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V07 loc2         [V07    ] (  2,  2   )     int  ->  [rsp+0x48]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V08 loc3         [V08,T14] (  4,  2.77)     ref  ->  rdi         class-hnd exact single-def <System.Reflection.RuntimeEventInfo[]>
+;  V08 loc3         [V08,T09] (  5,  3.77)     ref  ->  rdi         class-hnd exact single-def <System.Reflection.RuntimeEventInfo[]>
 ;  V09 loc4         [V09    ] (  9,  8.38)  struct (24) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Reflection.EventInfo]>
-;  V10 loc5         [V10,T15] (  5,  2.54)     int  ->  r14        
-;  V11 loc6         [V11,T16] (  5,  1.15)     ref  ->  r15         class-hnd exact <System.Reflection.RuntimeEventInfo>
+;  V10 loc5         [V10,T14] (  5,  2.54)     int  ->  rbp        
+;  V11 loc6         [V11,T15] (  5,  1.15)     ref  ->  r14         class-hnd exact <System.Reflection.RuntimeEventInfo>
 ;  V12 OutArgs      [V12    ] (  1,  1   )  struct (48) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V13 tmp1         [V13    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V14 tmp2         [V14,T05] (  5,  4.12)     ref  ->  rbp         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
@@ -36,24 +36,23 @@
 ;* V24 tmp12        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;* V25 tmp13        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
 ;  V26 tmp14        [V26,T10] (  7,  3.48)     ref  ->  rcx         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V27 tmp15        [V27,T19] (  4,  0.96)     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V27 tmp15        [V27,T18] (  4,  0.96)     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V28 tmp16        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;  V29 tmp17        [V29,T08] (  2,  4   )     int  ->  rcx         "Inlining Arg"
-;* V30 tmp18        [V30,T23] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V31 tmp19        [V31,T20] (  4,  0   )     ref  ->  rbp         class-hnd exact "Inlining Arg" <System.String>
-;  V32 tmp20        [V32,T24] (  2,  0   )   ubyte  ->  r13         "Inlining Arg"
+;* V30 tmp18        [V30,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V31 tmp19        [V31,T19] (  4,  0   )     ref  ->  r15         class-hnd exact "Inlining Arg" <System.String>
+;  V32 tmp20        [V32,T23] (  2,  0   )   ubyte  ->  r13         "Inlining Arg"
 ;* V33 tmp21        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp22        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V35 tmp23        [V35    ] (  3,  2.38)     ref  ->  [rsp+0x30]  do-not-enreg[X] addr-exposed "field V09._items (fldOffset=0x0)" P-DEP
 ;  V36 tmp24        [V36    ] (  3,  2.38)     ref  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed "field V09._item (fldOffset=0x8)" P-DEP
 ;  V37 tmp25        [V37    ] (  3,  2.38)     int  ->  [rsp+0x40]  do-not-enreg[X] addr-exposed "field V09._count (fldOffset=0x10)" P-DEP
 ;  V38 tmp26        [V38    ] (  3,  2.38)     int  ->  [rsp+0x44]  do-not-enreg[X] addr-exposed "field V09._capacity (fldOffset=0x14)" P-DEP
-;  V39 tmp27        [V39,T21] (  2,  0   )     ref  ->  rcx         "argument with side effect"
-;  V40 tmp28        [V40,T22] (  2,  0   )     ref  ->  rcx         "argument with side effect"
-;  V41 cse0         [V41,T17] (  3,  1.15)     int  ->  rcx         "CSE - moderate"
+;  V39 tmp27        [V39,T20] (  2,  0   )     ref  ->  rcx         "argument with side effect"
+;  V40 tmp28        [V40,T21] (  2,  0   )     ref  ->  rcx         "argument with side effect"
+;  V41 cse0         [V41,T16] (  3,  1.15)     int  ->  rcx         "CSE - moderate"
 ;  V42 cse1         [V42,T12] (  3,  3   )    long  ->  rcx         "CSE - moderate"
-;  V43 cse2         [V43,T09] (  5,  3.77)     int  ->  rbp         multi-def "CSE - moderate"
-;  V44 cse3         [V44,T11] (  6,  3   )     ref  ->  rdx         multi-def "CSE - moderate"
+;  V43 cse2         [V43,T11] (  6,  3   )     ref  ->  rdx         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 96
 
@@ -182,11 +181,10 @@ G_M48278_IG08:        ; bbWeight=1, gcrefRegs=4002 {rcx r14}, byrefRegs=0008 {rb
        mov      rdi, rax
        ; gcrRegs +[rdi]
        xor      esi, 2
-       mov      ebp, dword ptr [rdi+0x08]
-       mov      ecx, ebp
+       mov      ecx, dword ptr [rdi+0x08]
        xor      rax, rax
        mov      gword ptr [rsp+0x30], rax
-                       ;; size=37 bbWeight=1 PerfScore 10.75
+                       ;; size=35 bbWeight=1 PerfScore 10.50
 G_M48278_IG09:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref
        ; gcrRegs -[rax]
        mov      gword ptr [rsp+0x38], rax
@@ -196,27 +194,27 @@ G_M48278_IG10:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx},
        mov      dword ptr [rsp+0x44], ecx
                        ;; size=8 bbWeight=1 PerfScore 2.00
 G_M48278_IG11:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref
-       xor      r14d, r14d
-       test     ebp, ebp
+       xor      ebp, ebp
+       cmp      dword ptr [rdi+0x08], 0
        jle      G_M48278_IG19
-                       ;; size=11 bbWeight=1 PerfScore 1.50
+                       ;; size=12 bbWeight=1 PerfScore 4.25
 G_M48278_IG12:        ; bbWeight=0.38, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref
-       mov      ecx, r14d
-       mov      r15, gword ptr [rdi+8*rcx+0x10]
-       ; gcrRegs +[r15]
-       mov      ecx, dword ptr [r15+0x50]
+       mov      ecx, ebp
+       mov      r14, gword ptr [rdi+8*rcx+0x10]
+       ; gcrRegs +[r14]
+       mov      ecx, dword ptr [r14+0x50]
        mov      eax, esi
        and      eax, ecx
        cmp      eax, ecx
        jne      G_M48278_IG18
        cmp      byte  ptr [rsp+0x58], 0
        je       G_M48278_IG17
-                       ;; size=35 bbWeight=0.38 PerfScore 3.46
-G_M48278_IG13:        ; bbWeight=0, gcrefRegs=8080 {rdi r15}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rbp, gword ptr [rsp+0xB0]
-       ; gcrRegs +[rbp]
+                       ;; size=34 bbWeight=0.38 PerfScore 3.46
+G_M48278_IG13:        ; bbWeight=0, gcrefRegs=4080 {rdi r14}, byrefRegs=0008 {rbx}, byref, isz
+       mov      r15, gword ptr [rsp+0xB0]
+       ; gcrRegs +[r15]
        movzx    r13, byte  ptr [rsp+0x50]
-       test     rbp, rbp
+       test     r15, r15
        jne      SHORT G_M48278_IG14
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
@@ -226,72 +224,71 @@ G_M48278_IG13:        ; bbWeight=0, gcrefRegs=8080 {rdi r15}, byrefRegs=0008 {rb
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
                        ;; size=38 bbWeight=0 PerfScore 0.00
-G_M48278_IG14:        ; bbWeight=0, gcrefRegs=80A0 {rbp rdi r15}, byrefRegs=0008 {rbx}, byref, isz
+G_M48278_IG14:        ; bbWeight=0, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0008 {rbx}, byref, isz
        test     r13d, r13d
        je       SHORT G_M48278_IG15
-       mov      rcx, r15
+       mov      rcx, r14
        ; gcrRegs +[rcx]
        call     [System.Reflection.RuntimeEventInfo:get_Name():System.String:this]
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
        mov      rcx, rax
        ; gcrRegs +[rcx]
-       mov      rdx, rbp
+       mov      rdx, r15
        ; gcrRegs +[rdx]
        mov      r8d, 5
        cmp      dword ptr [rcx], ecx
        call     [<unknown method>]
-       ; gcrRegs -[rax rcx rdx rbp]
+       ; gcrRegs -[rax rcx rdx r15]
        ; gcr arg pop 0
        test     eax, eax
        jne      SHORT G_M48278_IG16
        jmp      G_M48278_IG22
                        ;; size=43 bbWeight=0 PerfScore 0.00
-G_M48278_IG15:        ; bbWeight=0, gcrefRegs=80A0 {rbp rdi r15}, byrefRegs=0008 {rbx}, byref
-       ; gcrRegs +[rbp]
-       mov      rcx, r15
+G_M48278_IG15:        ; bbWeight=0, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0008 {rbx}, byref
+       ; gcrRegs +[r15]
+       mov      rcx, r14
        ; gcrRegs +[rcx]
        call     [System.Reflection.RuntimeEventInfo:get_Name():System.String:this]
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
        mov      rcx, rax
        ; gcrRegs +[rcx]
-       mov      rdx, rbp
+       mov      rdx, r15
        ; gcrRegs +[rdx]
        mov      r8d, 4
        cmp      dword ptr [rcx], ecx
        call     [<unknown method>]
-       ; gcrRegs -[rax rcx rdx rbp]
+       ; gcrRegs -[rax rcx rdx r15]
        ; gcr arg pop 0
        test     eax, eax
        je       G_M48278_IG22
                        ;; size=37 bbWeight=0 PerfScore 0.00
-G_M48278_IG16:        ; bbWeight=0, gcrefRegs=8080 {rdi r15}, byrefRegs=0008 {rbx}, byref
+G_M48278_IG16:        ; bbWeight=0, gcrefRegs=4080 {rdi r14}, byrefRegs=0008 {rbx}, byref
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
                        ;; size=15 bbWeight=0 PerfScore 0.00
-G_M48278_IG17:        ; bbWeight=0.38, gcrefRegs=8080 {rdi r15}, byrefRegs=0008 {rbx}, byref
+G_M48278_IG17:        ; bbWeight=0.38, gcrefRegs=4080 {rdi r14}, byrefRegs=0008 {rbx}, byref
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
        lea      rcx, [rsp+0x30]
-       mov      r8, r15
+       mov      r8, r14
        ; gcrRegs +[r8]
        mov      rdx, 0xD1FFAB1E      ; System.RuntimeType+ListBuilder`1[System.Reflection.EventInfo]
        call     [<unknown method>]
-       ; gcrRegs -[r8 r15]
+       ; gcrRegs -[r8 r14]
        ; gcr arg pop 0
                        ;; size=39 bbWeight=0.38 PerfScore 2.02
 G_M48278_IG18:        ; bbWeight=0.38, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       inc      r14d
-       mov      ebp, dword ptr [rdi+0x08]
-       cmp      ebp, r14d
+       inc      ebp
+       cmp      dword ptr [rdi+0x08], ebp
        jg       G_M48278_IG12
-                       ;; size=30 bbWeight=0.38 PerfScore 1.83
+                       ;; size=26 bbWeight=0.38 PerfScore 2.12
 G_M48278_IG19:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        ; gcrRegs -[rdi]
        mov      rcx, 0xD1FFAB1E
@@ -344,7 +341,7 @@ G_M48278_IG22:        ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx},
        jmp      SHORT G_M48278_IG18
                        ;; size=17 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 656, prolog size 48, PerfScore 86.98, instruction count 159, allocated bytes for code 656 (MethodHash=d9964369) for method System.RuntimeType:GetEventCandidates(System.String,int,ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.EventInfo]:this (Instrumented Tier1)
+; Total bytes of code 650, prolog size 48, PerfScore 89.77, instruction count 157, allocated bytes for code 650 (MethodHash=d9964369) for method System.RuntimeType:GetEventCandidates(System.String,int,ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.EventInfo]:this (Instrumented Tier1)
 ; ============================================================
 
 Unwind Info:

-9 (-0.80%) : 570751.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)

@@ -10,72 +10,71 @@
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <ILCompiler.DevirtualizationManager>
 ;  V01 arg1         [V01,T00] ( 21, 26   )     ref  ->  rbx         class-hnd <Internal.TypeSystem.MethodDesc>
-;  V02 arg2         [V02,T16] ( 14,  8   )     ref  ->  rsi         class-hnd single-def <Internal.TypeSystem.DefType>
-;  V03 arg3         [V03,T19] (  8,  5.50)   byref  ->  rdi         single-def
+;  V02 arg2         [V02,T17] ( 14,  8   )     ref  ->  rsi         class-hnd single-def <Internal.TypeSystem.DefType>
+;  V03 arg3         [V03,T20] (  8,  5.50)   byref  ->  rdi         single-def
 ;  V04 loc0         [V04,T22] ( 11,  5.50)     ref  ->  r14         class-hnd <Internal.TypeSystem.MethodDesc>
 ;  V05 loc1         [V05,T23] (  3,  5   )     ref  ->  r15         class-hnd single-def <Internal.TypeSystem.DefType[]>
 ;  V06 loc2         [V06,T21] (  4,  6.50)     int  ->  r14        
-;  V07 loc3         [V07,T20] (  4,  7   )     ref  ->  r13         class-hnd single-def <Internal.TypeSystem.DefType>
+;  V07 loc3         [V07,T16] (  4, 10.50)     ref  ->  r13         class-hnd single-def <Internal.TypeSystem.DefType>
 ;  V08 loc4         [V08,T07] (  5, 16.50)     int  ->  r12        
-;  V09 loc5         [V09,T04] (  7, 20   )     ref  ->  [rsp+0x48]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
+;  V09 loc5         [V09,T04] (  7, 20   )     ref  ->  [rsp+0x50]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
 ;  V10 loc6         [V10,T28] (  6,  4.50)     ref  ->  r15         class-hnd <Internal.TypeSystem.MethodDesc>
 ;  V11 loc7         [V11,T24] (  3,  5   )     ref  ->  r12         class-hnd single-def <Internal.TypeSystem.DefType[]>
 ;  V12 loc8         [V12,T08] (  5, 16.50)     int  ->  r13        
-;  V13 loc9         [V13,T05] (  6, 20   )     ref  ->  [rsp+0x40]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
+;  V13 loc9         [V13,T05] (  6, 20   )     ref  ->  [rsp+0x48]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
 ;  V14 loc10        [V14    ] (  4,  2   )     ref  ->  [rsp+0x60]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <Internal.TypeSystem.MethodDesc>
-;  V15 loc11        [V15,T46] (  3,  1.50)     int  ->  rax         single-def
+;  V15 loc11        [V15,T45] (  3,  1.50)     int  ->  rax         single-def
 ;  V16 loc12        [V16,T03] ( 10, 20   )     ref  ->  r14         class-hnd <Internal.TypeSystem.TypeDesc>
 ;* V17 loc13        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Internal.TypeSystem.MethodDesc>
 ;* V18 loc14        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Internal.TypeSystem.MethodDesc>
 ;  V19 OutArgs      [V19    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V20 tmp1         [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
-;  V21 tmp2         [V21,T34] (  3,  2.25)     ref  ->  rax         single-def "CASTCLASS eval op1"
-;  V22 tmp3         [V22,T47] (  3,  1.25)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V23 tmp4         [V23,T31] (  5,  3.75)     ref  ->  r13         class-hnd "spilling QMark2" <Internal.TypeSystem.DefType>
+;  V21 tmp2         [V21,T33] (  3,  2.25)     ref  ->  rax         single-def "CASTCLASS eval op1"
+;  V22 tmp3         [V22,T46] (  3,  1.25)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V23 tmp4         [V23,T30] (  5,  3.75)     ref  ->  r13         class-hnd "spilling QMark2" <Internal.TypeSystem.DefType>
 ;  V24 tmp5         [V24,T25] (  3,  5   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
-;  V25 tmp6         [V25,T35] (  3,  2   )     int  ->   r8         "Inline return value spill temp"
-;  V26 tmp7         [V26,T33] (  3,  2.50)     int  ->   r8         single-def "Inline stloc first use temp"
-;  V27 tmp8         [V27,T42] (  3,  1.50)     ref  ->  r15         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
+;  V25 tmp6         [V25,T34] (  3,  2   )     int  ->   r8         "Inline return value spill temp"
+;  V26 tmp7         [V26,T32] (  3,  2.50)     int  ->   r8         single-def "Inline stloc first use temp"
+;  V27 tmp8         [V27,T41] (  3,  1.50)     ref  ->  r15         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
 ;* V28 tmp9         [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V29 tmp10        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
-;  V30 tmp11        [V30,T17] (  5, 10   )     ref  ->  [rsp+0x38]  class-hnd "Inline stloc first use temp" <Internal.TypeSystem.TypeDesc>
-;  V31 tmp12        [V31,T30] (  2,  4   )     ref  ->  rdx         class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
+;  V30 tmp11        [V30,T18] (  5, 10   )     ref  ->  [rsp+0x40]  class-hnd "Inline stloc first use temp" <Internal.TypeSystem.TypeDesc>
+;  V31 tmp12        [V31,T29] (  2,  4   )     ref  ->  rdx         class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
 ;* V32 tmp13        [V32    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V33 tmp14        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <<unknown class>>
 ;* V34 tmp15        [V34    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
 ;* V35 tmp16        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp17        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc>
-;  V37 tmp18        [V37,T43] (  3,  1.50)     ref  ->  r12         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
-;  V38 tmp19        [V38,T01] (  3, 24   )     ref  ->  [rsp+0x30]  class-hnd spill-single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
+;  V37 tmp18        [V37,T42] (  3,  1.50)     ref  ->  r12         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
+;  V38 tmp19        [V38,T01] (  3, 24   )     ref  ->  [rsp+0x38]  class-hnd spill-single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V39 tmp20        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V40 tmp21        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V41 tmp22        [V41    ] (  0,  0   )     int  ->  zero-ref   
 ;  V42 tmp23        [V42,T02] (  3, 24   )     ref  ->  r15         class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V43 tmp24        [V43    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V44 tmp25        [V44    ] (  0,  0   )     int  ->  zero-ref   
-;  V45 tmp26        [V45,T36] (  2,  2   )     ref  ->  rax         single-def "Single return block return value"
+;  V45 tmp26        [V45,T35] (  2,  2   )     ref  ->  rax         single-def "Single return block return value"
 ;  V46 tmp27        [V46,T09] (  2, 16   )     ref  ->  r13         "argument with side effect"
 ;  V47 tmp28        [V47,T10] (  2, 16   )     ref  ->  rdx         "argument with side effect"
-;  V48 tmp29        [V48,T37] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V49 tmp30        [V49,T38] (  2,  2   )     ref  ->  r15         single-def "argument with side effect"
-;  V50 tmp31        [V50,T39] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
-;  V51 tmp32        [V51,T32] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
-;  V52 tmp33        [V52,T40] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V53 tmp34        [V53,T11] (  2, 16   )     ref  ->  [rsp+0x28]  spill-single-def "argument with side effect"
+;  V48 tmp29        [V48,T36] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V49 tmp30        [V49,T37] (  2,  2   )     ref  ->  r15         single-def "argument with side effect"
+;  V50 tmp31        [V50,T38] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
+;  V51 tmp32        [V51,T31] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
+;  V52 tmp33        [V52,T39] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V53 tmp34        [V53,T11] (  2, 16   )     ref  ->  [rsp+0x30]  spill-single-def "argument with side effect"
 ;  V54 tmp35        [V54,T12] (  2, 16   )     ref  ->  rdx         "argument with side effect"
 ;* V55 tmp36        [V55    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V56 tmp37        [V56    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V57 tmp38        [V57,T41] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
+;  V57 tmp38        [V57,T40] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
 ;  V58 tmp39        [V58,T13] (  2, 16   )     ref  ->  rdx         "argument with side effect"
-;  V59 tmp40        [V59,T14] (  2, 16   )     ref  ->  [rsp+0x20]  spill-single-def "argument with side effect"
+;  V59 tmp40        [V59,T14] (  2, 16   )     ref  ->  [rsp+0x28]  spill-single-def "argument with side effect"
 ;  V60 tmp41        [V60,T15] (  2, 16   )     ref  ->  rdx         "argument with side effect"
-;  V61 tmp42        [V61,T18] (  2,  8   )     ref  ->  rdx         "argument with side effect"
+;  V61 tmp42        [V61,T19] (  2,  8   )     ref  ->  rdx         "argument with side effect"
 ;  V62 cse0         [V62,T06] ( 10, 18   )    long  ->  rbp         "CSE - aggressive"
-;  V63 cse1         [V63,T29] (  2,  4.50)    long  ->  [rsp+0x58]  spill-single-def hoist "CSE - moderate"
-;  V64 cse2         [V64,T44] (  3,  1.50)     ref  ->  r14         "CSE - conservative"
-;  V65 cse3         [V65,T45] (  3,  1.50)     ref  ->  r13         "CSE - conservative"
-;  V66 cse4         [V66,T26] (  3,  5   )     int  ->  [rsp+0x54]  spill-single-def "CSE - moderate"
-;  V67 cse5         [V67,T27] (  3,  5   )     int  ->  [rsp+0x50]  spill-single-def "CSE - moderate"
+;  V63 cse1         [V63,T43] (  3,  1.50)     ref  ->  r14         "CSE - conservative"
+;  V64 cse2         [V64,T44] (  3,  1.50)     ref  ->  r13         "CSE - conservative"
+;  V65 cse3         [V65,T26] (  3,  5   )     int  ->  [rsp+0x5C]  spill-single-def "CSE - moderate"
+;  V66 cse4         [V66,T27] (  3,  5   )     int  ->  [rsp+0x58]  spill-single-def "CSE - moderate"
 ;
 ; Lcl frame size = 104
 
@@ -216,27 +215,26 @@ G_M48343_IG12:        ; bbWeight=0.50, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRe
        ; gcrRegs -[rax]
        xor      r12d, r12d
        mov      eax, dword ptr [r15+0x08]
-       mov      dword ptr [rsp+0x54], eax
+       mov      dword ptr [rsp+0x5C], eax
        test     eax, eax
        jle      G_M48343_IG17
-       mov      rcx, qword ptr [r13]
-       mov      rdx, qword ptr [rcx+0x58]
-       mov      qword ptr [rsp+0x58], rdx
-                       ;; size=32 bbWeight=0.50 PerfScore 4.75
+                       ;; size=19 bbWeight=0.50 PerfScore 2.25
 G_M48343_IG13:        ; bbWeight=4, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=0080 {rdi}, byref, isz
        mov      ecx, r12d
-       mov      r8, gword ptr [r15+8*rcx+0x10]
-       ; gcrRegs +[r8]
-       mov      gword ptr [rsp+0x48], r8
+       mov      rdx, gword ptr [r15+8*rcx+0x10]
+       ; gcrRegs +[rdx]
+       mov      gword ptr [rsp+0x50], rdx
        ; GC ptr vars +{V09}
        mov      rcx, r13
        ; gcrRegs +[rcx]
-       call     [rdx+0x20]<unknown method>
-       ; gcrRegs -[rcx r8] +[rax]
+       mov      r8, qword ptr [r13]
+       mov      r8, qword ptr [r8+0x58]
+       call     [r8+0x20]<unknown method>
+       ; gcrRegs -[rcx rdx] +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rsp+0x28], rax
+       mov      gword ptr [rsp+0x30], rax
        ; GC ptr vars +{V53}
-       mov      rcx, gword ptr [rsp+0x48]
+       mov      rcx, gword ptr [rsp+0x50]
        ; gcrRegs +[rcx]
        mov      rdx, qword ptr [rcx]
        mov      rdx, qword ptr [rdx+0x58]
@@ -245,7 +243,7 @@ G_M48343_IG13:        ; bbWeight=4, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=
        ; gcr arg pop 0
        mov      rdx, rax
        ; gcrRegs +[rdx]
-       mov      rcx, gword ptr [rsp+0x28]
+       mov      rcx, gword ptr [rsp+0x30]
        ; gcrRegs +[rcx]
        ; GC ptr vars -{V53}
        call     [Internal.TypeSystem.TypeDesc:op_Equality(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc):ubyte]
@@ -253,23 +251,23 @@ G_M48343_IG13:        ; bbWeight=4, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=
        ; gcr arg pop 0
        test     eax, eax
        je       SHORT G_M48343_IG16
-                       ;; size=57 bbWeight=4 PerfScore 84.00
+                       ;; size=66 bbWeight=4 PerfScore 100.00
 G_M48343_IG14:        ; bbWeight=2, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=0080 {rdi}, byref, isz
-       mov      rax, gword ptr [rsp+0x48]
+       mov      rax, gword ptr [rsp+0x50]
        ; gcrRegs +[rax]
        mov      rdx, gword ptr [rax+0x08]
        ; gcrRegs +[rdx]
-       mov      gword ptr [rsp+0x38], rdx
+       mov      gword ptr [rsp+0x40], rdx
        ; GC ptr vars +{V30}
        mov      ecx, 1
        call     [<unknown method>]
        ; gcrRegs -[rax rdx]
        ; gcr arg pop 0
-       mov      rax, gword ptr [rsp+0x38]
+       mov      rax, gword ptr [rsp+0x40]
        ; gcrRegs +[rax]
        test     rax, rax
        jne      SHORT G_M48343_IG15
-       mov      rcx, gword ptr [rsp+0x48]
+       mov      rcx, gword ptr [rsp+0x50]
        ; gcrRegs +[rcx]
        xor      edx, edx
        mov      rax, qword ptr [rcx]
@@ -279,9 +277,9 @@ G_M48343_IG14:        ; bbWeight=2, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=
        call     [rax+0x28]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       mov      rcx, gword ptr [rsp+0x48]
+       mov      rcx, gword ptr [rsp+0x50]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rsp+0x38], rax
+       mov      gword ptr [rsp+0x40], rax
        ; GC ptr vars +{V30}
        mov      r8, rax
        ; gcrRegs +[r8]
@@ -290,7 +288,7 @@ G_M48343_IG14:        ; bbWeight=2, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=
        call     [Internal.TypeSystem.TypeDesc:SetCachedCanonValue(int,Internal.TypeSystem.TypeDesc):this]
        ; gcrRegs -[rax rcx r8]
        ; gcr arg pop 0
-       mov      rax, gword ptr [rsp+0x38]
+       mov      rax, gword ptr [rsp+0x40]
        ; gcrRegs +[rax]
                        ;; size=78 bbWeight=2 PerfScore 48.50
 G_M48343_IG15:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=A049 {rax rbx rsi r13 r15}, byrefRegs=0080 {rdi}, gcvars, byref, isz
@@ -310,11 +308,10 @@ G_M48343_IG15:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=A049 {
                        ;; size=25 bbWeight=2 PerfScore 12.50
 G_M48343_IG16:        ; bbWeight=4, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=0080 {rdi}, byref
        inc      r12d
-       mov      ecx, dword ptr [rsp+0x54]
+       mov      ecx, dword ptr [rsp+0x5C]
        cmp      ecx, r12d
-       mov      rdx, qword ptr [rsp+0x58]
        jg       G_M48343_IG13
-                       ;; size=21 bbWeight=4 PerfScore 14.00
+                       ;; size=16 bbWeight=4 PerfScore 10.00
 G_M48343_IG17:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0080 {rdi}, byref, isz
        ; gcrRegs -[r13 r15]
        mov      rcx, rbx
@@ -393,7 +390,7 @@ G_M48343_IG22:        ; bbWeight=0.50, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byr
        ; gcrRegs -[r13]
        xor      r13d, r13d
        mov      eax, dword ptr [r12+0x08]
-       mov      dword ptr [rsp+0x50], eax
+       mov      dword ptr [rsp+0x58], eax
        test     eax, eax
        jle      G_M48343_IG28
                        ;; size=20 bbWeight=0.50 PerfScore 2.25
@@ -401,7 +398,7 @@ G_M48343_IG23:        ; bbWeight=4, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byrefR
        mov      ecx, r13d
        mov      rdx, gword ptr [r12+8*rcx+0x10]
        ; gcrRegs +[rdx]
-       mov      gword ptr [rsp+0x40], rdx
+       mov      gword ptr [rsp+0x48], rdx
        ; GC ptr vars +{V13}
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -410,7 +407,7 @@ G_M48343_IG23:        ; bbWeight=4, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byrefR
        ; gcr arg pop 0
        mov      rdx, rax
        ; gcrRegs +[rdx]
-       mov      rcx, gword ptr [rsp+0x40]
+       mov      rcx, gword ptr [rsp+0x48]
        ; gcrRegs +[rcx]
        call     [Internal.TypeSystem.TypeDesc:op_Equality(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc):ubyte]
        ; gcrRegs -[rax rcx rdx]
@@ -422,18 +419,18 @@ G_M48343_IG23:        ; bbWeight=4, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byrefR
        call     [rbp+0x18]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rsp+0x30], rax
+       mov      gword ptr [rsp+0x38], rax
        ; GC ptr vars +{V38}
-       mov      rcx, gword ptr [rsp+0x40]
...

-9 (-0.78%) : 192733.dasm - System.RuntimeType:GetField(System.String,int):System.Reflection.FieldInfo:this (Instrumented Tier1)

@@ -12,13 +12,13 @@
 ;  V00 this         [V00,T02] (  4,  4   )     ref  ->  rdi         this class-hnd single-def <System.RuntimeType>
 ;  V01 arg1         [V01,T01] (  9,  4.12)     ref  ->  rsi         ld-addr-op class-hnd <System.String>
 ;  V02 arg2         [V02,T00] (  6,  5.33)     int  ->  rbx        
-;  V03 loc0         [V03,T16] (  6,  2.31)     int  ->  rbp         ld-addr-op
-;  V04 loc1         [V04,T13] (  3,  2.33)     ref  ->  rdi         class-hnd single-def <System.Reflection.RuntimeFieldInfo[]>
+;  V03 loc0         [V03,T15] (  6,  2.31)     int  ->  rbp         ld-addr-op
+;  V04 loc1         [V04,T12] (  4,  2.66)     ref  ->  rdi         class-hnd single-def <System.Reflection.RuntimeFieldInfo[]>
 ;  V05 loc2         [V05,T11] ( 16,  2.66)     ref  ->  rsi         class-hnd <System.Reflection.FieldInfo>
-;  V06 loc3         [V06,T18] (  3,  2   )   ubyte  ->  rbp        
+;  V06 loc3         [V06,T17] (  3,  2   )   ubyte  ->  rbp        
 ;* V07 loc4         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op
-;  V08 loc5         [V08,T15] (  5,  2.32)     int  ->  r14        
-;  V09 loc6         [V09,T19] ( 12,  0.99)     ref  ->  r13         class-hnd <System.Reflection.RuntimeFieldInfo>
+;  V08 loc5         [V08,T14] (  5,  2.32)     int  ->  r14        
+;  V09 loc6         [V09,T18] ( 12,  0.99)     ref  ->  r15         class-hnd <System.Reflection.RuntimeFieldInfo>
 ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V12 tmp2         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <System.Type>
@@ -28,7 +28,7 @@
 ;* V16 tmp6         [V16    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V17 tmp7         [V17    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V18 tmp8         [V18    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V19 tmp9         [V19,T24] (  3,  0   )     ref  ->  r12         "handle histogram profile tmp"
+;  V19 tmp9         [V19,T23] (  3,  0   )     ref  ->  r13         "handle histogram profile tmp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V21 tmp11        [V21    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V22 tmp12        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
@@ -48,48 +48,46 @@
 ;* V36 tmp26        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V37 tmp27        [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
 ;  V38 tmp28        [V38,T04] ( 14,  4.67)     ref  ->  r15         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V39 tmp29        [V39,T21] (  4,  0.98)     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V39 tmp29        [V39,T20] (  4,  0.98)     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V40 tmp30        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V41 tmp31        [V41,T17] (  5,  2   )     ref  ->  rdi         class-hnd "Inline return value spill temp" <System.Reflection.RuntimeFieldInfo[]>
+;  V41 tmp31        [V41,T16] (  5,  2   )     ref  ->  rdi         class-hnd "Inline return value spill temp" <System.Reflection.RuntimeFieldInfo[]>
 ;  V42 tmp32        [V42,T07] (  2,  3.38)     ref  ->  rax         class-hnd single-def "dup spill" <System.__Canon>
-;  V43 tmp33        [V43,T12] (  4,  2.61)     ref  ->  rax        
-;  V44 tmp34        [V44,T22] (  2,  0.24)     ref  ->  rax         class-hnd single-def "dup spill" <System.__Canon>
-;  V45 tmp35        [V45,T23] (  4,  0.19)     ref  ->  rdi        
+;  V43 tmp33        [V43,T13] (  4,  2.61)     ref  ->  rax        
+;  V44 tmp34        [V44,T21] (  2,  0.24)     ref  ->  rax         class-hnd single-def "dup spill" <System.__Canon>
+;  V45 tmp35        [V45,T22] (  4,  0.19)     ref  ->  rdi        
 ;* V46 tmp36        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V47 tmp37        [V47    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V48 tmp38        [V48,T32] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V49 tmp39        [V49,T25] (  3,  0   )     ref  ->  rcx         "argument with side effect"
-;  V50 tmp40        [V50,T26] (  3,  0   )     ref  ->  rcx         "argument with side effect"
-;* V51 tmp41        [V51,T33] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;* V52 tmp42        [V52,T34] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V53 tmp43        [V53,T27] (  3,  0   )     ref  ->  rcx         "argument with side effect"
-;  V54 tmp44        [V54,T28] (  3,  0   )     ref  ->  r12         "argument with side effect"
-;  V55 tmp45        [V55,T31] (  2,  0   )     ref  ->  rdx         "argument with side effect"
-;  V56 tmp46        [V56,T29] (  3,  0   )     ref  ->  rcx         "argument with side effect"
-;  V57 tmp47        [V57,T30] (  3,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V58 cse0         [V58,T20] (  3,  0.99)     int  ->  rcx         "CSE - conservative"
-;  V59 cse1         [V59,T14] (  3,  2.33)     int  ->  r15         "CSE - moderate"
-;  V60 cse2         [V60,T09] (  3,  3   )    long  ->  rcx         "CSE - moderate"
-;  V61 cse3         [V61,T08] (  3,  3   )     ref  ->  rdx         "CSE - moderate"
+;* V48 tmp38        [V48,T31] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V49 tmp39        [V49,T24] (  3,  0   )     ref  ->  rcx         "argument with side effect"
+;  V50 tmp40        [V50,T25] (  3,  0   )     ref  ->  rcx         "argument with side effect"
+;* V51 tmp41        [V51,T32] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;* V52 tmp42        [V52,T33] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V53 tmp43        [V53,T26] (  3,  0   )     ref  ->  rcx         "argument with side effect"
+;  V54 tmp44        [V54,T27] (  3,  0   )     ref  ->  r13         "argument with side effect"
+;  V55 tmp45        [V55,T30] (  2,  0   )     ref  ->  rdx         "argument with side effect"
+;  V56 tmp46        [V56,T28] (  3,  0   )     ref  ->  rcx         "argument with side effect"
+;  V57 tmp47        [V57,T29] (  3,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V58 cse0         [V58,T19] (  3,  0.99)     int  ->  rcx         "CSE - conservative"
+;  V59 cse1         [V59,T09] (  3,  3   )    long  ->  rcx         "CSE - moderate"
+;  V60 cse2         [V60,T08] (  3,  3   )     ref  ->  rdx         "CSE - moderate"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M40435_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
        push     r14
        push     r13
-       push     r12
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 40
+       sub      rsp, 32
        mov      rdi, rcx
        ; gcrRegs +[rdi]
        mov      rsi, rdx
        ; gcrRegs +[rsi]
        mov      ebx, r8d
-                       ;; size=25 bbWeight=1 PerfScore 9.00
+                       ;; size=23 bbWeight=1 PerfScore 8.00
 G_M40435_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
        test     rsi, rsi
        jne      SHORT G_M40435_IG04
@@ -259,15 +257,14 @@ G_M40435_IG18:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
        xor      ebx, 2
        xor      ebp, ebp
        xor      r14d, r14d
-       mov      r15d, dword ptr [rdi+0x08]
-       test     r15d, r15d
+       cmp      dword ptr [rdi+0x08], 0
        jle      G_M40435_IG27
-                       ;; size=23 bbWeight=1 PerfScore 4.25
+                       ;; size=20 bbWeight=1 PerfScore 5.00
 G_M40435_IG19:        ; bbWeight=0.33, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
        mov      ecx, r14d
-       mov      r13, gword ptr [rdi+8*rcx+0x10]
-       ; gcrRegs +[r13]
-       mov      ecx, dword ptr [r13+0x18]
+       mov      r15, gword ptr [rdi+8*rcx+0x10]
+       ; gcrRegs +[r15]
+       mov      ecx, dword ptr [r15+0x18]
        mov      eax, ebx
        and      eax, ecx
        cmp      eax, ecx
@@ -275,22 +272,22 @@ G_M40435_IG19:        ; bbWeight=0.33, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
        test     rsi, rsi
        je       G_M40435_IG22
                        ;; size=33 bbWeight=0.33 PerfScore 2.38
-G_M40435_IG20:        ; bbWeight=0, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0000 {}, byref
-       mov      rcx, r13
+G_M40435_IG20:        ; bbWeight=0, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0000 {}, byref
+       mov      rcx, r15
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rcx, r13
+       mov      rcx, r15
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [r13]
+       mov      rax, qword ptr [r15]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x38]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       mov      r12, rax
-       ; gcrRegs +[r12]
+       mov      r13, rax
+       ; gcrRegs +[r13]
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
@@ -304,13 +301,13 @@ G_M40435_IG20:        ; bbWeight=0, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0000
        call     [rax+0x38]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       cmp      r12, rax
+       cmp      r13, rax
        je       G_M40435_IG37
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
-       ; gcrRegs -[rax rcx r12]
+       ; gcrRegs -[rax rcx r13]
        ; gcr arg pop 0
        mov      rcx, rsi
        ; gcrRegs +[rcx]
@@ -327,15 +324,15 @@ G_M40435_IG20:        ; bbWeight=0, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0000
        ; gcr arg pop 0
        test     eax, eax
        je       G_M40435_IG36
-       mov      rcx, r13
+       mov      rcx, r15
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rcx, r13
+       mov      rcx, r15
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [r13]
+       mov      rax, qword ptr [r15]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x38]<unknown method>
        ; gcrRegs -[rcx] +[rax]
@@ -352,24 +349,24 @@ G_M40435_IG20:        ; bbWeight=0, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0000
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
        mov      ebp, 1
-                       ;; size=196 bbWeight=0 PerfScore 0.00
-G_M40435_IG21:        ; bbWeight=0, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0000 {}, byref
-       mov      rcx, r13
+                       ;; size=194 bbWeight=0 PerfScore 0.00
+G_M40435_IG21:        ; bbWeight=0, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0000 {}, byref
+       mov      rcx, r15
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rcx, r13
+       mov      rcx, r15
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [r13]
+       mov      rax, qword ptr [r15]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x38]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       mov      r12, rax
-       ; gcrRegs +[r12]
-       mov      rcx, r12
+       mov      r13, rax
+       ; gcrRegs +[r13]
+       mov      rcx, r13
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
@@ -390,13 +387,13 @@ G_M40435_IG21:        ; bbWeight=0, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0000
        ; gcr arg pop 0
        mov      rdx, rax
        ; gcrRegs +[rdx]
-       mov      rcx, r12
+       mov      rcx, r13
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [r12]
+       mov      rax, qword ptr [r13]
        ; gcrRegs -[rax]
        mov      rax, qword ptr [rax+0xB8]
        call     [rax+0x18]<unknown method>
-       ; gcrRegs -[rcx rdx r12]
+       ; gcrRegs -[rcx rdx r13]
        ; gcr arg pop 0
        test     eax, eax
        jne      G_M40435_IG34
@@ -425,24 +422,24 @@ G_M40435_IG21:        ; bbWeight=0, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0000
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcrRegs -[rsi]
        ; gcr arg pop 0
-                       ;; size=177 bbWeight=0 PerfScore 0.00
-G_M40435_IG22:        ; bbWeight=0.33, gcrefRegs=2080 {rdi r13}, byrefRegs=0000 {}, byref
+                       ;; size=176 bbWeight=0 PerfScore 0.00
+G_M40435_IG22:        ; bbWeight=0.33, gcrefRegs=8080 {rdi r15}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       mov      rsi, r13
+       mov      rsi, r15
        ; gcrRegs +[rsi]
                        ;; size=18 bbWeight=0.33 PerfScore 0.49
 G_M40435_IG23:        ; bbWeight=0.33, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r13]
...

+9 (+0.41%) : 219827.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Trim():ubyte:this (Instrumented Tier1)

@@ -10,53 +10,53 @@
 ;
 ;  V00 this         [V00,T21] (  9, 22.50)     ref  ->  rbx         this class-hnd single-def <System.Buffers.SharedArrayPool`1[ubyte]>
 ;  V01 loc0         [V01,T12] (  5, 33.50)     int  ->  rsi        
-;  V02 loc1         [V02,T31] (  5, 19   )     int  ->  rdi        
+;  V02 loc1         [V02,T30] (  5, 19   )     int  ->  rdi        
 ;  V03 loc2         [V03,T20] (  7, 27   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V04 loc3         [V04,T43] (  4, 10   )     ref  ->  r15         class-hnd exact single-def <<unknown class>>
-;  V05 loc4         [V05,T30] (  6, 19   )     int  ->  r13        
-;  V06 loc5         [V06,T37] (  8, 10.50)     ref  ->  [rbp-0x88]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V04 loc3         [V04,T42] (  4, 10   )     ref  ->  r15         class-hnd exact single-def <<unknown class>>
+;  V05 loc4         [V05,T29] (  6, 19   )     int  ->  r13        
+;  V06 loc5         [V06,T36] (  8, 10.50)     ref  ->  [rbp-0x98]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V07 loc6         [V07    ] (  2,  4   )  struct (16) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V08 loc7         [V08,T38] (  8, 10.50)     ref  ->  [rbp-0x90]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V08 loc7         [V08,T37] (  8, 10.50)     ref  ->  [rbp-0xA0]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V09 loc8         [V09    ] (  2,  4   )  struct (16) [rbp-0x58]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V10 loc9         [V10,T24] (  3, 20   )     ref  ->  rdi         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V10 loc9         [V10,T23] (  3, 20   )     ref  ->  rdi         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V11 loc10        [V11,T04] (  5, 66   )     int  ->  rsi        
 ;  V12 loc11        [V12,T02] (  6, 64   )     ref  ->  r13         class-hnd <<unknown class>>
-;  V13 loc12        [V13,T44] (  2,  8.50)     int  ->  rdi        
-;  V14 loc13        [V14,T60] (  3,  1.50)     int  ->  rdi        
-;  V15 loc14        [V15,T39] (  8, 10.50)     ref  ->  [rbp-0x98]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V13 loc12        [V13,T43] (  2,  8.50)     int  ->  rdi        
+;  V14 loc13        [V14,T59] (  3,  1.50)     int  ->  rdi        
+;  V15 loc14        [V15,T38] (  8, 10.50)     ref  ->  [rbp-0xA8]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V16 loc15        [V16    ] (  2,  4   )  struct (16) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V17 loc16        [V17,T10] (  5, 36   )     ref  ->  r15         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V17 loc16        [V17,T10] (  6, 44   )     ref  ->  r15         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V18 loc17        [V18,T00] (  5,210   )     int  ->  r13        
-;  V19 loc18        [V19,T23] (  3, 24   )     int  ->   r8        
-;  V20 loc19        [V20,T07] (  6, 48   )     ref  ->  [rbp-0xA0]  class-hnd spill-single-def <<unknown class>>
+;  V19 loc18        [V19,T22] (  3, 24   )     int  ->  rdx        
+;  V20 loc19        [V20,T07] (  6, 48   )     ref  ->  [rbp-0xB0]  class-hnd spill-single-def <<unknown class>>
 ;  V21 OutArgs      [V21    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V22 tmp1         [V22,T25] (  3, 20   )     ref  ->  r12         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V22 tmp1         [V22,T24] (  3, 20   )     ref  ->  r12         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
 ;* V23 tmp2         [V23    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V24 tmp3         [V24,T11] (  2, 36   )     int  ->  [rbp-0x6C]  spill-single-def "impAppendStmt"
 ;  V25 tmp4         [V25,T14] (  2, 32   )     int  ->  [rbp-0x70]  spill-single-def "impAppendStmt"
 ;  V26 tmp5         [V26,T15] (  2, 32   )     int  ->  [rbp-0x74]  spill-single-def "impAppendStmt"
 ;  V27 tmp6         [V27,T16] (  2, 32   )     int  ->  r12         "impAppendStmt"
 ;  V28 tmp7         [V28,T17] (  2, 32   )     int  ->  r13         "impAppendStmt"
-;  V29 tmp8         [V29,T51] (  3,  3   )     ref  ->  rbx         single-def "handle histogram profile tmp"
+;  V29 tmp8         [V29,T50] (  3,  3   )     ref  ->  rbx         single-def "handle histogram profile tmp"
 ;* V30 tmp9         [V30    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V31 tmp10        [V31    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V32 tmp11        [V32    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V33 tmp12        [V33,T52] (  3,  3   )     ref  ->  rdi         single-def "handle histogram profile tmp"
+;  V33 tmp12        [V33,T51] (  3,  3   )     ref  ->  rdi         single-def "handle histogram profile tmp"
 ;* V34 tmp13        [V34    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;  V35 tmp14        [V35,T01] (  3, 96   )     ref  ->  r13         "handle histogram profile tmp"
 ;* V36 tmp15        [V36    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V37 tmp16        [V37    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V38 tmp17        [V38    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V39 tmp18        [V39,T53] (  3,  3   )     ref  ->  r15         single-def "handle histogram profile tmp"
+;  V39 tmp18        [V39,T52] (  3,  3   )     ref  ->  r15         single-def "handle histogram profile tmp"
 ;* V40 tmp19        [V40    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V41 tmp20        [V41,T09] (  3, 48   )     ref  ->  [rbp-0xA8]  spill-single-def "handle histogram profile tmp"
+;  V41 tmp20        [V41,T09] (  3, 48   )     ref  ->  [rbp-0xB8]  spill-single-def "handle histogram profile tmp"
 ;* V42 tmp21        [V42    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V43 tmp22        [V43    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V44 tmp23        [V44    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V45 tmp24        [V45,T27] (  3, 20   )     int  ->  [rbp-0x78]  spill-single-def "Inline stloc first use temp"
+;  V45 tmp24        [V45,T26] (  3, 20   )     int  ->  [rbp-0x78]  spill-single-def "Inline stloc first use temp"
 ;* V46 tmp25        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp26        [V47    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V48 tmp27        [V48,T26] (  3, 20   )     ref  ->  r12         class-hnd exact "Inline stloc first use temp" <<unknown class>>
+;  V48 tmp27        [V48,T25] (  3, 20   )     ref  ->  r12         class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;  V49 tmp28        [V49,T05] (  5, 66   )     int  ->  [rbp-0x7C]  "Inline stloc first use temp"
 ;  V50 tmp29        [V50,T18] (  2, 32   )     int  ->  rax         "Inlining Arg"
 ;  V51 tmp30        [V51,T19] (  2, 32   )     int  ->  rax         "Inlining Arg"
@@ -66,39 +66,38 @@
 ;  V55 tmp34        [V55    ] (  1,  2   )     ref  ->  [rbp-0x50]  do-not-enreg[X] addr-exposed "field V09.value (fldOffset=0x8)" P-DEP
 ;  V56 tmp35        [V56    ] (  2,  4   )     ref  ->  [rbp-0x68]  do-not-enreg[X] addr-exposed "field V16.key (fldOffset=0x0)" P-DEP
 ;  V57 tmp36        [V57    ] (  1,  2   )     ref  ->  [rbp-0x60]  do-not-enreg[X] addr-exposed "field V16.value (fldOffset=0x8)" P-DEP
-;  V58 tmp37        [V58,T54] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V59 tmp38        [V59,T32] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V60 tmp39        [V60,T48] (  2,  8   )     ref  ->  rcx         "argument with side effect"
+;  V58 tmp37        [V58,T53] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V59 tmp38        [V59,T31] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V60 tmp39        [V60,T47] (  2,  8   )     ref  ->  rcx         "argument with side effect"
 ;  V61 tmp40        [V61,T13] (  2, 32   )     ref  ->  rdx         "argument with side effect"
-;* V62 tmp41        [V62,T35] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V63 tmp42        [V63,T62] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V64 tmp43        [V64,T55] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V65 tmp44        [V65,T56] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V66 tmp45        [V66,T33] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V67 tmp46        [V67,T49] (  2,  8   )     ref  ->  rcx         "argument with side effect"
+;* V62 tmp41        [V62,T34] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V63 tmp42        [V63,T61] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V64 tmp43        [V64,T54] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V65 tmp44        [V65,T55] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V66 tmp45        [V66,T32] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V67 tmp46        [V67,T48] (  2,  8   )     ref  ->  rcx         "argument with side effect"
 ;  V68 tmp47        [V68,T06] (  2, 64   )     ref  ->  rdx         "argument with side effect"
-;* V69 tmp48        [V69,T36] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V70 tmp49        [V70,T63] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V71 tmp50        [V71,T57] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V72 tmp51        [V72,T58] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V73 tmp52        [V73,T34] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V74 tmp53        [V74,T50] (  2,  8   )     ref  ->  rcx         "argument with side effect"
-;  V75 tmp54        [V75,T64] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V76 tmp55        [V76,T59] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V77 PSPSym       [V77,T61] (  1,  1   )    long  ->  [rbp-0xB8]  do-not-enreg[V] "PSPSym"
-;  V78 cse0         [V78,T45] (  4,  8   )     ref  ->  rbx         multi-def "CSE - moderate"
-;  V79 cse1         [V79,T40] (  6, 10.50)     ref  ->  rbx         multi-def "CSE - moderate"
-;  V80 cse2         [V80,T46] (  4,  8   )     ref  ->  rdi         multi-def "CSE - moderate"
-;  V81 cse3         [V81,T41] (  6, 10.50)     ref  ->  rdi         multi-def "CSE - moderate"
-;  V82 cse4         [V82,T47] (  4,  8   )     ref  ->  r15         multi-def "CSE - moderate"
-;  V83 cse5         [V83,T42] (  6, 10.50)     ref  ->  r15         multi-def "CSE - moderate"
-;  V84 cse6         [V84,T22] (  3, 24   )   byref  ->  [rbp-0xB0]  spill-single-def "CSE - moderate"
-;  V85 cse7         [V85,T08] (  4, 48   )    long  ->  rax         "CSE - aggressive"
-;  V86 cse8         [V86,T03] (  3, 68   )     int  ->  r12         "CSE - aggressive"
-;  V87 cse9         [V87,T28] (  3, 20   )     int  ->  [rbp-0x80]  spill-single-def "CSE - moderate"
-;  V88 cse10        [V88,T29] (  3, 20   )     int  ->  r15         "CSE - moderate"
+;* V69 tmp48        [V69,T35] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V70 tmp49        [V70,T62] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V71 tmp50        [V71,T56] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V72 tmp51        [V72,T57] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V73 tmp52        [V73,T33] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V74 tmp53        [V74,T49] (  2,  8   )     ref  ->  rcx         "argument with side effect"
+;  V75 tmp54        [V75,T63] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V76 tmp55        [V76,T58] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V77 PSPSym       [V77,T60] (  1,  1   )    long  ->  [rbp-0xC8]  do-not-enreg[V] "PSPSym"
+;  V78 cse0         [V78,T44] (  4,  8   )     ref  ->  rbx         multi-def "CSE - moderate"
+;  V79 cse1         [V79,T39] (  6, 10.50)     ref  ->  rbx         multi-def "CSE - moderate"
+;  V80 cse2         [V80,T45] (  4,  8   )     ref  ->  rdi         multi-def "CSE - moderate"
+;  V81 cse3         [V81,T40] (  6, 10.50)     ref  ->  rdi         multi-def "CSE - moderate"
+;  V82 cse4         [V82,T46] (  4,  8   )     ref  ->  r15         multi-def "CSE - moderate"
+;  V83 cse5         [V83,T41] (  6, 10.50)     ref  ->  r15         multi-def "CSE - moderate"
+;  V84 cse6         [V84,T08] (  5, 56   )    long  ->  [rbp-0x88]  spill-single-def "CSE - aggressive"
+;  V85 cse7         [V85,T03] (  3, 68   )     int  ->  r12         "CSE - aggressive"
+;  V86 cse8         [V86,T27] (  3, 20   )     int  ->  [rbp-0x8C]  spill-single-def "CSE - moderate"
+;  V87 cse9         [V87,T28] (  3, 20   )     int  ->  r15         "CSE - moderate"
 ;
-; Lcl frame size = 168
+; Lcl frame size = 184
 
 G_M18152_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
@@ -109,14 +108,14 @@ G_M18152_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 168
-       lea      rbp, [rsp+0xE0]
+       sub      rsp, 184
+       lea      rbp, [rsp+0xF0]
        xor      eax, eax
        mov      qword ptr [rbp-0x68], rax
        vxorps   xmm4, xmm4, xmm4
        vmovdqu  ymmword ptr [rbp-0x60], ymm4
        mov      qword ptr [rbp-0x40], rax
-       mov      qword ptr [rbp-0xB8], rsp
+       mov      qword ptr [rbp-0xC8], rsp
        mov      rbx, rcx
        ; gcrRegs +[rbx]
                        ;; size=56 bbWeight=1 PerfScore 14.58
@@ -188,10 +187,10 @@ G_M18152_IG07:        ; bbWeight=2, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=
        mov      r12, gword ptr [r12+0x08]
        xor      r10d, r10d
        mov      r11d, dword ptr [r12+0x08]
-       mov      dword ptr [rbp-0x80], r11d
+       mov      dword ptr [rbp-0x8C], r11d
        test     r11d, r11d
        jle      SHORT G_M18152_IG09
-                       ;; size=22 bbWeight=2 PerfScore 13.00
+                       ;; size=25 bbWeight=2 PerfScore 13.00
 G_M18152_IG08:        ; bbWeight=16, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      r8d, dword ptr [rbp-0x78]
        mov      dword ptr [rsp+0x20], r8d
@@ -208,11 +207,11 @@ G_M18152_IG08:        ; bbWeight=16, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs
        ; gcr arg pop 0
        mov      r10d, dword ptr [rbp-0x7C]
        inc      r10d
-       mov      ecx, dword ptr [rbp-0x80]
+       mov      ecx, dword ptr [rbp-0x8C]
        cmp      ecx, r10d
        mov      eax, dword ptr [rbp-0x6C]
        jg       SHORT G_M18152_IG08
-                       ;; size=55 bbWeight=16 PerfScore 264.00
+                       ;; size=58 bbWeight=16 PerfScore 264.00
 G_M18152_IG09:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r12]
        mov      rcx, 0xD1FFAB1E
@@ -243,10 +242,10 @@ G_M18152_IG11:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
        call     [r11]<unknown method>
        ; gcrRegs -[rcx rbx] +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rbp-0x88], rax
+       mov      gword ptr [rbp-0x98], rax
        ; GC ptr vars +{V06}
                        ;; size=59 bbWeight=0.50 PerfScore 6.00
-G_M18152_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000002000000000 {V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M18152_IG12:        ; bbWeight=0.50, gcVars=0000001000000000 {V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
        jmp      SHORT G_M18152_IG14
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M18152_IG13:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
@@ -254,7 +253,7 @@ G_M18152_IG13:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       mov      rcx, gword ptr [rbp-0x88]
+       mov      rcx, gword ptr [rbp-0x98]
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
@@ -272,7 +271,7 @@ G_M18152_IG13:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        call     [System.Array:Clear(System.Array)]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rax, gword ptr [rbp-0x88]
+       mov      rax, gword ptr [rbp-0x98]
        ; gcrRegs +[rax]
                        ;; size=74 bbWeight=2 PerfScore 25.00
 G_M18152_IG14:        ; bbWeight=4, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
@@ -282,7 +281,7 @@ G_M18152_IG14:        ; bbWeight=4, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byr
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
-       mov      rcx, gword ptr [rbp-0x88]
+       mov      rcx, gword ptr [rbp-0x98]
        ; gcrRegs +[rcx]
        mov      rbx, rcx
        ; gcrRegs +[rbx]
@@ -301,7 +300,7 @@ G_M18152_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       mov      rcx, gword ptr [rbp-0x88]
+       mov      rcx, gword ptr [rbp-0x98]
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; GC ptr vars -{V06}
@@ -317,7 +316,7 @@ G_M18152_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       jmp      G_M18152_IG42
+       jmp      G_M18152_IG43
                        ;; size=73 bbWeight=0.50 PerfScore 5.12
 G_M18152_IG16:        ; bbWeight=1, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rbx r12 r14-r15]
@@ -340,17 +339,17 @@ G_M18152_IG17:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
        call     [r11]<unknown method>
        ; gcrRegs -[rcx rdi] +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rbp-0x90], rax
...

+9 (+0.41%) : 245371.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Instrumented Tier1)

@@ -10,53 +10,53 @@
 ;
 ;  V00 this         [V00,T21] (  9, 22.50)     ref  ->  rbx         this class-hnd single-def <System.Buffers.SharedArrayPool`1[int]>
 ;  V01 loc0         [V01,T12] (  5, 33.50)     int  ->  rsi        
-;  V02 loc1         [V02,T31] (  5, 19   )     int  ->  rdi        
+;  V02 loc1         [V02,T30] (  5, 19   )     int  ->  rdi        
 ;  V03 loc2         [V03,T20] (  7, 27   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V04 loc3         [V04,T43] (  4, 10   )     ref  ->  r15         class-hnd exact single-def <<unknown class>>
-;  V05 loc4         [V05,T30] (  6, 19   )     int  ->  r13        
-;  V06 loc5         [V06,T37] (  8, 10.50)     ref  ->  [rbp-0x88]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V04 loc3         [V04,T42] (  4, 10   )     ref  ->  r15         class-hnd exact single-def <<unknown class>>
+;  V05 loc4         [V05,T29] (  6, 19   )     int  ->  r13        
+;  V06 loc5         [V06,T36] (  8, 10.50)     ref  ->  [rbp-0x98]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V07 loc6         [V07    ] (  2,  4   )  struct (16) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V08 loc7         [V08,T38] (  8, 10.50)     ref  ->  [rbp-0x90]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V08 loc7         [V08,T37] (  8, 10.50)     ref  ->  [rbp-0xA0]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V09 loc8         [V09    ] (  2,  4   )  struct (16) [rbp-0x58]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V10 loc9         [V10,T24] (  3, 20   )     ref  ->  rdi         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V10 loc9         [V10,T23] (  3, 20   )     ref  ->  rdi         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V11 loc10        [V11,T04] (  5, 66   )     int  ->  rsi        
 ;  V12 loc11        [V12,T02] (  6, 64   )     ref  ->  r13         class-hnd <<unknown class>>
-;  V13 loc12        [V13,T44] (  2,  8.50)     int  ->  rdi        
-;  V14 loc13        [V14,T60] (  3,  1.50)     int  ->  rdi        
-;  V15 loc14        [V15,T39] (  8, 10.50)     ref  ->  [rbp-0x98]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V13 loc12        [V13,T43] (  2,  8.50)     int  ->  rdi        
+;  V14 loc13        [V14,T59] (  3,  1.50)     int  ->  rdi        
+;  V15 loc14        [V15,T38] (  8, 10.50)     ref  ->  [rbp-0xA8]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V16 loc15        [V16    ] (  2,  4   )  struct (16) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V17 loc16        [V17,T10] (  5, 36   )     ref  ->  r15         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V17 loc16        [V17,T10] (  6, 44   )     ref  ->  r15         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V18 loc17        [V18,T00] (  5,210   )     int  ->  r13        
-;  V19 loc18        [V19,T23] (  3, 24   )     int  ->   r8        
-;  V20 loc19        [V20,T07] (  6, 48   )     ref  ->  [rbp-0xA0]  class-hnd spill-single-def <<unknown class>>
+;  V19 loc18        [V19,T22] (  3, 24   )     int  ->  rdx        
+;  V20 loc19        [V20,T07] (  6, 48   )     ref  ->  [rbp-0xB0]  class-hnd spill-single-def <<unknown class>>
 ;  V21 OutArgs      [V21    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V22 tmp1         [V22,T25] (  3, 20   )     ref  ->  r12         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V22 tmp1         [V22,T24] (  3, 20   )     ref  ->  r12         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
 ;* V23 tmp2         [V23    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V24 tmp3         [V24,T11] (  2, 36   )     int  ->  [rbp-0x6C]  spill-single-def "impAppendStmt"
 ;  V25 tmp4         [V25,T14] (  2, 32   )     int  ->  [rbp-0x70]  spill-single-def "impAppendStmt"
 ;  V26 tmp5         [V26,T15] (  2, 32   )     int  ->  [rbp-0x74]  spill-single-def "impAppendStmt"
 ;  V27 tmp6         [V27,T16] (  2, 32   )     int  ->  r12         "impAppendStmt"
 ;  V28 tmp7         [V28,T17] (  2, 32   )     int  ->  r13         "impAppendStmt"
-;  V29 tmp8         [V29,T51] (  3,  3   )     ref  ->  rbx         single-def "handle histogram profile tmp"
+;  V29 tmp8         [V29,T50] (  3,  3   )     ref  ->  rbx         single-def "handle histogram profile tmp"
 ;* V30 tmp9         [V30    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V31 tmp10        [V31    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V32 tmp11        [V32    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V33 tmp12        [V33,T52] (  3,  3   )     ref  ->  rdi         single-def "handle histogram profile tmp"
+;  V33 tmp12        [V33,T51] (  3,  3   )     ref  ->  rdi         single-def "handle histogram profile tmp"
 ;* V34 tmp13        [V34    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;  V35 tmp14        [V35,T01] (  3, 96   )     ref  ->  r13         "handle histogram profile tmp"
 ;* V36 tmp15        [V36    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V37 tmp16        [V37    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V38 tmp17        [V38    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V39 tmp18        [V39,T53] (  3,  3   )     ref  ->  r15         single-def "handle histogram profile tmp"
+;  V39 tmp18        [V39,T52] (  3,  3   )     ref  ->  r15         single-def "handle histogram profile tmp"
 ;* V40 tmp19        [V40    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V41 tmp20        [V41,T09] (  3, 48   )     ref  ->  [rbp-0xA8]  spill-single-def "handle histogram profile tmp"
+;  V41 tmp20        [V41,T09] (  3, 48   )     ref  ->  [rbp-0xB8]  spill-single-def "handle histogram profile tmp"
 ;* V42 tmp21        [V42    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V43 tmp22        [V43    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V44 tmp23        [V44    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V45 tmp24        [V45,T27] (  3, 20   )     int  ->  [rbp-0x78]  spill-single-def "Inline stloc first use temp"
+;  V45 tmp24        [V45,T26] (  3, 20   )     int  ->  [rbp-0x78]  spill-single-def "Inline stloc first use temp"
 ;* V46 tmp25        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp26        [V47    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V48 tmp27        [V48,T26] (  3, 20   )     ref  ->  r12         class-hnd exact "Inline stloc first use temp" <<unknown class>>
+;  V48 tmp27        [V48,T25] (  3, 20   )     ref  ->  r12         class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;  V49 tmp28        [V49,T05] (  5, 66   )     int  ->  [rbp-0x7C]  "Inline stloc first use temp"
 ;  V50 tmp29        [V50,T18] (  2, 32   )     int  ->  rax         "Inlining Arg"
 ;  V51 tmp30        [V51,T19] (  2, 32   )     int  ->  rax         "Inlining Arg"
@@ -66,39 +66,38 @@
 ;  V55 tmp34        [V55    ] (  1,  2   )     ref  ->  [rbp-0x50]  do-not-enreg[X] addr-exposed "field V09.value (fldOffset=0x8)" P-DEP
 ;  V56 tmp35        [V56    ] (  2,  4   )     ref  ->  [rbp-0x68]  do-not-enreg[X] addr-exposed "field V16.key (fldOffset=0x0)" P-DEP
 ;  V57 tmp36        [V57    ] (  1,  2   )     ref  ->  [rbp-0x60]  do-not-enreg[X] addr-exposed "field V16.value (fldOffset=0x8)" P-DEP
-;  V58 tmp37        [V58,T54] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V59 tmp38        [V59,T32] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V60 tmp39        [V60,T48] (  2,  8   )     ref  ->  rcx         "argument with side effect"
+;  V58 tmp37        [V58,T53] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V59 tmp38        [V59,T31] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V60 tmp39        [V60,T47] (  2,  8   )     ref  ->  rcx         "argument with side effect"
 ;  V61 tmp40        [V61,T13] (  2, 32   )     ref  ->  rdx         "argument with side effect"
-;* V62 tmp41        [V62,T35] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V63 tmp42        [V63,T62] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V64 tmp43        [V64,T55] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V65 tmp44        [V65,T56] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V66 tmp45        [V66,T33] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V67 tmp46        [V67,T49] (  2,  8   )     ref  ->  rcx         "argument with side effect"
+;* V62 tmp41        [V62,T34] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V63 tmp42        [V63,T61] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V64 tmp43        [V64,T54] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V65 tmp44        [V65,T55] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V66 tmp45        [V66,T32] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V67 tmp46        [V67,T48] (  2,  8   )     ref  ->  rcx         "argument with side effect"
 ;  V68 tmp47        [V68,T06] (  2, 64   )     ref  ->  rdx         "argument with side effect"
-;* V69 tmp48        [V69,T36] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V70 tmp49        [V70,T63] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V71 tmp50        [V71,T57] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V72 tmp51        [V72,T58] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V73 tmp52        [V73,T34] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V74 tmp53        [V74,T50] (  2,  8   )     ref  ->  rcx         "argument with side effect"
-;  V75 tmp54        [V75,T64] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V76 tmp55        [V76,T59] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V77 PSPSym       [V77,T61] (  1,  1   )    long  ->  [rbp-0xB8]  do-not-enreg[V] "PSPSym"
-;  V78 cse0         [V78,T45] (  4,  8   )     ref  ->  rbx         multi-def "CSE - moderate"
-;  V79 cse1         [V79,T40] (  6, 10.50)     ref  ->  rbx         multi-def "CSE - moderate"
-;  V80 cse2         [V80,T46] (  4,  8   )     ref  ->  rdi         multi-def "CSE - moderate"
-;  V81 cse3         [V81,T41] (  6, 10.50)     ref  ->  rdi         multi-def "CSE - moderate"
-;  V82 cse4         [V82,T47] (  4,  8   )     ref  ->  r15         multi-def "CSE - moderate"
-;  V83 cse5         [V83,T42] (  6, 10.50)     ref  ->  r15         multi-def "CSE - moderate"
-;  V84 cse6         [V84,T22] (  3, 24   )   byref  ->  [rbp-0xB0]  spill-single-def "CSE - moderate"
-;  V85 cse7         [V85,T08] (  4, 48   )    long  ->  rax         "CSE - aggressive"
-;  V86 cse8         [V86,T03] (  3, 68   )     int  ->  r12         "CSE - aggressive"
-;  V87 cse9         [V87,T28] (  3, 20   )     int  ->  [rbp-0x80]  spill-single-def "CSE - moderate"
-;  V88 cse10        [V88,T29] (  3, 20   )     int  ->  r15         "CSE - moderate"
+;* V69 tmp48        [V69,T35] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V70 tmp49        [V70,T62] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V71 tmp50        [V71,T56] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V72 tmp51        [V72,T57] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V73 tmp52        [V73,T33] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V74 tmp53        [V74,T49] (  2,  8   )     ref  ->  rcx         "argument with side effect"
+;  V75 tmp54        [V75,T63] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V76 tmp55        [V76,T58] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V77 PSPSym       [V77,T60] (  1,  1   )    long  ->  [rbp-0xC8]  do-not-enreg[V] "PSPSym"
+;  V78 cse0         [V78,T44] (  4,  8   )     ref  ->  rbx         multi-def "CSE - moderate"
+;  V79 cse1         [V79,T39] (  6, 10.50)     ref  ->  rbx         multi-def "CSE - moderate"
+;  V80 cse2         [V80,T45] (  4,  8   )     ref  ->  rdi         multi-def "CSE - moderate"
+;  V81 cse3         [V81,T40] (  6, 10.50)     ref  ->  rdi         multi-def "CSE - moderate"
+;  V82 cse4         [V82,T46] (  4,  8   )     ref  ->  r15         multi-def "CSE - moderate"
+;  V83 cse5         [V83,T41] (  6, 10.50)     ref  ->  r15         multi-def "CSE - moderate"
+;  V84 cse6         [V84,T08] (  5, 56   )    long  ->  [rbp-0x88]  spill-single-def "CSE - aggressive"
+;  V85 cse7         [V85,T03] (  3, 68   )     int  ->  r12         "CSE - aggressive"
+;  V86 cse8         [V86,T27] (  3, 20   )     int  ->  [rbp-0x8C]  spill-single-def "CSE - moderate"
+;  V87 cse9         [V87,T28] (  3, 20   )     int  ->  r15         "CSE - moderate"
 ;
-; Lcl frame size = 168
+; Lcl frame size = 184
 
 G_M34916_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
@@ -109,14 +108,14 @@ G_M34916_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 168
-       lea      rbp, [rsp+0xE0]
+       sub      rsp, 184
+       lea      rbp, [rsp+0xF0]
        xor      eax, eax
        mov      qword ptr [rbp-0x68], rax
        vxorps   xmm4, xmm4, xmm4
        vmovdqu  ymmword ptr [rbp-0x60], ymm4
        mov      qword ptr [rbp-0x40], rax
-       mov      qword ptr [rbp-0xB8], rsp
+       mov      qword ptr [rbp-0xC8], rsp
        mov      rbx, rcx
        ; gcrRegs +[rbx]
                        ;; size=56 bbWeight=1 PerfScore 14.58
@@ -188,10 +187,10 @@ G_M34916_IG07:        ; bbWeight=2, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=
        mov      r12, gword ptr [r12+0x08]
        xor      r10d, r10d
        mov      r11d, dword ptr [r12+0x08]
-       mov      dword ptr [rbp-0x80], r11d
+       mov      dword ptr [rbp-0x8C], r11d
        test     r11d, r11d
        jle      SHORT G_M34916_IG09
-                       ;; size=22 bbWeight=2 PerfScore 13.00
+                       ;; size=25 bbWeight=2 PerfScore 13.00
 G_M34916_IG08:        ; bbWeight=16, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      r8d, dword ptr [rbp-0x78]
        mov      dword ptr [rsp+0x20], r8d
@@ -208,11 +207,11 @@ G_M34916_IG08:        ; bbWeight=16, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs
        ; gcr arg pop 0
        mov      r10d, dword ptr [rbp-0x7C]
        inc      r10d
-       mov      ecx, dword ptr [rbp-0x80]
+       mov      ecx, dword ptr [rbp-0x8C]
        cmp      ecx, r10d
        mov      eax, dword ptr [rbp-0x6C]
        jg       SHORT G_M34916_IG08
-                       ;; size=55 bbWeight=16 PerfScore 264.00
+                       ;; size=58 bbWeight=16 PerfScore 264.00
 G_M34916_IG09:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r12]
        mov      rcx, 0xD1FFAB1E
@@ -243,10 +242,10 @@ G_M34916_IG11:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
        call     [r11]<unknown method>
        ; gcrRegs -[rcx rbx] +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rbp-0x88], rax
+       mov      gword ptr [rbp-0x98], rax
        ; GC ptr vars +{V06}
                        ;; size=59 bbWeight=0.50 PerfScore 6.00
-G_M34916_IG12:        ; bbWeight=0.50, gcVars=00000000000000000000002000000000 {V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M34916_IG12:        ; bbWeight=0.50, gcVars=0000001000000000 {V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
        jmp      SHORT G_M34916_IG14
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M34916_IG13:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
@@ -254,7 +253,7 @@ G_M34916_IG13:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       mov      rcx, gword ptr [rbp-0x88]
+       mov      rcx, gword ptr [rbp-0x98]
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
@@ -272,7 +271,7 @@ G_M34916_IG13:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        call     [System.Array:Clear(System.Array)]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rax, gword ptr [rbp-0x88]
+       mov      rax, gword ptr [rbp-0x98]
        ; gcrRegs +[rax]
                        ;; size=74 bbWeight=2 PerfScore 25.00
 G_M34916_IG14:        ; bbWeight=4, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
@@ -282,7 +281,7 @@ G_M34916_IG14:        ; bbWeight=4, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byr
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
-       mov      rcx, gword ptr [rbp-0x88]
+       mov      rcx, gword ptr [rbp-0x98]
        ; gcrRegs +[rcx]
        mov      rbx, rcx
        ; gcrRegs +[rbx]
@@ -301,7 +300,7 @@ G_M34916_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       mov      rcx, gword ptr [rbp-0x88]
+       mov      rcx, gword ptr [rbp-0x98]
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; GC ptr vars -{V06}
@@ -317,7 +316,7 @@ G_M34916_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       jmp      G_M34916_IG42
+       jmp      G_M34916_IG43
                        ;; size=73 bbWeight=0.50 PerfScore 5.12
 G_M34916_IG16:        ; bbWeight=1, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rbx r12 r14-r15]
@@ -340,17 +339,17 @@ G_M34916_IG17:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
        call     [r11]<unknown method>
        ; gcrRegs -[rcx rdi] +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rbp-0x90], rax
...

+26 (+1.37%) : 506561.dasm - JitTestarray1refany_il.Test:Main():int (FullOpts)

@@ -9,91 +9,89 @@
 ; Final local variable assignments
 ;
 ;  V00 loc0         [V00    ] (  4, 10   )     ref  ->  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Array>
-;  V01 loc1         [V01,T07] (  6, 21   )     int  ->  rsi        
+;  V01 loc1         [V01,T06] (  6, 21   )     int  ->  rsi        
 ;  V02 loc2         [V02    ] (  8,  4   )     ref  ->  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <<unknown class>>
 ;  V03 loc3         [V03    ] ( 38, 13   )     ref  ->  [rbp-0x50]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <ulong[,]>
-;* V04 loc4         [V04,T56] (  0,  0   )     int  ->  zero-ref   
-;* V05 loc5         [V05,T47] (  0,  0   )     int  ->  zero-ref   
-;  V06 loc6         [V06    ] (  4, 33   )     ref  ->  [rbp-0x58]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <<unknown class>>
-;  V07 loc7         [V07,T02] (  7, 72.50)     int  ->  rcx        
-;  V08 loc8         [V08,T00] (  7,100   )     int  ->  rax        
-;  V09 loc9         [V09,T30] (  5,  2.50)     ref  ->  rax         class-hnd exact single-def <<unknown class>>
-;  V10 loc10        [V10,T17] ( 14,  7   )     ref  ->  rax         class-hnd single-def <ulong[,]>
-;  V11 loc11        [V11,T31] (  4,  2   )     ref  ->  rbx         class-hnd exact single-def <<unknown class>>
-;  V12 loc12        [V12,T22] ( 10,  5   )     ref  ->  rax         class-hnd <<unknown class>>
+;* V04 loc4         [V04,T53] (  0,  0   )     int  ->  zero-ref   
+;* V05 loc5         [V05,T44] (  0,  0   )     int  ->  zero-ref   
+;  V06 loc6         [V06    ] (  6,  9   )     ref  ->  [rbp-0x58]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <<unknown class>>
+;* V07 loc7         [V07,T54] (  0,  0   )     int  ->  zero-ref   
+;  V08 loc8         [V08,T02] ( 14, 26.50)     int  ->  rcx        
+;  V09 loc9         [V09,T27] (  5,  2.50)     ref  ->  rax         class-hnd exact single-def <<unknown class>>
+;  V10 loc10        [V10,T14] ( 14,  7   )     ref  ->  rax         class-hnd single-def <ulong[,]>
+;  V11 loc11        [V11,T28] (  4,  2   )     ref  ->  rbx         class-hnd exact single-def <<unknown class>>
+;  V12 loc12        [V12,T19] ( 10,  5   )     ref  ->  rax         class-hnd <<unknown class>>
 ;  V13 OutArgs      [V13    ] (  1,  1   )  struct (48) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V14 tmp1         [V14    ] (  3,  1.50)  struct ( 8) [rbp-0x60]  do-not-enreg[XSF] addr-exposed "NewObjArrayArgs"
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
 ;  V16 tmp3         [V16    ] (  3,  6   )     int  ->  [rbp-0x68]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    single-def "CASTCLASS eval op1"
 ;* V18 tmp5         [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType>
-;* V19 tmp6         [V19,T48] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-;  V20 tmp7         [V20,T25] (  3,  4   )     int  ->  rsi         "Inlining Arg"
-;  V21 tmp8         [V21,T37] (  2,  2   )     ref  ->  rcx         class-hnd single-def "Inline return value spill temp" <System.Array>
+;* V19 tmp6         [V19,T45] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
+;  V20 tmp7         [V20,T22] (  3,  4   )     int  ->  rsi         "Inlining Arg"
+;  V21 tmp8         [V21,T34] (  2,  2   )     ref  ->  rcx         class-hnd single-def "Inline return value spill temp" <System.Array>
 ;  V22 tmp9         [V22    ] (  4,  4   )     ref  ->  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline stloc first use temp" <System.Array>
 ;  V23 tmp10        [V23    ] (  3,  6   )     ref  ->  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.RuntimeType>
 ;  V24 tmp11        [V24    ] (  4,  8   )  struct (16) [rbp-0x88]  do-not-enreg[XSF] addr-exposed ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.QCallTypeHandle>
 ;  V25 tmp12        [V25    ] (  2,  4   )  struct (16) [rbp-0x98]  do-not-enreg[XS] addr-exposed "impAppendStmt" <System.Runtime.CompilerServices.QCallTypeHandle>
 ;* V26 tmp13        [V26    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Runtime.CompilerServices.ObjectHandleOnStack>
-;  V27 tmp14        [V27,T24] (  3,  5   )     ref  ->  rcx         class-hnd exact single-def "dup spill" <System.RuntimeType>
-;  V28 tmp15        [V28,T38] (  2,  2   )   byref  ->  rdi         single-def
+;  V27 tmp14        [V27,T21] (  3,  5   )     ref  ->  rcx         class-hnd exact single-def "dup spill" <System.RuntimeType>
+;  V28 tmp15        [V28,T35] (  2,  2   )   byref  ->  rdi         single-def
 ;* V29 tmp16        [V29    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V30 tmp17        [V30    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V31 tmp18        [V31,T40] (  3,  1.50)    long  ->  r14        
-;  V32 tmp19        [V32,T26] (  2,  4   )  struct ( 8) [rbp-0xA0]  do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ObjectHandleOnStack>
+;  V31 tmp18        [V31,T37] (  3,  1.50)    long  ->  r14        
+;  V32 tmp19        [V32,T23] (  2,  4   )  struct ( 8) [rbp-0xA0]  do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ObjectHandleOnStack>
 ;* V33 tmp20        [V33    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp21        [V34    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V35 tmp22        [V35,T03] (  5, 40   )     ref  ->  r14         class-hnd "Inlining Arg" <System.Array>
-;  V36 tmp23        [V36,T20] (  2,  4   )     int  ->  rcx         "Inline return value spill temp"
+;  V35 tmp22        [V35,T00] (  5, 40   )     ref  ->  r14         class-hnd "Inlining Arg" <System.Array>
+;  V36 tmp23        [V36,T17] (  2,  4   )     int  ->  rcx         "Inline return value spill temp"
 ;* V37 tmp24        [V37    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V38 tmp25        [V38,T15] (  3, 10.00)     int  ->  rcx         "Inline stloc first use temp"
-;  V39 tmp26        [V39,T05] (  3, 24   )   byref  ->  rbx         "Inlining Arg"
+;  V38 tmp25        [V38,T12] (  3, 10.00)     int  ->  rcx         "Inline stloc first use temp"
+;  V39 tmp26        [V39,T04] (  3, 24   )   byref  ->  rbx         "Inlining Arg"
 ;* V40 tmp27        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V41 tmp28        [V41,T04] (  5, 40   )     ref  ->  rdi         class-hnd "Inlining Arg" <System.Array>
-;  V42 tmp29        [V42,T21] (  2,  4   )     int  ->  rcx         "Inline return value spill temp"
+;  V41 tmp28        [V41,T01] (  5, 40   )     ref  ->  rdi         class-hnd "Inlining Arg" <System.Array>
+;  V42 tmp29        [V42,T18] (  2,  4   )     int  ->  rcx         "Inline return value spill temp"
 ;* V43 tmp30        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V44 tmp31        [V44,T16] (  3, 10.00)     int  ->  rcx         "Inline stloc first use temp"
-;  V45 tmp32        [V45,T06] (  3, 24   )   byref  ->  rbx         "Inlining Arg"
+;  V44 tmp31        [V44,T13] (  3, 10.00)     int  ->  rcx         "Inline stloc first use temp"
+;  V45 tmp32        [V45,T05] (  3, 24   )   byref  ->  rbx         "Inlining Arg"
 ;* V46 tmp33        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V47 tmp34        [V47,T19] (  5,  6   )     int  ->  rax         "Single return block return value"
-;  V48 FramesRoot   [V48,T18] (  6,  6   )    long  ->  rbx         "Pinvoke FrameListRoot"
+;  V47 tmp34        [V47,T16] (  5,  6   )     int  ->  rax         "Single return block return value"
+;  V48 FramesRoot   [V48,T15] (  6,  6   )    long  ->  rbx         "Pinvoke FrameListRoot"
 ;  V49 PInvokeFrame [V49    ] (  8,  8   )  struct (72) [rbp-0x128]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
-;  V50 tmp37        [V50,T57] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V50 tmp37        [V50,T55] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;  V51 tmp38        [V51    ] (  3,  6   )  struct (16) [rbp-0xB0]  do-not-enreg[XS] must-init addr-exposed "by-value mkrefany struct argument" <System.TypedReference>
-;  V52 tmp39        [V52,T10] (  2, 16   )    long  ->  rdx         "argument with side effect"
-;  V53 tmp40        [V53,T11] (  2, 16   )    long  ->  rdx         "argument with side effect"
+;  V52 tmp39        [V52,T07] (  2, 16   )    long  ->  rdx         "argument with side effect"
+;  V53 tmp40        [V53,T08] (  2, 16   )    long  ->  rdx         "argument with side effect"
 ;  V54 tmp41        [V54    ] (  3,  3   )  struct (16) [rbp-0xC0]  do-not-enreg[XS] must-init addr-exposed "by-value mkrefany struct argument" <System.TypedReference>
-;  V55 tmp42        [V55,T39] (  2,  2   )    long  ->   r8         "argument with side effect"
+;  V55 tmp42        [V55,T36] (  2,  2   )    long  ->   r8         "argument with side effect"
 ;  V56 tmp43        [V56    ] (  3,  3   )  struct (16) [rbp-0xD0]  do-not-enreg[XS] must-init addr-exposed "by-value mkrefany struct argument" <System.TypedReference>
 ;  V57 tmp44        [V57    ] (  3,  3   )  struct (16) [rbp-0xE0]  do-not-enreg[XS] must-init addr-exposed "by-value mkrefany struct argument" <System.TypedReference>
-;  V58 tmp45        [V58,T01] (  3, 96   )     ref  ->  r10         "arr expr"
-;  V59 tmp46        [V59,T12] ( 21, 15   )     int  ->  rcx         "MD array shared temp"
-;  V60 tmp47        [V60,T13] ( 21, 15   )     int  ->   r9         "MD array shared temp"
-;* V61 tmp48        [V61,T49] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;  V62 tmp49        [V62,T27] (  3,  3   )     int  ->  r11         "MD array shared temp"
-;* V63 tmp50        [V63,T50] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;  V64 tmp51        [V64,T28] (  3,  3   )     int  ->   r8         "MD array shared temp"
-;  V65 tmp52        [V65,T29] (  3,  3   )     int  ->  rcx         "MD array shared temp"
-;* V66 tmp53        [V66,T51] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;* V67 tmp54        [V67,T52] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;* V68 tmp55        [V68,T53] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;* V69 tmp56        [V69,T54] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;* V70 tmp57        [V70,T55] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
-;  V71 cse0         [V71,T32] (  4,  2   )     int  ->  rcx         "CSE - conservative"
-;  V72 cse1         [V72,T33] (  4,  2   )     int  ->  rcx         "CSE - conservative"
-;  V73 cse2         [V73,T41] (  3,  1.50)     int  ->   r9         "CSE - conservative"
-;  V74 cse3         [V74,T42] (  3,  1.50)     int  ->  r11         "CSE - conservative"
-;  V75 cse4         [V75,T43] (  3,  1.50)     int  ->   r8         "CSE - conservative"
-;  V76 cse5         [V76,T08] (  2, 20   )     int  ->   r8         hoist "CSE - aggressive"
-;  V77 cse6         [V77,T34] (  2,  1   )     int  ->  rcx         "CSE - conservative"
-;  V78 cse7         [V78,T35] (  2,  1   )     int  ->  rcx         "CSE - conservative"
-;  V79 cse8         [V79,T44] (  2,  1   )     int  ->   r9         "CSE - conservative"
-;  V80 cse9         [V80,T45] (  2,  1   )     int  ->  r11         "CSE - conservative"
-;  V81 cse10        [V81,T46] (  2,  1   )     int  ->   r8         "CSE - conservative"
-;  V82 cse11        [V82,T23] ( 10,  5   )     int  ->  rdx         "CSE - moderate"
-;  V83 cse12        [V83,T14] (  6, 12.00)     ref  ->  rdx         multi-def "CSE - moderate"
-;  V84 cse13        [V84,T36] (  4,  2   )     int  ->  r10         "CSE - conservative"
-;  V85 cse14        [V85,T09] (  2, 20   )    long  ->  rdx         hoist "CSE - aggressive"
+;  V58 tmp45        [V58,T03] (  6, 24   )     ref  ->  rax         "arr expr"
+;  V59 tmp46        [V59,T09] ( 21, 15   )     int  ->  rcx         "MD array shared temp"
+;  V60 tmp47        [V60,T10] ( 21, 15   )     int  ->   r9         "MD array shared temp"
+;* V61 tmp48        [V61,T46] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;  V62 tmp49        [V62,T24] (  3,  3   )     int  ->  r11         "MD array shared temp"
+;* V63 tmp50        [V63,T47] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;  V64 tmp51        [V64,T25] (  3,  3   )     int  ->   r8         "MD array shared temp"
+;  V65 tmp52        [V65,T26] (  3,  3   )     int  ->  rcx         "MD array shared temp"
+;* V66 tmp53        [V66,T48] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;* V67 tmp54        [V67,T49] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;* V68 tmp55        [V68,T50] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;* V69 tmp56        [V69,T51] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;* V70 tmp57        [V70,T52] (  0,  0   )     int  ->  zero-ref    "MD array shared temp"
+;  V71 cse0         [V71,T29] (  4,  2   )     int  ->  rcx         "CSE - conservative"
+;  V72 cse1         [V72,T30] (  4,  2   )     int  ->  rcx         "CSE - conservative"
+;  V73 cse2         [V73,T38] (  3,  1.50)     int  ->   r9         "CSE - conservative"
+;  V74 cse3         [V74,T39] (  3,  1.50)     int  ->  r11         "CSE - conservative"
+;  V75 cse4         [V75,T40] (  3,  1.50)     int  ->   r8         "CSE - conservative"
+;  V76 cse5         [V76,T31] (  2,  1   )     int  ->  rcx         "CSE - conservative"
+;  V77 cse6         [V77,T32] (  2,  1   )     int  ->  rcx         "CSE - conservative"
+;  V78 cse7         [V78,T41] (  2,  1   )     int  ->   r9         "CSE - conservative"
+;  V79 cse8         [V79,T42] (  2,  1   )     int  ->  r11         "CSE - conservative"
+;  V80 cse9         [V80,T43] (  2,  1   )     int  ->   r8         "CSE - conservative"
+;  V81 cse10        [V81,T20] ( 10,  5   )     int  ->  rdx         "CSE - moderate"
+;  V82 cse11        [V82,T11] (  6, 12.00)     ref  ->  rdx         multi-def "CSE - moderate"
+;  V83 cse12        [V83,T33] (  4,  2   )     int  ->  r10         "CSE - conservative"
 ;
 ; Lcl frame size = 296
 
@@ -603,7 +601,7 @@ G_M55471_IG29:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        cmp      qword ptr [rdx+8*rcx+0x20], 5
        jne      G_M55471_IG35
                        ;; size=167 bbWeight=0.25 PerfScore 15.06
-G_M55471_IG30:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M55471_IG30:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdx]
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        mov      edx, 2
@@ -652,35 +650,9 @@ G_M55471_IG30:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        call     [<unknown method>]
        ; gcrRegs -[rbx]
        ; gcr arg pop 0
-       xor      ecx, ecx
-                       ;; size=182 bbWeight=0.50 PerfScore 10.88
-G_M55471_IG31:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       xor      eax, eax
-       jmp      SHORT G_M55471_IG34
-                       ;; size=4 bbWeight=4 PerfScore 9.00
-G_M55471_IG32:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       mov      r10, gword ptr [rbp-0x58]
-       ; gcrRegs +[r10]
-       cmp      ecx, dword ptr [r10+0x08]
-       jae      SHORT G_M55471_IG37
-       mov      r10, gword ptr [rbp-0x58]
-       mov      r10, gword ptr [r10+8*rdx+0x10]
-       cmp      eax, dword ptr [r10+0x08]
-       jae      SHORT G_M55471_IG37
-       mov      r9d, eax
-       lea      r11d, [r8+rax]
-       movsxd   r11, r11d
-       cmp      qword ptr [r10+8*r9+0x10], r11
-       jne      SHORT G_M55471_IG35
-       inc      eax
-       cmp      eax, 3
-       jl       SHORT G_M55471_IG32
-       inc      ecx
-       cmp      ecx, 2
-       jl       SHORT G_M55471_IG31
-                       ;; size=56 bbWeight=16 PerfScore 320.00
-G_M55471_IG33:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r10]
+       jmp      SHORT G_M55471_IG32
+                       ;; size=182 bbWeight=0.50 PerfScore 11.75
+G_M55471_IG31:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        call     [<unknown method>]
@@ -689,12 +661,49 @@ G_M55471_IG33:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        mov      eax, 100
        jmp      SHORT G_M55471_IG36
                        ;; size=23 bbWeight=0.50 PerfScore 2.75
-G_M55471_IG34:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M55471_IG32:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       xor      ecx, ecx
+                       ;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M55471_IG33:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       mov      rax, gword ptr [rbp-0x58]
+       ; gcrRegs +[rax]
+       cmp      dword ptr [rax+0x08], 0
+       jbe      SHORT G_M55471_IG37
+       mov      rax, gword ptr [rbp-0x58]
+       mov      rax, gword ptr [rax+0x10]
+       cmp      ecx, dword ptr [rax+0x08]
+       jae      SHORT G_M55471_IG37
        mov      edx, ecx
-       lea      r8d, [rcx+2*rcx]
-       jmp      SHORT G_M55471_IG32
-                       ;; size=8 bbWeight=4 PerfScore 11.00
+       movsxd   r8, ecx
+       cmp      qword ptr [rax+8*rdx+0x10], r8
+       jne      SHORT G_M55471_IG35
+       inc      ecx
+       cmp      ecx, 3
+       jl       SHORT G_M55471_IG33
+       xor      ecx, ecx
+                       ;; size=44 bbWeight=2 PerfScore 36.50
+G_M55471_IG34:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rax]
+       mov      rax, gword ptr [rbp-0x58]
+       ; gcrRegs +[rax]
+       cmp      dword ptr [rax+0x08], 1
+       jbe      SHORT G_M55471_IG37
+       mov      rax, gword ptr [rbp-0x58]
+       mov      rax, gword ptr [rax+0x18]
+       cmp      ecx, dword ptr [rax+0x08]
+       jae      SHORT G_M55471_IG37
+       mov      edx, ecx
+       lea      r8d, [rcx+0x03]
+       movsxd   r8, r8d
+       cmp      qword ptr [rax+8*rdx+0x10], r8
+       jne      SHORT G_M55471_IG35
+       inc      ecx
+       cmp      ecx, 3
+       jl       SHORT G_M55471_IG34
+       jmp      SHORT G_M55471_IG31
+                       ;; size=48 bbWeight=2 PerfScore 41.00
 G_M55471_IG35:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax]
        mov      eax, 3
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
...

libraries.crossgen2.windows.x64.checked.mch

-39 (-9.47%) : 21666.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (FullOpts)

@@ -4,50 +4,50 @@
 ; ReadyToRun compilation
 ; optimized code
 ; rsp based frame
-; partially interruptible
+; fully interruptible
 ; No matching PGO data
 ; 0 inlinees with PGO data; 19 single block inlinees; 7 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  4,  8   )   byref  ->  rcx         ld-addr-op single-def
-;  V01 arg1         [V01,T02] (  7,  4.50)   byref  ->  rbx         single-def
-;  V02 arg2         [V02,T03] (  7,  4.50)   byref  ->  rsi         single-def
-;  V03 loc0         [V03,T00] ( 20, 11   )     int  ->  r14        
-;  V04 loc1         [V04,T10] (  5,  2.50)     int  ->  r15        
-;  V05 loc2         [V05,T15] (  2,  1   )     int  ->  rax        
+;  V00 arg0         [V00,T02] (  4,  8   )   byref  ->  rcx         ld-addr-op single-def
+;  V01 arg1         [V01,T04] (  7,  4.50)   byref  ->  rbx         single-def
+;  V02 arg2         [V02,T05] (  7,  4.50)   byref  ->  rsi         single-def
+;  V03 loc0         [V03,T00] ( 11, 20.50)     int  ->  r14        
+;  V04 loc1         [V04,T11] (  5,  2.50)     int  ->  r15        
+;  V05 loc2         [V05,T16] (  2,  1   )     int  ->  rax        
 ;  V06 loc3         [V06    ] (  2,  1   )  struct ( 8) [rsp+0x40]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Text.Rune>
 ;  V07 loc4         [V07    ] (  3,  1.50)     int  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed ld-addr-op
-;* V08 loc5         [V08,T19] (  0,  0   )     int  ->  zero-ref   
+;  V08 loc5         [V08,T01] (  4, 12.50)     int  ->  rax        
 ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V11 tmp2         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Rune>
 ;* V12 tmp3         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V13 tmp4         [V13,T08] (  3,  3   )     int  ->  rbp         "Inlining Arg"
-;  V14 tmp5         [V14,T11] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V13 tmp4         [V13,T09] (  3,  3   )     int  ->  rbp         "Inlining Arg"
+;  V14 tmp5         [V14,T12] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
 ;* V15 tmp6         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp7         [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp8         [V17    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Rune>
 ;* V18 tmp9         [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
 ;* V19 tmp10        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V20 tmp11        [V20,T05] (  5,  5   )     int  ->  rdi         "Inlining Arg"
-;  V21 tmp12        [V21,T12] (  2,  2   )   byref  ->  r15         "Inlining Arg"
+;  V20 tmp11        [V20,T07] (  5,  5   )     int  ->  rdi         "Inlining Arg"
+;  V21 tmp12        [V21,T13] (  2,  2   )   byref  ->  r15         "Inlining Arg"
 ;* V22 tmp13        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp14        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp15        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp16        [V25    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Rune>
 ;* V26 tmp17        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V27 tmp18        [V27,T09] (  3,  3   )     int  ->  rax         "Single return block return value"
-;  V28 tmp19        [V28,T07] (  7,  4   )   byref  ->  rdi         "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V29 tmp20        [V29,T04] (  9,  6   )     int  ->  rbp         "field V00._length (fldOffset=0x8)" P-INDEP
+;  V27 tmp18        [V27,T10] (  3,  3   )     int  ->  rax         "Single return block return value"
+;  V28 tmp19        [V28,T06] (  5,  6.50)   byref  ->  rdi         "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V29 tmp20        [V29,T03] (  6,  8   )     int  ->  rbp         "field V00._length (fldOffset=0x8)" P-INDEP
 ;  V30 tmp21        [V30    ] (  2,  1   )     int  ->  [rsp+0x40]  do-not-enreg[X] addr-exposed "field V06._value (fldOffset=0x0)" P-DEP
 ;* V31 tmp22        [V31    ] (  0,  0   )   byref  ->  zero-ref    "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
-;  V33 tmp24        [V33,T16] (  2,  1   )     int  ->  r15         "field V11._value (fldOffset=0x0)" P-INDEP
-;  V34 tmp25        [V34,T13] (  2,  1   )   byref  ->  rdi         single-def "field V12._reference (fldOffset=0x0)" P-INDEP
-;  V35 tmp26        [V35,T17] (  2,  1   )     int  ->  rbp         "field V12._length (fldOffset=0x8)" P-INDEP
+;  V33 tmp24        [V33,T17] (  2,  1   )     int  ->  r15         "field V11._value (fldOffset=0x0)" P-INDEP
+;  V34 tmp25        [V34,T14] (  2,  1   )   byref  ->  rdi         single-def "field V12._reference (fldOffset=0x0)" P-INDEP
+;  V35 tmp26        [V35,T18] (  2,  1   )     int  ->  rbp         "field V12._length (fldOffset=0x8)" P-INDEP
 ;* V36 tmp27        [V36,T20] (  0,  0   )     int  ->  zero-ref    "field V17._value (fldOffset=0x0)" P-INDEP
-;  V37 tmp28        [V37,T14] (  2,  1   )   byref  ->  r15         "field V19._reference (fldOffset=0x0)" P-INDEP
-;  V38 tmp29        [V38,T18] (  2,  1   )     int  ->  rcx         "field V19._length (fldOffset=0x8)" P-INDEP
+;  V37 tmp28        [V37,T15] (  2,  1   )   byref  ->  r15         "field V19._reference (fldOffset=0x0)" P-INDEP
+;  V38 tmp29        [V38,T19] (  2,  1   )     int  ->  rcx         "field V19._length (fldOffset=0x8)" P-INDEP
 ;* V39 tmp30        [V39,T21] (  0,  0   )     int  ->  zero-ref    "field V25._value (fldOffset=0x0)" P-INDEP
 ;* V40 tmp31        [V40    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlySpan`1[ubyte]>
 ;* V41 tmp32        [V41    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
@@ -55,11 +55,11 @@
 ;  V43 tmp34        [V43    ] (  6,  6   )  struct (16) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V44 tmp35        [V44    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V45 tmp36        [V45    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V46 cse0         [V46,T06] (  8,  4   )     ref  ->  rdx         multi-def "CSE - aggressive"
+;  V46 cse0         [V46,T08] (  8,  4   )     ref  ->  rdx         multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 72
 
-G_M6810_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M6810_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     r15
        push     r14
        push     rdi
@@ -81,7 +81,7 @@ G_M6810_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=004A {rcx rbx rs
        mov      ebp, dword ptr [rcx+0x08]
        lea      r14d, [rbp-0x01]
        cmp      r14d, ebp
-       jae      G_M6810_IG14
+       jae      G_M6810_IG15
                        ;; size=19 bbWeight=1 PerfScore 5.75
 G_M6810_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
        ; byrRegs -[rcx]
@@ -135,36 +135,30 @@ G_M6810_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi
        call     [<unknown method>]
        ; byrRegs -[rdx rbx rsi rdi r8]
        ; gcr arg pop 0
-       jmp      G_M6810_IG13
+       jmp      G_M6810_IG14
                        ;; size=31 bbWeight=0.50 PerfScore 4.00
-G_M6810_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
+G_M6810_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, byref
        ; byrRegs +[rbx rsi rdi]
+       mov      eax, 3
+                       ;; size=5 bbWeight=0.50 PerfScore 0.12
+G_M6810_IG08:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
        dec      r14d
        cmp      r14d, ebp
-       jae      SHORT G_M6810_IG08
-       mov      eax, r14d
-       cmp      byte  ptr [rdi+rax], -64
-       jge      SHORT G_M6810_IG10
-       dec      r14d
-       cmp      r14d, ebp
-       jae      SHORT G_M6810_IG08
-       mov      eax, r14d
-       cmp      byte  ptr [rdi+rax], -64
-       jge      SHORT G_M6810_IG10
-       dec      r14d
-       cmp      r14d, ebp
-       jae      SHORT G_M6810_IG08
-       mov      eax, r14d
-       cmp      byte  ptr [rdi+rax], -64
-       jge      SHORT G_M6810_IG10
-                       ;; size=51 bbWeight=0.50 PerfScore 8.62
-G_M6810_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref
+       jae      SHORT G_M6810_IG09
+       mov      ecx, r14d
+       cmp      byte  ptr [rdi+rcx], -64
+       jge      SHORT G_M6810_IG11
+       dec      eax
+       test     eax, eax
+       jg       SHORT G_M6810_IG08
+                       ;; size=23 bbWeight=4 PerfScore 29.00
+G_M6810_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref
        ; byrRegs -[rdi]
        mov      dword ptr [rbx], 0xFFFD
        mov      dword ptr [rsi], 1
        mov      eax, 3
                        ;; size=17 bbWeight=0.50 PerfScore 1.12
-G_M6810_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+G_M6810_IG10:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 72
        pop      rbx
        pop      rbp
@@ -174,17 +168,15 @@ G_M6810_IG09:        ; bbWeight=0.50, epilog, nogc, extend
        pop      r15
        ret      
                        ;; size=13 bbWeight=0.50 PerfScore 2.12
-G_M6810_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, gcvars, byref, isz
+G_M6810_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, gcvars, byref, isz
        ; byrRegs +[rdi]
-       cmp      r14d, ebp
-       ja       G_M6810_IG16
        mov      r15d, r14d
        add      r15, rdi
        ; byrRegs +[r15]
        mov      edi, ebp
        ; byrRegs -[rdi]
        sub      edi, r14d
-       jns      SHORT G_M6810_IG11
+       jns      SHORT G_M6810_IG12
        mov      rcx, qword ptr [(reloc)]      ; const ptr
        mov      rdx, gword ptr [rcx]
        ; gcrRegs +[rdx]
@@ -193,11 +185,11 @@ G_M6810_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=41 bbWeight=0.50 PerfScore 5.25
-G_M6810_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8048 {rbx rsi r15}, byref, isz
+                       ;; size=32 bbWeight=0.50 PerfScore 4.62
+G_M6810_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8048 {rbx rsi r15}, byref, isz
        mov      ecx, edi
        test     ecx, ecx
-       jne      SHORT G_M6810_IG12
+       jne      SHORT G_M6810_IG13
        mov      rcx, qword ptr [(reloc)]      ; const ptr
        mov      rcx, gword ptr [rcx]
        ; gcrRegs +[rcx]
@@ -208,7 +200,7 @@ G_M6810_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8048 {rbx rsi
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
                        ;; size=32 bbWeight=0.50 PerfScore 6.25
-G_M6810_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8048 {rbx rsi r15}, byref
+G_M6810_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8048 {rbx rsi r15}, byref
        mov      bword ptr [rsp+0x28], r15
        mov      dword ptr [rsp+0x30], edi
        lea      rcx, [rsp+0x28]
@@ -218,13 +210,13 @@ G_M6810_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8048 {rbx rsi
        ; byrRegs -[r15]
        ; gcr arg pop 0
        cmp      dword ptr [rsp+0x38], edi
-       jne      G_M6810_IG08
+       jne      G_M6810_IG09
        mov      ecx, dword ptr [rsp+0x38]
        mov      dword ptr [rsi], ecx
        mov      ecx, dword ptr [rsp+0x40]
        mov      dword ptr [rbx], ecx
                        ;; size=52 bbWeight=0.50 PerfScore 6.75
-G_M6810_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M6810_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        ; byrRegs -[rbx rsi]
        add      rsp, 72
        pop      rbx
@@ -235,14 +227,14 @@ G_M6810_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
        pop      r15
        ret      
                        ;; size=13 bbWeight=0.50 PerfScore 2.12
-G_M6810_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, gcvars, byref
+G_M6810_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, gcvars, byref
        ; byrRegs +[rbx rsi]
        mov      dword ptr [rbx], 0xFFFD
        xor      eax, eax
        mov      dword ptr [rsi], eax
        mov      eax, 2
                        ;; size=15 bbWeight=0.50 PerfScore 1.25
-G_M6810_IG15:        ; bbWeight=0.50, epilog, nogc, extend
+G_M6810_IG16:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 72
        pop      rbx
        pop      rbp
@@ -252,14 +244,8 @@ G_M6810_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        pop      r15
        ret      
                        ;; size=13 bbWeight=0.50 PerfScore 2.12
-G_M6810_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; byrRegs -[rbx rsi]
-       call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 412, prolog size 19, PerfScore 65.12, instruction count 132, allocated bytes for code 412 (MethodHash=fdd5e565) for method System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (FullOpts)
+; Total bytes of code 373, prolog size 25, PerfScore 85.00, instruction count 120, allocated bytes for code 373 (MethodHash=fdd5e565) for method System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (FullOpts)
 ; ============================================================
 
 Unwind Info:

-10 (-1.98%) : 238829.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

@@ -4,49 +4,48 @@
 ; ReadyToRun compilation
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T06] (  3,  3   )   byref  ->  rcx         this single-def
-;  V01 arg1         [V01,T04] (  3,  6   )   byref  ->  rsi         single-def
+;  V00 this         [V00,T03] (  3,  3   )   byref  ->  rcx         this single-def
+;  V01 arg1         [V01,T00] (  3,  6   )   byref  ->  rsi         single-def
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
-;  V03 loc1         [V03,T01] (  9, 12   )     int  ->  r14        
+;  V03 loc1         [V03,T04] (  9,  4.75)     int  ->  r14        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[int]>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [rsp+0x28]  do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
-;  V07 tmp2         [V07    ] (  4,  8   )  struct (16) [rsp+0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
+;  V07 tmp2         [V07    ] (  4,  8   )  struct (16) [rsp+0x68]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;  V08 tmp3         [V08    ] (  2,  4   )  struct (16) [rsp+0x58]  do-not-enreg[HS] hidden-struct-arg "spilled call-like call argument" <System.Decimal>
-;  V09 tmp4         [V09,T10] (  3,  3   )     ref  ->  rax         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V10 tmp5         [V10,T13] (  2,  2   )     int  ->  rcx         "Strict ordering of exceptions for Array store"
+;  V09 tmp4         [V09,T09] (  3,  3   )     ref  ->  rax         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V10 tmp5         [V10,T12] (  2,  2   )     int  ->  rcx         "Strict ordering of exceptions for Array store"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
-;  V13 tmp8         [V13,T18] (  2,  1   )     int  ->  rax        
-;  V14 tmp9         [V14,T11] (  3,  3   )     ref  ->  rax         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V15 tmp10        [V15,T14] (  2,  2   )     int  ->  rcx         "Strict ordering of exceptions for Array store"
-;  V16 tmp11        [V16,T12] (  3,  3   )     ref  ->  rax         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V17 tmp12        [V17,T15] (  2,  2   )     int  ->  rcx         "Strict ordering of exceptions for Array store"
-;  V18 tmp13        [V18,T16] (  2,  2   )     int  ->  rcx         "impAppendStmt"
+;  V13 tmp8         [V13,T17] (  2,  1   )     int  ->  rax        
+;  V14 tmp9         [V14,T10] (  3,  3   )     ref  ->  rax         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V15 tmp10        [V15,T13] (  2,  2   )     int  ->  rcx         "Strict ordering of exceptions for Array store"
+;  V16 tmp11        [V16,T11] (  3,  3   )     ref  ->  rax         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V17 tmp12        [V17,T14] (  2,  2   )     int  ->  rcx         "Strict ordering of exceptions for Array store"
+;  V18 tmp13        [V18,T15] (  2,  2   )     int  ->  rcx         "impAppendStmt"
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    ptr
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp18        [V23,T19] (  2,  1   )     int  ->  rax        
-;  V24 tmp19        [V24,T02] (  9,  9   )   byref  ->  rbx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V25 tmp20        [V25,T03] (  7,  8   )     int  ->  rbp         "field V02._length (fldOffset=0x8)" P-INDEP
+;  V23 tmp18        [V23,T18] (  2,  1   )     int  ->  rax        
+;  V24 tmp19        [V24,T01] ( 11,  6.50)   byref  ->  rbx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V25 tmp20        [V25,T08] (  5,  3.50)     int  ->  rbp         "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V26 tmp21        [V26    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V27 tmp22        [V27    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V28 tmp23        [V28    ] (  3,  5   )   byref  ->  [rsp+0x68]  do-not-enreg[X] addr-exposed ptr "field V07._reference (fldOffset=0x0)" P-DEP
 ;  V29 tmp24        [V29    ] (  3,  5   )     int  ->  [rsp+0x70]  do-not-enreg[X] addr-exposed ptr "field V07._length (fldOffset=0x8)" P-DEP
-;  V30 tmp25        [V30,T07] (  2,  4   )     int  ->  [rsp+0x58]  do-not-enreg[H] hidden-struct-arg "field V08._flags (fldOffset=0x0)" P-DEP
-;  V31 tmp26        [V31,T08] (  2,  4   )     int  ->  [rsp+0x5C]  do-not-enreg[H] hidden-struct-arg "field V08._hi32 (fldOffset=0x4)" P-DEP
-;  V32 tmp27        [V32,T09] (  2,  4   )    long  ->  [rsp+0x60]  do-not-enreg[H] hidden-struct-arg "field V08._lo64 (fldOffset=0x8)" P-DEP
+;  V30 tmp25        [V30,T05] (  2,  4   )     int  ->  [rsp+0x58]  do-not-enreg[H] hidden-struct-arg "field V08._flags (fldOffset=0x0)" P-DEP
+;  V31 tmp26        [V31,T06] (  2,  4   )     int  ->  [rsp+0x5C]  do-not-enreg[H] hidden-struct-arg "field V08._hi32 (fldOffset=0x4)" P-DEP
+;  V32 tmp27        [V32,T07] (  2,  4   )    long  ->  [rsp+0x60]  do-not-enreg[H] hidden-struct-arg "field V08._lo64 (fldOffset=0x8)" P-DEP
 ;  V33 tmp28        [V33    ] (  2,  4   )  struct (16) [rsp+0x48]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Decimal>
 ;  V34 tmp29        [V34    ] (  3,  6   )  struct (16) [rsp+0x38]  do-not-enreg[XSF] must-init addr-exposed ptr "by-value struct argument" <System.Span`1[int]>
 ;  V35 GsCookie     [V35    ] (  1,  1   )    long  ->  [rsp+0x78]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V36 tmp31        [V36,T05] ( 11,  6   )   byref  ->  rdi         single-def "shadowVar"
-;  V37 cse0         [V37,T17] (  3,  1.50)     int  ->  rcx         "CSE - moderate"
-;  V38 cse1         [V38,T00] (  4, 14   )     int  ->  rax         "CSE - aggressive"
+;  V36 tmp31        [V36,T02] ( 11,  6   )   byref  ->  rdi         single-def "shadowVar"
+;  V37 cse0         [V37,T16] (  3,  1.50)     int  ->  rcx         "CSE - moderate"
 ;
 ; Lcl frame size = 128
 
@@ -59,16 +58,11 @@ G_M46478_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        sub      rsp, 128
        xor      eax, eax
        mov      qword ptr [rsp+0x38], rax
-       xorps    xmm4, xmm4
-       movaps   xmmword ptr [rsp+0x40], xmm4
-       movaps   xmmword ptr [rsp+0x50], xmm4
-       movaps   xmmword ptr [rsp+0x60], xmm4
-       mov      qword ptr [rsp+0x70], rax
        mov      rax, qword ptr [(reloc)]
        mov      qword ptr [rsp+0x78], rax
        mov      rsi, rdx
        ; byrRegs +[rsi]
-                       ;; size=58 bbWeight=1 PerfScore 17.08
+                       ;; size=35 bbWeight=1 PerfScore 9.75
 G_M46478_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0042 {rcx rsi}, byref, isz
        ; byrRegs +[rcx]
        mov      rdi, rcx
@@ -101,24 +95,43 @@ G_M46478_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0042 {rcx rsi},
        mov      r14d, 3
        jmp      SHORT G_M46478_IG04
                        ;; size=99 bbWeight=1 PerfScore 23.83
-G_M46478_IG03:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
-       mov      r14d, eax
-       test     r14d, r14d
-       jle      SHORT G_M46478_IG05
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M46478_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
-       lea      eax, [r14-0x01]
-       cmp      eax, ebp
-       jae      G_M46478_IG17
-       mov      ecx, eax
-       cmp      dword ptr [rbx+4*rcx], 0
+G_M46478_IG03:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       mov      r14d, 2
+       jmp      SHORT G_M46478_IG07
+                       ;; size=8 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       cmp      ebp, 2
+       jbe      G_M46478_IG23
+       cmp      dword ptr [rbx+0x08], 0
        je       SHORT G_M46478_IG03
-                       ;; size=20 bbWeight=4 PerfScore 24.00
-G_M46478_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+                       ;; size=15 bbWeight=0.50 PerfScore 2.62
+G_M46478_IG05:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       jmp      SHORT G_M46478_IG11
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M46478_IG06:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       mov      r14d, 1
+       jmp      SHORT G_M46478_IG10
+                       ;; size=8 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       cmp      dword ptr [rbx+0x04], 0
+       je       SHORT G_M46478_IG06
+                       ;; size=6 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG08:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       jmp      SHORT G_M46478_IG11
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M46478_IG09:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       xor      r14d, r14d
+       jmp      SHORT G_M46478_IG11
+                       ;; size=5 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       cmp      dword ptr [rbx], 0
+       je       SHORT G_M46478_IG09
+                       ;; size=5 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
        test     r14d, r14d
-       jne      SHORT G_M46478_IG09
+       jne      SHORT G_M46478_IG15
                        ;; size=5 bbWeight=1 PerfScore 1.25
-G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
+G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
        ; byrRegs -[rbx]
        call     [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
        ; byrRegs +[rax]
@@ -134,15 +147,15 @@ G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi},
        lea      rcx, [(reloc)]
        mov      rcx, qword ptr [rcx]
        cmp      qword ptr [rsp+0x78], rcx
-       je       SHORT G_M46478_IG07
+       je       SHORT G_M46478_IG13
        call     [CORINFO_HELP_FAIL_FAST]
        ; byrRegs -[rsi rdi]
        ; gcr arg pop 0
                        ;; size=45 bbWeight=0.50 PerfScore 8.88
-G_M46478_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46478_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M46478_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M46478_IG14:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 128
        pop      rbx
        pop      rbp
@@ -151,17 +164,17 @@ G_M46478_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        pop      r14
        ret      
                        ;; size=14 bbWeight=0.50 PerfScore 1.88
-G_M46478_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, gcvars, byref, isz
+G_M46478_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, gcvars, byref, isz
        ; byrRegs +[rbx rdi]
        cmp      r14d, 1
-       jne      SHORT G_M46478_IG12
+       jne      SHORT G_M46478_IG18
        mov      ecx, dword ptr [rbx]
        test     ecx, ecx
-       jle      SHORT G_M46478_IG12
+       jle      SHORT G_M46478_IG18
        mov      dword ptr [rdi+0x08], ecx
        mov      ecx, dword ptr [rdi+0x08]
        cmp      ebp, 3
-       jbe      G_M46478_IG17
+       jbe      G_M46478_IG23
        mov      eax, -1
        mov      edx, 1
        test     dword ptr [rbx+0x0C], 0xD1FFAB1E
@@ -175,15 +188,15 @@ G_M46478_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        ; gcrRegs -[rcx]
        mov      rcx, qword ptr [rcx]
        cmp      qword ptr [rsp+0x78], rcx
-       je       SHORT G_M46478_IG10
+       je       SHORT G_M46478_IG16
        call     [CORINFO_HELP_FAIL_FAST]
        ; byrRegs -[rbx rdi]
        ; gcr arg pop 0
                        ;; size=81 bbWeight=0.50 PerfScore 12.62
-G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M46478_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+G_M46478_IG17:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 128
        pop      rbx
        pop      rbp
@@ -192,7 +205,7 @@ G_M46478_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        pop      r14
        ret      
                        ;; size=14 bbWeight=0.50 PerfScore 1.88
-G_M46478_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, gcvars, byref, isz
+G_M46478_IG18:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, gcvars, byref, isz
        ; byrRegs +[rbx rdi]
        movsxd   rcx, r14d
        call     [CORINFO_HELP_READYTORUN_NEWARR_1]
@@ -209,35 +222,31 @@ G_M46478_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        ; gcrRegs +[rax]
        mov      ecx, dword ptr [rbx]
        cmp      dword ptr [rax+0x08], 0
-       jbe      SHORT G_M46478_IG17
+       jbe      SHORT G_M46478_IG23
        mov      dword ptr [rax+0x10], ecx
        cmp      r14d, 1
-       jle      SHORT G_M46478_IG13
+       jle      SHORT G_M46478_IG19
        mov      rax, gword ptr [rdi]
-       cmp      ebp, 1
-       jbe      SHORT G_M46478_IG17
        mov      ecx, dword ptr [rbx+0x04]
        cmp      dword ptr [rax+0x08], 1
-       jbe      SHORT G_M46478_IG17
+       jbe      SHORT G_M46478_IG23
        mov      dword ptr [rax+0x14], ecx
-                       ;; size=61 bbWeight=0.50 PerfScore 13.62
-G_M46478_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+                       ;; size=56 bbWeight=0.50 PerfScore 13.00
+G_M46478_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
        ; gcrRegs -[rax]
        cmp      r14d, 2
-       jle      SHORT G_M46478_IG14
+       jle      SHORT G_M46478_IG20
        mov      rax, gword ptr [rdi]
        ; gcrRegs +[rax]
-       cmp      ebp, 2
-       jbe      SHORT G_M46478_IG17
        mov      ecx, dword ptr [rbx+0x08]
        cmp      dword ptr [rax+0x08], 2
-       jbe      SHORT G_M46478_IG17
...

-14 (-0.93%) : 231069.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

@@ -13,21 +13,21 @@
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.DateTime>
 ;  V02 arg2         [V02,T30] (  8,  7   )   ubyte  ->  [rbp+0x20]  EH-live single-def
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V04 loc1         [V04,T01] ( 12,132   )     ref  ->  r12         class-hnd <<unknown class>>
+;  V04 loc1         [V04,T05] (  8, 68   )     ref  ->  r12         class-hnd <<unknown class>>
 ;  V05 loc2         [V05,T28] (  3, 12   )     int  ->  rcx        
-;  V06 loc3         [V06,T03] (  7,108   )     ref  ->  [rbp-0x78]  class-hnd <System.Runtime.Caching.MemoryCacheEntry>
+;  V06 loc3         [V06,T02] (  7,108   )     ref  ->  [rbp-0x68]  class-hnd <System.Runtime.Caching.MemoryCacheEntry>
 ;  V07 loc4         [V07,T15] (  5, 35   )     int  ->  [rbp-0x3C]  do-not-enreg[Z] EH-live
 ;  V08 loc5         [V08,T34] (  2,  5   )     ref  ->  rbx         class-hnd exact single-def <System.Runtime.Caching.MemoryCacheStore>
 ;* V09 loc6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Runtime.Caching.ExpiresEntryRef>
 ;* V10 loc7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V11 loc8         [V11,T04] ( 13, 71   )     ref  ->  [rbp-0x80]  class-hnd exact EH-live spill-single-def <System.Runtime.Caching.ExpiresBucket>
+;  V11 loc8         [V11,T03] ( 13, 71   )     ref  ->  [rbp-0x70]  class-hnd exact EH-live spill-single-def <System.Runtime.Caching.ExpiresBucket>
 ;  V12 loc9         [V12    ] (  4,  4   )   ubyte  ->  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;  V13 loc10        [V13,T26] (  4, 13   )     int  ->  r14        
 ;* V14 loc11        [V14,T35] (  0,  0   )     int  ->  zero-ref    do-not-enreg[M] EH-live
 ;  V15 loc12        [V15,T07] (  7, 57   )     int  ->  r15        
 ;  V16 loc13        [V16,T08] (  4, 52   )     int  ->  [rbp-0x4C] 
 ;  V17 loc14        [V17,T00] (  6,148   )     int  ->  [rbp-0x50] 
-;  V18 loc15        [V18,T13] (  8, 35   )     ref  ->  [rbp-0x88]  class-hnd exact EH-live spill-single-def <System.Runtime.Caching.ExpiresBucket>
+;  V18 loc15        [V18,T13] (  8, 35   )     ref  ->  [rbp-0x78]  class-hnd exact EH-live spill-single-def <System.Runtime.Caching.ExpiresBucket>
 ;  V19 loc16        [V19    ] (  4,  3   )   ubyte  ->  [rbp-0x58]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;  V20 OutArgs      [V20    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V21 tmp1         [V21    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.Caching.ExpiresEntryRef>
@@ -45,7 +45,7 @@
 ;  V33 tmp13        [V33,T31] (  6,  6   )     ref  ->  rbx         class-hnd exact "Inlining Arg" <System.Runtime.Caching.MemoryCacheStore>
 ;  V34 tmp14        [V34,T22] (  5, 20   )    long  ->  rbx         single-def "field V01._dateData (fldOffset=0x0)" P-INDEP
 ;  V35 tmp15        [V35,T16] (  5, 35   )     int  ->  [rbp-0x5C]  do-not-enreg[Z] EH-live "field V03._ref (fldOffset=0x0)" P-INDEP
-;  V36 tmp16        [V36,T05] ( 13, 71   )     int  ->  rdx         "field V09._ref (fldOffset=0x0)" P-INDEP
+;  V36 tmp16        [V36,T04] ( 13, 71   )     int  ->  rdx         "field V09._ref (fldOffset=0x0)" P-INDEP
 ;  V37 tmp17        [V37,T19] (  4, 24   )     int  ->  rsi         "field V10._ref (fldOffset=0x0)" P-INDEP
 ;  V38 tmp18        [V38,T17] (  2, 32   )     int  ->  rcx         "field V21._ref (fldOffset=0x0)" P-INDEP
 ;  V39 tmp19        [V39,T18] (  2, 32   )     int  ->  rcx         "field V26._ref (fldOffset=0x0)" P-INDEP
@@ -55,9 +55,9 @@
 ;  V43 tmp23        [V43,T11] (  3, 48   )     ref  ->  rax         "arr expr"
 ;  V44 PSPSym       [V44,T36] (  1,  1   )    long  ->  [rbp-0x90]  do-not-enreg[V] "PSPSym"
 ;  V45 cse0         [V45,T24] (  3, 18   )     ref  ->  rsi         "CSE - moderate"
-;  V46 cse1         [V46,T25] (  4, 16   )   byref  ->  rcx         "CSE - moderate"
-;  V47 cse2         [V47,T02] (  6,128   )    long  ->  [rbp-0x68]  spill-single-def "CSE - aggressive"
-;  V48 cse3         [V48,T12] (  4, 44   )     int  ->  [rbp-0x6C]  spill-single-def "CSE - aggressive"
+;  V46 cse1         [V46,T01] (  6,128   )   byref  ->  [rbp-0x80]  spill-single-def "CSE - aggressive"
+;  V47 cse2         [V47,T25] (  4, 16   )   byref  ->  rcx         "CSE - moderate"
+;  V48 cse3         [V48,T12] (  4, 44   )     int  ->  [rbp-0x60]  spill-single-def "CSE - aggressive"
 ;  V49 cse4         [V49,T06] (  6, 65   )    long  ->  registers   hoist multi-def "CSE - aggressive"
 ;  V50 cse5         [V50,T14] (  8, 35   )    long  ->  r13         hoist multi-def "CSE - aggressive"
 ;  V51 cse6         [V51,T21] (  3, 24   )     int  ->   r8         "CSE - moderate"
@@ -151,19 +151,19 @@ G_M744_IG07:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rax]
        mov      rcx, rax
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x80], rcx
+       mov      gword ptr [rbp-0x70], rcx
        ; GC ptr vars +{V11}
        xor      edx, edx
        mov      dword ptr [rbp-0x48], edx
                        ;; size=16 bbWeight=1 PerfScore 3.50
-G_M744_IG08:        ; bbWeight=1, gcVars=0000000000800010 {V00 V11}, gcrefRegs=0042 {rcx rsi}, byrefRegs=0000 {}, gcvars, byref
+G_M744_IG08:        ; bbWeight=1, gcVars=0000000000800008 {V00 V11}, gcrefRegs=0042 {rcx rsi}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
        lea      rdx, [rbp-0x48]
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        mov      rcx, qword ptr [(reloc)]      ; const ptr
-       mov      rdi, gword ptr [rbp-0x80]
+       mov      rdi, gword ptr [rbp-0x70]
        ; gcrRegs +[rdi]
        cmp      dword ptr [rdi+rcx], 0
        je       G_M744_IG21
@@ -206,7 +206,7 @@ G_M744_IG09:        ; bbWeight=8, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, b
 G_M744_IG10:        ; bbWeight=4, gcrefRegs=10C0 {rsi rdi r12}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx]
        mov      eax, dword ptr [r12+0x08]
-       mov      dword ptr [rbp-0x6C], eax
+       mov      dword ptr [rbp-0x60], eax
        test     eax, eax
        je       G_M744_IG18
        mov      ecx, dword ptr [r12+0x14]
@@ -220,33 +220,39 @@ G_M744_IG10:        ; bbWeight=4, gcrefRegs=10C0 {rsi rdi r12}, byrefRegs=0000 {
                        ;; size=46 bbWeight=4 PerfScore 38.00
 G_M744_IG11:        ; bbWeight=32, gcrefRegs=10C0 {rsi rdi r12}, byrefRegs=0000 {}, byref, isz
        mov      dword ptr [rbp-0x50], r10d
-       mov      r9d, r10d
-       shl      r9, 4
-       mov      qword ptr [rbp-0x68], r9
-       mov      r11, gword ptr [r12+r9+0x18]
+       mov      ecx, r10d
+       shl      rcx, 4
+       lea      r9, bword ptr [r12+rcx+0x10]
+       ; byrRegs +[r9]
+       mov      bword ptr [rbp-0x80], r9
+       ; GC ptr vars +{V46}
+       mov      r11, gword ptr [r9+0x08]
        ; gcrRegs +[r11]
-       mov      gword ptr [rbp-0x78], r11
+       mov      gword ptr [rbp-0x68], r11
        ; GC ptr vars +{V06}
        test     r11, r11
        je       SHORT G_M744_IG14
-                       ;; size=29 bbWeight=32 PerfScore 224.00
-G_M744_IG12:        ; bbWeight=16, gcVars=0000000000800018 {V00 V06 V11}, gcrefRegs=10C0 {rsi rdi r12}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=33 bbWeight=32 PerfScore 256.00
+G_M744_IG12:        ; bbWeight=16, gcVars=000000000080000E {V00 V06 V11 V46}, gcrefRegs=10C0 {rsi rdi r12}, byrefRegs=0200 {r9}, gcvars, byref, isz
        ; gcrRegs -[r11]
-       mov      rcx, qword ptr [r12+r9+0x10]
+       mov      rcx, qword ptr [r9]
        mov      rdx, rbx
        call     [<unknown method>]
+       ; byrRegs -[r9]
        ; gcr arg pop 0
        test     eax, eax
        je       SHORT G_M744_IG19
-       mov      rax, qword ptr [rbp-0x68]
-       mov      rdx, qword ptr [r12+rax+0x10]
+       mov      rax, bword ptr [rbp-0x80]
+       ; byrRegs +[rax]
+       mov      rdx, qword ptr [rax]
        mov      rcx, rdi
        ; gcrRegs +[rcx]
-       ; GC ptr vars -{V06}
+       ; GC ptr vars -{V06 V46}
        call     [System.Runtime.Caching.ExpiresBucket:AddCount(System.DateTime):this]
        ; gcrRegs -[rcx]
+       ; byrRegs -[rax]
        ; gcr arg pop 0
-                       ;; size=36 bbWeight=16 PerfScore 204.00
+                       ;; size=32 bbWeight=16 PerfScore 204.00
 G_M744_IG13:        ; bbWeight=16, gcrefRegs=10C0 {rsi rdi r12}, byrefRegs=0000 {}, byref, isz
        mov      r8d, dword ptr [rbp-0x4C]
        dec      r8d
@@ -256,7 +262,7 @@ G_M744_IG13:        ; bbWeight=16, gcrefRegs=10C0 {rsi rdi r12}, byrefRegs=0000
 G_M744_IG14:        ; bbWeight=32, gcrefRegs=10C0 {rsi rdi r12}, byrefRegs=0000 {}, byref, isz
        mov      r10d, dword ptr [rbp-0x50]
        inc      r10d
-       mov      eax, dword ptr [rbp-0x6C]
+       mov      eax, dword ptr [rbp-0x60]
        cmp      eax, r10d
        jg       SHORT G_M744_IG11
                        ;; size=15 bbWeight=32 PerfScore 112.00
@@ -286,22 +292,24 @@ G_M744_IG18:        ; bbWeight=0, gcVars=0000000000800000 {V00}, gcrefRegs=0000
        call     [CORINFO_HELP_RNGCHKFAIL]
        ; gcr arg pop 0
                        ;; size=6 bbWeight=0 PerfScore 0.00
-G_M744_IG19:        ; bbWeight=16, gcVars=0000000000800018 {V00 V06 V11}, gcrefRegs=10C0 {rsi rdi r12}, byrefRegs=0000 {}, gcvars, byref
+G_M744_IG19:        ; bbWeight=16, gcVars=000000000080000E {V00 V06 V11 V46}, gcrefRegs=10C0 {rsi rdi r12}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rsi rdi r12]
-       ; GC ptr vars +{V04 V06 V11}
+       ; GC ptr vars +{V02 V06 V11 V46}
        mov      rcx, qword ptr [(reloc)]      ; const ptr
-       mov      rax, gword ptr [rbp-0x78]
+       mov      rax, gword ptr [rbp-0x68]
        ; gcrRegs +[rax]
        mov      byte  ptr [rax+rcx], 255
        mov      ecx, dword ptr [rsi+0x08]
        mov      rdx, qword ptr [(reloc)]      ; const ptr
        mov      dword ptr [rax+rdx], ecx
-       mov      rcx, qword ptr [rbp-0x68]
-       mov      dword ptr [r12+rcx+0x14], 1
+       mov      rcx, bword ptr [rbp-0x80]
+       ; byrRegs +[rcx]
+       mov      dword ptr [rcx+0x04], 1
        mov      eax, dword ptr [rbp-0x5C]
        ; gcrRegs -[rax]
-       mov      dword ptr [r12+rcx+0x10], eax
+       mov      dword ptr [rcx], eax
        mov      ecx, r15d
+       ; byrRegs -[rcx]
        shl      ecx, 8
        mov      r10d, dword ptr [rbp-0x50]
        movzx    rax, r10b
@@ -314,10 +322,10 @@ G_M744_IG19:        ; bbWeight=16, gcVars=0000000000800018 {V00 V06 V11}, gcrefR
        inc      dword ptr [rdi+rax]
        mov      dword ptr [rbp-0x50], r10d
        jmp      G_M744_IG13
-                       ;; size=95 bbWeight=16 PerfScore 424.00
+                       ;; size=90 bbWeight=16 PerfScore 424.00
 G_M744_IG20:        ; bbWeight=1, gcVars=0000000000800000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rsi rdi r12]
-       ; GC ptr vars -{V04 V06 V11}
+       ; GC ptr vars -{V02 V06 V11 V46}
        cmp      byte  ptr [rbp-0x48], 0
        je       SHORT G_M744_IG24
        mov      rcx, gword ptr [rbp+0x10]
@@ -443,11 +451,11 @@ G_M744_IG30:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi]
        mov      rcx, rax
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x88], rcx
+       mov      gword ptr [rbp-0x78], rcx
        ; GC ptr vars +{V18}
        xor      edx, edx
        mov      dword ptr [rbp-0x58], edx
-                       ;; size=15 bbWeight=1 PerfScore 2.50
+                       ;; size=12 bbWeight=1 PerfScore 2.50
 G_M744_IG31:        ; bbWeight=1, gcVars=0000000000802000 {V00 V18}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax]
        lea      rdx, [rbp-0x58]
@@ -462,7 +470,7 @@ G_M744_IG31:        ; bbWeight=1, gcVars=0000000000802000 {V00 V18}, gcrefRegs=0
        mov      rbx, rax
                        ;; size=34 bbWeight=1 PerfScore 10.00
 G_M744_IG32:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       mov      rcx, gword ptr [rbp-0x88]
+       mov      rcx, gword ptr [rbp-0x78]
        ; gcrRegs +[rcx]
        mov      rax, gword ptr [rcx+r13]
        ; gcrRegs +[rax]
@@ -485,10 +493,10 @@ G_M744_IG32:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, i
        mov      edx, esi
        test     edx, edx
        jne      SHORT G_M744_IG32
-                       ;; size=71 bbWeight=8 PerfScore 198.00
+                       ;; size=68 bbWeight=8 PerfScore 198.00
 G_M744_IG33:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      rcx, qword ptr [(reloc)]      ; const ptr
-       mov      rbx, gword ptr [rbp-0x88]
+       mov      rbx, gword ptr [rbp-0x78]
        ; gcrRegs +[rbx]
        mov      byte  ptr [rbx+rcx], 0
        mov      rcx, rbx
@@ -498,7 +506,7 @@ G_M744_IG33:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, i
        ; gcrRegs -[rcx rbx]
        ; gcr arg pop 0
        jmp      SHORT G_M744_IG35
-                       ;; size=29 bbWeight=1 PerfScore 9.25
+                       ;; size=26 bbWeight=1 PerfScore 9.25
 G_M744_IG34:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [CORINFO_HELP_RNGCHKFAIL]
        ; gcr arg pop 0
@@ -744,7 +752,7 @@ G_M744_IG57:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=17 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1501, prolog size 52, PerfScore 1817.75, instruction count 435, allocated bytes for code 1501 (MethodHash=d871fd17) for method System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)
+; Total bytes of code 1487, prolog size 52, PerfScore 1849.75, instruction count 436, allocated bytes for code 1487 (MethodHash=d871fd17) for method System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

libraries.pmi.windows.x64.checked.mch

-9 (-0.80%) : 254176.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)

@@ -10,70 +10,69 @@
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <ILCompiler.DevirtualizationManager>
 ;  V01 arg1         [V01,T00] ( 21, 26   )     ref  ->  rbx         class-hnd <Internal.TypeSystem.MethodDesc>
-;  V02 arg2         [V02,T16] ( 14,  8   )     ref  ->  rsi         class-hnd single-def <Internal.TypeSystem.DefType>
-;  V03 arg3         [V03,T19] (  8,  5.50)   byref  ->  rdi         single-def
+;  V02 arg2         [V02,T17] ( 14,  8   )     ref  ->  rsi         class-hnd single-def <Internal.TypeSystem.DefType>
+;  V03 arg3         [V03,T20] (  8,  5.50)   byref  ->  rdi         single-def
 ;  V04 loc0         [V04,T22] ( 11,  5.50)     ref  ->  r14         class-hnd <Internal.TypeSystem.MethodDesc>
 ;  V05 loc1         [V05,T23] (  3,  5   )     ref  ->  r15         class-hnd single-def <Internal.TypeSystem.DefType[]>
 ;  V06 loc2         [V06,T21] (  4,  6.50)     int  ->  r14        
-;  V07 loc3         [V07,T20] (  4,  7   )     ref  ->  r13         class-hnd single-def <Internal.TypeSystem.DefType>
+;  V07 loc3         [V07,T16] (  4, 10.50)     ref  ->  r13         class-hnd single-def <Internal.TypeSystem.DefType>
 ;  V08 loc4         [V08,T07] (  5, 16.50)     int  ->  r12        
-;  V09 loc5         [V09,T04] (  7, 20   )     ref  ->  [rsp+0x48]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
+;  V09 loc5         [V09,T04] (  7, 20   )     ref  ->  [rsp+0x50]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
 ;  V10 loc6         [V10,T28] (  6,  4.50)     ref  ->  r15         class-hnd <Internal.TypeSystem.MethodDesc>
 ;  V11 loc7         [V11,T24] (  3,  5   )     ref  ->  r12         class-hnd single-def <Internal.TypeSystem.DefType[]>
 ;  V12 loc8         [V12,T08] (  5, 16.50)     int  ->  r13        
-;  V13 loc9         [V13,T05] (  6, 20   )     ref  ->  [rsp+0x40]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
+;  V13 loc9         [V13,T05] (  6, 20   )     ref  ->  [rsp+0x48]  class-hnd spill-single-def <Internal.TypeSystem.DefType>
 ;  V14 loc10        [V14    ] (  4,  2   )     ref  ->  [rsp+0x60]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <Internal.TypeSystem.MethodDesc>
-;  V15 loc11        [V15,T46] (  3,  1.50)     int  ->  rax         single-def
+;  V15 loc11        [V15,T45] (  3,  1.50)     int  ->  rax         single-def
 ;  V16 loc12        [V16,T03] ( 10, 20   )     ref  ->  r14         class-hnd <Internal.TypeSystem.TypeDesc>
 ;* V17 loc13        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Internal.TypeSystem.MethodDesc>
 ;* V18 loc14        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Internal.TypeSystem.MethodDesc>
 ;  V19 OutArgs      [V19    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V20 tmp1         [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
-;  V21 tmp2         [V21,T34] (  3,  2.25)     ref  ->  rax         single-def "CASTCLASS eval op1"
-;  V22 tmp3         [V22,T47] (  3,  1.25)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V23 tmp4         [V23,T31] (  5,  3.75)     ref  ->  r13         class-hnd "spilling QMark2" <Internal.TypeSystem.DefType>
+;  V21 tmp2         [V21,T33] (  3,  2.25)     ref  ->  rax         single-def "CASTCLASS eval op1"
+;  V22 tmp3         [V22,T46] (  3,  1.25)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V23 tmp4         [V23,T30] (  5,  3.75)     ref  ->  r13         class-hnd "spilling QMark2" <Internal.TypeSystem.DefType>
 ;  V24 tmp5         [V24,T25] (  3,  5   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
-;  V25 tmp6         [V25,T35] (  3,  2   )     int  ->   r8         "Inline return value spill temp"
-;  V26 tmp7         [V26,T33] (  3,  2.50)     int  ->   r8         single-def "Inline stloc first use temp"
-;  V27 tmp8         [V27,T42] (  3,  1.50)     ref  ->  r15         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
+;  V25 tmp6         [V25,T34] (  3,  2   )     int  ->   r8         "Inline return value spill temp"
+;  V26 tmp7         [V26,T32] (  3,  2.50)     int  ->   r8         single-def "Inline stloc first use temp"
+;  V27 tmp8         [V27,T41] (  3,  1.50)     ref  ->  r15         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
 ;* V28 tmp9         [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V29 tmp10        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
-;  V30 tmp11        [V30,T17] (  5, 10   )     ref  ->  [rsp+0x38]  class-hnd "Inline stloc first use temp" <Internal.TypeSystem.TypeDesc>
-;  V31 tmp12        [V31,T30] (  2,  4   )     ref  ->  rdx         class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
+;  V30 tmp11        [V30,T18] (  5, 10   )     ref  ->  [rsp+0x40]  class-hnd "Inline stloc first use temp" <Internal.TypeSystem.TypeDesc>
+;  V31 tmp12        [V31,T29] (  2,  4   )     ref  ->  rdx         class-hnd "Inline return value spill temp" <Internal.TypeSystem.TypeDesc>
 ;* V32 tmp13        [V32    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V33 tmp14        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <<unknown class>>
 ;* V34 tmp15        [V34    ] (  0,  0   )     int  ->  zero-ref   
 ;* V35 tmp16        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc>
-;  V36 tmp17        [V36,T43] (  3,  1.50)     ref  ->  r12         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
-;  V37 tmp18        [V37,T01] (  3, 24   )     ref  ->  [rsp+0x30]  class-hnd spill-single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
+;  V36 tmp17        [V36,T42] (  3,  1.50)     ref  ->  r12         class-hnd "Inline return value spill temp" <Internal.TypeSystem.DefType[]>
+;  V37 tmp18        [V37,T01] (  3, 24   )     ref  ->  [rsp+0x38]  class-hnd spill-single-def "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V38 tmp19        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V39 tmp20        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V40 tmp21        [V40    ] (  0,  0   )     int  ->  zero-ref   
 ;  V41 tmp22        [V41,T02] (  3, 24   )     ref  ->  r15         class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc>
 ;* V42 tmp23        [V42    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <Internal.TypeSystem.TypeDesc>
 ;* V43 tmp24        [V43    ] (  0,  0   )     int  ->  zero-ref   
-;  V44 tmp25        [V44,T36] (  2,  2   )     ref  ->  rax         single-def "Single return block return value"
+;  V44 tmp25        [V44,T35] (  2,  2   )     ref  ->  rax         single-def "Single return block return value"
 ;  V45 tmp26        [V45,T09] (  2, 16   )     ref  ->  r13         "argument with side effect"
 ;  V46 tmp27        [V46,T10] (  2, 16   )     ref  ->  rdx         "argument with side effect"
-;  V47 tmp28        [V47,T37] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V48 tmp29        [V48,T38] (  2,  2   )     ref  ->  r15         single-def "argument with side effect"
-;  V49 tmp30        [V49,T39] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
-;  V50 tmp31        [V50,T32] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
-;  V51 tmp32        [V51,T40] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V52 tmp33        [V52,T11] (  2, 16   )     ref  ->  [rsp+0x28]  spill-single-def "argument with side effect"
+;  V47 tmp28        [V47,T36] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V48 tmp29        [V48,T37] (  2,  2   )     ref  ->  r15         single-def "argument with side effect"
+;  V49 tmp30        [V49,T38] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
+;  V50 tmp31        [V50,T31] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
+;  V51 tmp32        [V51,T39] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V52 tmp33        [V52,T11] (  2, 16   )     ref  ->  [rsp+0x30]  spill-single-def "argument with side effect"
 ;  V53 tmp34        [V53,T12] (  2, 16   )     ref  ->  rdx         "argument with side effect"
 ;* V54 tmp35        [V54    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V55 tmp36        [V55,T41] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
+;  V55 tmp36        [V55,T40] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
 ;  V56 tmp37        [V56,T13] (  2, 16   )     ref  ->  rdx         "argument with side effect"
-;  V57 tmp38        [V57,T14] (  2, 16   )     ref  ->  [rsp+0x20]  spill-single-def "argument with side effect"
+;  V57 tmp38        [V57,T14] (  2, 16   )     ref  ->  [rsp+0x28]  spill-single-def "argument with side effect"
 ;  V58 tmp39        [V58,T15] (  2, 16   )     ref  ->  rdx         "argument with side effect"
-;  V59 tmp40        [V59,T18] (  2,  8   )     ref  ->  rdx         "argument with side effect"
+;  V59 tmp40        [V59,T19] (  2,  8   )     ref  ->  rdx         "argument with side effect"
 ;  V60 cse0         [V60,T06] ( 10, 18   )    long  ->  rbp         "CSE - aggressive"
-;  V61 cse1         [V61,T29] (  2,  4.50)    long  ->  [rsp+0x58]  spill-single-def hoist "CSE - moderate"
-;  V62 cse2         [V62,T44] (  3,  1.50)     ref  ->  r14         "CSE - conservative"
-;  V63 cse3         [V63,T45] (  3,  1.50)     ref  ->  r13         "CSE - conservative"
-;  V64 cse4         [V64,T26] (  3,  5   )     int  ->  [rsp+0x54]  spill-single-def "CSE - moderate"
-;  V65 cse5         [V65,T27] (  3,  5   )     int  ->  [rsp+0x50]  spill-single-def "CSE - moderate"
+;  V61 cse1         [V61,T43] (  3,  1.50)     ref  ->  r14         "CSE - conservative"
+;  V62 cse2         [V62,T44] (  3,  1.50)     ref  ->  r13         "CSE - conservative"
+;  V63 cse3         [V63,T26] (  3,  5   )     int  ->  [rsp+0x5C]  spill-single-def "CSE - moderate"
+;  V64 cse4         [V64,T27] (  3,  5   )     int  ->  [rsp+0x58]  spill-single-def "CSE - moderate"
 ;
 ; Lcl frame size = 104
 
@@ -214,27 +213,26 @@ G_M48343_IG12:        ; bbWeight=0.50, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRe
        ; gcrRegs -[rax]
        xor      r12d, r12d
        mov      eax, dword ptr [r15+0x08]
-       mov      dword ptr [rsp+0x54], eax
+       mov      dword ptr [rsp+0x5C], eax
        test     eax, eax
        jle      G_M48343_IG17
-       mov      rcx, qword ptr [r13]
-       mov      rdx, qword ptr [rcx+0x58]
-       mov      qword ptr [rsp+0x58], rdx
-                       ;; size=32 bbWeight=0.50 PerfScore 4.75
+                       ;; size=19 bbWeight=0.50 PerfScore 2.25
 G_M48343_IG13:        ; bbWeight=4, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=0080 {rdi}, byref, isz
        mov      ecx, r12d
-       mov      r8, gword ptr [r15+8*rcx+0x10]
-       ; gcrRegs +[r8]
-       mov      gword ptr [rsp+0x48], r8
+       mov      rdx, gword ptr [r15+8*rcx+0x10]
+       ; gcrRegs +[rdx]
+       mov      gword ptr [rsp+0x50], rdx
        ; GC ptr vars +{V09}
        mov      rcx, r13
        ; gcrRegs +[rcx]
-       call     [rdx+0x20]<unknown method>
-       ; gcrRegs -[rcx r8] +[rax]
+       mov      r8, qword ptr [r13]
+       mov      r8, qword ptr [r8+0x58]
+       call     [r8+0x20]<unknown method>
+       ; gcrRegs -[rcx rdx] +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rsp+0x28], rax
+       mov      gword ptr [rsp+0x30], rax
        ; GC ptr vars +{V52}
-       mov      rcx, gword ptr [rsp+0x48]
+       mov      rcx, gword ptr [rsp+0x50]
        ; gcrRegs +[rcx]
        mov      rdx, qword ptr [rcx]
        mov      rdx, qword ptr [rdx+0x58]
@@ -243,7 +241,7 @@ G_M48343_IG13:        ; bbWeight=4, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=
        ; gcr arg pop 0
        mov      rdx, rax
        ; gcrRegs +[rdx]
-       mov      rcx, gword ptr [rsp+0x28]
+       mov      rcx, gword ptr [rsp+0x30]
        ; gcrRegs +[rcx]
        ; GC ptr vars -{V52}
        call     [Internal.TypeSystem.TypeDesc:op_Equality(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc):ubyte]
@@ -251,23 +249,23 @@ G_M48343_IG13:        ; bbWeight=4, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=
        ; gcr arg pop 0
        test     eax, eax
        je       SHORT G_M48343_IG16
-                       ;; size=57 bbWeight=4 PerfScore 84.00
+                       ;; size=66 bbWeight=4 PerfScore 100.00
 G_M48343_IG14:        ; bbWeight=2, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=0080 {rdi}, byref, isz
-       mov      rax, gword ptr [rsp+0x48]
+       mov      rax, gword ptr [rsp+0x50]
        ; gcrRegs +[rax]
        mov      rdx, gword ptr [rax+0x08]
        ; gcrRegs +[rdx]
-       mov      gword ptr [rsp+0x38], rdx
+       mov      gword ptr [rsp+0x40], rdx
        ; GC ptr vars +{V30}
        mov      ecx, 1
        call     [<unknown method>]
        ; gcrRegs -[rax rdx]
        ; gcr arg pop 0
-       mov      rax, gword ptr [rsp+0x38]
+       mov      rax, gword ptr [rsp+0x40]
        ; gcrRegs +[rax]
        test     rax, rax
        jne      SHORT G_M48343_IG15
-       mov      rcx, gword ptr [rsp+0x48]
+       mov      rcx, gword ptr [rsp+0x50]
        ; gcrRegs +[rcx]
        xor      edx, edx
        mov      rax, qword ptr [rcx]
@@ -277,9 +275,9 @@ G_M48343_IG14:        ; bbWeight=2, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=
        call     [rax+0x28]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       mov      rcx, gword ptr [rsp+0x48]
+       mov      rcx, gword ptr [rsp+0x50]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rsp+0x38], rax
+       mov      gword ptr [rsp+0x40], rax
        ; GC ptr vars +{V30}
        mov      r8, rax
        ; gcrRegs +[r8]
@@ -288,7 +286,7 @@ G_M48343_IG14:        ; bbWeight=2, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=
        call     [Internal.TypeSystem.TypeDesc:SetCachedCanonValue(int,Internal.TypeSystem.TypeDesc):this]
        ; gcrRegs -[rax rcx r8]
        ; gcr arg pop 0
-       mov      rax, gword ptr [rsp+0x38]
+       mov      rax, gword ptr [rsp+0x40]
        ; gcrRegs +[rax]
                        ;; size=78 bbWeight=2 PerfScore 48.50
 G_M48343_IG15:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=A049 {rax rbx rsi r13 r15}, byrefRegs=0080 {rdi}, gcvars, byref, isz
@@ -308,11 +306,10 @@ G_M48343_IG15:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=A049 {
                        ;; size=25 bbWeight=2 PerfScore 12.50
 G_M48343_IG16:        ; bbWeight=4, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=0080 {rdi}, byref
        inc      r12d
-       mov      ecx, dword ptr [rsp+0x54]
+       mov      ecx, dword ptr [rsp+0x5C]
        cmp      ecx, r12d
-       mov      rdx, qword ptr [rsp+0x58]
        jg       G_M48343_IG13
-                       ;; size=21 bbWeight=4 PerfScore 14.00
+                       ;; size=16 bbWeight=4 PerfScore 10.00
 G_M48343_IG17:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0080 {rdi}, byref, isz
        ; gcrRegs -[r13 r15]
        mov      rcx, rbx
@@ -391,7 +388,7 @@ G_M48343_IG22:        ; bbWeight=0.50, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byr
        ; gcrRegs -[r13]
        xor      r13d, r13d
        mov      eax, dword ptr [r12+0x08]
-       mov      dword ptr [rsp+0x50], eax
+       mov      dword ptr [rsp+0x58], eax
        test     eax, eax
        jle      G_M48343_IG28
                        ;; size=20 bbWeight=0.50 PerfScore 2.25
@@ -399,7 +396,7 @@ G_M48343_IG23:        ; bbWeight=4, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byrefR
        mov      ecx, r13d
        mov      rdx, gword ptr [r12+8*rcx+0x10]
        ; gcrRegs +[rdx]
-       mov      gword ptr [rsp+0x40], rdx
+       mov      gword ptr [rsp+0x48], rdx
        ; GC ptr vars +{V13}
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -408,7 +405,7 @@ G_M48343_IG23:        ; bbWeight=4, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byrefR
        ; gcr arg pop 0
        mov      rdx, rax
        ; gcrRegs +[rdx]
-       mov      rcx, gword ptr [rsp+0x40]
+       mov      rcx, gword ptr [rsp+0x48]
        ; gcrRegs +[rcx]
        call     [Internal.TypeSystem.TypeDesc:op_Equality(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc):ubyte]
        ; gcrRegs -[rax rcx rdx]
@@ -420,18 +417,18 @@ G_M48343_IG23:        ; bbWeight=4, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byrefR
        call     [rbp+0x18]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rsp+0x30], rax
+       mov      gword ptr [rsp+0x38], rax
        ; GC ptr vars +{V37}
-       mov      rcx, gword ptr [rsp+0x40]
+       mov      rcx, gword ptr [rsp+0x48]
        ; gcrRegs +[rcx]
...

-1 (-0.07%) : 299191.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

@@ -12,14 +12,14 @@
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.DateTime>
 ;  V02 arg2         [V02,T30] (  8,  7   )   ubyte  ->  [rbp+0x20]  EH-live single-def
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V04 loc1         [V04,T01] ( 11,116   )     ref  ->  r13         class-hnd <<unknown class>>
+;  V04 loc1         [V04,T05] (  8, 68   )     ref  ->  r13         class-hnd <<unknown class>>
 ;  V05 loc2         [V05,T28] (  3, 12   )     int  ->  rdx        
-;  V06 loc3         [V06,T03] (  7,108   )     ref  ->  registers   class-hnd <System.Runtime.Caching.MemoryCacheEntry>
+;  V06 loc3         [V06,T02] (  7,108   )     ref  ->  registers   class-hnd <System.Runtime.Caching.MemoryCacheEntry>
 ;  V07 loc4         [V07,T14] (  5, 35   )     int  ->  [rbp-0x3C]  do-not-enreg[Z] EH-live
 ;  V08 loc5         [V08,T38] (  2,  5   )     ref  ->  rsi         class-hnd exact single-def <System.Runtime.Caching.MemoryCacheStore>
 ;* V09 loc6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Runtime.Caching.ExpiresEntryRef>
 ;* V10 loc7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V11 loc8         [V11,T04] ( 16, 74   )     ref  ->  [rbp-0x68]  class-hnd exact EH-live single-def <System.Runtime.Caching.ExpiresBucket>
+;  V11 loc8         [V11,T03] ( 16, 74   )     ref  ->  [rbp-0x68]  class-hnd exact EH-live single-def <System.Runtime.Caching.ExpiresBucket>
 ;  V12 loc9         [V12    ] (  6,  6   )   ubyte  ->  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;  V13 loc10        [V13,T26] (  4, 13   )     int  ->  rbx        
 ;* V14 loc11        [V14,T47] (  0,  0   )     int  ->  zero-ref    do-not-enreg[M] EH-live
@@ -59,7 +59,7 @@
 ;  V48 tmp28        [V48,T32] (  6,  6   )     ref  ->  rbx         class-hnd exact "Inlining Arg" <System.Runtime.Caching.MemoryCacheStore>
 ;  V49 tmp29        [V49,T31] (  5,  5   )    long  ->  rbx         single-def "field V01._dateData (fldOffset=0x0)" P-INDEP
 ;  V50 tmp30        [V50,T15] (  5, 35   )     int  ->  [rbp-0x5C]  do-not-enreg[Z] EH-live "field V03._ref (fldOffset=0x0)" P-INDEP
-;  V51 tmp31        [V51,T05] ( 13, 71   )     int  ->  rdx         "field V09._ref (fldOffset=0x0)" P-INDEP
+;  V51 tmp31        [V51,T04] ( 13, 71   )     int  ->  rdx         "field V09._ref (fldOffset=0x0)" P-INDEP
 ;  V52 tmp32        [V52,T20] (  4, 24   )     int  ->  registers   "field V10._ref (fldOffset=0x0)" P-INDEP
 ;  V53 tmp33        [V53,T16] (  2, 32   )     int  ->  rcx         "field V21._ref (fldOffset=0x0)" P-INDEP
 ;* V54 tmp34        [V54    ] (  0,  0   )    long  ->  zero-ref    single-def "field V26._dateData (fldOffset=0x0)" P-INDEP
@@ -77,9 +77,9 @@
 ;  V66 tmp46        [V66,T10] (  3, 48   )     ref  ->  rcx         "arr expr"
 ;  V67 PSPSym       [V67,T50] (  1,  1   )    long  ->  [rbp-0x80]  do-not-enreg[V] "PSPSym"
 ;* V68 cse0         [V68,T51] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
-;  V69 cse1         [V69,T25] (  4, 16   )   byref  ->  rdx         "CSE - moderate"
-;  V70 cse2         [V70,T11] (  3, 48   )    long  ->  rcx         "CSE - aggressive"
-;  V71 cse3         [V71,T02] (  5,112   )    long  ->  r10         "CSE - aggressive"
+;  V69 cse1         [V69,T11] (  3, 48   )    long  ->  rcx         "CSE - aggressive"
+;  V70 cse2         [V70,T01] (  5,112   )   byref  ->  r10         "CSE - aggressive"
+;  V71 cse3         [V71,T25] (  4, 16   )   byref  ->  rdx         "CSE - moderate"
 ;  V72 cse4         [V72,T23] (  4, 19   )    long  ->  rsi         "CSE - moderate"
 ;  V73 cse5         [V73,T45] (  3,  3   )     ref  ->  rdx         "CSE - moderate"
 ;  V74 cse6         [V74,T46] (  3,  3   )     ref  ->  rcx         "CSE - moderate"
@@ -201,7 +201,7 @@ G_M744_IG10:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
        xor      edx, edx
        mov      dword ptr [rbp-0x48], edx
                        ;; size=12 bbWeight=1 PerfScore 2.50
-G_M744_IG11:        ; bbWeight=1, gcVars=0000000000080010 {V00 V11}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M744_IG11:        ; bbWeight=1, gcVars=0000000000080008 {V00 V11}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rcx]
        cmp      byte  ptr [rbp-0x48], 0
        je       SHORT G_M744_IG14
@@ -217,9 +217,9 @@ G_M744_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M744_IG14:        ; bbWeight=1, gcVars=0000000000080010 {V00 V11}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M744_IG14:        ; bbWeight=1, gcVars=0000000000080008 {V00 V11}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[r14]
-       ; GC ptr vars +{V04 V11}
+       ; GC ptr vars +{V11}
        lea      rdx, [rbp-0x48]
        mov      rcx, r14
        ; gcrRegs +[rcx]
@@ -310,15 +310,17 @@ G_M744_IG19:        ; bbWeight=4, gcrefRegs=6000 {r13 r14}, byrefRegs=0000 {}, b
                        ;; size=43 bbWeight=4 PerfScore 34.00
 G_M744_IG20:        ; bbWeight=32, gcrefRegs=6000 {r13 r14}, byrefRegs=0000 {}, byref, isz
        mov      dword ptr [rbp-0x50], r8d
-       mov      r10d, r8d
-       shl      r10, 4
-       mov      rdx, gword ptr [r13+r10+0x18]
+       mov      edx, r8d
+       shl      rdx, 4
+       lea      r10, bword ptr [r13+rdx+0x10]
+       ; byrRegs +[r10]
+       mov      rdx, gword ptr [r10+0x08]
        ; gcrRegs +[rdx]
        test     rdx, rdx
        je       SHORT G_M744_IG24
-                       ;; size=21 bbWeight=32 PerfScore 160.00
-G_M744_IG21:        ; bbWeight=16, gcrefRegs=6004 {rdx r13 r14}, byrefRegs=0000 {}, byref, isz
-       mov      rcx, qword ptr [r13+r10+0x10]
+                       ;; size=25 bbWeight=32 PerfScore 224.00
+G_M744_IG21:        ; bbWeight=16, gcrefRegs=6004 {rdx r13 r14}, byrefRegs=0400 {r10}, byref, isz
+       mov      rcx, qword ptr [r10]
        mov      r9, rcx
        mov      r11, 0xD1FFAB1E
        and      r9, r11
@@ -330,17 +332,19 @@ G_M744_IG21:        ; bbWeight=16, gcrefRegs=6004 {rdx r13 r14}, byrefRegs=0000
        ; gcrRegs +[rcx]
        call     [System.Runtime.Caching.ExpiresBucket:AddCount(System.DateTime):this]
        ; gcrRegs -[rcx]
+       ; byrRegs -[r10]
        ; gcr arg pop 0
        jmp      SHORT G_M744_IG23
-                       ;; size=40 bbWeight=16 PerfScore 152.00
-G_M744_IG22:        ; bbWeight=16, gcrefRegs=6004 {rdx r13 r14}, byrefRegs=0000 {}, byref
+                       ;; size=38 bbWeight=16 PerfScore 152.00
+G_M744_IG22:        ; bbWeight=16, gcrefRegs=6004 {rdx r13 r14}, byrefRegs=0400 {r10}, byref
        ; gcrRegs +[rdx]
+       ; byrRegs +[r10]
        mov      byte  ptr [rdx+0x30], 255
        mov      ecx, dword ptr [rdi]
        mov      dword ptr [rdx+0x50], ecx
-       mov      dword ptr [r13+r10+0x14], 1
+       mov      dword ptr [r10+0x04], 1
        mov      ecx, dword ptr [rbp-0x5C]
-       mov      dword ptr [r13+r10+0x10], ecx
+       mov      dword ptr [r10], ecx
        mov      ecx, r15d
        shl      ecx, 8
        mov      r8d, dword ptr [rbp-0x50]
@@ -353,8 +357,9 @@ G_M744_IG22:        ; bbWeight=16, gcrefRegs=6004 {rdx r13 r14}, byrefRegs=0000
        mov      dword ptr [rbp-0x3C], ecx
        inc      dword ptr [r14+0x28]
        mov      dword ptr [rbp-0x50], r8d
-                       ;; size=61 bbWeight=16 PerfScore 264.00
+                       ;; size=58 bbWeight=16 PerfScore 264.00
 G_M744_IG23:        ; bbWeight=16, gcrefRegs=6000 {r13 r14}, byrefRegs=0000 {}, byref, isz
+       ; byrRegs -[r10]
        mov      eax, dword ptr [rbp-0x4C]
        dec      eax
        mov      dword ptr [rbp-0x4C], eax
@@ -386,7 +391,7 @@ G_M744_IG27:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
                        ;; size=11 bbWeight=1 PerfScore 4.00
 G_M744_IG28:        ; bbWeight=1, gcVars=0000000000080000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[r14]
-       ; GC ptr vars -{V04 V11}
+       ; GC ptr vars -{V11}
        cmp      byte  ptr [rbp-0x48], 0
        je       SHORT G_M744_IG32
        mov      rcx, gword ptr [rbp+0x10]
@@ -821,7 +826,7 @@ G_M744_IG69:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=17 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1469, prolog size 49, PerfScore 1495.00, instruction count 448, allocated bytes for code 1469 (MethodHash=d871fd17) for method System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)
+; Total bytes of code 1468, prolog size 49, PerfScore 1559.00, instruction count 449, allocated bytes for code 1468 (MethodHash=d871fd17) for method System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+13 (+2.82%) : 300113.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

@@ -3,48 +3,48 @@
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  3,  3   )   byref  ->  rcx         this single-def
-;  V01 arg1         [V01,T03] (  3,  6   )   byref  ->  rdx         single-def
+;  V00 this         [V00,T03] (  3,  3   )   byref  ->  rcx         this single-def
+;  V01 arg1         [V01,T01] (  3,  6   )   byref  ->  rdx         single-def
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
-;  V03 loc1         [V03,T02] (  9, 12   )     int  ->  rbp        
+;  V03 loc1         [V03,T04] (  9,  4.75)     int  ->  rbp        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[int]>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [rsp+0x20]  do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Decimal>
-;  V09 tmp4         [V09,T06] (  3,  3   )     ref  ->  rcx         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V10 tmp5         [V10,T13] (  2,  2   )     int  ->  rdx         "Strict ordering of exceptions for Array store"
+;  V09 tmp4         [V09,T05] (  3,  3   )     ref  ->  rcx         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V10 tmp5         [V10,T12] (  2,  2   )     int  ->  rdx         "Strict ordering of exceptions for Array store"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
-;  V13 tmp8         [V13,T20] (  2,  1   )     int  ->  rcx        
-;  V14 tmp9         [V14,T07] (  3,  3   )     ref  ->  rcx         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V15 tmp10        [V15,T14] (  2,  2   )     int  ->  rdx         "Strict ordering of exceptions for Array store"
-;  V16 tmp11        [V16,T08] (  3,  3   )     ref  ->  rcx         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V17 tmp12        [V17,T15] (  2,  2   )     int  ->  rdx         "Strict ordering of exceptions for Array store"
-;  V18 tmp13        [V18,T16] (  2,  2   )     int  ->  rdx         "impAppendStmt"
+;  V13 tmp8         [V13,T19] (  2,  1   )     int  ->  rcx        
+;  V14 tmp9         [V14,T06] (  3,  3   )     ref  ->  rcx         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V15 tmp10        [V15,T13] (  2,  2   )     int  ->  rdx         "Strict ordering of exceptions for Array store"
+;  V16 tmp11        [V16,T07] (  3,  3   )     ref  ->  rcx         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V17 tmp12        [V17,T14] (  2,  2   )     int  ->  rdx         "Strict ordering of exceptions for Array store"
+;  V18 tmp13        [V18,T15] (  2,  2   )     int  ->  rdx         "impAppendStmt"
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    ptr
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp18        [V23,T21] (  2,  1   )     int  ->  rcx        
+;  V23 tmp18        [V23,T20] (  2,  1   )     int  ->  rcx        
 ;  V24 tmp19        [V24    ] (  6, 11   )  struct (16) [rsp+0x30]  do-not-enreg[XS] addr-exposed ld-addr-op ptr "Inlining Arg" <System.Decimal>
-;  V25 tmp20        [V25,T10] (  3,  2.50)     int  ->  rdx         "Inline stloc first use temp"
+;  V25 tmp20        [V25,T09] (  3,  2.50)     int  ->  rdx         "Inline stloc first use temp"
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Decimal>
 ;* V28 tmp23        [V28    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V29 tmp24        [V29    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V30 tmp25        [V30    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;  V31 tmp26        [V31,T01] ( 12, 12   )   byref  ->  rbx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V32 tmp27        [V32,T22] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp26        [V31,T00] ( 14,  9.50)   byref  ->  rbx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V32 tmp27        [V32,T21] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp28        [V33    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V34 tmp29        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V35 tmp30        [V35,T11] (  2,  2   )   byref  ->  rbx         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V36 tmp31        [V36,T23] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
+;  V35 tmp30        [V35,T10] (  2,  2   )   byref  ->  rbx         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V36 tmp31        [V36,T22] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V37 tmp32        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V08._flags (fldOffset=0x0)" P-INDEP
 ;* V38 tmp33        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V08._hi32 (fldOffset=0x4)" P-INDEP
 ;* V39 tmp34        [V39    ] (  0,  0   )    long  ->  zero-ref    "field V08._lo64 (fldOffset=0x8)" P-INDEP
@@ -53,14 +53,13 @@
 ;  V42 tmp37        [V42    ] (  3,  4   )    long  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed "field V24._lo64 (fldOffset=0x8)" P-DEP
 ;* V43 tmp38        [V43    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V44 tmp39        [V44    ] (  0,  0   )     int  ->  zero-ref    ptr "field V26._length (fldOffset=0x8)" P-INDEP
-;  V45 tmp40        [V45,T17] (  2,  2   )     int  ->  rax         "field V27._flags (fldOffset=0x0)" P-INDEP
-;  V46 tmp41        [V46,T18] (  2,  2   )     int  ->  rcx         "field V27._hi32 (fldOffset=0x4)" P-INDEP
-;  V47 tmp42        [V47,T09] (  3,  3   )    long  ->  rdx         "field V27._lo64 (fldOffset=0x8)" P-INDEP
+;  V45 tmp40        [V45,T16] (  2,  2   )     int  ->  rax         "field V27._flags (fldOffset=0x0)" P-INDEP
+;  V46 tmp41        [V46,T17] (  2,  2   )     int  ->  rcx         "field V27._hi32 (fldOffset=0x4)" P-INDEP
+;  V47 tmp42        [V47,T08] (  3,  3   )    long  ->  rdx         "field V27._lo64 (fldOffset=0x8)" P-INDEP
 ;  V48 GsCookie     [V48    ] (  1,  1   )    long  ->  [rsp+0x40]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V49 tmp44        [V49,T04] ( 11,  6   )   byref  ->  rdi         single-def "shadowVar"
-;  V50 tmp45        [V50,T12] (  2,  2   )   byref  ->  rdx         single-def "shadowVar"
-;  V51 cse0         [V51,T19] (  3,  1.50)     int  ->  rdx         "CSE - moderate"
-;  V52 cse1         [V52,T00] (  4, 14   )     int  ->  rax         "CSE - aggressive"
+;  V49 tmp44        [V49,T02] ( 11,  6   )   byref  ->  rdi         single-def "shadowVar"
+;  V50 tmp45        [V50,T11] (  2,  2   )   byref  ->  rdx         single-def "shadowVar"
+;  V51 cse0         [V51,T18] (  3,  1.50)     int  ->  rdx         "CSE - moderate"
 ;
 ; Lcl frame size = 72
 
@@ -107,29 +106,46 @@ G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi},
        mov      ebp, 3
        jmp      SHORT G_M46478_IG06
                        ;; size=35 bbWeight=1 PerfScore 9.75
-G_M46478_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
-       mov      ebp, eax
-       test     ebp, ebp
-       jle      SHORT G_M46478_IG07
-                       ;; size=6 bbWeight=2 PerfScore 3.00
-G_M46478_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
-       lea      eax, [rbp-0x01]
-       cmp      eax, 4
-       jae      G_M46478_IG20
-       mov      ecx, eax
-       cmp      dword ptr [rbx+4*rcx], 0
+G_M46478_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       mov      ebp, 2
+       jmp      SHORT G_M46478_IG09
+                       ;; size=7 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       cmp      dword ptr [rbx+0x08], 0
        je       SHORT G_M46478_IG05
-                       ;; size=20 bbWeight=4 PerfScore 24.00
-G_M46478_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+                       ;; size=6 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG07:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       jmp      SHORT G_M46478_IG13
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M46478_IG08:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       mov      ebp, 1
+       jmp      SHORT G_M46478_IG12
+                       ;; size=7 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       cmp      dword ptr [rbx+0x04], 0
+       je       SHORT G_M46478_IG08
+                       ;; size=6 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG10:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       jmp      SHORT G_M46478_IG13
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M46478_IG11:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       xor      ebp, ebp
+       jmp      SHORT G_M46478_IG13
+                       ;; size=4 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       cmp      dword ptr [rbx], 0
+       je       SHORT G_M46478_IG11
+                       ;; size=5 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
        test     ebp, ebp
-       jne      SHORT G_M46478_IG12
+       jne      SHORT G_M46478_IG18
                        ;; size=4 bbWeight=1 PerfScore 1.25
-G_M46478_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
+G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
        ; byrRegs -[rbx]
        test     byte  ptr [(reloc)], 1      ; global ptr
-       je       G_M46478_IG21
+       je       G_M46478_IG27
                        ;; size=13 bbWeight=0.50 PerfScore 2.00
-G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
+G_M46478_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
        mov      rax, 0xD1FFAB1E      ; box for <unknown class>:<unknown field>
        mov      rsi, gword ptr [rax]
        ; gcrRegs +[rsi]
@@ -140,15 +156,15 @@ G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi},
        movsq    
        mov      rcx, 0xD1FFAB1E
        cmp      qword ptr [rsp+0x40], rcx
-       je       SHORT G_M46478_IG10
+       je       SHORT G_M46478_IG16
        call     CORINFO_HELP_FAIL_FAST
        ; byrRegs -[rsi rdi]
        ; gcr arg pop 0
                        ;; size=46 bbWeight=0.50 PerfScore 4.38
-G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M46478_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+G_M46478_IG17:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 72
        pop      rbx
        pop      rbp
@@ -156,13 +172,13 @@ G_M46478_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rdi
        ret      
                        ;; size=9 bbWeight=0.50 PerfScore 1.62
-G_M46478_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, gcvars, byref, isz
+G_M46478_IG18:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, gcvars, byref, isz
        ; byrRegs +[rbx rdi]
        cmp      ebp, 1
-       jne      SHORT G_M46478_IG15
+       jne      SHORT G_M46478_IG21
        mov      edx, dword ptr [rbx]
        test     edx, edx
-       jle      SHORT G_M46478_IG15
+       jle      SHORT G_M46478_IG21
        mov      dword ptr [rdi+0x08], edx
        mov      edx, dword ptr [rdi+0x08]
        mov      ecx, -1
@@ -176,16 +192,16 @@ G_M46478_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        mov      gword ptr [rdi], rdx
        mov      rcx, 0xD1FFAB1E
        cmp      qword ptr [rsp+0x40], rcx
-       je       SHORT G_M46478_IG13
+       je       SHORT G_M46478_IG19
        call     CORINFO_HELP_FAIL_FAST
        ; gcrRegs -[rdx]
        ; byrRegs -[rbx rdi]
        ; gcr arg pop 0
                        ;; size=70 bbWeight=0.50 PerfScore 9.88
-G_M46478_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46478_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M46478_IG14:        ; bbWeight=0.50, epilog, nogc, extend
+G_M46478_IG20:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 72
        pop      rbx
        pop      rbp
@@ -193,7 +209,7 @@ G_M46478_IG14:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rdi
        ret      
                        ;; size=9 bbWeight=0.50 PerfScore 1.62
-G_M46478_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, gcvars, byref, isz
+G_M46478_IG21:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, gcvars, byref, isz
        ; byrRegs +[rbx rdi]
        movsxd   rdx, ebp
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
@@ -211,28 +227,28 @@ G_M46478_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        ; gcrRegs +[rcx]
        mov      edx, dword ptr [rbx]
        cmp      dword ptr [rcx+0x08], 0
-       jbe      SHORT G_M46478_IG20
+       jbe      SHORT G_M46478_IG26
        mov      dword ptr [rcx+0x10], edx
        cmp      ebp, 1
-       jle      SHORT G_M46478_IG16
+       jle      SHORT G_M46478_IG22
        mov      rcx, gword ptr [rdi]
        mov      edx, dword ptr [rbx+0x04]
        cmp      dword ptr [rcx+0x08], 1
-       jbe      SHORT G_M46478_IG20
+       jbe      SHORT G_M46478_IG26
        mov      dword ptr [rcx+0x14], edx
                        ;; size=63 bbWeight=0.50 PerfScore 11.12
-G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+G_M46478_IG22:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
        ; gcrRegs -[rcx]
        cmp      ebp, 2
-       jle      SHORT G_M46478_IG17
+       jle      SHORT G_M46478_IG23
        mov      rcx, gword ptr [rdi]
        ; gcrRegs +[rcx]
        mov      edx, dword ptr [rbx+0x08]
        cmp      dword ptr [rcx+0x08], 2
-       jbe      SHORT G_M46478_IG20
+       jbe      SHORT G_M46478_IG26
        mov      dword ptr [rcx+0x18], edx
                        ;; size=20 bbWeight=0.50 PerfScore 5.12
-G_M46478_IG17:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+G_M46478_IG23:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
...

libraries_tests.run.windows.x64.Release.mch

-6 (-0.93%) : 99185.dasm - System.RuntimeType:GetEventCandidates(System.String,int,ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.EventInfo]:this (Instrumented Tier1)

@@ -13,14 +13,14 @@
 ;  V01 RetBuf       [V01,T00] (  7,  7   )   byref  ->  rbx         single-def
 ;  V02 arg1         [V02    ] (  5,  4   )     ref  ->  [rsp+0xB0]  do-not-enreg[X] addr-exposed ld-addr-op class-hnd single-def <System.String>
 ;  V03 arg2         [V03,T01] (  6,  5.38)     int  ->  rsi        
-;  V04 arg3         [V04,T18] (  1,  1   )   ubyte  ->  [rsp+0xC0]  single-def
+;  V04 arg3         [V04,T17] (  1,  1   )   ubyte  ->  [rsp+0xC0]  single-def
 ;  V05 loc0         [V05    ] (  2,  1.38)   ubyte  ->  [rsp+0x58]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V06 loc1         [V06    ] (  2,  1   )   ubyte  ->  [rsp+0x50]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V07 loc2         [V07    ] (  2,  2   )     int  ->  [rsp+0x48]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V08 loc3         [V08,T13] (  4,  2.77)     ref  ->  rdi         class-hnd exact single-def <System.Reflection.RuntimeEventInfo[]>
+;  V08 loc3         [V08,T11] (  5,  3.77)     ref  ->  rdi         class-hnd exact single-def <System.Reflection.RuntimeEventInfo[]>
 ;  V09 loc4         [V09    ] (  9,  8.38)  struct (24) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Reflection.EventInfo]>
-;  V10 loc5         [V10,T14] (  5,  2.54)     int  ->  r14        
-;  V11 loc6         [V11,T16] (  5,  1.15)     ref  ->  r15         class-hnd exact <System.Reflection.RuntimeEventInfo>
+;  V10 loc5         [V10,T13] (  5,  2.54)     int  ->  rbp        
+;  V11 loc6         [V11,T15] (  5,  1.15)     ref  ->  r14         class-hnd exact <System.Reflection.RuntimeEventInfo>
 ;  V12 OutArgs      [V12    ] (  1,  1   )  struct (48) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V13 tmp1         [V13    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V14 tmp2         [V14,T05] (  5,  4.24)     ref  ->  rbp         class-hnd "Inline return value spill temp" <System.RuntimeType+RuntimeTypeCache>
@@ -34,21 +34,20 @@
 ;* V22 tmp10        [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;* V23 tmp11        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
 ;  V24 tmp12        [V24,T10] (  7,  3.95)     ref  ->  rcx         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V25 tmp13        [V25,T15] (  4,  1.89)     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V25 tmp13        [V25,T14] (  4,  1.89)     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V26 tmp14        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;  V27 tmp15        [V27,T09] (  2,  4   )     int  ->  rcx         "Inlining Arg"
-;* V28 tmp16        [V28,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V29 tmp17        [V29,T19] (  4,  0   )     ref  ->  rbp         class-hnd exact "Inlining Arg" <System.String>
-;  V30 tmp18        [V30,T23] (  2,  0   )   ubyte  ->  r13         "Inlining Arg"
+;* V28 tmp16        [V28,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V29 tmp17        [V29,T18] (  4,  0   )     ref  ->  r15         class-hnd exact "Inlining Arg" <System.String>
+;  V30 tmp18        [V30,T22] (  2,  0   )   ubyte  ->  r13         "Inlining Arg"
 ;  V31 tmp19        [V31    ] (  3,  2.38)     ref  ->  [rsp+0x30]  do-not-enreg[X] addr-exposed "field V09._items (fldOffset=0x0)" P-DEP
 ;  V32 tmp20        [V32    ] (  3,  2.38)     ref  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed "field V09._item (fldOffset=0x8)" P-DEP
 ;  V33 tmp21        [V33    ] (  3,  2.38)     int  ->  [rsp+0x40]  do-not-enreg[X] addr-exposed "field V09._count (fldOffset=0x10)" P-DEP
 ;  V34 tmp22        [V34    ] (  3,  2.38)     int  ->  [rsp+0x44]  do-not-enreg[X] addr-exposed "field V09._capacity (fldOffset=0x14)" P-DEP
-;  V35 tmp23        [V35,T20] (  2,  0   )     ref  ->  rcx         "argument with side effect"
-;  V36 tmp24        [V36,T21] (  2,  0   )     ref  ->  rcx         "argument with side effect"
-;  V37 cse0         [V37,T17] (  3,  1.15)     int  ->  rcx         "CSE - moderate"
+;  V35 tmp23        [V35,T19] (  2,  0   )     ref  ->  rcx         "argument with side effect"
+;  V36 tmp24        [V36,T20] (  2,  0   )     ref  ->  rcx         "argument with side effect"
+;  V37 cse0         [V37,T16] (  3,  1.15)     int  ->  rcx         "CSE - moderate"
 ;  V38 cse1         [V38,T12] (  3,  3   )    long  ->  rcx         "CSE - moderate"
-;  V39 cse2         [V39,T11] (  5,  3.77)     int  ->  rbp         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 96
 
@@ -176,11 +175,10 @@ G_M48278_IG06:        ; bbWeight=1, gcrefRegs=4002 {rcx r14}, byrefRegs=0008 {rb
        mov      rdi, rax
        ; gcrRegs +[rdi]
        xor      esi, 2
-       mov      ebp, dword ptr [rdi+0x08]
-       mov      ecx, ebp
+       mov      ecx, dword ptr [rdi+0x08]
        xor      rax, rax
        mov      gword ptr [rsp+0x30], rax
-                       ;; size=37 bbWeight=1 PerfScore 10.75
+                       ;; size=35 bbWeight=1 PerfScore 10.50
 G_M48278_IG07:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref
        ; gcrRegs -[rax]
        mov      gword ptr [rsp+0x38], rax
@@ -190,96 +188,95 @@ G_M48278_IG08:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx},
        mov      dword ptr [rsp+0x44], ecx
                        ;; size=8 bbWeight=1 PerfScore 2.00
 G_M48278_IG09:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref
-       xor      r14d, r14d
-       test     ebp, ebp
+       xor      ebp, ebp
+       cmp      dword ptr [rdi+0x08], 0
        jle      G_M48278_IG16
-                       ;; size=11 bbWeight=1 PerfScore 1.50
+                       ;; size=12 bbWeight=1 PerfScore 4.25
 G_M48278_IG10:        ; bbWeight=0.38, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
-       mov      ecx, r14d
-       mov      r15, gword ptr [rdi+8*rcx+0x10]
-       ; gcrRegs +[r15]
-       mov      ecx, dword ptr [r15+0x50]
+       mov      ecx, ebp
+       mov      r14, gword ptr [rdi+8*rcx+0x10]
+       ; gcrRegs +[r14]
+       mov      ecx, dword ptr [r14+0x50]
        mov      eax, esi
        and      eax, ecx
        cmp      eax, ecx
        jne      G_M48278_IG15
        cmp      byte  ptr [rsp+0x58], 0
        je       SHORT G_M48278_IG14
-                       ;; size=31 bbWeight=0.38 PerfScore 3.46
-G_M48278_IG11:        ; bbWeight=0, gcrefRegs=8080 {rdi r15}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rbp, gword ptr [rsp+0xB0]
-       ; gcrRegs +[rbp]
+                       ;; size=30 bbWeight=0.38 PerfScore 3.46
+G_M48278_IG11:        ; bbWeight=0, gcrefRegs=4080 {rdi r14}, byrefRegs=0008 {rbx}, byref, isz
+       mov      r15, gword ptr [rsp+0xB0]
+       ; gcrRegs +[r15]
        movzx    r13, byte  ptr [rsp+0x50]
        xor      ecx, ecx
-       test     rbp, rbp
+       test     r15, r15
        setne    cl
        call     [<unknown method>]
        ; gcr arg pop 0
        test     r13d, r13d
        je       SHORT G_M48278_IG12
-       mov      rcx, r15
+       mov      rcx, r14
        ; gcrRegs +[rcx]
        call     [System.Reflection.RuntimeEventInfo:get_Name():System.String:this]
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
        mov      rcx, rax
        ; gcrRegs +[rcx]
-       mov      rdx, rbp
+       mov      rdx, r15
        ; gcrRegs +[rdx]
        mov      r8d, 5
        cmp      dword ptr [rcx], ecx
        call     [<unknown method>]
-       ; gcrRegs -[rax rcx rdx rbp]
+       ; gcrRegs -[rax rcx rdx r15]
        ; gcr arg pop 0
        test     eax, eax
        jne      SHORT G_M48278_IG13
        jmp      G_M48278_IG19
                        ;; size=71 bbWeight=0 PerfScore 0.00
-G_M48278_IG12:        ; bbWeight=0, gcrefRegs=80A0 {rbp rdi r15}, byrefRegs=0008 {rbx}, byref
-       ; gcrRegs +[rbp]
-       mov      rcx, r15
+G_M48278_IG12:        ; bbWeight=0, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0008 {rbx}, byref
+       ; gcrRegs +[r15]
+       mov      rcx, r14
        ; gcrRegs +[rcx]
        call     [System.Reflection.RuntimeEventInfo:get_Name():System.String:this]
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
        mov      rcx, rax
        ; gcrRegs +[rcx]
-       mov      rdx, rbp
+       mov      rdx, r15
        ; gcrRegs +[rdx]
        mov      r8d, 4
        cmp      dword ptr [rcx], ecx
        call     [<unknown method>]
-       ; gcrRegs -[rax rcx rdx rbp]
+       ; gcrRegs -[rax rcx rdx r15]
        ; gcr arg pop 0
        test     eax, eax
        je       G_M48278_IG19
                        ;; size=37 bbWeight=0 PerfScore 0.00
-G_M48278_IG13:        ; bbWeight=0, gcrefRegs=8080 {rdi r15}, byrefRegs=0008 {rbx}, byref
+G_M48278_IG13:        ; bbWeight=0, gcrefRegs=4080 {rdi r14}, byrefRegs=0008 {rbx}, byref
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
                        ;; size=15 bbWeight=0 PerfScore 0.00
-G_M48278_IG14:        ; bbWeight=0.38, gcrefRegs=8080 {rdi r15}, byrefRegs=0008 {rbx}, byref
+G_M48278_IG14:        ; bbWeight=0.38, gcrefRegs=4080 {rdi r14}, byrefRegs=0008 {rbx}, byref
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
        lea      rcx, [rsp+0x30]
-       mov      r8, r15
+       mov      r8, r14
        ; gcrRegs +[r8]
        mov      rdx, 0xD1FFAB1E      ; System.RuntimeType+ListBuilder`1[System.Reflection.EventInfo]
        call     [<unknown method>]
-       ; gcrRegs -[r8 r15]
+       ; gcrRegs -[r8 r14]
        ; gcr arg pop 0
                        ;; size=39 bbWeight=0.38 PerfScore 2.02
 G_M48278_IG15:        ; bbWeight=0.38, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       inc      r14d
-       mov      ebp, dword ptr [rdi+0x08]
-       cmp      ebp, r14d
+       inc      ebp
+       cmp      dword ptr [rdi+0x08], ebp
        jg       G_M48278_IG10
-                       ;; size=30 bbWeight=0.38 PerfScore 1.83
+                       ;; size=26 bbWeight=0.38 PerfScore 2.12
 G_M48278_IG16:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        ; gcrRegs -[rdi]
        mov      rcx, 0xD1FFAB1E
@@ -332,7 +329,7 @@ G_M48278_IG19:        ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx},
        jmp      SHORT G_M48278_IG15
                        ;; size=17 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 645, prolog size 48, PerfScore 88.55, instruction count 161, allocated bytes for code 645 (MethodHash=d9964369) for method System.RuntimeType:GetEventCandidates(System.String,int,ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.EventInfo]:this (Instrumented Tier1)
+; Total bytes of code 639, prolog size 48, PerfScore 91.34, instruction count 159, allocated bytes for code 639 (MethodHash=d9964369) for method System.RuntimeType:GetEventCandidates(System.String,int,ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.EventInfo]:this (Instrumented Tier1)
 ; ============================================================
 
 Unwind Info:

-17 (-0.77%) : 30498.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Instrumented Tier1)

@@ -10,27 +10,27 @@
 ;
 ;  V00 this         [V00,T14] ( 11, 32.50)     ref  ->  [rbp+0x10]  this class-hnd EH-live single-def <System.Buffers.SharedArrayPool`1[System.__Canon]>
 ;  V01 loc0         [V01,T16] (  5, 33.50)     int  ->  rbx        
-;  V02 loc1         [V02,T36] (  5, 19   )     int  ->  rsi        
+;  V02 loc1         [V02,T35] (  5, 19   )     int  ->  rsi        
 ;  V03 loc2         [V03,T26] (  7, 27   )     ref  ->  rdi         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V04 loc3         [V04,T49] (  4, 10   )     ref  ->  r14         class-hnd exact single-def <<unknown class>>
-;  V05 loc4         [V05,T35] (  6, 19   )     int  ->  r15        
-;  V06 loc5         [V06,T43] (  8, 10.50)     ref  ->  [rbp-0x88]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V04 loc3         [V04,T48] (  4, 10   )     ref  ->  r14         class-hnd exact single-def <<unknown class>>
+;  V05 loc4         [V05,T34] (  6, 19   )     int  ->  r15        
+;  V06 loc5         [V06,T42] (  8, 10.50)     ref  ->  [rbp-0x88]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V07 loc6         [V07    ] (  2,  4   )  struct (16) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V08 loc7         [V08,T44] (  8, 10.50)     ref  ->  [rbp-0x90]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V08 loc7         [V08,T43] (  8, 10.50)     ref  ->  [rbp-0x90]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V09 loc8         [V09    ] (  2,  4   )  struct (16) [rbp-0x60]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V10 loc9         [V10,T29] (  3, 20   )     ref  ->  rsi         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V10 loc9         [V10,T28] (  3, 20   )     ref  ->  rsi         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V11 loc10        [V11,T03] (  5, 66   )     int  ->  rbx        
 ;  V12 loc11        [V12,T01] (  6, 64   )     ref  ->  r13         class-hnd <<unknown class>>
-;  V13 loc12        [V13,T52] (  2,  8.50)     int  ->  rsi        
-;  V14 loc13        [V14,T69] (  3,  1.50)     int  ->  rsi        
-;  V15 loc14        [V15,T45] (  8, 10.50)     ref  ->  [rbp-0x98]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V13 loc12        [V13,T51] (  2,  8.50)     int  ->  rsi        
+;  V14 loc13        [V14,T68] (  3,  1.50)     int  ->  rsi        
+;  V15 loc14        [V15,T44] (  8, 10.50)     ref  ->  [rbp-0x98]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V16 loc15        [V16    ] (  2,  4   )  struct (16) [rbp-0x70]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V17 loc16        [V17,T11] (  5, 36   )     ref  ->  r14         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V17 loc16        [V17,T10] (  6, 44   )     ref  ->  r14         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V18 loc17        [V18,T00] (  5,210   )     int  ->  r15        
-;  V19 loc18        [V19,T28] (  3, 24   )     int  ->  rdx        
+;  V19 loc18        [V19,T27] (  3, 24   )     int  ->  rax        
 ;  V20 loc19        [V20,T07] (  6, 48   )     ref  ->  r12         class-hnd <<unknown class>>
 ;  V21 OutArgs      [V21    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V22 tmp1         [V22,T30] (  3, 20   )     ref  ->  r13         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V22 tmp1         [V22,T29] (  3, 20   )     ref  ->  r13         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
 ;* V23 tmp2         [V23    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V24 tmp3         [V24,T12] (  2, 36   )     int  ->  r12         "impAppendStmt"
 ;* V25 tmp4         [V25    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
@@ -39,22 +39,22 @@
 ;* V28 tmp7         [V28    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;  V29 tmp8         [V29,T21] (  2, 32   )     int  ->  r12         "impAppendStmt"
 ;  V30 tmp9         [V30,T22] (  2, 32   )     int  ->  r13         "impAppendStmt"
-;  V31 tmp10        [V31,T60] (  3,  3   )     ref  ->  rdi         single-def "handle histogram profile tmp"
+;  V31 tmp10        [V31,T59] (  3,  3   )     ref  ->  rdi         single-def "handle histogram profile tmp"
 ;* V32 tmp11        [V32    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V33 tmp12        [V33    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V34 tmp13        [V34    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V35 tmp14        [V35,T61] (  3,  3   )     ref  ->  rsi         single-def "handle histogram profile tmp"
+;  V35 tmp14        [V35,T60] (  3,  3   )     ref  ->  rsi         single-def "handle histogram profile tmp"
 ;* V36 tmp15        [V36    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V37 tmp16        [V37    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V38 tmp17        [V38    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V39 tmp18        [V39    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V40 tmp19        [V40,T62] (  3,  3   )     ref  ->  r15         single-def "handle histogram profile tmp"
+;  V40 tmp19        [V40,T61] (  3,  3   )     ref  ->  r15         single-def "handle histogram profile tmp"
 ;* V41 tmp20        [V41    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V42 tmp21        [V42    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V43 tmp22        [V43    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V44 tmp23        [V44    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V45 tmp24        [V45,T32] (  3, 20   )     int  ->  [rbp-0x78]  spill-single-def "Inline stloc first use temp"
-;  V46 tmp25        [V46,T31] (  3, 20   )     ref  ->  r13         class-hnd exact "Inline stloc first use temp" <<unknown class>>
+;  V45 tmp24        [V45,T31] (  3, 20   )     int  ->  [rbp-0x78]  spill-single-def "Inline stloc first use temp"
+;  V46 tmp25        [V46,T30] (  3, 20   )     ref  ->  r13         class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;  V47 tmp26        [V47,T04] (  5, 66   )     int  ->  [rbp-0x7C]  "Inline stloc first use temp"
 ;  V48 tmp27        [V48,T23] (  2, 32   )     int  ->  rax         "Inlining Arg"
 ;  V49 tmp28        [V49,T24] (  2, 32   )     int  ->  rax         "Inlining Arg"
@@ -64,48 +64,47 @@
 ;  V53 tmp32        [V53    ] (  1,  2   )     ref  ->  [rbp-0x58]  do-not-enreg[X] addr-exposed "field V09.value (fldOffset=0x8)" P-DEP
 ;  V54 tmp33        [V54    ] (  2,  4   )     ref  ->  [rbp-0x70]  do-not-enreg[X] addr-exposed "field V16.key (fldOffset=0x0)" P-DEP
 ;  V55 tmp34        [V55    ] (  1,  2   )     ref  ->  [rbp-0x68]  do-not-enreg[X] addr-exposed "field V16.value (fldOffset=0x8)" P-DEP
-;  V56 tmp35        [V56,T63] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V57 tmp36        [V57,T37] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V58 tmp37        [V58,T57] (  2,  8   )     ref  ->  rcx         "argument with side effect"
+;  V56 tmp35        [V56,T62] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V57 tmp36        [V57,T36] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V58 tmp37        [V58,T56] (  2,  8   )     ref  ->  rcx         "argument with side effect"
 ;  V59 tmp38        [V59,T25] (  2, 32   )    long  ->  rdx         "argument with side effect"
 ;  V60 tmp39        [V60,T18] (  2, 32   )     ref  ->   r8         "argument with side effect"
-;* V61 tmp40        [V61,T40] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V62 tmp41        [V62,T71] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V63 tmp42        [V63,T64] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V64 tmp43        [V64,T65] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V65 tmp44        [V65,T38] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V66 tmp45        [V66,T58] (  2,  8   )     ref  ->  rcx         "argument with side effect"
+;* V61 tmp40        [V61,T39] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V62 tmp41        [V62,T70] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V63 tmp42        [V63,T63] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V64 tmp43        [V64,T64] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V65 tmp44        [V65,T37] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V66 tmp45        [V66,T57] (  2,  8   )     ref  ->  rcx         "argument with side effect"
 ;  V67 tmp46        [V67,T06] (  2, 64   )    long  ->  rdx         "argument with side effect"
 ;  V68 tmp47        [V68,T05] (  2, 64   )     ref  ->   r8         "argument with side effect"
-;* V69 tmp48        [V69,T41] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V70 tmp49        [V70,T72] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V71 tmp50        [V71,T66] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V72 tmp51        [V72,T67] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V73 tmp52        [V73,T39] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V74 tmp53        [V74,T59] (  2,  8   )     ref  ->  rcx         "argument with side effect"
-;  V75 tmp54        [V75,T73] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V76 tmp55        [V76,T68] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V77 PSPSym       [V77,T70] (  1,  1   )    long  ->  [rbp-0xA8]  do-not-enreg[V] "PSPSym"
+;* V69 tmp48        [V69,T40] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V70 tmp49        [V70,T71] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V71 tmp50        [V71,T65] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V72 tmp51        [V72,T66] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V73 tmp52        [V73,T38] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V74 tmp53        [V74,T58] (  2,  8   )     ref  ->  rcx         "argument with side effect"
+;  V75 tmp54        [V75,T72] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V76 tmp55        [V76,T67] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V77 PSPSym       [V77,T69] (  1,  1   )    long  ->  [rbp-0xA8]  do-not-enreg[V] "PSPSym"
 ;  V78 cse0         [V78,T15] (  4, 34   )    long  ->  registers   hoist multi-def "CSE - moderate"
-;  V79 cse1         [V79,T53] (  4,  8   )     ref  ->  rdi         multi-def "CSE - moderate"
-;  V80 cse2         [V80,T46] (  6, 10.50)     ref  ->  rdi         multi-def "CSE - moderate"
-;  V81 cse3         [V81,T54] (  4,  8   )     ref  ->  rsi         multi-def "CSE - moderate"
-;  V82 cse4         [V82,T47] (  6, 10.50)     ref  ->  rsi         multi-def "CSE - moderate"
-;  V83 cse5         [V83,T55] (  4,  8   )     ref  ->  r14         multi-def "CSE - moderate"
-;  V84 cse6         [V84,T48] (  6, 10.50)     ref  ->  r14         multi-def "CSE - moderate"
-;  V85 cse7         [V85,T27] (  3, 24   )   byref  ->  [rbp-0xA0]  spill-single-def "CSE - moderate"
-;  V86 cse8         [V86,T08] (  4, 48   )    long  ->  r12         "CSE - aggressive"
-;  V87 cse9         [V87,T02] (  3, 68   )     int  ->  r13         "CSE - aggressive"
-;  V88 cse10        [V88,T33] (  3, 20   )     int  ->  [rbp-0x80]  spill-single-def "CSE - moderate"
-;  V89 cse11        [V89,T34] (  3, 20   )     int  ->  r14         "CSE - moderate"
-;  V90 rat0         [V90,T50] (  3,  9.44)    long  ->  rdx         "Spilling to split statement for tree"
-;  V91 rat1         [V91,T56] (  3,  8   )    long  ->  r15         "runtime lookup"
-;  V92 rat2         [V92,T42] (  3, 11.20)    long  ->  rax         "spilling expr"
-;  V93 rat3         [V93,T51] (  3,  8.96)    long  ->  r15         "fgMakeTemp is creating a new local variable"
-;  V94 rat4         [V94,T10] (  3, 37.76)    long  ->  rdx         "Spilling to split statement for tree"
-;  V95 rat5         [V95,T17] (  3, 32   )    long  ->  rax         "runtime lookup"
-;  V96 rat6         [V96,T09] (  3, 44.80)    long  ->  rax         "spilling expr"
-;  V97 rat7         [V97,T13] (  3, 35.84)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V79 cse1         [V79,T52] (  4,  8   )     ref  ->  rdi         multi-def "CSE - moderate"
+;  V80 cse2         [V80,T45] (  6, 10.50)     ref  ->  rdi         multi-def "CSE - moderate"
+;  V81 cse3         [V81,T53] (  4,  8   )     ref  ->  rsi         multi-def "CSE - moderate"
+;  V82 cse4         [V82,T46] (  6, 10.50)     ref  ->  rsi         multi-def "CSE - moderate"
+;  V83 cse5         [V83,T54] (  4,  8   )     ref  ->  r14         multi-def "CSE - moderate"
+;  V84 cse6         [V84,T47] (  6, 10.50)     ref  ->  r14         multi-def "CSE - moderate"
+;  V85 cse7         [V85,T08] (  5, 56   )    long  ->  r12         "CSE - aggressive"
+;  V86 cse8         [V86,T02] (  3, 68   )     int  ->  r13         "CSE - aggressive"
+;  V87 cse9         [V87,T32] (  3, 20   )     int  ->  [rbp-0x80]  spill-single-def "CSE - moderate"
+;  V88 cse10        [V88,T33] (  3, 20   )     int  ->  r14         "CSE - moderate"
+;  V89 rat0         [V89,T49] (  3,  9.44)    long  ->  rdx         "Spilling to split statement for tree"
+;  V90 rat1         [V90,T55] (  3,  8   )    long  ->  r15         "runtime lookup"
+;  V91 rat2         [V91,T41] (  3, 11.20)    long  ->  rax         "spilling expr"
+;  V92 rat3         [V92,T50] (  3,  8.96)    long  ->  r15         "fgMakeTemp is creating a new local variable"
+;  V93 rat4         [V93,T11] (  3, 37.76)    long  ->  rdx         "Spilling to split statement for tree"
+;  V94 rat5         [V94,T17] (  3, 32   )    long  ->  rax         "runtime lookup"
+;  V95 rat6         [V95,T09] (  3, 44.80)    long  ->  rax         "spilling expr"
+;  V96 rat7         [V96,T13] (  3, 35.84)    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 152
 
@@ -250,7 +249,7 @@ G_M16529_IG10:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {},
        mov      gword ptr [rbp-0x88], rax
        ; GC ptr vars +{V06}
                        ;; size=62 bbWeight=0.50 PerfScore 6.50
-G_M16529_IG11:        ; bbWeight=0.50, gcVars=00000000000000000000080000004000 {V00 V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M16529_IG11:        ; bbWeight=0.50, gcVars=00000000000000000000040000004000 {V00 V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
        jmp      SHORT G_M16529_IG13
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M16529_IG12:        ; bbWeight=2, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
@@ -343,7 +342,7 @@ G_M16529_IG15:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {},
        mov      gword ptr [rbp-0x90], rax
        ; GC ptr vars +{V08}
                        ;; size=49 bbWeight=0.50 PerfScore 4.50
-G_M16529_IG16:        ; bbWeight=0.50, gcVars=00000000000000000000100000004000 {V00 V08}, gcrefRegs=0081 {rax rdi}, byrefRegs=0000 {}, gcvars, byref
+G_M16529_IG16:        ; bbWeight=0.50, gcVars=00000000000000000000080000004000 {V00 V08}, gcrefRegs=0081 {rax rdi}, byrefRegs=0000 {}, gcvars, byref
        jmp      G_M16529_IG23
                        ;; size=5 bbWeight=0.50 PerfScore 1.00
 G_M16529_IG17:        ; bbWeight=2, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
@@ -547,7 +546,7 @@ G_M16529_IG29:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {},
        mov      gword ptr [rbp-0x98], rax
        ; GC ptr vars +{V15}
                        ;; size=49 bbWeight=0.50 PerfScore 4.50
-G_M16529_IG30:        ; bbWeight=0.50, gcVars=00000000000000000000200000004000 {V00 V15}, gcrefRegs=0081 {rax rdi}, byrefRegs=0000 {}, gcvars, byref
+G_M16529_IG30:        ; bbWeight=0.50, gcVars=00000000000000000000100000004000 {V00 V15}, gcrefRegs=0081 {rax rdi}, byrefRegs=0000 {}, gcvars, byref
        jmp      G_M16529_IG36
                        ;; size=5 bbWeight=0.50 PerfScore 1.00
 G_M16529_IG31:        ; bbWeight=2, gcrefRegs=4080 {rdi r14}, byrefRegs=0000 {}, byref, isz
@@ -579,24 +578,15 @@ G_M16529_IG32:        ; bbWeight=16, gcrefRegs=4080 {rdi r14}, byrefRegs=0000 {}
        je       SHORT G_M16529_IG34
                        ;; size=15 bbWeight=16 PerfScore 76.00
 G_M16529_IG33:        ; bbWeight=8, gcrefRegs=4080 {rdi r14}, byrefRegs=0000 {}, byref
-       lea      rax, bword ptr [r14+r12+0x10]
-       ; byrRegs +[rax]
-       mov      bword ptr [rbp-0xA0], rax
-       ; GC ptr vars +{V85}
-       mov      edx, dword ptr [rax+0x08]
-       test     edx, edx
+       mov      eax, dword ptr [r14+r12+0x18]
+       test     eax, eax
        jne      G_M16529_IG38
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
-       ; byrRegs -[rax]
        ; gcr arg pop 0
-       mov      r12, bword ptr [rbp-0xA0]
-       ; byrRegs +[r12]
-       mov      dword ptr [r12+0x08], ebx
-                       ;; size=50 bbWeight=8 PerfScore 68.00
-G_M16529_IG34:        ; bbWeight=64, gcVars=00000000000000000000200000004000 {V00 V15}, gcrefRegs=4080 {rdi r14}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; byrRegs -[r12]
-       ; GC ptr vars -{V85}
+       mov      dword ptr [r14+r12+0x18], ebx
+                       ;; size=33 bbWeight=8 PerfScore 44.00
+G_M16529_IG34:        ; bbWeight=64, gcrefRegs=4080 {rdi r14}, byrefRegs=0000 {}, byref, isz
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
@@ -644,7 +634,7 @@ G_M16529_IG37:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {},
 G_M16529_IG38:        ; bbWeight=8, gcrefRegs=4080 {rdi r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rdi]
        mov      ecx, ebx
-       sub      ecx, edx
+       sub      ecx, eax
        movsxd   rcx, ecx
        mov      edx, esi
        cmp      rcx, rdx
@@ -786,7 +776,7 @@ G_M16529_IG48:        ; bbWeight=1, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=20 bbWeight=1 PerfScore 5.25
-G_M16529_IG49:        ; bbWeight=0, gcVars=00000000000000000000080000004000 {V00 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M16529_IG49:        ; bbWeight=0, gcVars=00000000000000000000040000004000 {V00 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
        ; GC ptr vars +{V06}
        push     rbp
        push     r15
@@ -801,7 +791,7 @@ G_M16529_IG49:        ; bbWeight=0, gcVars=00000000000000000000080000004000 {V00
        mov      qword ptr [rsp+0x28], rbp
        lea      rbp, [rbp+0xD0]
                        ;; size=32 bbWeight=0 PerfScore 0.00
-G_M16529_IG50:        ; bbWeight=0, gcVars=00000000000000000000080000004000 {V00 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M16529_IG50:        ; bbWeight=0, gcVars=00000000000000000000040000004000 {V00 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
        cmp      gword ptr [rbp-0x88], 0
        je       SHORT G_M16529_IG51
        mov      rcx, 0xD1FFAB1E
@@ -842,7 +832,7 @@ G_M16529_IG52:        ; bbWeight=0, funclet epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=17 bbWeight=0 PerfScore 0.00
-G_M16529_IG53:        ; bbWeight=0, gcVars=00000000000000000000100000004000 {V00 V08}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M16529_IG53:        ; bbWeight=0, gcVars=00000000000000000000080000004000 {V00 V08}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
        ; GC ptr vars +{V08}
        push     rbp
        push     r15
@@ -857,7 +847,7 @@ G_M16529_IG53:        ; bbWeight=0, gcVars=00000000000000000000100000004000 {V00
        mov      qword ptr [rsp+0x28], rbp
        lea      rbp, [rbp+0xD0]
                        ;; size=32 bbWeight=0 PerfScore 0.00
...

-7 (-0.72%) : 29645.dasm - System.RuntimeType:GetField(System.String,int):System.Reflection.FieldInfo:this (Instrumented Tier1)

@@ -12,13 +12,13 @@
 ;  V00 this         [V00,T05] (  4,  4   )     ref  ->  rdi         this class-hnd single-def <System.RuntimeType>
 ;  V01 arg1         [V01,T04] (  6,  4   )     ref  ->  rsi         ld-addr-op class-hnd <System.String>
 ;  V02 arg2         [V02,T02] (  6,  5.33)     int  ->  rbx        
-;  V03 loc0         [V03,T15] (  3,  1.01)     int  ->  rbp         ld-addr-op
-;  V04 loc1         [V04,T11] (  3,  2.33)     ref  ->  rdi         class-hnd single-def <System.Reflection.RuntimeFieldInfo[]>
+;  V03 loc0         [V03,T14] (  3,  1.01)     int  ->  rbp         ld-addr-op
+;  V04 loc1         [V04,T11] (  4,  2.66)     ref  ->  rdi         class-hnd single-def <System.Reflection.RuntimeFieldInfo[]>
 ;  V05 loc2         [V05,T10] ( 16,  2.66)     ref  ->  rbp         class-hnd <System.Reflection.FieldInfo>
-;  V06 loc3         [V06,T14] (  3,  2   )   ubyte  ->  r14        
+;  V06 loc3         [V06,T13] (  3,  2   )   ubyte  ->  r14        
 ;* V07 loc4         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op
-;  V08 loc5         [V08,T13] (  5,  2.32)     int  ->  r15        
-;  V09 loc6         [V09,T16] ( 12,  0.99)     ref  ->  r12         class-hnd <System.Reflection.RuntimeFieldInfo>
+;  V08 loc5         [V08,T12] (  5,  2.32)     int  ->  r15        
+;  V09 loc6         [V09,T15] ( 12,  0.99)     ref  ->  r13         class-hnd <System.Reflection.RuntimeFieldInfo>
 ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V12 tmp2         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <System.Type>
@@ -28,7 +28,7 @@
 ;* V16 tmp6         [V16    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V17 tmp7         [V17    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V18 tmp8         [V18    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V19 tmp9         [V19,T18] (  3,  0   )     ref  ->  rsi         "handle histogram profile tmp"
+;  V19 tmp9         [V19,T17] (  3,  0   )     ref  ->  rsi         "handle histogram profile tmp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V21 tmp11        [V21    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V22 tmp12        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
@@ -50,38 +50,36 @@
 ;* V38 tmp28        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V39 tmp29        [V39    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V40 tmp30        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V41 tmp31        [V41,T26] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V42 tmp32        [V42,T19] (  3,  0   )     ref  ->  rcx         "argument with side effect"
-;  V43 tmp33        [V43,T20] (  3,  0   )     ref  ->  rcx         "argument with side effect"
-;* V44 tmp34        [V44,T27] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;* V45 tmp35        [V45,T28] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V46 tmp36        [V46,T21] (  3,  0   )     ref  ->  rcx         "argument with side effect"
-;  V47 tmp37        [V47,T22] (  3,  0   )     ref  ->  rsi         "argument with side effect"
-;  V48 tmp38        [V48,T25] (  2,  0   )     ref  ->  rdx         "argument with side effect"
-;  V49 tmp39        [V49,T23] (  3,  0   )     ref  ->  rcx         "argument with side effect"
-;  V50 tmp40        [V50,T24] (  3,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V51 cse0         [V51,T17] (  3,  0.99)     int  ->  rcx         "CSE - conservative"
-;  V52 cse1         [V52,T12] (  3,  2.33)     int  ->  r13         "CSE - moderate"
-;  V53 cse2         [V53,T09] (  3,  3   )    long  ->  rcx         "CSE - moderate"
+;* V41 tmp31        [V41,T25] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V42 tmp32        [V42,T18] (  3,  0   )     ref  ->  rcx         "argument with side effect"
+;  V43 tmp33        [V43,T19] (  3,  0   )     ref  ->  rcx         "argument with side effect"
+;* V44 tmp34        [V44,T26] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;* V45 tmp35        [V45,T27] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V46 tmp36        [V46,T20] (  3,  0   )     ref  ->  rcx         "argument with side effect"
+;  V47 tmp37        [V47,T21] (  3,  0   )     ref  ->  rsi         "argument with side effect"
+;  V48 tmp38        [V48,T24] (  2,  0   )     ref  ->  rdx         "argument with side effect"
+;  V49 tmp39        [V49,T22] (  3,  0   )     ref  ->  rcx         "argument with side effect"
+;  V50 tmp40        [V50,T23] (  3,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V51 cse0         [V51,T16] (  3,  0.99)     int  ->  rcx         "CSE - conservative"
+;  V52 cse1         [V52,T09] (  3,  3   )    long  ->  rcx         "CSE - moderate"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M40435_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
        push     r14
        push     r13
-       push     r12
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 40
+       sub      rsp, 32
        mov      rdi, rcx
        ; gcrRegs +[rdi]
        mov      rsi, rdx
        ; gcrRegs +[rsi]
        mov      ebx, r8d
-                       ;; size=25 bbWeight=1 PerfScore 9.00
+                       ;; size=23 bbWeight=1 PerfScore 8.00
 G_M40435_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
        test     rsi, rsi
        jne      SHORT G_M40435_IG04
@@ -216,33 +214,32 @@ G_M40435_IG10:        ; bbWeight=1, gcrefRegs=0042 {rcx rsi}, byrefRegs=0000 {},
        xor      ebx, 2
        xor      r14d, r14d
        xor      r15d, r15d
-       mov      r13d, dword ptr [rdi+0x08]
-       test     r13d, r13d
+       cmp      dword ptr [rdi+0x08], 0
        jle      G_M40435_IG16
-                       ;; size=46 bbWeight=1 PerfScore 11.25
+                       ;; size=43 bbWeight=1 PerfScore 12.00
 G_M40435_IG11:        ; bbWeight=0.33, gcrefRegs=00A0 {rbp rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      ecx, r15d
-       mov      r12, gword ptr [rdi+8*rcx+0x10]
-       ; gcrRegs +[r12]
-       mov      ecx, dword ptr [r12+0x18]
+       mov      r13, gword ptr [rdi+8*rcx+0x10]
+       ; gcrRegs +[r13]
+       mov      ecx, dword ptr [r13+0x18]
        mov      eax, ebx
        and      eax, ecx
        cmp      eax, ecx
        jne      G_M40435_IG15
        test     rbp, rbp
        je       G_M40435_IG14
-                       ;; size=34 bbWeight=0.33 PerfScore 2.38
-G_M40435_IG12:        ; bbWeight=0, gcrefRegs=10A0 {rbp rdi r12}, byrefRegs=0000 {}, byref
-       mov      rcx, r12
+                       ;; size=33 bbWeight=0.33 PerfScore 2.38
+G_M40435_IG12:        ; bbWeight=0, gcrefRegs=20A0 {rbp rdi r13}, byrefRegs=0000 {}, byref
+       mov      rcx, r13
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rcx, r12
+       mov      rcx, r13
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [r12]
+       mov      rax, qword ptr [r13]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x38]<unknown method>
        ; gcrRegs -[rcx] +[rax]
@@ -285,15 +282,15 @@ G_M40435_IG12:        ; bbWeight=0, gcrefRegs=10A0 {rbp rdi r12}, byrefRegs=0000
        ; gcr arg pop 0
        test     eax, eax
        je       G_M40435_IG25
-       mov      rcx, r12
+       mov      rcx, r13
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rcx, r12
+       mov      rcx, r13
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [r12]
+       mov      rax, qword ptr [r13]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x38]<unknown method>
        ; gcrRegs -[rcx] +[rax]
@@ -311,16 +308,16 @@ G_M40435_IG12:        ; bbWeight=0, gcrefRegs=10A0 {rbp rdi r12}, byrefRegs=0000
        ; gcr arg pop 0
        mov      r14d, 1
                        ;; size=197 bbWeight=0 PerfScore 0.00
-G_M40435_IG13:        ; bbWeight=0, gcrefRegs=10A0 {rbp rdi r12}, byrefRegs=0000 {}, byref
-       mov      rcx, r12
+G_M40435_IG13:        ; bbWeight=0, gcrefRegs=20A0 {rbp rdi r13}, byrefRegs=0000 {}, byref
+       mov      rcx, r13
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rcx, r12
+       mov      rcx, r13
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [r12]
+       mov      rax, qword ptr [r13]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x38]<unknown method>
        ; gcrRegs -[rcx] +[rax]
@@ -384,22 +381,22 @@ G_M40435_IG13:        ; bbWeight=0, gcrefRegs=10A0 {rbp rdi r12}, byrefRegs=0000
        ; gcrRegs -[rbp]
        ; gcr arg pop 0
                        ;; size=176 bbWeight=0 PerfScore 0.00
-G_M40435_IG14:        ; bbWeight=0.33, gcrefRegs=1080 {rdi r12}, byrefRegs=0000 {}, byref
+G_M40435_IG14:        ; bbWeight=0.33, gcrefRegs=2080 {rdi r13}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       mov      rbp, r12
+       mov      rbp, r13
        ; gcrRegs +[rbp]
                        ;; size=18 bbWeight=0.33 PerfScore 0.49
 G_M40435_IG15:        ; bbWeight=0.33, gcrefRegs=00A0 {rbp rdi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[r12]
+       ; gcrRegs -[r13]
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
        inc      r15d
-       cmp      r13d, r15d
+       cmp      dword ptr [rdi+0x08], r15d
        jg       G_M40435_IG11
-                       ;; size=27 bbWeight=0.33 PerfScore 0.90
+                       ;; size=28 bbWeight=0.33 PerfScore 1.81
 G_M40435_IG16:        ; bbWeight=1, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdi]
        test     r14d, r14d
@@ -452,17 +449,16 @@ G_M40435_IG19:        ; bbWeight=1, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rax]
                        ;; size=18 bbWeight=1 PerfScore 1.50
 G_M40435_IG20:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 32
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
        ret      
-                       ;; size=17 bbWeight=1 PerfScore 5.25
+                       ;; size=15 bbWeight=1 PerfScore 4.75
 G_M40435_IG21:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax rbp]
        call     [System.ThrowHelper:ThrowNullReferenceException()]
@@ -476,28 +472,28 @@ G_M40435_IG22:        ; bbWeight=0, gcrefRegs=00A0 {rbp rdi}, byrefRegs=0000 {},
        ; gcr arg pop 0
        jmp      G_M40435_IG15
                        ;; size=20 bbWeight=0 PerfScore 0.00
-G_M40435_IG23:        ; bbWeight=0, gcrefRegs=1080 {rdi r12}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbp] +[r12]
+G_M40435_IG23:        ; bbWeight=0, gcrefRegs=2080 {rdi r13}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbp] +[r13]
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
        jmp      G_M40435_IG14
                        ;; size=20 bbWeight=0 PerfScore 0.00
-G_M40435_IG24:        ; bbWeight=0, gcrefRegs=10A0 {rbp rdi r12}, byrefRegs=0000 {}, byref
+G_M40435_IG24:        ; bbWeight=0, gcrefRegs=20A0 {rbp rdi r13}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rbp]
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
        jmp      G_M40435_IG13
                        ;; size=20 bbWeight=0 PerfScore 0.00
-G_M40435_IG25:        ; bbWeight=0, gcrefRegs=10A0 {rbp rdi r12}, byrefRegs=0000 {}, byref
+G_M40435_IG25:        ; bbWeight=0, gcrefRegs=20A0 {rbp rdi r13}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
        jmp      G_M40435_IG13
                        ;; size=20 bbWeight=0 PerfScore 0.00
 G_M40435_IG26:        ; bbWeight=0, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdi r12]
+       ; gcrRegs -[rdi r13]
        mov      rcx, rbp
        ; gcrRegs +[rcx]
        call     [<unknown method>]
@@ -511,7 +507,7 @@ G_M40435_IG26:        ; bbWeight=0, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byr
        int3     
...

+13 (+0.62%) : 357411.dasm - System.Buffers.SharedArrayPool`1[System.Buffers.AhoCorasickNode]:Trim():ubyte:this (Instrumented Tier1)

@@ -10,27 +10,27 @@
 ;
 ;  V00 this         [V00,T25] (  9, 22.50)     ref  ->  rbx         this class-hnd single-def <System.Buffers.SharedArrayPool`1[System.Buffers.AhoCorasickNode]>
 ;  V01 loc0         [V01,T05] (  5, 65.50)     int  ->  rsi        
-;  V02 loc1         [V02,T11] (  5, 51   )     int  ->  rdi        
+;  V02 loc1         [V02,T12] (  5, 51   )     int  ->  rdi        
 ;  V03 loc2         [V03,T24] (  7, 27   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V04 loc3         [V04,T43] (  4, 10   )     ref  ->  r15         class-hnd exact single-def <<unknown class>>
-;  V05 loc4         [V05,T31] (  6, 19   )     int  ->  r13        
-;  V06 loc5         [V06,T37] (  8, 10.50)     ref  ->  [rbp-0x90]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V04 loc3         [V04,T42] (  4, 10   )     ref  ->  r15         class-hnd exact single-def <<unknown class>>
+;  V05 loc4         [V05,T30] (  6, 19   )     int  ->  r13        
+;  V06 loc5         [V06,T36] (  8, 10.50)     ref  ->  [rbp-0xA0]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V07 loc6         [V07    ] (  2,  4   )  struct (16) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V08 loc7         [V08,T38] (  8, 10.50)     ref  ->  [rbp-0x98]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V08 loc7         [V08,T37] (  8, 10.50)     ref  ->  [rbp-0xA8]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V09 loc8         [V09    ] (  2,  4   )  struct (16) [rbp-0x58]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V10 loc9         [V10,T28] (  3, 20   )     ref  ->  rdi         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V10 loc9         [V10,T27] (  3, 20   )     ref  ->  rdi         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V11 loc10        [V11,T04] (  5, 66   )     int  ->  rsi        
 ;  V12 loc11        [V12,T07] (  6, 60   )     ref  ->  r13         class-hnd exact <<unknown class>>
-;  V13 loc12        [V13,T44] (  2,  8.50)     int  ->  rdi        
-;  V14 loc13        [V14,T60] (  3,  1.50)     int  ->  rdi        
-;  V15 loc14        [V15,T39] (  8, 10.50)     ref  ->  [rbp-0xA0]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V13 loc12        [V13,T43] (  2,  8.50)     int  ->  rdi        
+;  V14 loc13        [V14,T59] (  3,  1.50)     int  ->  rdi        
+;  V15 loc14        [V15,T38] (  8, 10.50)     ref  ->  [rbp-0xB0]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V16 loc15        [V16    ] (  2,  4   )  struct (16) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V17 loc16        [V17,T14] (  5, 36   )     ref  ->  r15         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V17 loc16        [V17,T14] (  6, 44   )     ref  ->  r15         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V18 loc17        [V18,T00] (  5,210   )     int  ->  r13        
-;  V19 loc18        [V19,T27] (  3, 24   )     int  ->   r8        
-;  V20 loc19        [V20,T13] (  6, 44   )     ref  ->  [rbp-0xA8]  class-hnd exact spill-single-def <<unknown class>>
+;  V19 loc18        [V19,T26] (  3, 24   )     int  ->  rdx        
+;  V20 loc19        [V20,T13] (  6, 44   )     ref  ->  [rbp-0xB8]  class-hnd exact spill-single-def <<unknown class>>
 ;  V21 OutArgs      [V21    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V22 tmp1         [V22,T29] (  3, 20   )     ref  ->  r12         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V22 tmp1         [V22,T28] (  3, 20   )     ref  ->  r12         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
 ;* V23 tmp2         [V23    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V24 tmp3         [V24,T02] (  2,100   )     int  ->  [rbp-0x6C]  spill-single-def "impAppendStmt"
 ;  V25 tmp4         [V25,T15] (  2, 32   )     ref  ->  rax         "CASTCLASS eval op1"
@@ -41,22 +41,22 @@
 ;* V30 tmp9         [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V31 tmp10        [V31,T20] (  2, 32   )     int  ->  r12         "impAppendStmt"
 ;  V32 tmp11        [V32,T21] (  2, 32   )     int  ->  r13         "impAppendStmt"
-;  V33 tmp12        [V33,T51] (  3,  3   )     ref  ->  rbx         single-def "handle histogram profile tmp"
+;  V33 tmp12        [V33,T50] (  3,  3   )     ref  ->  rbx         single-def "handle histogram profile tmp"
 ;* V34 tmp13        [V34    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V35 tmp14        [V35    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V36 tmp15        [V36    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V37 tmp16        [V37,T52] (  3,  3   )     ref  ->  rdi         single-def "handle histogram profile tmp"
+;  V37 tmp16        [V37,T51] (  3,  3   )     ref  ->  rdi         single-def "handle histogram profile tmp"
 ;* V38 tmp17        [V38    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V39 tmp18        [V39    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V40 tmp19        [V40    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V41 tmp20        [V41    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V42 tmp21        [V42,T53] (  3,  3   )     ref  ->  r15         single-def "handle histogram profile tmp"
+;  V42 tmp21        [V42,T52] (  3,  3   )     ref  ->  r15         single-def "handle histogram profile tmp"
 ;* V43 tmp22        [V43    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V44 tmp23        [V44    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V45 tmp24        [V45    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V46 tmp25        [V46    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V47 tmp26        [V47,T09] (  3, 52   )     int  ->  [rbp-0x78]  spill-single-def "Inline stloc first use temp"
-;  V48 tmp27        [V48,T08] (  3, 52   )     ref  ->  r12         class-hnd exact "Inline stloc first use temp" <<unknown class>>
+;  V47 tmp26        [V47,T10] (  3, 52   )     int  ->  [rbp-0x78]  spill-single-def "Inline stloc first use temp"
+;  V48 tmp27        [V48,T09] (  3, 52   )     ref  ->  r12         class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;  V49 tmp28        [V49,T01] (  5,194   )     int  ->  [rbp-0x7C]  "Inline stloc first use temp"
 ;  V50 tmp29        [V50,T22] (  2, 32   )     int  ->  rax         "Inlining Arg"
 ;  V51 tmp30        [V51,T23] (  2, 32   )     int  ->  rax         "Inlining Arg"
@@ -66,39 +66,38 @@
 ;  V55 tmp34        [V55    ] (  1,  2   )     ref  ->  [rbp-0x50]  do-not-enreg[X] addr-exposed "field V09.value (fldOffset=0x8)" P-DEP
 ;  V56 tmp35        [V56    ] (  2,  4   )     ref  ->  [rbp-0x68]  do-not-enreg[X] addr-exposed "field V16.key (fldOffset=0x0)" P-DEP
 ;  V57 tmp36        [V57    ] (  1,  2   )     ref  ->  [rbp-0x60]  do-not-enreg[X] addr-exposed "field V16.value (fldOffset=0x8)" P-DEP
-;  V58 tmp37        [V58,T54] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V59 tmp38        [V59,T34] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V60 tmp39        [V60,T48] (  2,  8   )     ref  ->  rcx         "argument with side effect"
+;  V58 tmp37        [V58,T53] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V59 tmp38        [V59,T33] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V60 tmp39        [V60,T47] (  2,  8   )     ref  ->  rcx         "argument with side effect"
 ;  V61 tmp40        [V61,T16] (  2, 32   )     ref  ->  rcx         "argument with side effect"
-;  V62 tmp41        [V62,T62] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V63 tmp42        [V63,T55] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V64 tmp43        [V64,T56] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V65 tmp44        [V65,T35] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V66 tmp45        [V66,T49] (  2,  8   )     ref  ->  rcx         "argument with side effect"
+;  V62 tmp41        [V62,T61] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V63 tmp42        [V63,T54] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V64 tmp43        [V64,T55] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V65 tmp44        [V65,T34] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V66 tmp45        [V66,T48] (  2,  8   )     ref  ->  rcx         "argument with side effect"
 ;  V67 tmp46        [V67,T17] (  2, 32   )     ref  ->  rcx         "argument with side effect"
-;  V68 tmp47        [V68,T63] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V69 tmp48        [V69,T57] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V70 tmp49        [V70,T58] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V71 tmp50        [V71,T36] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V72 tmp51        [V72,T50] (  2,  8   )     ref  ->  rcx         "argument with side effect"
-;  V73 tmp52        [V73,T64] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V74 tmp53        [V74,T59] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V75 PSPSym       [V75,T61] (  1,  1   )    long  ->  [rbp-0xB8]  do-not-enreg[V] "PSPSym"
-;  V76 cse0         [V76,T45] (  4,  8   )     ref  ->  rbx         multi-def "CSE - moderate"
-;  V77 cse1         [V77,T40] (  6, 10.50)     ref  ->  rbx         multi-def "CSE - moderate"
-;  V78 cse2         [V78,T46] (  4,  8   )     ref  ->  rdi         multi-def "CSE - moderate"
-;  V79 cse3         [V79,T41] (  6, 10.50)     ref  ->  rdi         multi-def "CSE - moderate"
-;  V80 cse4         [V80,T47] (  4,  8   )     ref  ->  r15         multi-def "CSE - moderate"
-;  V81 cse5         [V81,T42] (  6, 10.50)     ref  ->  r15         multi-def "CSE - moderate"
-;  V82 cse6         [V82,T26] (  3, 24   )   byref  ->  [rbp-0xB0]  spill-single-def "CSE - moderate"
-;  V83 cse7         [V83,T12] (  4, 48   )    long  ->  rax         "CSE - moderate"
-;  V84 cse8         [V84,T03] (  3, 68   )     int  ->  r12         "CSE - aggressive"
-;  V85 cse9         [V85,T10] (  3, 52   )     int  ->  [rbp-0x80]  spill-single-def "CSE - moderate"
-;  V86 cse10        [V86,T30] (  3, 20   )     int  ->  r15         "CSE - moderate"
-;  V87 cse11        [V87,T32] (  3, 16   )    long  ->  r12         "CSE - moderate"
-;  V88 cse12        [V88,T33] (  3, 16   )    long  ->  [rbp-0x88]  spill-single-def "CSE - moderate"
+;  V68 tmp47        [V68,T62] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V69 tmp48        [V69,T56] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V70 tmp49        [V70,T57] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V71 tmp50        [V71,T35] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V72 tmp51        [V72,T49] (  2,  8   )     ref  ->  rcx         "argument with side effect"
+;  V73 tmp52        [V73,T63] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V74 tmp53        [V74,T58] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V75 PSPSym       [V75,T60] (  1,  1   )    long  ->  [rbp-0xC8]  do-not-enreg[V] "PSPSym"
+;  V76 cse0         [V76,T44] (  4,  8   )     ref  ->  rbx         multi-def "CSE - moderate"
+;  V77 cse1         [V77,T39] (  6, 10.50)     ref  ->  rbx         multi-def "CSE - moderate"
+;  V78 cse2         [V78,T45] (  4,  8   )     ref  ->  rdi         multi-def "CSE - moderate"
+;  V79 cse3         [V79,T40] (  6, 10.50)     ref  ->  rdi         multi-def "CSE - moderate"
+;  V80 cse4         [V80,T46] (  4,  8   )     ref  ->  r15         multi-def "CSE - moderate"
+;  V81 cse5         [V81,T41] (  6, 10.50)     ref  ->  r15         multi-def "CSE - moderate"
+;  V82 cse6         [V82,T08] (  5, 56   )    long  ->  [rbp-0x88]  spill-single-def "CSE - aggressive"
+;  V83 cse7         [V83,T03] (  3, 68   )     int  ->  r12         "CSE - aggressive"
+;  V84 cse8         [V84,T11] (  3, 52   )     int  ->  [rbp-0x8C]  spill-single-def "CSE - moderate"
+;  V85 cse9         [V85,T29] (  3, 20   )     int  ->  r15         "CSE - moderate"
+;  V86 cse10        [V86,T31] (  3, 16   )    long  ->  r12         "CSE - moderate"
+;  V87 cse11        [V87,T32] (  3, 16   )    long  ->  [rbp-0x98]  spill-single-def "CSE - moderate"
 ;
-; Lcl frame size = 168
+; Lcl frame size = 184
 
 G_M35178_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
@@ -109,14 +108,14 @@ G_M35178_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 168
-       lea      rbp, [rsp+0xE0]
+       sub      rsp, 184
+       lea      rbp, [rsp+0xF0]
        xor      eax, eax
        mov      qword ptr [rbp-0x68], rax
        vxorps   xmm4, xmm4, xmm4
        vmovdqu  ymmword ptr [rbp-0x60], ymm4
        mov      qword ptr [rbp-0x40], rax
-       mov      qword ptr [rbp-0xB8], rsp
+       mov      qword ptr [rbp-0xC8], rsp
        mov      rbx, rcx
        ; gcrRegs +[rbx]
                        ;; size=56 bbWeight=1 PerfScore 14.58
@@ -153,13 +152,13 @@ G_M35178_IG04:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
        cmp      dword ptr [r15+0x08], 0
        jle      G_M35178_IG09
                        ;; size=18 bbWeight=1 PerfScore 6.25
-G_M35178_IG05:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M35178_IG05:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
        mov      ecx, r13d
        mov      r12, gword ptr [r15+8*rcx+0x10]
        ; gcrRegs +[r12]
        test     r12, r12
-       je       SHORT G_M35178_IG08
-                       ;; size=13 bbWeight=4 PerfScore 14.00
+       je       G_M35178_IG08
+                       ;; size=17 bbWeight=4 PerfScore 14.00
 G_M35178_IG06:        ; bbWeight=2, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
@@ -181,10 +180,10 @@ G_M35178_IG06:        ; bbWeight=2, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=
        mov      r12, gword ptr [r12+0x08]
        xor      eax, eax
        mov      r10d, dword ptr [r12+0x08]
-       mov      dword ptr [rbp-0x80], r10d
+       mov      dword ptr [rbp-0x8C], r10d
        test     r10d, r10d
        jle      SHORT G_M35178_IG08
-                       ;; size=73 bbWeight=2 PerfScore 31.50
+                       ;; size=76 bbWeight=2 PerfScore 31.50
 G_M35178_IG07:        ; bbWeight=48, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      r11d, dword ptr [rbp-0x78]
        mov      dword ptr [rsp+0x20], r11d
@@ -201,10 +200,10 @@ G_M35178_IG07:        ; bbWeight=48, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs
        ; gcr arg pop 0
        mov      eax, dword ptr [rbp-0x7C]
        inc      eax
-       mov      ecx, dword ptr [rbp-0x80]
+       mov      ecx, dword ptr [rbp-0x8C]
        cmp      ecx, eax
        jg       SHORT G_M35178_IG07
-                       ;; size=48 bbWeight=48 PerfScore 780.00
+                       ;; size=51 bbWeight=48 PerfScore 780.00
 G_M35178_IG08:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r12]
        mov      rcx, 0xD1FFAB1E
@@ -235,10 +234,10 @@ G_M35178_IG10:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
        call     [r11]<unknown method>
        ; gcrRegs -[rcx rbx] +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rbp-0x90], rax
+       mov      gword ptr [rbp-0xA0], rax
        ; GC ptr vars +{V06}
                        ;; size=59 bbWeight=0.50 PerfScore 6.00
-G_M35178_IG11:        ; bbWeight=0.50, gcVars=00000000000000000000002000000000 {V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M35178_IG11:        ; bbWeight=0.50, gcVars=0000001000000000 {V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
        jmp      SHORT G_M35178_IG13
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M35178_IG12:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
@@ -246,7 +245,7 @@ G_M35178_IG12:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       mov      rcx, gword ptr [rbp-0x90]
+       mov      rcx, gword ptr [rbp-0xA0]
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
@@ -264,7 +263,7 @@ G_M35178_IG12:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        call     [System.Array:Clear(System.Array)]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rax, gword ptr [rbp-0x90]
+       mov      rax, gword ptr [rbp-0xA0]
        ; gcrRegs +[rax]
                        ;; size=74 bbWeight=2 PerfScore 25.00
 G_M35178_IG13:        ; bbWeight=4, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
@@ -274,7 +273,7 @@ G_M35178_IG13:        ; bbWeight=4, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byr
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
-       mov      rcx, gword ptr [rbp-0x90]
+       mov      rcx, gword ptr [rbp-0xA0]
        ; gcrRegs +[rcx]
        mov      rbx, rcx
        ; gcrRegs +[rbx]
@@ -293,7 +292,7 @@ G_M35178_IG14:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       mov      rcx, gword ptr [rbp-0x90]
+       mov      rcx, gword ptr [rbp-0xA0]
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; GC ptr vars -{V06}
@@ -327,15 +326,15 @@ G_M35178_IG15:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
        call     [r11]<unknown method>
...

+13 (+0.62%) : 618124.dasm - System.Buffers.SharedArrayPool1[System.ReadOnlyMemory1[ushort]]:Trim():ubyte:this (Instrumented Tier1)

@@ -10,27 +10,27 @@
 ;
 ;  V00 this         [V00,T21] (  9, 22.50)     ref  ->  rbx         this class-hnd single-def <System.Buffers.SharedArrayPool`1[System.ReadOnlyMemory`1[ushort]]>
 ;  V01 loc0         [V01,T10] (  5, 33.50)     int  ->  rsi        
-;  V02 loc1         [V02,T31] (  5, 19   )     int  ->  rdi        
+;  V02 loc1         [V02,T30] (  5, 19   )     int  ->  rdi        
 ;  V03 loc2         [V03,T20] (  7, 27   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V04 loc3         [V04,T43] (  4, 10   )     ref  ->  r15         class-hnd exact single-def <<unknown class>>
-;  V05 loc4         [V05,T30] (  6, 19   )     int  ->  r13        
-;  V06 loc5         [V06,T37] (  8, 10.50)     ref  ->  [rbp-0x90]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V04 loc3         [V04,T42] (  4, 10   )     ref  ->  r15         class-hnd exact single-def <<unknown class>>
+;  V05 loc4         [V05,T29] (  6, 19   )     int  ->  r13        
+;  V06 loc5         [V06,T36] (  8, 10.50)     ref  ->  [rbp-0xA0]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V07 loc6         [V07    ] (  2,  4   )  struct (16) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V08 loc7         [V08,T38] (  8, 10.50)     ref  ->  [rbp-0x98]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V08 loc7         [V08,T37] (  8, 10.50)     ref  ->  [rbp-0xA8]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V09 loc8         [V09    ] (  2,  4   )  struct (16) [rbp-0x58]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V10 loc9         [V10,T24] (  3, 20   )     ref  ->  rdi         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V10 loc9         [V10,T23] (  3, 20   )     ref  ->  rdi         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V11 loc10        [V11,T02] (  5, 66   )     int  ->  rsi        
 ;  V12 loc11        [V12,T05] (  6, 60   )     ref  ->  r13         class-hnd exact <<unknown class>>
-;  V13 loc12        [V13,T44] (  2,  8.50)     int  ->  rdi        
-;  V14 loc13        [V14,T60] (  3,  1.50)     int  ->  rdi        
-;  V15 loc14        [V15,T39] (  8, 10.50)     ref  ->  [rbp-0xA0]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V13 loc12        [V13,T43] (  2,  8.50)     int  ->  rdi        
+;  V14 loc13        [V14,T59] (  3,  1.50)     int  ->  rdi        
+;  V15 loc14        [V15,T38] (  8, 10.50)     ref  ->  [rbp-0xB0]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V16 loc15        [V16    ] (  2,  4   )  struct (16) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.Buffers.SharedArrayPoolThreadLocalArray[],System.Object]>
-;  V17 loc16        [V17,T08] (  5, 36   )     ref  ->  r15         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V17 loc16        [V17,T08] (  6, 44   )     ref  ->  r15         class-hnd exact <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V18 loc17        [V18,T00] (  5,210   )     int  ->  r13        
-;  V19 loc18        [V19,T23] (  3, 24   )     int  ->   r8        
-;  V20 loc19        [V20,T07] (  6, 44   )     ref  ->  [rbp-0xA8]  class-hnd exact spill-single-def <<unknown class>>
+;  V19 loc18        [V19,T22] (  3, 24   )     int  ->  rdx        
+;  V20 loc19        [V20,T07] (  6, 44   )     ref  ->  [rbp-0xB8]  class-hnd exact spill-single-def <<unknown class>>
 ;  V21 OutArgs      [V21    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V22 tmp1         [V22,T25] (  3, 20   )     ref  ->  r12         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V22 tmp1         [V22,T24] (  3, 20   )     ref  ->  r12         class-hnd exact "dup spill" <System.Buffers.SharedArrayPoolPartitions>
 ;* V23 tmp2         [V23    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V24 tmp3         [V24,T09] (  2, 36   )     int  ->  [rbp-0x6C]  spill-single-def "impAppendStmt"
 ;  V25 tmp4         [V25,T11] (  2, 32   )     ref  ->  rax         "CASTCLASS eval op1"
@@ -41,22 +41,22 @@
 ;* V30 tmp9         [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V31 tmp10        [V31,T16] (  2, 32   )     int  ->  r12         "impAppendStmt"
 ;  V32 tmp11        [V32,T17] (  2, 32   )     int  ->  r13         "impAppendStmt"
-;  V33 tmp12        [V33,T51] (  3,  3   )     ref  ->  rbx         single-def "handle histogram profile tmp"
+;  V33 tmp12        [V33,T50] (  3,  3   )     ref  ->  rbx         single-def "handle histogram profile tmp"
 ;* V34 tmp13        [V34    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V35 tmp14        [V35    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V36 tmp15        [V36    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V37 tmp16        [V37,T52] (  3,  3   )     ref  ->  rdi         single-def "handle histogram profile tmp"
+;  V37 tmp16        [V37,T51] (  3,  3   )     ref  ->  rdi         single-def "handle histogram profile tmp"
 ;* V38 tmp17        [V38    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V39 tmp18        [V39    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V40 tmp19        [V40    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V41 tmp20        [V41    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V42 tmp21        [V42,T53] (  3,  3   )     ref  ->  r15         single-def "handle histogram profile tmp"
+;  V42 tmp21        [V42,T52] (  3,  3   )     ref  ->  r15         single-def "handle histogram profile tmp"
 ;* V43 tmp22        [V43    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V44 tmp23        [V44    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V45 tmp24        [V45    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
 ;* V46 tmp25        [V46    ] (  0,  0   )     ref  ->  zero-ref    "handle histogram profile tmp"
-;  V47 tmp26        [V47,T27] (  3, 20   )     int  ->  [rbp-0x78]  spill-single-def "Inline stloc first use temp"
-;  V48 tmp27        [V48,T26] (  3, 20   )     ref  ->  r12         class-hnd exact "Inline stloc first use temp" <<unknown class>>
+;  V47 tmp26        [V47,T26] (  3, 20   )     int  ->  [rbp-0x78]  spill-single-def "Inline stloc first use temp"
+;  V48 tmp27        [V48,T25] (  3, 20   )     ref  ->  r12         class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;  V49 tmp28        [V49,T03] (  5, 66   )     int  ->  [rbp-0x7C]  "Inline stloc first use temp"
 ;  V50 tmp29        [V50,T18] (  2, 32   )     int  ->  rax         "Inlining Arg"
 ;  V51 tmp30        [V51,T19] (  2, 32   )     int  ->  rax         "Inlining Arg"
@@ -66,39 +66,38 @@
 ;  V55 tmp34        [V55    ] (  1,  2   )     ref  ->  [rbp-0x50]  do-not-enreg[X] addr-exposed "field V09.value (fldOffset=0x8)" P-DEP
 ;  V56 tmp35        [V56    ] (  2,  4   )     ref  ->  [rbp-0x68]  do-not-enreg[X] addr-exposed "field V16.key (fldOffset=0x0)" P-DEP
 ;  V57 tmp36        [V57    ] (  1,  2   )     ref  ->  [rbp-0x60]  do-not-enreg[X] addr-exposed "field V16.value (fldOffset=0x8)" P-DEP
-;  V58 tmp37        [V58,T54] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V59 tmp38        [V59,T34] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V60 tmp39        [V60,T48] (  2,  8   )     ref  ->  rcx         "argument with side effect"
+;  V58 tmp37        [V58,T53] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V59 tmp38        [V59,T33] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V60 tmp39        [V60,T47] (  2,  8   )     ref  ->  rcx         "argument with side effect"
 ;  V61 tmp40        [V61,T12] (  2, 32   )     ref  ->  rcx         "argument with side effect"
-;  V62 tmp41        [V62,T62] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V63 tmp42        [V63,T55] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V64 tmp43        [V64,T56] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V65 tmp44        [V65,T35] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V66 tmp45        [V66,T49] (  2,  8   )     ref  ->  rcx         "argument with side effect"
+;  V62 tmp41        [V62,T61] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V63 tmp42        [V63,T54] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V64 tmp43        [V64,T55] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V65 tmp44        [V65,T34] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V66 tmp45        [V66,T48] (  2,  8   )     ref  ->  rcx         "argument with side effect"
 ;  V67 tmp46        [V67,T13] (  2, 32   )     ref  ->  rcx         "argument with side effect"
-;  V68 tmp47        [V68,T63] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V69 tmp48        [V69,T57] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V70 tmp49        [V70,T58] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V71 tmp50        [V71,T36] (  2, 16   )     ref  ->  r11         "argument with side effect"
-;  V72 tmp51        [V72,T50] (  2,  8   )     ref  ->  rcx         "argument with side effect"
-;  V73 tmp52        [V73,T64] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V74 tmp53        [V74,T59] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V75 PSPSym       [V75,T61] (  1,  1   )    long  ->  [rbp-0xB8]  do-not-enreg[V] "PSPSym"
-;  V76 cse0         [V76,T45] (  4,  8   )     ref  ->  rbx         multi-def "CSE - moderate"
-;  V77 cse1         [V77,T40] (  6, 10.50)     ref  ->  rbx         multi-def "CSE - moderate"
-;  V78 cse2         [V78,T46] (  4,  8   )     ref  ->  rdi         multi-def "CSE - moderate"
-;  V79 cse3         [V79,T41] (  6, 10.50)     ref  ->  rdi         multi-def "CSE - moderate"
-;  V80 cse4         [V80,T47] (  4,  8   )     ref  ->  r15         multi-def "CSE - moderate"
-;  V81 cse5         [V81,T42] (  6, 10.50)     ref  ->  r15         multi-def "CSE - moderate"
-;  V82 cse6         [V82,T22] (  3, 24   )   byref  ->  [rbp-0xB0]  spill-single-def "CSE - moderate"
-;  V83 cse7         [V83,T06] (  4, 48   )    long  ->  rax         "CSE - aggressive"
-;  V84 cse8         [V84,T01] (  3, 68   )     int  ->  r12         "CSE - aggressive"
-;  V85 cse9         [V85,T28] (  3, 20   )     int  ->  [rbp-0x80]  spill-single-def "CSE - moderate"
-;  V86 cse10        [V86,T29] (  3, 20   )     int  ->  r15         "CSE - moderate"
-;  V87 cse11        [V87,T32] (  3, 16   )    long  ->  r12         "CSE - moderate"
-;  V88 cse12        [V88,T33] (  3, 16   )    long  ->  [rbp-0x88]  spill-single-def "CSE - moderate"
+;  V68 tmp47        [V68,T62] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V69 tmp48        [V69,T56] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V70 tmp49        [V70,T57] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V71 tmp50        [V71,T35] (  2, 16   )     ref  ->  r11         "argument with side effect"
+;  V72 tmp51        [V72,T49] (  2,  8   )     ref  ->  rcx         "argument with side effect"
+;  V73 tmp52        [V73,T63] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V74 tmp53        [V74,T58] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V75 PSPSym       [V75,T60] (  1,  1   )    long  ->  [rbp-0xC8]  do-not-enreg[V] "PSPSym"
+;  V76 cse0         [V76,T44] (  4,  8   )     ref  ->  rbx         multi-def "CSE - moderate"
+;  V77 cse1         [V77,T39] (  6, 10.50)     ref  ->  rbx         multi-def "CSE - moderate"
+;  V78 cse2         [V78,T45] (  4,  8   )     ref  ->  rdi         multi-def "CSE - moderate"
+;  V79 cse3         [V79,T40] (  6, 10.50)     ref  ->  rdi         multi-def "CSE - moderate"
+;  V80 cse4         [V80,T46] (  4,  8   )     ref  ->  r15         multi-def "CSE - moderate"
+;  V81 cse5         [V81,T41] (  6, 10.50)     ref  ->  r15         multi-def "CSE - moderate"
+;  V82 cse6         [V82,T06] (  5, 56   )    long  ->  [rbp-0x88]  spill-single-def "CSE - aggressive"
+;  V83 cse7         [V83,T01] (  3, 68   )     int  ->  r12         "CSE - aggressive"
+;  V84 cse8         [V84,T27] (  3, 20   )     int  ->  [rbp-0x8C]  spill-single-def "CSE - moderate"
+;  V85 cse9         [V85,T28] (  3, 20   )     int  ->  r15         "CSE - moderate"
+;  V86 cse10        [V86,T31] (  3, 16   )    long  ->  r12         "CSE - moderate"
+;  V87 cse11        [V87,T32] (  3, 16   )    long  ->  [rbp-0x98]  spill-single-def "CSE - moderate"
 ;
-; Lcl frame size = 168
+; Lcl frame size = 184
 
 G_M59307_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
@@ -109,14 +108,14 @@ G_M59307_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 168
-       lea      rbp, [rsp+0xE0]
+       sub      rsp, 184
+       lea      rbp, [rsp+0xF0]
        xor      eax, eax
        mov      qword ptr [rbp-0x68], rax
        vxorps   xmm4, xmm4, xmm4
        vmovdqu  ymmword ptr [rbp-0x60], ymm4
        mov      qword ptr [rbp-0x40], rax
-       mov      qword ptr [rbp-0xB8], rsp
+       mov      qword ptr [rbp-0xC8], rsp
        mov      rbx, rcx
        ; gcrRegs +[rbx]
                        ;; size=56 bbWeight=1 PerfScore 14.58
@@ -153,13 +152,13 @@ G_M59307_IG04:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
        cmp      dword ptr [r15+0x08], 0
        jle      G_M59307_IG09
                        ;; size=18 bbWeight=1 PerfScore 6.25
-G_M59307_IG05:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M59307_IG05:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
        mov      ecx, r13d
        mov      r12, gword ptr [r15+8*rcx+0x10]
        ; gcrRegs +[r12]
        test     r12, r12
-       je       SHORT G_M59307_IG08
-                       ;; size=13 bbWeight=4 PerfScore 14.00
+       je       G_M59307_IG08
+                       ;; size=17 bbWeight=4 PerfScore 14.00
 G_M59307_IG06:        ; bbWeight=2, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
@@ -181,10 +180,10 @@ G_M59307_IG06:        ; bbWeight=2, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=
        mov      r12, gword ptr [r12+0x08]
        xor      eax, eax
        mov      r10d, dword ptr [r12+0x08]
-       mov      dword ptr [rbp-0x80], r10d
+       mov      dword ptr [rbp-0x8C], r10d
        test     r10d, r10d
        jle      SHORT G_M59307_IG08
-                       ;; size=73 bbWeight=2 PerfScore 31.50
+                       ;; size=76 bbWeight=2 PerfScore 31.50
 G_M59307_IG07:        ; bbWeight=16, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      r11d, dword ptr [rbp-0x78]
        mov      dword ptr [rsp+0x20], r11d
@@ -201,10 +200,10 @@ G_M59307_IG07:        ; bbWeight=16, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs
        ; gcr arg pop 0
        mov      eax, dword ptr [rbp-0x7C]
        inc      eax
-       mov      ecx, dword ptr [rbp-0x80]
+       mov      ecx, dword ptr [rbp-0x8C]
        cmp      ecx, eax
        jg       SHORT G_M59307_IG07
-                       ;; size=48 bbWeight=16 PerfScore 260.00
+                       ;; size=51 bbWeight=16 PerfScore 260.00
 G_M59307_IG08:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r12]
        mov      rcx, 0xD1FFAB1E
@@ -235,10 +234,10 @@ G_M59307_IG10:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
        call     [r11]<unknown method>
        ; gcrRegs -[rcx rbx] +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rbp-0x90], rax
+       mov      gword ptr [rbp-0xA0], rax
        ; GC ptr vars +{V06}
                        ;; size=59 bbWeight=0.50 PerfScore 6.00
-G_M59307_IG11:        ; bbWeight=0.50, gcVars=00000000000000000000002000000000 {V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M59307_IG11:        ; bbWeight=0.50, gcVars=0000001000000000 {V06}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
        jmp      SHORT G_M59307_IG13
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M59307_IG12:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
@@ -246,7 +245,7 @@ G_M59307_IG12:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       mov      rcx, gword ptr [rbp-0x90]
+       mov      rcx, gword ptr [rbp-0xA0]
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
@@ -264,7 +263,7 @@ G_M59307_IG12:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        call     [System.Array:Clear(System.Array)]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rax, gword ptr [rbp-0x90]
+       mov      rax, gword ptr [rbp-0xA0]
        ; gcrRegs +[rax]
                        ;; size=74 bbWeight=2 PerfScore 25.00
 G_M59307_IG13:        ; bbWeight=4, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
@@ -274,7 +273,7 @@ G_M59307_IG13:        ; bbWeight=4, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byr
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
-       mov      rcx, gword ptr [rbp-0x90]
+       mov      rcx, gword ptr [rbp-0xA0]
        ; gcrRegs +[rcx]
        mov      rbx, rcx
        ; gcrRegs +[rbx]
@@ -293,7 +292,7 @@ G_M59307_IG14:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        mov      rcx, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        ; gcr arg pop 0
-       mov      rcx, gword ptr [rbp-0x90]
+       mov      rcx, gword ptr [rbp-0xA0]
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; GC ptr vars -{V06}
@@ -327,15 +326,15 @@ G_M59307_IG15:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
        call     [r11]<unknown method>
...

+13 (+2.82%) : 289356.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (Tier0-FullOpts)

@@ -3,48 +3,48 @@
 ; Tier-0 switched to FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  3,  3   )   byref  ->  rcx         this single-def
-;  V01 arg1         [V01,T03] (  3,  6   )   byref  ->  rdx         single-def
+;  V00 this         [V00,T03] (  3,  3   )   byref  ->  rcx         this single-def
+;  V01 arg1         [V01,T01] (  3,  6   )   byref  ->  rdx         single-def
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
-;  V03 loc1         [V03,T02] (  9, 12   )     int  ->  rbp        
+;  V03 loc1         [V03,T04] (  9,  4.75)     int  ->  rbp        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[int]>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [rsp+0x20]  do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Decimal>
-;  V09 tmp4         [V09,T06] (  3,  3   )     ref  ->  rcx         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V10 tmp5         [V10,T13] (  2,  2   )     int  ->  rdx         "Strict ordering of exceptions for Array store"
+;  V09 tmp4         [V09,T05] (  3,  3   )     ref  ->  rcx         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V10 tmp5         [V10,T12] (  2,  2   )     int  ->  rdx         "Strict ordering of exceptions for Array store"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
-;  V13 tmp8         [V13,T20] (  2,  1   )     int  ->  rcx        
-;  V14 tmp9         [V14,T07] (  3,  3   )     ref  ->  rcx         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V15 tmp10        [V15,T14] (  2,  2   )     int  ->  rdx         "Strict ordering of exceptions for Array store"
-;  V16 tmp11        [V16,T08] (  3,  3   )     ref  ->  rcx         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V17 tmp12        [V17,T15] (  2,  2   )     int  ->  rdx         "Strict ordering of exceptions for Array store"
-;  V18 tmp13        [V18,T16] (  2,  2   )     int  ->  rdx         "impAppendStmt"
+;  V13 tmp8         [V13,T19] (  2,  1   )     int  ->  rcx        
+;  V14 tmp9         [V14,T06] (  3,  3   )     ref  ->  rcx         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V15 tmp10        [V15,T13] (  2,  2   )     int  ->  rdx         "Strict ordering of exceptions for Array store"
+;  V16 tmp11        [V16,T07] (  3,  3   )     ref  ->  rcx         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V17 tmp12        [V17,T14] (  2,  2   )     int  ->  rdx         "Strict ordering of exceptions for Array store"
+;  V18 tmp13        [V18,T15] (  2,  2   )     int  ->  rdx         "impAppendStmt"
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    ptr
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp18        [V23,T21] (  2,  1   )     int  ->  rcx        
+;  V23 tmp18        [V23,T20] (  2,  1   )     int  ->  rcx        
 ;  V24 tmp19        [V24    ] (  6, 11   )  struct (16) [rsp+0x30]  do-not-enreg[XS] addr-exposed ld-addr-op ptr "Inlining Arg" <System.Decimal>
-;  V25 tmp20        [V25,T10] (  3,  2.50)     int  ->  rdx         "Inline stloc first use temp"
+;  V25 tmp20        [V25,T09] (  3,  2.50)     int  ->  rdx         "Inline stloc first use temp"
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Decimal>
 ;* V28 tmp23        [V28    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V29 tmp24        [V29    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V30 tmp25        [V30    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;  V31 tmp26        [V31,T01] ( 12, 12   )   byref  ->  rbx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V32 tmp27        [V32,T22] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp26        [V31,T00] ( 14,  9.50)   byref  ->  rbx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V32 tmp27        [V32,T21] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp28        [V33    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V34 tmp29        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V35 tmp30        [V35,T11] (  2,  2   )   byref  ->  rbx         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V36 tmp31        [V36,T23] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
+;  V35 tmp30        [V35,T10] (  2,  2   )   byref  ->  rbx         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V36 tmp31        [V36,T22] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V37 tmp32        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V08._flags (fldOffset=0x0)" P-INDEP
 ;* V38 tmp33        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V08._hi32 (fldOffset=0x4)" P-INDEP
 ;* V39 tmp34        [V39    ] (  0,  0   )    long  ->  zero-ref    "field V08._lo64 (fldOffset=0x8)" P-INDEP
@@ -53,14 +53,13 @@
 ;  V42 tmp37        [V42    ] (  3,  4   )    long  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed "field V24._lo64 (fldOffset=0x8)" P-DEP
 ;* V43 tmp38        [V43    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V44 tmp39        [V44    ] (  0,  0   )     int  ->  zero-ref    ptr "field V26._length (fldOffset=0x8)" P-INDEP
-;  V45 tmp40        [V45,T17] (  2,  2   )     int  ->  rax         "field V27._flags (fldOffset=0x0)" P-INDEP
-;  V46 tmp41        [V46,T18] (  2,  2   )     int  ->  rcx         "field V27._hi32 (fldOffset=0x4)" P-INDEP
-;  V47 tmp42        [V47,T09] (  3,  3   )    long  ->  rdx         "field V27._lo64 (fldOffset=0x8)" P-INDEP
+;  V45 tmp40        [V45,T16] (  2,  2   )     int  ->  rax         "field V27._flags (fldOffset=0x0)" P-INDEP
+;  V46 tmp41        [V46,T17] (  2,  2   )     int  ->  rcx         "field V27._hi32 (fldOffset=0x4)" P-INDEP
+;  V47 tmp42        [V47,T08] (  3,  3   )    long  ->  rdx         "field V27._lo64 (fldOffset=0x8)" P-INDEP
 ;  V48 GsCookie     [V48    ] (  1,  1   )    long  ->  [rsp+0x40]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V49 tmp44        [V49,T04] ( 11,  6   )   byref  ->  rdi         single-def "shadowVar"
-;  V50 tmp45        [V50,T12] (  2,  2   )   byref  ->  rdx         single-def "shadowVar"
-;  V51 cse0         [V51,T19] (  3,  1.50)     int  ->  rdx         "CSE - moderate"
-;  V52 cse1         [V52,T00] (  4, 14   )     int  ->  rax         "CSE - aggressive"
+;  V49 tmp44        [V49,T02] ( 11,  6   )   byref  ->  rdi         single-def "shadowVar"
+;  V50 tmp45        [V50,T11] (  2,  2   )   byref  ->  rdx         single-def "shadowVar"
+;  V51 cse0         [V51,T18] (  3,  1.50)     int  ->  rdx         "CSE - moderate"
 ;
 ; Lcl frame size = 72
 
@@ -107,29 +106,46 @@ G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi},
        mov      ebp, 3
        jmp      SHORT G_M46478_IG06
                        ;; size=35 bbWeight=1 PerfScore 9.75
-G_M46478_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
-       mov      ebp, eax
-       test     ebp, ebp
-       jle      SHORT G_M46478_IG07
-                       ;; size=6 bbWeight=2 PerfScore 3.00
-G_M46478_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
-       lea      eax, [rbp-0x01]
-       cmp      eax, 4
-       jae      G_M46478_IG20
-       mov      ecx, eax
-       cmp      dword ptr [rbx+4*rcx], 0
+G_M46478_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       mov      ebp, 2
+       jmp      SHORT G_M46478_IG09
+                       ;; size=7 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       cmp      dword ptr [rbx+0x08], 0
        je       SHORT G_M46478_IG05
-                       ;; size=20 bbWeight=4 PerfScore 24.00
-G_M46478_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+                       ;; size=6 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG07:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       jmp      SHORT G_M46478_IG13
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M46478_IG08:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       mov      ebp, 1
+       jmp      SHORT G_M46478_IG12
+                       ;; size=7 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       cmp      dword ptr [rbx+0x04], 0
+       je       SHORT G_M46478_IG08
+                       ;; size=6 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG10:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       jmp      SHORT G_M46478_IG13
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M46478_IG11:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       xor      ebp, ebp
+       jmp      SHORT G_M46478_IG13
+                       ;; size=4 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       cmp      dword ptr [rbx], 0
+       je       SHORT G_M46478_IG11
+                       ;; size=5 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
        test     ebp, ebp
-       jne      SHORT G_M46478_IG12
+       jne      SHORT G_M46478_IG18
                        ;; size=4 bbWeight=1 PerfScore 1.25
-G_M46478_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
+G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
        ; byrRegs -[rbx]
        test     byte  ptr [(reloc)], 1      ; global ptr
-       je       G_M46478_IG21
+       je       G_M46478_IG27
                        ;; size=13 bbWeight=0.50 PerfScore 2.00
-G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
+G_M46478_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
        mov      rax, 0xD1FFAB1E      ; box for <unknown class>:<unknown field>
        mov      rsi, gword ptr [rax]
        ; gcrRegs +[rsi]
@@ -140,15 +156,15 @@ G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi},
        movsq    
        mov      rcx, 0xD1FFAB1E
        cmp      qword ptr [rsp+0x40], rcx
-       je       SHORT G_M46478_IG10
+       je       SHORT G_M46478_IG16
        call     CORINFO_HELP_FAIL_FAST
        ; byrRegs -[rsi rdi]
        ; gcr arg pop 0
                        ;; size=46 bbWeight=0.50 PerfScore 4.38
-G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M46478_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+G_M46478_IG17:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 72
        pop      rbx
        pop      rbp
@@ -156,13 +172,13 @@ G_M46478_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rdi
        ret      
                        ;; size=9 bbWeight=0.50 PerfScore 1.62
-G_M46478_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, gcvars, byref, isz
+G_M46478_IG18:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, gcvars, byref, isz
        ; byrRegs +[rbx rdi]
        cmp      ebp, 1
-       jne      SHORT G_M46478_IG15
+       jne      SHORT G_M46478_IG21
        mov      edx, dword ptr [rbx]
        test     edx, edx
-       jle      SHORT G_M46478_IG15
+       jle      SHORT G_M46478_IG21
        mov      dword ptr [rdi+0x08], edx
        mov      edx, dword ptr [rdi+0x08]
        mov      ecx, -1
@@ -176,16 +192,16 @@ G_M46478_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        mov      gword ptr [rdi], rdx
        mov      rcx, 0xD1FFAB1E
        cmp      qword ptr [rsp+0x40], rcx
-       je       SHORT G_M46478_IG13
+       je       SHORT G_M46478_IG19
        call     CORINFO_HELP_FAIL_FAST
        ; gcrRegs -[rdx]
        ; byrRegs -[rbx rdi]
        ; gcr arg pop 0
                        ;; size=70 bbWeight=0.50 PerfScore 9.88
-G_M46478_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46478_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M46478_IG14:        ; bbWeight=0.50, epilog, nogc, extend
+G_M46478_IG20:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 72
        pop      rbx
        pop      rbp
@@ -193,7 +209,7 @@ G_M46478_IG14:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rdi
        ret      
                        ;; size=9 bbWeight=0.50 PerfScore 1.62
-G_M46478_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, gcvars, byref, isz
+G_M46478_IG21:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, gcvars, byref, isz
        ; byrRegs +[rbx rdi]
        movsxd   rdx, ebp
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
@@ -211,28 +227,28 @@ G_M46478_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        ; gcrRegs +[rcx]
        mov      edx, dword ptr [rbx]
        cmp      dword ptr [rcx+0x08], 0
-       jbe      SHORT G_M46478_IG20
+       jbe      SHORT G_M46478_IG26
        mov      dword ptr [rcx+0x10], edx
        cmp      ebp, 1
-       jle      SHORT G_M46478_IG16
+       jle      SHORT G_M46478_IG22
        mov      rcx, gword ptr [rdi]
        mov      edx, dword ptr [rbx+0x04]
        cmp      dword ptr [rcx+0x08], 1
-       jbe      SHORT G_M46478_IG20
+       jbe      SHORT G_M46478_IG26
        mov      dword ptr [rcx+0x14], edx
                        ;; size=63 bbWeight=0.50 PerfScore 11.12
-G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+G_M46478_IG22:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
        ; gcrRegs -[rcx]
        cmp      ebp, 2
-       jle      SHORT G_M46478_IG17
+       jle      SHORT G_M46478_IG23
        mov      rcx, gword ptr [rdi]
        ; gcrRegs +[rcx]
        mov      edx, dword ptr [rbx+0x08]
        cmp      dword ptr [rcx+0x08], 2
-       jbe      SHORT G_M46478_IG20
+       jbe      SHORT G_M46478_IG26
        mov      dword ptr [rcx+0x18], edx
                        ;; size=20 bbWeight=0.50 PerfScore 5.12
-G_M46478_IG17:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+G_M46478_IG23:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
...

librariestestsnotieredcompilation.run.windows.x64.Release.mch

-2 (-0.14%) : 194247.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

@@ -12,14 +12,14 @@
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.DateTime>
 ;  V02 arg2         [V02,T29] (  8,  7   )   ubyte  ->  [rbp+0x20]  EH-live single-def
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V04 loc1         [V04,T01] ( 11,116   )     ref  ->  r15         class-hnd <<unknown class>>
+;  V04 loc1         [V04,T05] (  8, 68   )     ref  ->  r15         class-hnd <<unknown class>>
 ;  V05 loc2         [V05,T27] (  3, 12   )     int  ->  rdx        
-;  V06 loc3         [V06,T03] (  7,108   )     ref  ->  registers   class-hnd <System.Runtime.Caching.MemoryCacheEntry>
+;  V06 loc3         [V06,T02] (  7,108   )     ref  ->  registers   class-hnd <System.Runtime.Caching.MemoryCacheEntry>
 ;  V07 loc4         [V07,T14] (  5, 35   )     int  ->  [rbp-0x3C]  do-not-enreg[Z] EH-live
 ;  V08 loc5         [V08,T37] (  2,  5   )     ref  ->  rbx         class-hnd exact single-def <System.Runtime.Caching.MemoryCacheStore>
 ;* V09 loc6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Runtime.Caching.ExpiresEntryRef>
 ;* V10 loc7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    <System.Runtime.Caching.ExpiresEntryRef>
-;  V11 loc8         [V11,T04] ( 16, 74   )     ref  ->  [rbp-0x68]  class-hnd exact EH-live single-def <System.Runtime.Caching.ExpiresBucket>
+;  V11 loc8         [V11,T03] ( 16, 74   )     ref  ->  [rbp-0x68]  class-hnd exact EH-live single-def <System.Runtime.Caching.ExpiresBucket>
 ;  V12 loc9         [V12    ] (  6,  6   )   ubyte  ->  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;  V13 loc10        [V13,T25] (  4, 13   )     int  ->  rbx        
 ;* V14 loc11        [V14,T46] (  0,  0   )     int  ->  zero-ref    do-not-enreg[M] EH-live
@@ -60,7 +60,7 @@
 ;  V49 tmp29        [V49,T31] (  6,  6   )     ref  ->  rbx         class-hnd exact "Inlining Arg" <System.Runtime.Caching.MemoryCacheStore>
 ;  V50 tmp30        [V50,T30] (  5,  5   )    long  ->  rbx         single-def "field V01._dateData (fldOffset=0x0)" P-INDEP
 ;  V51 tmp31        [V51,T15] (  5, 35   )     int  ->  [rbp-0x5C]  do-not-enreg[Z] EH-live "field V03._ref (fldOffset=0x0)" P-INDEP
-;  V52 tmp32        [V52,T05] ( 13, 71   )     int  ->  rdx         "field V09._ref (fldOffset=0x0)" P-INDEP
+;  V52 tmp32        [V52,T04] ( 13, 71   )     int  ->  rdx         "field V09._ref (fldOffset=0x0)" P-INDEP
 ;  V53 tmp33        [V53,T19] (  4, 24   )     int  ->  rsi         "field V10._ref (fldOffset=0x0)" P-INDEP
 ;* V54 tmp34        [V54,T49] (  0,  0   )     int  ->  zero-ref    single-def "field V21._ref (fldOffset=0x0)" P-INDEP
 ;* V55 tmp35        [V55,T24] (  0,  0   )     int  ->  zero-ref    "field V22._ref (fldOffset=0x0)" P-INDEP
@@ -78,9 +78,9 @@
 ;  V67 tmp47        [V67,T09] (  3, 48   )     ref  ->  rcx         "arr expr"
 ;  V68 tmp48        [V68,T10] (  3, 48   )     ref  ->  rcx         "arr expr"
 ;  V69 PSPSym       [V69,T50] (  1,  1   )    long  ->  [rbp-0x80]  do-not-enreg[V] "PSPSym"
-;  V70 cse0         [V70,T23] (  4, 16   )   byref  ->  rdx         "CSE - moderate"
-;  V71 cse1         [V71,T11] (  3, 48   )    long  ->  rcx         "CSE - aggressive"
-;  V72 cse2         [V72,T02] (  5,112   )    long  ->   r8         "CSE - aggressive"
+;  V70 cse0         [V70,T11] (  3, 48   )    long  ->  rcx         "CSE - aggressive"
+;  V71 cse1         [V71,T01] (  5,112   )   byref  ->   r8         "CSE - aggressive"
+;  V72 cse2         [V72,T23] (  4, 16   )   byref  ->  rdx         "CSE - moderate"
 ;  V73 cse3         [V73,T22] (  4, 19   )    long  ->  rsi         "CSE - moderate"
 ;  V74 cse4         [V74,T44] (  3,  3   )     ref  ->  rdx         "CSE - moderate"
 ;  V75 cse5         [V75,T45] (  3,  3   )     ref  ->  rcx         "CSE - moderate"
@@ -197,7 +197,7 @@ G_M744_IG10:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
        xor      edx, edx
        mov      dword ptr [rbp-0x48], edx
                        ;; size=12 bbWeight=1 PerfScore 2.50
-G_M744_IG11:        ; bbWeight=1, gcVars=0000000000040010 {V00 V11}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M744_IG11:        ; bbWeight=1, gcVars=0000000000040008 {V00 V11}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rcx]
        ; GC ptr vars -{V18}
        cmp      byte  ptr [rbp-0x48], 0
@@ -214,9 +214,9 @@ G_M744_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M744_IG14:        ; bbWeight=1, gcVars=0000000000040010 {V00 V11}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M744_IG14:        ; bbWeight=1, gcVars=0000000000040008 {V00 V11}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rdi]
-       ; GC ptr vars +{V04 V11}
+       ; GC ptr vars +{V11}
        lea      rdx, [rbp-0x48]
        mov      rcx, rdi
        ; gcrRegs +[rcx]
@@ -306,15 +306,17 @@ G_M744_IG19:        ; bbWeight=4, gcrefRegs=8080 {rdi r15}, byrefRegs=0000 {}, b
                        ;; size=42 bbWeight=4 PerfScore 30.00
 G_M744_IG20:        ; bbWeight=32, gcrefRegs=8080 {rdi r15}, byrefRegs=0000 {}, byref, isz
        mov      dword ptr [rbp-0x4C], eax
-       mov      r8d, eax
-       shl      r8, 4
-       mov      rdx, gword ptr [r15+r8+0x18]
+       mov      edx, eax
+       shl      rdx, 4
+       lea      r8, bword ptr [r15+rdx+0x10]
+       ; byrRegs +[r8]
+       mov      rdx, gword ptr [r8+0x08]
        ; gcrRegs +[rdx]
        test     rdx, rdx
        je       SHORT G_M744_IG24
-                       ;; size=20 bbWeight=32 PerfScore 160.00
-G_M744_IG21:        ; bbWeight=16, gcrefRegs=8084 {rdx rdi r15}, byrefRegs=0000 {}, byref, isz
-       mov      rcx, qword ptr [r15+r8+0x10]
+                       ;; size=23 bbWeight=32 PerfScore 192.00
+G_M744_IG21:        ; bbWeight=16, gcrefRegs=8084 {rdx rdi r15}, byrefRegs=0100 {r8}, byref, isz
+       mov      rcx, qword ptr [r8]
        mov      r10, rcx
        mov      r9, 0xD1FFAB1E
        and      r10, r9
@@ -326,17 +328,19 @@ G_M744_IG21:        ; bbWeight=16, gcrefRegs=8084 {rdx rdi r15}, byrefRegs=0000
        ; gcrRegs +[rcx]
        call     [System.Runtime.Caching.ExpiresBucket:AddCount(System.DateTime):this]
        ; gcrRegs -[rcx]
+       ; byrRegs -[r8]
        ; gcr arg pop 0
        jmp      SHORT G_M744_IG23
-                       ;; size=40 bbWeight=16 PerfScore 152.00
-G_M744_IG22:        ; bbWeight=16, gcrefRegs=8084 {rdx rdi r15}, byrefRegs=0000 {}, byref
+                       ;; size=38 bbWeight=16 PerfScore 152.00
+G_M744_IG22:        ; bbWeight=16, gcrefRegs=8084 {rdx rdi r15}, byrefRegs=0100 {r8}, byref
        ; gcrRegs +[rdx]
+       ; byrRegs +[r8]
        mov      byte  ptr [rdx+0x30], 255
        xor      ecx, ecx
        mov      dword ptr [rdx+0x50], ecx
-       mov      dword ptr [r15+r8+0x14], 1
+       mov      dword ptr [r8+0x04], 1
        mov      ecx, dword ptr [rbp-0x5C]
-       mov      dword ptr [r15+r8+0x10], ecx
+       mov      dword ptr [r8], ecx
        mov      ecx, r14d
        shl      ecx, 8
        mov      eax, dword ptr [rbp-0x4C]
@@ -349,8 +353,9 @@ G_M744_IG22:        ; bbWeight=16, gcrefRegs=8084 {rdx rdi r15}, byrefRegs=0000
        mov      dword ptr [rbp-0x3C], ecx
        inc      dword ptr [rdi+0x28]
        mov      dword ptr [rbp-0x4C], eax
-                       ;; size=57 bbWeight=16 PerfScore 236.00
+                       ;; size=54 bbWeight=16 PerfScore 236.00
 G_M744_IG23:        ; bbWeight=16, gcrefRegs=8080 {rdi r15}, byrefRegs=0000 {}, byref, isz
+       ; byrRegs -[r8]
        dec      r12d
        je       SHORT G_M744_IG25
                        ;; size=5 bbWeight=16 PerfScore 20.00
@@ -380,7 +385,7 @@ G_M744_IG27:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
                        ;; size=10 bbWeight=1 PerfScore 4.00
 G_M744_IG28:        ; bbWeight=1, gcVars=0000000000040000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rdi]
-       ; GC ptr vars -{V04 V11}
+       ; GC ptr vars -{V11}
        cmp      byte  ptr [rbp-0x48], 0
        je       SHORT G_M744_IG32
        mov      rcx, gword ptr [rbp+0x10]
@@ -802,7 +807,7 @@ G_M744_IG68:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=17 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1396, prolog size 49, PerfScore 1418.75, instruction count 436, allocated bytes for code 1396 (MethodHash=d871fd17) for method System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)
+; Total bytes of code 1394, prolog size 49, PerfScore 1450.75, instruction count 437, allocated bytes for code 1394 (MethodHash=d871fd17) for method System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+13 (+2.82%) : 121925.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

@@ -3,48 +3,48 @@
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  3,  3   )   byref  ->  rcx         this single-def
-;  V01 arg1         [V01,T03] (  3,  6   )   byref  ->  rdx         single-def
+;  V00 this         [V00,T03] (  3,  3   )   byref  ->  rcx         this single-def
+;  V01 arg1         [V01,T01] (  3,  6   )   byref  ->  rdx         single-def
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
-;  V03 loc1         [V03,T02] (  9, 12   )     int  ->  rbp        
+;  V03 loc1         [V03,T04] (  9,  4.75)     int  ->  rbp        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[int]>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [rsp+0x20]  do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Decimal>
-;  V09 tmp4         [V09,T06] (  3,  3   )     ref  ->  rcx         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V10 tmp5         [V10,T13] (  2,  2   )     int  ->  rdx         "Strict ordering of exceptions for Array store"
+;  V09 tmp4         [V09,T05] (  3,  3   )     ref  ->  rcx         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V10 tmp5         [V10,T12] (  2,  2   )     int  ->  rdx         "Strict ordering of exceptions for Array store"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
-;  V13 tmp8         [V13,T20] (  2,  1   )     int  ->  rcx        
-;  V14 tmp9         [V14,T07] (  3,  3   )     ref  ->  rcx         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V15 tmp10        [V15,T14] (  2,  2   )     int  ->  rdx         "Strict ordering of exceptions for Array store"
-;  V16 tmp11        [V16,T08] (  3,  3   )     ref  ->  rcx         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V17 tmp12        [V17,T15] (  2,  2   )     int  ->  rdx         "Strict ordering of exceptions for Array store"
-;  V18 tmp13        [V18,T16] (  2,  2   )     int  ->  rdx         "impAppendStmt"
+;  V13 tmp8         [V13,T19] (  2,  1   )     int  ->  rcx        
+;  V14 tmp9         [V14,T06] (  3,  3   )     ref  ->  rcx         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V15 tmp10        [V15,T13] (  2,  2   )     int  ->  rdx         "Strict ordering of exceptions for Array store"
+;  V16 tmp11        [V16,T07] (  3,  3   )     ref  ->  rcx         class-hnd single-def "Strict ordering of exceptions for Array store" <<unknown class>>
+;  V17 tmp12        [V17,T14] (  2,  2   )     int  ->  rdx         "Strict ordering of exceptions for Array store"
+;  V18 tmp13        [V18,T15] (  2,  2   )     int  ->  rdx         "impAppendStmt"
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    ptr
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp18        [V23,T21] (  2,  1   )     int  ->  rcx        
+;  V23 tmp18        [V23,T20] (  2,  1   )     int  ->  rcx        
 ;  V24 tmp19        [V24    ] (  6, 11   )  struct (16) [rsp+0x30]  do-not-enreg[XS] addr-exposed ld-addr-op ptr "Inlining Arg" <System.Decimal>
-;  V25 tmp20        [V25,T10] (  3,  2.50)     int  ->  rdx         "Inline stloc first use temp"
+;  V25 tmp20        [V25,T09] (  3,  2.50)     int  ->  rdx         "Inline stloc first use temp"
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Decimal>
 ;* V28 tmp23        [V28    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V29 tmp24        [V29    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V30 tmp25        [V30    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;  V31 tmp26        [V31,T01] ( 12, 12   )   byref  ->  rbx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V32 tmp27        [V32,T22] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp26        [V31,T00] ( 14,  9.50)   byref  ->  rbx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V32 tmp27        [V32,T21] (  0,  0   )     int  ->  zero-ref    ptr "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp28        [V33    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V34 tmp29        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V35 tmp30        [V35,T11] (  2,  2   )   byref  ->  rbx         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V36 tmp31        [V36,T23] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
+;  V35 tmp30        [V35,T10] (  2,  2   )   byref  ->  rbx         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V36 tmp31        [V36,T22] (  0,  0   )     int  ->  zero-ref    ptr "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V37 tmp32        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V08._flags (fldOffset=0x0)" P-INDEP
 ;* V38 tmp33        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V08._hi32 (fldOffset=0x4)" P-INDEP
 ;* V39 tmp34        [V39    ] (  0,  0   )    long  ->  zero-ref    "field V08._lo64 (fldOffset=0x8)" P-INDEP
@@ -53,14 +53,13 @@
 ;  V42 tmp37        [V42    ] (  3,  4   )    long  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed "field V24._lo64 (fldOffset=0x8)" P-DEP
 ;* V43 tmp38        [V43    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V44 tmp39        [V44    ] (  0,  0   )     int  ->  zero-ref    ptr "field V26._length (fldOffset=0x8)" P-INDEP
-;  V45 tmp40        [V45,T17] (  2,  2   )     int  ->  rax         "field V27._flags (fldOffset=0x0)" P-INDEP
-;  V46 tmp41        [V46,T18] (  2,  2   )     int  ->  rcx         "field V27._hi32 (fldOffset=0x4)" P-INDEP
-;  V47 tmp42        [V47,T09] (  3,  3   )    long  ->  rdx         "field V27._lo64 (fldOffset=0x8)" P-INDEP
+;  V45 tmp40        [V45,T16] (  2,  2   )     int  ->  rax         "field V27._flags (fldOffset=0x0)" P-INDEP
+;  V46 tmp41        [V46,T17] (  2,  2   )     int  ->  rcx         "field V27._hi32 (fldOffset=0x4)" P-INDEP
+;  V47 tmp42        [V47,T08] (  3,  3   )    long  ->  rdx         "field V27._lo64 (fldOffset=0x8)" P-INDEP
 ;  V48 GsCookie     [V48    ] (  1,  1   )    long  ->  [rsp+0x40]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V49 tmp44        [V49,T04] ( 11,  6   )   byref  ->  rdi         single-def "shadowVar"
-;  V50 tmp45        [V50,T12] (  2,  2   )   byref  ->  rdx         single-def "shadowVar"
-;  V51 cse0         [V51,T19] (  3,  1.50)     int  ->  rdx         "CSE - moderate"
-;  V52 cse1         [V52,T00] (  4, 14   )     int  ->  rax         "CSE - aggressive"
+;  V49 tmp44        [V49,T02] ( 11,  6   )   byref  ->  rdi         single-def "shadowVar"
+;  V50 tmp45        [V50,T11] (  2,  2   )   byref  ->  rdx         single-def "shadowVar"
+;  V51 cse0         [V51,T18] (  3,  1.50)     int  ->  rdx         "CSE - moderate"
 ;
 ; Lcl frame size = 72
 
@@ -107,29 +106,46 @@ G_M46478_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi},
        mov      ebp, 3
        jmp      SHORT G_M46478_IG06
                        ;; size=35 bbWeight=1 PerfScore 9.75
-G_M46478_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
-       mov      ebp, eax
-       test     ebp, ebp
-       jle      SHORT G_M46478_IG07
-                       ;; size=6 bbWeight=2 PerfScore 3.00
-G_M46478_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
-       lea      eax, [rbp-0x01]
-       cmp      eax, 4
-       jae      G_M46478_IG20
-       mov      ecx, eax
-       cmp      dword ptr [rbx+4*rcx], 0
+G_M46478_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       mov      ebp, 2
+       jmp      SHORT G_M46478_IG09
+                       ;; size=7 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       cmp      dword ptr [rbx+0x08], 0
        je       SHORT G_M46478_IG05
-                       ;; size=20 bbWeight=4 PerfScore 24.00
-G_M46478_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+                       ;; size=6 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG07:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       jmp      SHORT G_M46478_IG13
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M46478_IG08:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       mov      ebp, 1
+       jmp      SHORT G_M46478_IG12
+                       ;; size=7 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       cmp      dword ptr [rbx+0x04], 0
+       je       SHORT G_M46478_IG08
+                       ;; size=6 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG10:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       jmp      SHORT G_M46478_IG13
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M46478_IG11:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       xor      ebp, ebp
+       jmp      SHORT G_M46478_IG13
+                       ;; size=4 bbWeight=0.25 PerfScore 0.56
+G_M46478_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+       cmp      dword ptr [rbx], 0
+       je       SHORT G_M46478_IG11
+                       ;; size=5 bbWeight=0.50 PerfScore 2.00
+G_M46478_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
        test     ebp, ebp
-       jne      SHORT G_M46478_IG12
+       jne      SHORT G_M46478_IG18
                        ;; size=4 bbWeight=1 PerfScore 1.25
-G_M46478_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
+G_M46478_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
        ; byrRegs -[rbx]
        test     byte  ptr [(reloc)], 1      ; global ptr
-       je       G_M46478_IG21
+       je       G_M46478_IG27
                        ;; size=13 bbWeight=0.50 PerfScore 2.00
-G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
+G_M46478_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
        mov      rax, 0xD1FFAB1E      ; box for <unknown class>:<unknown field>
        mov      rsi, gword ptr [rax]
        ; gcrRegs +[rsi]
@@ -140,15 +156,15 @@ G_M46478_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi},
        movsq    
        mov      rcx, 0xD1FFAB1E
        cmp      qword ptr [rsp+0x40], rcx
-       je       SHORT G_M46478_IG10
+       je       SHORT G_M46478_IG16
        call     CORINFO_HELP_FAIL_FAST
        ; byrRegs -[rsi rdi]
        ; gcr arg pop 0
                        ;; size=46 bbWeight=0.50 PerfScore 4.38
-G_M46478_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M46478_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+G_M46478_IG17:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 72
        pop      rbx
        pop      rbp
@@ -156,13 +172,13 @@ G_M46478_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rdi
        ret      
                        ;; size=9 bbWeight=0.50 PerfScore 1.62
-G_M46478_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, gcvars, byref, isz
+G_M46478_IG18:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, gcvars, byref, isz
        ; byrRegs +[rbx rdi]
        cmp      ebp, 1
-       jne      SHORT G_M46478_IG15
+       jne      SHORT G_M46478_IG21
        mov      edx, dword ptr [rbx]
        test     edx, edx
-       jle      SHORT G_M46478_IG15
+       jle      SHORT G_M46478_IG21
        mov      dword ptr [rdi+0x08], edx
        mov      edx, dword ptr [rdi+0x08]
        mov      ecx, -1
@@ -176,16 +192,16 @@ G_M46478_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        mov      gword ptr [rdi], rdx
        mov      rcx, 0xD1FFAB1E
        cmp      qword ptr [rsp+0x40], rcx
-       je       SHORT G_M46478_IG13
+       je       SHORT G_M46478_IG19
        call     CORINFO_HELP_FAIL_FAST
        ; gcrRegs -[rdx]
        ; byrRegs -[rbx rdi]
        ; gcr arg pop 0
                        ;; size=70 bbWeight=0.50 PerfScore 9.88
-G_M46478_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46478_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M46478_IG14:        ; bbWeight=0.50, epilog, nogc, extend
+G_M46478_IG20:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 72
        pop      rbx
        pop      rbp
@@ -193,7 +209,7 @@ G_M46478_IG14:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rdi
        ret      
                        ;; size=9 bbWeight=0.50 PerfScore 1.62
-G_M46478_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, gcvars, byref, isz
+G_M46478_IG21:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, gcvars, byref, isz
        ; byrRegs +[rbx rdi]
        movsxd   rdx, ebp
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
@@ -211,28 +227,28 @@ G_M46478_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        ; gcrRegs +[rcx]
        mov      edx, dword ptr [rbx]
        cmp      dword ptr [rcx+0x08], 0
-       jbe      SHORT G_M46478_IG20
+       jbe      SHORT G_M46478_IG26
        mov      dword ptr [rcx+0x10], edx
        cmp      ebp, 1
-       jle      SHORT G_M46478_IG16
+       jle      SHORT G_M46478_IG22
        mov      rcx, gword ptr [rdi]
        mov      edx, dword ptr [rbx+0x04]
        cmp      dword ptr [rcx+0x08], 1
-       jbe      SHORT G_M46478_IG20
+       jbe      SHORT G_M46478_IG26
        mov      dword ptr [rcx+0x14], edx
                        ;; size=63 bbWeight=0.50 PerfScore 11.12
-G_M46478_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+G_M46478_IG22:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
        ; gcrRegs -[rcx]
        cmp      ebp, 2
-       jle      SHORT G_M46478_IG17
+       jle      SHORT G_M46478_IG23
        mov      rcx, gword ptr [rdi]
        ; gcrRegs +[rcx]
        mov      edx, dword ptr [rbx+0x08]
        cmp      dword ptr [rcx+0x08], 2
-       jbe      SHORT G_M46478_IG20
+       jbe      SHORT G_M46478_IG26
        mov      dword ptr [rcx+0x18], edx
                        ;; size=20 bbWeight=0.50 PerfScore 5.12
-G_M46478_IG17:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+G_M46478_IG23:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
...

smoke_tests.nativeaot.windows.x64.checked.mch

+51 (+2.16%) : 5210.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)

@@ -10,11 +10,11 @@
 ;
 ;  V00 this         [V00,T02] ( 30,250.50)   byref  ->  rbx         this single-def
 ;  V01 arg1         [V01,T27] ( 11, 12.33)     ref  ->  rdi         class-hnd single-def <System.IFormatProvider>
-;  V02 arg2         [V02,T04] ( 18,127   )     ref  ->  rsi         class-hnd exact single-def <System.String>
+;  V02 arg2         [V02,T04] ( 20,127   )     ref  ->  rsi         class-hnd exact single-def <System.String>
 ;  V03 arg3         [V03,T38] (  4,  8   )   byref  ->   r9         ld-addr-op single-def
 ;  V04 loc0         [V04,T52] (  3,  7   )     ref  ->  r15         class-hnd single-def <<unknown class>>
-;  V05 loc1         [V05,T00] ( 62,459   )     int  ->  r13         ld-addr-op
-;  V06 loc2         [V06,T01] ( 31,260   )  ushort  ->  [rsp+0xC4] 
+;  V05 loc1         [V05,T00] ( 72,463   )     int  ->  r13         ld-addr-op
+;  V06 loc2         [V06,T01] ( 35,260   )  ushort  ->  [rsp+0xC4] 
 ;  V07 loc3         [V07,T06] ( 12,102   )     int  ->  [rsp+0xC0] 
 ;  V08 loc4         [V08,T13] (  5, 46   )   ubyte  ->  [rsp+0xBC] 
 ;* V09 loc5         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ushort]>
@@ -136,7 +136,7 @@
 ;  V125 tmp104      [V125,T35] (  3, 12   )     ref  ->  rcx         "argument with side effect"
 ;* V126 tmp105      [V126,T65] (  0,  0   )   byref  ->  zero-ref    single-def "argument with side effect"
 ;  V127 cse0        [V127,T37] (  3, 12   )     int  ->  rax         "CSE - conservative"
-;  V128 cse1        [V128,T03] ( 18,142   )     int  ->  r12         "CSE - aggressive"
+;  V128 cse1        [V128,T03] ( 20,142   )     int  ->  r12         "CSE - aggressive"
 ;  V129 cse2        [V129,T05] (  7,108   )     int  ->  [rsp+0x74]  spill-single-def "CSE - aggressive"
 ;
 ; Lcl frame size = 200
@@ -169,7 +169,7 @@ G_M36935_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0208 {rb
        ; byrRegs +[rbp]
        mov      r14d, dword ptr [r9+0x08]
        test     rsi, rsi
-       je       G_M36935_IG74
+       je       G_M36935_IG79
        test     rdi, rdi
        jne      SHORT G_M36935_IG04
                        ;; size=21 bbWeight=1 PerfScore 6.50
@@ -237,7 +237,7 @@ G_M36935_IG10:        ; bbWeight=8, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        ; gcrRegs -[rax]
        mov      r12d, dword ptr [rsi+0x08]
        cmp      r12d, r13d
-       jbe      G_M36935_IG70
+       jbe      G_M36935_IG75
                        ;; size=13 bbWeight=8 PerfScore 26.00
 G_M36935_IG11:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        mov      ecx, r13d
@@ -280,9 +280,9 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        ; gcr arg pop 0
        mov      dword ptr [rsp+0xA8], eax
        test     eax, eax
-       jl       G_M36935_IG71
+       jl       G_M36935_IG76
        cmp      eax, dword ptr [rsp+0x98]
-       ja       G_M36935_IG81
+       ja       G_M36935_IG86
        mov      rcx, bword ptr [rsp+0x30]
        ; byrRegs +[rcx]
        mov      edx, eax
@@ -296,12 +296,12 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        ; gcr arg pop 0
        add      r13d, dword ptr [rsp+0xA8]
        cmp      r13d, r12d
-       jae      G_M36935_IG73
+       jae      G_M36935_IG78
        mov      ecx, r13d
        movzx    rax, word  ptr [rsi+2*rcx+0x0C]
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG77
+       jbe      G_M36935_IG82
        mov      ecx, r13d
        movzx    r8, word  ptr [rsi+2*rcx+0x0C]
        cmp      eax, r8d
@@ -335,7 +335,7 @@ G_M36935_IG16:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
                        ;; size=8 bbWeight=4 PerfScore 9.00
 G_M36935_IG17:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        cmp      eax, 123
-       jne      G_M36935_IG75
+       jne      G_M36935_IG80
        xor      eax, eax
        mov      dword ptr [rsp+0xC0], eax
        xor      r10d, r10d
@@ -348,7 +348,7 @@ G_M36935_IG17:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        mov      dword ptr [rsp+0x9C], r11d
        lea      ecx, [r13-0x01]
        cmp      ecx, r12d
-       jae      G_M36935_IG73
+       jae      G_M36935_IG78
        lea      ecx, [r13-0x01]
        cmp      word  ptr [rsi+2*rcx+0x0C], 123
        je       SHORT G_M36935_IG19
@@ -383,15 +383,15 @@ G_M36935_IG21:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        mov      r8d, dword ptr [rsp+0xC4]
        lea      edx, [r8-0x30]
        cmp      edx, 10
-       jae      G_M36935_IG76
+       jae      G_M36935_IG81
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG77
+       jbe      G_M36935_IG82
        mov      r8d, r13d
        movzx    r8, word  ptr [rsi+2*r8+0x0C]
        mov      ecx, r8d
        cmp      ecx, 125
-       je       G_M36935_IG40
+       je       G_M36935_IG45
                        ;; size=54 bbWeight=4 PerfScore 32.00
 G_M36935_IG22:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        jmp      SHORT G_M36935_IG24
@@ -402,7 +402,7 @@ G_M36935_IG23:        ; bbWeight=8, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        mov      dword ptr [rsp+0xB8], edx
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG77
+       jbe      G_M36935_IG82
        mov      ecx, r13d
        movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
        mov      edx, dword ptr [rsp+0xB8]
@@ -416,110 +416,139 @@ G_M36935_IG24:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=002
                        ;; size=18 bbWeight=16 PerfScore 48.00
 G_M36935_IG25:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        cmp      ecx, 32
-       jne      SHORT G_M36935_IG27
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M36935_IG26:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+       jne      SHORT G_M36935_IG29
+       test     r13d, r13d
+       jl       SHORT G_M36935_IG28
+                       ;; size=10 bbWeight=2 PerfScore 5.00
+G_M36935_IG26:        ; bbWeight=15.84, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG77
+       jbe      G_M36935_IG82
        mov      ecx, r13d
        movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
        cmp      ecx, 32
        je       SHORT G_M36935_IG26
-                       ;; size=25 bbWeight=16 PerfScore 80.00
-G_M36935_IG27:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref
-       cmp      ecx, 44
-       mov      eax, dword ptr [rsp+0xC0]
-       jne      G_M36935_IG35
-                       ;; size=16 bbWeight=2 PerfScore 4.50
-G_M36935_IG28:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+                       ;; size=25 bbWeight=15.84 PerfScore 79.20
+G_M36935_IG27:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+       jmp      SHORT G_M36935_IG29
+                       ;; size=2 bbWeight=2 PerfScore 4.00
+G_M36935_IG28:        ; bbWeight=0.16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG77
+       jbe      G_M36935_IG82
        mov      ecx, r13d
        movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
        cmp      ecx, 32
        je       SHORT G_M36935_IG28
+                       ;; size=25 bbWeight=0.16 PerfScore 0.80
+G_M36935_IG29:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref
+       cmp      ecx, 44
+       jne      G_M36935_IG41
+                       ;; size=9 bbWeight=2 PerfScore 2.50
+G_M36935_IG30:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+       inc      r13d
+       cmp      r12d, r13d
+       jbe      G_M36935_IG82
+       mov      ecx, r13d
+       movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
+       cmp      ecx, 32
+       je       SHORT G_M36935_IG30
                        ;; size=25 bbWeight=16 PerfScore 80.00
-G_M36935_IG29:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+G_M36935_IG31:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        cmp      ecx, 45
-       jne      SHORT G_M36935_IG30
+       jne      SHORT G_M36935_IG32
        mov      dword ptr [rsp+0xBC], 1
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG77
+       jbe      G_M36935_IG82
        mov      ecx, r13d
        movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
                        ;; size=36 bbWeight=2 PerfScore 12.00
-G_M36935_IG30:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+G_M36935_IG32:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        lea      eax, [rcx-0x30]
        cmp      eax, 10
-       jae      G_M36935_IG76
+       jae      G_M36935_IG81
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG77
-       jmp      SHORT G_M36935_IG32
+       jbe      G_M36935_IG82
+       jmp      SHORT G_M36935_IG34
                        ;; size=26 bbWeight=2 PerfScore 10.50
-G_M36935_IG31:        ; bbWeight=8, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref
+G_M36935_IG33:        ; bbWeight=8, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref
        lea      eax, [rax+4*rax]
        lea      eax, [rcx+2*rax-0x30]
        mov      dword ptr [rsp+0xC0], eax
        inc      r13d
        cmp      r12d, r13d
        mov      eax, dword ptr [rsp+0xC0]
-       jbe      G_M36935_IG77
+       jbe      G_M36935_IG82
                        ;; size=33 bbWeight=8 PerfScore 40.00
-G_M36935_IG32:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+G_M36935_IG34:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        cmp      r13d, r12d
-       jae      G_M36935_IG73
+       jae      G_M36935_IG78
        mov      ecx, r13d
        movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
        lea      r8d, [rcx-0x30]
        cmp      r8d, 9
-       ja       SHORT G_M36935_IG33
+       ja       SHORT G_M36935_IG35
        cmp      eax, 0xD1FFAB1E
-       jl       SHORT G_M36935_IG31
+       jl       SHORT G_M36935_IG33
                        ;; size=34 bbWeight=16 PerfScore 104.00
-G_M36935_IG33:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
-       cmp      ecx, 32
-       jne      SHORT G_M36935_IG35
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M36935_IG34:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
-       inc      r13d
-       cmp      r12d, r13d
-       jbe      G_M36935_IG77
-       mov      ecx, r13d
-       movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
-       cmp      ecx, 32
-       je       SHORT G_M36935_IG34
-                       ;; size=25 bbWeight=16 PerfScore 80.00
 G_M36935_IG35:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+       cmp      ecx, 32
+       jne      SHORT G_M36935_IG38
+       test     r13d, r13d
+       jl       SHORT G_M36935_IG39
+                       ;; size=10 bbWeight=2 PerfScore 5.00
+G_M36935_IG36:        ; bbWeight=15.84, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+       inc      r13d
+       cmp      r12d, r13d
+       jbe      G_M36935_IG82
+       mov      ecx, r13d
+       movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
+       cmp      ecx, 32
+       je       SHORT G_M36935_IG36
+                       ;; size=25 bbWeight=15.84 PerfScore 79.20
+G_M36935_IG37:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
...

+51 (+2.23%) : 16647.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)

@@ -9,11 +9,11 @@
 ;
 ;  V00 this         [V00,T02] ( 30,250.50)   byref  ->  rbx         this single-def
 ;  V01 arg1         [V01,T27] ( 11, 12.33)     ref  ->  rdi         class-hnd single-def <System.IFormatProvider>
-;  V02 arg2         [V02,T04] ( 18,127   )     ref  ->  rsi         class-hnd exact single-def <System.String>
+;  V02 arg2         [V02,T04] ( 20,127   )     ref  ->  rsi         class-hnd exact single-def <System.String>
 ;  V03 arg3         [V03,T37] (  4,  8   )   byref  ->   r9         ld-addr-op single-def
 ;  V04 loc0         [V04,T51] (  3,  7   )     ref  ->  r15         class-hnd single-def <<unknown class>>
-;  V05 loc1         [V05,T00] ( 62,459   )     int  ->  r13         ld-addr-op
-;  V06 loc2         [V06,T01] ( 31,260   )  ushort  ->  [rsp+0xC4] 
+;  V05 loc1         [V05,T00] ( 72,463   )     int  ->  r13         ld-addr-op
+;  V06 loc2         [V06,T01] ( 35,260   )  ushort  ->  [rsp+0xC4] 
 ;  V07 loc3         [V07,T06] ( 12,102   )     int  ->  [rsp+0xC0] 
 ;  V08 loc4         [V08,T13] (  5, 46   )   ubyte  ->  [rsp+0xBC] 
 ;* V09 loc5         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ushort]>
@@ -134,7 +134,7 @@
 ;  V124 tmp103      [V124,T26] (  2, 16   )     ref  ->  rcx         "argument with side effect"
 ;* V125 tmp104      [V125,T64] (  0,  0   )   byref  ->  zero-ref    single-def "argument with side effect"
 ;  V126 cse0        [V126,T36] (  3, 12   )     int  ->  rax         "CSE - conservative"
-;  V127 cse1        [V127,T03] ( 18,142   )     int  ->  r12         "CSE - aggressive"
+;  V127 cse1        [V127,T03] ( 20,142   )     int  ->  r12         "CSE - aggressive"
 ;  V128 cse2        [V128,T05] (  7,108   )     int  ->  [rsp+0x74]  spill-single-def "CSE - aggressive"
 ;
 ; Lcl frame size = 200
@@ -167,7 +167,7 @@ G_M36935_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0208 {rb
        ; byrRegs +[rbp]
        mov      r14d, dword ptr [r9+0x08]
        test     rsi, rsi
-       je       G_M36935_IG70
+       je       G_M36935_IG75
        test     rdi, rdi
        jne      SHORT G_M36935_IG04
                        ;; size=21 bbWeight=1 PerfScore 6.50
@@ -235,7 +235,7 @@ G_M36935_IG10:        ; bbWeight=8, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        ; gcrRegs -[rax]
        mov      r12d, dword ptr [rsi+0x08]
        cmp      r12d, r13d
-       jbe      G_M36935_IG66
+       jbe      G_M36935_IG71
                        ;; size=13 bbWeight=8 PerfScore 26.00
 G_M36935_IG11:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        mov      ecx, r13d
@@ -278,9 +278,9 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        ; gcr arg pop 0
        mov      dword ptr [rsp+0xA8], eax
        test     eax, eax
-       jl       G_M36935_IG67
+       jl       G_M36935_IG72
        cmp      eax, dword ptr [rsp+0x98]
-       ja       G_M36935_IG77
+       ja       G_M36935_IG82
        mov      rcx, bword ptr [rsp+0x30]
        ; byrRegs +[rcx]
        mov      edx, eax
@@ -294,12 +294,12 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        ; gcr arg pop 0
        add      r13d, dword ptr [rsp+0xA8]
        cmp      r13d, r12d
-       jae      G_M36935_IG69
+       jae      G_M36935_IG74
        mov      ecx, r13d
        movzx    rax, word  ptr [rsi+2*rcx+0x0C]
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
        mov      ecx, r13d
        movzx    r8, word  ptr [rsi+2*rcx+0x0C]
        cmp      eax, r8d
@@ -333,7 +333,7 @@ G_M36935_IG16:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
                        ;; size=8 bbWeight=4 PerfScore 9.00
 G_M36935_IG17:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        cmp      eax, 123
-       jne      G_M36935_IG71
+       jne      G_M36935_IG76
        xor      eax, eax
        mov      dword ptr [rsp+0xC0], eax
        xor      r10d, r10d
@@ -346,7 +346,7 @@ G_M36935_IG17:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        mov      dword ptr [rsp+0x9C], r11d
        lea      ecx, [r13-0x01]
        cmp      ecx, r12d
-       jae      G_M36935_IG69
+       jae      G_M36935_IG74
        lea      ecx, [r13-0x01]
        cmp      word  ptr [rsi+2*rcx+0x0C], 123
        je       SHORT G_M36935_IG19
@@ -381,15 +381,15 @@ G_M36935_IG21:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        mov      r8d, dword ptr [rsp+0xC4]
        lea      edx, [r8-0x30]
        cmp      edx, 10
-       jae      G_M36935_IG72
+       jae      G_M36935_IG77
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
        mov      r8d, r13d
        movzx    r8, word  ptr [rsi+2*r8+0x0C]
        mov      ecx, r8d
        cmp      ecx, 125
-       je       G_M36935_IG40
+       je       G_M36935_IG45
                        ;; size=54 bbWeight=4 PerfScore 32.00
 G_M36935_IG22:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        jmp      SHORT G_M36935_IG24
@@ -400,7 +400,7 @@ G_M36935_IG23:        ; bbWeight=8, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        mov      dword ptr [rsp+0xB8], edx
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
        mov      ecx, r13d
        movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
        mov      edx, dword ptr [rsp+0xB8]
@@ -414,110 +414,139 @@ G_M36935_IG24:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=002
                        ;; size=18 bbWeight=16 PerfScore 48.00
 G_M36935_IG25:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        cmp      ecx, 32
-       jne      SHORT G_M36935_IG27
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M36935_IG26:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+       jne      SHORT G_M36935_IG29
+       test     r13d, r13d
+       jl       SHORT G_M36935_IG28
+                       ;; size=10 bbWeight=2 PerfScore 5.00
+G_M36935_IG26:        ; bbWeight=15.84, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
        mov      ecx, r13d
        movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
        cmp      ecx, 32
        je       SHORT G_M36935_IG26
-                       ;; size=25 bbWeight=16 PerfScore 80.00
-G_M36935_IG27:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref
-       cmp      ecx, 44
-       mov      eax, dword ptr [rsp+0xC0]
-       jne      G_M36935_IG35
-                       ;; size=16 bbWeight=2 PerfScore 4.50
-G_M36935_IG28:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+                       ;; size=25 bbWeight=15.84 PerfScore 79.20
+G_M36935_IG27:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+       jmp      SHORT G_M36935_IG29
+                       ;; size=2 bbWeight=2 PerfScore 4.00
+G_M36935_IG28:        ; bbWeight=0.16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
        mov      ecx, r13d
        movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
        cmp      ecx, 32
        je       SHORT G_M36935_IG28
+                       ;; size=25 bbWeight=0.16 PerfScore 0.80
+G_M36935_IG29:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref
+       cmp      ecx, 44
+       jne      G_M36935_IG41
+                       ;; size=9 bbWeight=2 PerfScore 2.50
+G_M36935_IG30:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+       inc      r13d
+       cmp      r12d, r13d
+       jbe      G_M36935_IG78
+       mov      ecx, r13d
+       movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
+       cmp      ecx, 32
+       je       SHORT G_M36935_IG30
                        ;; size=25 bbWeight=16 PerfScore 80.00
-G_M36935_IG29:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+G_M36935_IG31:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        cmp      ecx, 45
-       jne      SHORT G_M36935_IG30
+       jne      SHORT G_M36935_IG32
        mov      dword ptr [rsp+0xBC], 1
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
        mov      ecx, r13d
        movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
                        ;; size=36 bbWeight=2 PerfScore 12.00
-G_M36935_IG30:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+G_M36935_IG32:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        lea      eax, [rcx-0x30]
        cmp      eax, 10
-       jae      G_M36935_IG72
+       jae      G_M36935_IG77
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
-       jmp      SHORT G_M36935_IG32
+       jbe      G_M36935_IG78
+       jmp      SHORT G_M36935_IG34
                        ;; size=26 bbWeight=2 PerfScore 10.50
-G_M36935_IG31:        ; bbWeight=8, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref
+G_M36935_IG33:        ; bbWeight=8, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref
        lea      eax, [rax+4*rax]
        lea      eax, [rcx+2*rax-0x30]
        mov      dword ptr [rsp+0xC0], eax
        inc      r13d
        cmp      r12d, r13d
        mov      eax, dword ptr [rsp+0xC0]
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
                        ;; size=33 bbWeight=8 PerfScore 40.00
-G_M36935_IG32:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+G_M36935_IG34:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        cmp      r13d, r12d
-       jae      G_M36935_IG69
+       jae      G_M36935_IG74
        mov      ecx, r13d
        movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
        lea      r8d, [rcx-0x30]
        cmp      r8d, 9
-       ja       SHORT G_M36935_IG33
+       ja       SHORT G_M36935_IG35
        cmp      eax, 0xD1FFAB1E
-       jl       SHORT G_M36935_IG31
+       jl       SHORT G_M36935_IG33
                        ;; size=34 bbWeight=16 PerfScore 104.00
-G_M36935_IG33:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
-       cmp      ecx, 32
-       jne      SHORT G_M36935_IG35
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M36935_IG34:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
-       inc      r13d
-       cmp      r12d, r13d
-       jbe      G_M36935_IG73
-       mov      ecx, r13d
-       movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
-       cmp      ecx, 32
-       je       SHORT G_M36935_IG34
-                       ;; size=25 bbWeight=16 PerfScore 80.00
 G_M36935_IG35:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+       cmp      ecx, 32
+       jne      SHORT G_M36935_IG38
+       test     r13d, r13d
+       jl       SHORT G_M36935_IG39
+                       ;; size=10 bbWeight=2 PerfScore 5.00
+G_M36935_IG36:        ; bbWeight=15.84, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+       inc      r13d
+       cmp      r12d, r13d
+       jbe      G_M36935_IG78
+       mov      ecx, r13d
+       movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
+       cmp      ecx, 32
+       je       SHORT G_M36935_IG36
+                       ;; size=25 bbWeight=15.84 PerfScore 79.20
+G_M36935_IG37:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
...

+51 (+2.23%) : 19295.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)

@@ -9,11 +9,11 @@
 ;
 ;  V00 this         [V00,T02] ( 30,250.50)   byref  ->  rbx         this single-def
 ;  V01 arg1         [V01,T27] ( 11, 12.33)     ref  ->  rdi         class-hnd single-def <System.IFormatProvider>
-;  V02 arg2         [V02,T04] ( 18,127   )     ref  ->  rsi         class-hnd exact single-def <System.String>
+;  V02 arg2         [V02,T04] ( 20,127   )     ref  ->  rsi         class-hnd exact single-def <System.String>
 ;  V03 arg3         [V03,T37] (  4,  8   )   byref  ->   r9         ld-addr-op single-def
 ;  V04 loc0         [V04,T51] (  3,  7   )     ref  ->  r15         class-hnd single-def <<unknown class>>
-;  V05 loc1         [V05,T00] ( 62,459   )     int  ->  r13         ld-addr-op
-;  V06 loc2         [V06,T01] ( 31,260   )  ushort  ->  [rsp+0xC4] 
+;  V05 loc1         [V05,T00] ( 72,463   )     int  ->  r13         ld-addr-op
+;  V06 loc2         [V06,T01] ( 35,260   )  ushort  ->  [rsp+0xC4] 
 ;  V07 loc3         [V07,T06] ( 12,102   )     int  ->  [rsp+0xC0] 
 ;  V08 loc4         [V08,T13] (  5, 46   )   ubyte  ->  [rsp+0xBC] 
 ;* V09 loc5         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ushort]>
@@ -134,7 +134,7 @@
 ;  V124 tmp103      [V124,T26] (  2, 16   )     ref  ->  rcx         "argument with side effect"
 ;* V125 tmp104      [V125,T64] (  0,  0   )   byref  ->  zero-ref    single-def "argument with side effect"
 ;  V126 cse0        [V126,T36] (  3, 12   )     int  ->  rax         "CSE - conservative"
-;  V127 cse1        [V127,T03] ( 18,142   )     int  ->  r12         "CSE - aggressive"
+;  V127 cse1        [V127,T03] ( 20,142   )     int  ->  r12         "CSE - aggressive"
 ;  V128 cse2        [V128,T05] (  7,108   )     int  ->  [rsp+0x74]  spill-single-def "CSE - aggressive"
 ;
 ; Lcl frame size = 200
@@ -167,7 +167,7 @@ G_M36935_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0208 {rb
        ; byrRegs +[rbp]
        mov      r14d, dword ptr [r9+0x08]
        test     rsi, rsi
-       je       G_M36935_IG70
+       je       G_M36935_IG75
        test     rdi, rdi
        jne      SHORT G_M36935_IG04
                        ;; size=21 bbWeight=1 PerfScore 6.50
@@ -235,7 +235,7 @@ G_M36935_IG10:        ; bbWeight=8, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        ; gcrRegs -[rax]
        mov      r12d, dword ptr [rsi+0x08]
        cmp      r12d, r13d
-       jbe      G_M36935_IG66
+       jbe      G_M36935_IG71
                        ;; size=13 bbWeight=8 PerfScore 26.00
 G_M36935_IG11:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        mov      ecx, r13d
@@ -278,9 +278,9 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        ; gcr arg pop 0
        mov      dword ptr [rsp+0xA8], eax
        test     eax, eax
-       jl       G_M36935_IG67
+       jl       G_M36935_IG72
        cmp      eax, dword ptr [rsp+0x98]
-       ja       G_M36935_IG77
+       ja       G_M36935_IG82
        mov      rcx, bword ptr [rsp+0x30]
        ; byrRegs +[rcx]
        mov      edx, eax
@@ -294,12 +294,12 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        ; gcr arg pop 0
        add      r13d, dword ptr [rsp+0xA8]
        cmp      r13d, r12d
-       jae      G_M36935_IG69
+       jae      G_M36935_IG74
        mov      ecx, r13d
        movzx    rax, word  ptr [rsi+2*rcx+0x0C]
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
        mov      ecx, r13d
        movzx    r8, word  ptr [rsi+2*rcx+0x0C]
        cmp      eax, r8d
@@ -333,7 +333,7 @@ G_M36935_IG16:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
                        ;; size=8 bbWeight=4 PerfScore 9.00
 G_M36935_IG17:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        cmp      eax, 123
-       jne      G_M36935_IG71
+       jne      G_M36935_IG76
        xor      eax, eax
        mov      dword ptr [rsp+0xC0], eax
        xor      r10d, r10d
@@ -346,7 +346,7 @@ G_M36935_IG17:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        mov      dword ptr [rsp+0x9C], r11d
        lea      ecx, [r13-0x01]
        cmp      ecx, r12d
-       jae      G_M36935_IG69
+       jae      G_M36935_IG74
        lea      ecx, [r13-0x01]
        cmp      word  ptr [rsi+2*rcx+0x0C], 123
        je       SHORT G_M36935_IG19
@@ -381,15 +381,15 @@ G_M36935_IG21:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        mov      r8d, dword ptr [rsp+0xC4]
        lea      edx, [r8-0x30]
        cmp      edx, 10
-       jae      G_M36935_IG72
+       jae      G_M36935_IG77
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
        mov      r8d, r13d
        movzx    r8, word  ptr [rsi+2*r8+0x0C]
        mov      ecx, r8d
        cmp      ecx, 125
-       je       G_M36935_IG40
+       je       G_M36935_IG45
                        ;; size=54 bbWeight=4 PerfScore 32.00
 G_M36935_IG22:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        jmp      SHORT G_M36935_IG24
@@ -400,7 +400,7 @@ G_M36935_IG23:        ; bbWeight=8, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        mov      dword ptr [rsp+0xB8], edx
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
        mov      ecx, r13d
        movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
        mov      edx, dword ptr [rsp+0xB8]
@@ -414,110 +414,139 @@ G_M36935_IG24:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=002
                        ;; size=18 bbWeight=16 PerfScore 48.00
 G_M36935_IG25:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        cmp      ecx, 32
-       jne      SHORT G_M36935_IG27
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M36935_IG26:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+       jne      SHORT G_M36935_IG29
+       test     r13d, r13d
+       jl       SHORT G_M36935_IG28
+                       ;; size=10 bbWeight=2 PerfScore 5.00
+G_M36935_IG26:        ; bbWeight=15.84, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
        mov      ecx, r13d
        movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
        cmp      ecx, 32
        je       SHORT G_M36935_IG26
-                       ;; size=25 bbWeight=16 PerfScore 80.00
-G_M36935_IG27:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref
-       cmp      ecx, 44
-       mov      eax, dword ptr [rsp+0xC0]
-       jne      G_M36935_IG35
-                       ;; size=16 bbWeight=2 PerfScore 4.50
-G_M36935_IG28:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+                       ;; size=25 bbWeight=15.84 PerfScore 79.20
+G_M36935_IG27:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+       jmp      SHORT G_M36935_IG29
+                       ;; size=2 bbWeight=2 PerfScore 4.00
+G_M36935_IG28:        ; bbWeight=0.16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
        mov      ecx, r13d
        movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
        cmp      ecx, 32
        je       SHORT G_M36935_IG28
+                       ;; size=25 bbWeight=0.16 PerfScore 0.80
+G_M36935_IG29:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref
+       cmp      ecx, 44
+       jne      G_M36935_IG41
+                       ;; size=9 bbWeight=2 PerfScore 2.50
+G_M36935_IG30:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+       inc      r13d
+       cmp      r12d, r13d
+       jbe      G_M36935_IG78
+       mov      ecx, r13d
+       movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
+       cmp      ecx, 32
+       je       SHORT G_M36935_IG30
                        ;; size=25 bbWeight=16 PerfScore 80.00
-G_M36935_IG29:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+G_M36935_IG31:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        cmp      ecx, 45
-       jne      SHORT G_M36935_IG30
+       jne      SHORT G_M36935_IG32
        mov      dword ptr [rsp+0xBC], 1
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
        mov      ecx, r13d
        movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
                        ;; size=36 bbWeight=2 PerfScore 12.00
-G_M36935_IG30:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+G_M36935_IG32:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        lea      eax, [rcx-0x30]
        cmp      eax, 10
-       jae      G_M36935_IG72
+       jae      G_M36935_IG77
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
-       jmp      SHORT G_M36935_IG32
+       jbe      G_M36935_IG78
+       jmp      SHORT G_M36935_IG34
                        ;; size=26 bbWeight=2 PerfScore 10.50
-G_M36935_IG31:        ; bbWeight=8, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref
+G_M36935_IG33:        ; bbWeight=8, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref
        lea      eax, [rax+4*rax]
        lea      eax, [rcx+2*rax-0x30]
        mov      dword ptr [rsp+0xC0], eax
        inc      r13d
        cmp      r12d, r13d
        mov      eax, dword ptr [rsp+0xC0]
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
                        ;; size=33 bbWeight=8 PerfScore 40.00
-G_M36935_IG32:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+G_M36935_IG34:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        cmp      r13d, r12d
-       jae      G_M36935_IG69
+       jae      G_M36935_IG74
        mov      ecx, r13d
        movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
        lea      r8d, [rcx-0x30]
        cmp      r8d, 9
-       ja       SHORT G_M36935_IG33
+       ja       SHORT G_M36935_IG35
        cmp      eax, 0xD1FFAB1E
-       jl       SHORT G_M36935_IG31
+       jl       SHORT G_M36935_IG33
                        ;; size=34 bbWeight=16 PerfScore 104.00
-G_M36935_IG33:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
-       cmp      ecx, 32
-       jne      SHORT G_M36935_IG35
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M36935_IG34:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
-       inc      r13d
-       cmp      r12d, r13d
-       jbe      G_M36935_IG73
-       mov      ecx, r13d
-       movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
-       cmp      ecx, 32
-       je       SHORT G_M36935_IG34
-                       ;; size=25 bbWeight=16 PerfScore 80.00
 G_M36935_IG35:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+       cmp      ecx, 32
+       jne      SHORT G_M36935_IG38
+       test     r13d, r13d
+       jl       SHORT G_M36935_IG39
+                       ;; size=10 bbWeight=2 PerfScore 5.00
+G_M36935_IG36:        ; bbWeight=15.84, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+       inc      r13d
+       cmp      r12d, r13d
+       jbe      G_M36935_IG78
+       mov      ecx, r13d
+       movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
+       cmp      ecx, 32
+       je       SHORT G_M36935_IG36
+                       ;; size=25 bbWeight=15.84 PerfScore 79.20
+G_M36935_IG37:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
...

+51 (+2.23%) : 1454.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)

@@ -9,11 +9,11 @@
 ;
 ;  V00 this         [V00,T02] ( 30,250.50)   byref  ->  rbx         this single-def
 ;  V01 arg1         [V01,T27] ( 11, 12.33)     ref  ->  rdi         class-hnd single-def <System.IFormatProvider>
-;  V02 arg2         [V02,T04] ( 18,127   )     ref  ->  rsi         class-hnd exact single-def <System.String>
+;  V02 arg2         [V02,T04] ( 20,127   )     ref  ->  rsi         class-hnd exact single-def <System.String>
 ;  V03 arg3         [V03,T37] (  4,  8   )   byref  ->   r9         ld-addr-op single-def
 ;  V04 loc0         [V04,T51] (  3,  7   )     ref  ->  r15         class-hnd single-def <<unknown class>>
-;  V05 loc1         [V05,T00] ( 62,459   )     int  ->  r13         ld-addr-op
-;  V06 loc2         [V06,T01] ( 31,260   )  ushort  ->  [rsp+0xC4] 
+;  V05 loc1         [V05,T00] ( 72,463   )     int  ->  r13         ld-addr-op
+;  V06 loc2         [V06,T01] ( 35,260   )  ushort  ->  [rsp+0xC4] 
 ;  V07 loc3         [V07,T06] ( 12,102   )     int  ->  [rsp+0xC0] 
 ;  V08 loc4         [V08,T13] (  5, 46   )   ubyte  ->  [rsp+0xBC] 
 ;* V09 loc5         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ushort]>
@@ -134,7 +134,7 @@
 ;  V124 tmp103      [V124,T26] (  2, 16   )     ref  ->  rcx         "argument with side effect"
 ;* V125 tmp104      [V125,T64] (  0,  0   )   byref  ->  zero-ref    single-def "argument with side effect"
 ;  V126 cse0        [V126,T36] (  3, 12   )     int  ->  rax         "CSE - conservative"
-;  V127 cse1        [V127,T03] ( 18,142   )     int  ->  r12         "CSE - aggressive"
+;  V127 cse1        [V127,T03] ( 20,142   )     int  ->  r12         "CSE - aggressive"
 ;  V128 cse2        [V128,T05] (  7,108   )     int  ->  [rsp+0x74]  spill-single-def "CSE - aggressive"
 ;
 ; Lcl frame size = 200
@@ -167,7 +167,7 @@ G_M36935_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0208 {rb
        ; byrRegs +[rbp]
        mov      r14d, dword ptr [r9+0x08]
        test     rsi, rsi
-       je       G_M36935_IG70
+       je       G_M36935_IG75
        test     rdi, rdi
        jne      SHORT G_M36935_IG04
                        ;; size=21 bbWeight=1 PerfScore 6.50
@@ -235,7 +235,7 @@ G_M36935_IG10:        ; bbWeight=8, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        ; gcrRegs -[rax]
        mov      r12d, dword ptr [rsi+0x08]
        cmp      r12d, r13d
-       jbe      G_M36935_IG66
+       jbe      G_M36935_IG71
                        ;; size=13 bbWeight=8 PerfScore 26.00
 G_M36935_IG11:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        mov      ecx, r13d
@@ -278,9 +278,9 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        ; gcr arg pop 0
        mov      dword ptr [rsp+0xA8], eax
        test     eax, eax
-       jl       G_M36935_IG67
+       jl       G_M36935_IG72
        cmp      eax, dword ptr [rsp+0x98]
-       ja       G_M36935_IG77
+       ja       G_M36935_IG82
        mov      rcx, bword ptr [rsp+0x30]
        ; byrRegs +[rcx]
        mov      edx, eax
@@ -294,12 +294,12 @@ G_M36935_IG13:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        ; gcr arg pop 0
        add      r13d, dword ptr [rsp+0xA8]
        cmp      r13d, r12d
-       jae      G_M36935_IG69
+       jae      G_M36935_IG74
        mov      ecx, r13d
        movzx    rax, word  ptr [rsi+2*rcx+0x0C]
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
        mov      ecx, r13d
        movzx    r8, word  ptr [rsi+2*rcx+0x0C]
        cmp      eax, r8d
@@ -333,7 +333,7 @@ G_M36935_IG16:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
                        ;; size=8 bbWeight=4 PerfScore 9.00
 G_M36935_IG17:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        cmp      eax, 123
-       jne      G_M36935_IG71
+       jne      G_M36935_IG76
        xor      eax, eax
        mov      dword ptr [rsp+0xC0], eax
        xor      r10d, r10d
@@ -346,7 +346,7 @@ G_M36935_IG17:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        mov      dword ptr [rsp+0x9C], r11d
        lea      ecx, [r13-0x01]
        cmp      ecx, r12d
-       jae      G_M36935_IG69
+       jae      G_M36935_IG74
        lea      ecx, [r13-0x01]
        cmp      word  ptr [rsi+2*rcx+0x0C], 123
        je       SHORT G_M36935_IG19
@@ -381,15 +381,15 @@ G_M36935_IG21:        ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        mov      r8d, dword ptr [rsp+0xC4]
        lea      edx, [r8-0x30]
        cmp      edx, 10
-       jae      G_M36935_IG72
+       jae      G_M36935_IG77
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
        mov      r8d, r13d
        movzx    r8, word  ptr [rsi+2*r8+0x0C]
        mov      ecx, r8d
        cmp      ecx, 125
-       je       G_M36935_IG40
+       je       G_M36935_IG45
                        ;; size=54 bbWeight=4 PerfScore 32.00
 G_M36935_IG22:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        jmp      SHORT G_M36935_IG24
@@ -400,7 +400,7 @@ G_M36935_IG23:        ; bbWeight=8, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028
        mov      dword ptr [rsp+0xB8], edx
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
        mov      ecx, r13d
        movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
        mov      edx, dword ptr [rsp+0xB8]
@@ -414,110 +414,139 @@ G_M36935_IG24:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=002
                        ;; size=18 bbWeight=16 PerfScore 48.00
 G_M36935_IG25:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        cmp      ecx, 32
-       jne      SHORT G_M36935_IG27
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M36935_IG26:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+       jne      SHORT G_M36935_IG29
+       test     r13d, r13d
+       jl       SHORT G_M36935_IG28
+                       ;; size=10 bbWeight=2 PerfScore 5.00
+G_M36935_IG26:        ; bbWeight=15.84, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
        mov      ecx, r13d
        movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
        cmp      ecx, 32
        je       SHORT G_M36935_IG26
-                       ;; size=25 bbWeight=16 PerfScore 80.00
-G_M36935_IG27:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref
-       cmp      ecx, 44
-       mov      eax, dword ptr [rsp+0xC0]
-       jne      G_M36935_IG35
-                       ;; size=16 bbWeight=2 PerfScore 4.50
-G_M36935_IG28:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+                       ;; size=25 bbWeight=15.84 PerfScore 79.20
+G_M36935_IG27:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+       jmp      SHORT G_M36935_IG29
+                       ;; size=2 bbWeight=2 PerfScore 4.00
+G_M36935_IG28:        ; bbWeight=0.16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
        mov      ecx, r13d
        movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
        cmp      ecx, 32
        je       SHORT G_M36935_IG28
+                       ;; size=25 bbWeight=0.16 PerfScore 0.80
+G_M36935_IG29:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref
+       cmp      ecx, 44
+       jne      G_M36935_IG41
+                       ;; size=9 bbWeight=2 PerfScore 2.50
+G_M36935_IG30:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+       inc      r13d
+       cmp      r12d, r13d
+       jbe      G_M36935_IG78
+       mov      ecx, r13d
+       movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
+       cmp      ecx, 32
+       je       SHORT G_M36935_IG30
                        ;; size=25 bbWeight=16 PerfScore 80.00
-G_M36935_IG29:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+G_M36935_IG31:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        cmp      ecx, 45
-       jne      SHORT G_M36935_IG30
+       jne      SHORT G_M36935_IG32
        mov      dword ptr [rsp+0xBC], 1
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
        mov      ecx, r13d
        movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
                        ;; size=36 bbWeight=2 PerfScore 12.00
-G_M36935_IG30:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+G_M36935_IG32:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        lea      eax, [rcx-0x30]
        cmp      eax, 10
-       jae      G_M36935_IG72
+       jae      G_M36935_IG77
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M36935_IG73
-       jmp      SHORT G_M36935_IG32
+       jbe      G_M36935_IG78
+       jmp      SHORT G_M36935_IG34
                        ;; size=26 bbWeight=2 PerfScore 10.50
-G_M36935_IG31:        ; bbWeight=8, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref
+G_M36935_IG33:        ; bbWeight=8, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref
        lea      eax, [rax+4*rax]
        lea      eax, [rcx+2*rax-0x30]
        mov      dword ptr [rsp+0xC0], eax
        inc      r13d
        cmp      r12d, r13d
        mov      eax, dword ptr [rsp+0xC0]
-       jbe      G_M36935_IG73
+       jbe      G_M36935_IG78
                        ;; size=33 bbWeight=8 PerfScore 40.00
-G_M36935_IG32:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+G_M36935_IG34:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
        cmp      r13d, r12d
-       jae      G_M36935_IG69
+       jae      G_M36935_IG74
        mov      ecx, r13d
        movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
        lea      r8d, [rcx-0x30]
        cmp      r8d, 9
-       ja       SHORT G_M36935_IG33
+       ja       SHORT G_M36935_IG35
        cmp      eax, 0xD1FFAB1E
-       jl       SHORT G_M36935_IG31
+       jl       SHORT G_M36935_IG33
                        ;; size=34 bbWeight=16 PerfScore 104.00
-G_M36935_IG33:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
-       cmp      ecx, 32
-       jne      SHORT G_M36935_IG35
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M36935_IG34:        ; bbWeight=16, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
-       inc      r13d
-       cmp      r12d, r13d
-       jbe      G_M36935_IG73
-       mov      ecx, r13d
-       movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
-       cmp      ecx, 32
-       je       SHORT G_M36935_IG34
-                       ;; size=25 bbWeight=16 PerfScore 80.00
 G_M36935_IG35:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+       cmp      ecx, 32
+       jne      SHORT G_M36935_IG38
+       test     r13d, r13d
+       jl       SHORT G_M36935_IG39
+                       ;; size=10 bbWeight=2 PerfScore 5.00
+G_M36935_IG36:        ; bbWeight=15.84, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
+       inc      r13d
+       cmp      r12d, r13d
+       jbe      G_M36935_IG78
+       mov      ecx, r13d
+       movzx    rcx, word  ptr [rsi+2*rcx+0x0C]
+       cmp      ecx, 32
+       je       SHORT G_M36935_IG36
+                       ;; size=25 bbWeight=15.84 PerfScore 79.20
+G_M36935_IG37:        ; bbWeight=2, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0028 {rbx rbp}, byref, isz
...

+51 (+2.32%) : 6434.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)

@@ -10,11 +10,11 @@
 ;
 ;  V00 this         [V00,T04] ( 17, 87.50)     ref  ->  rsi         this class-hnd exact single-def <System.Text.StringBuilder>
 ;  V01 arg1         [V01,T25] ( 11, 12.33)     ref  ->  rdi         class-hnd single-def <System.IFormatProvider>
-;  V02 arg2         [V02,T03] ( 18,127   )     ref  ->  rbx         class-hnd exact single-def <System.String>
+;  V02 arg2         [V02,T03] ( 20,127   )     ref  ->  rbx         class-hnd exact single-def <System.String>
 ;  V03 arg3         [V03,T38] (  4,  8   )   byref  ->   r9         ld-addr-op single-def
 ;  V04 loc0         [V04,T50] (  3,  7   )     ref  ->  r15         class-hnd single-def <<unknown class>>
-;  V05 loc1         [V05,T00] ( 61,455   )     int  ->  r13         ld-addr-op
-;  V06 loc2         [V06,T01] ( 30,260   )  ushort  ->  [rsp+0xC4] 
+;  V05 loc1         [V05,T00] ( 71,459   )     int  ->  r13         ld-addr-op
+;  V06 loc2         [V06,T01] ( 34,260   )  ushort  ->  [rsp+0xC4] 
 ;  V07 loc3         [V07,T05] ( 12, 74   )     int  ->  [rsp+0xC0] 
 ;  V08 loc4         [V08,T09] (  5, 46   )   ubyte  ->  [rsp+0xBC] 
 ;* V09 loc5         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ushort]>
@@ -141,7 +141,7 @@
 ;  V130 cse1        [V130,T33] (  3, 12   )     ref  ->  rax         "CSE - moderate"
 ;  V131 cse2        [V131,T36] (  3, 12   )     int  ->   r8         "CSE - moderate"
 ;  V132 cse3        [V132,T34] (  3, 12   )     ref  ->  rcx         "CSE - moderate"
-;  V133 cse4        [V133,T02] ( 18,142   )     int  ->  r12         "CSE - aggressive"
+;  V133 cse4        [V133,T02] ( 20,142   )     int  ->  r12         "CSE - aggressive"
 ;  V134 cse5        [V134,T06] (  6, 60   )     int  ->  [rsp+0x74]  spill-single-def "CSE - aggressive"
 ;  V135 cse6        [V135,T37] (  3, 12   )     int  ->  rcx         "CSE - moderate"
 ;
@@ -175,7 +175,7 @@ G_M4730_IG02:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0200
        ; byrRegs +[rbp]
        mov      r14d, dword ptr [r9+0x08]
        test     rbx, rbx
-       je       G_M4730_IG66
+       je       G_M4730_IG71
        test     rdi, rdi
        jne      SHORT G_M4730_IG04
                        ;; size=21 bbWeight=1 PerfScore 6.50
@@ -243,7 +243,7 @@ G_M4730_IG10:        ; bbWeight=8, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0
        ; gcrRegs -[rax]
        mov      r12d, dword ptr [rbx+0x08]
        cmp      r12d, r13d
-       jbe      G_M4730_IG61
+       jbe      G_M4730_IG66
                        ;; size=13 bbWeight=8 PerfScore 26.00
 G_M4730_IG11:        ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        mov      ecx, r13d
@@ -286,9 +286,9 @@ G_M4730_IG13:        ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0
        ; gcr arg pop 0
        mov      dword ptr [rsp+0xA8], eax
        test     eax, eax
-       jl       G_M4730_IG63
+       jl       G_M4730_IG68
        cmp      eax, dword ptr [rsp+0x9C]
-       ja       G_M4730_IG73
+       ja       G_M4730_IG78
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        mov      rdx, bword ptr [rsp+0x38]
@@ -301,12 +301,12 @@ G_M4730_IG13:        ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0
        ; gcr arg pop 0
        add      r13d, dword ptr [rsp+0xA8]
        cmp      r13d, r12d
-       jae      G_M4730_IG65
+       jae      G_M4730_IG70
        mov      ecx, r13d
        movzx    rax, word  ptr [rbx+2*rcx+0x0C]
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M4730_IG69
+       jbe      G_M4730_IG74
        mov      ecx, r13d
        movzx    r8, word  ptr [rbx+2*rcx+0x0C]
        cmp      eax, r8d
@@ -323,7 +323,7 @@ G_M4730_IG13:        ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0
 G_M4730_IG14:        ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        ; gcrRegs -[rax]
        cmp      eax, 123
-       jne      G_M4730_IG67
+       jne      G_M4730_IG72
        xor      eax, eax
        mov      dword ptr [rsp+0xC0], eax
        xor      r10d, r10d
@@ -336,7 +336,7 @@ G_M4730_IG14:        ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0
        mov      dword ptr [rsp+0xA0], r11d
        lea      ecx, [r13-0x01]
        cmp      ecx, r12d
-       jae      G_M4730_IG65
+       jae      G_M4730_IG70
        cmp      word  ptr [rbx+2*rcx+0x0C], 123
        je       SHORT G_M4730_IG16
                        ;; size=69 bbWeight=4 PerfScore 48.00
@@ -370,15 +370,15 @@ G_M4730_IG18:        ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0
        mov      r8d, dword ptr [rsp+0xC4]
        lea      edx, [r8-0x30]
        cmp      edx, 10
-       jae      G_M4730_IG68
+       jae      G_M4730_IG73
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M4730_IG69
+       jbe      G_M4730_IG74
        mov      r8d, r13d
        movzx    r8, word  ptr [rbx+2*r8+0x0C]
        mov      ecx, r8d
        cmp      ecx, 125
-       je       G_M4730_IG37
+       je       G_M4730_IG42
                        ;; size=54 bbWeight=4 PerfScore 32.00
 G_M4730_IG19:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        jmp      SHORT G_M4730_IG21
@@ -389,7 +389,7 @@ G_M4730_IG20:        ; bbWeight=8, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0
        mov      dword ptr [rsp+0xB8], edx
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M4730_IG69
+       jbe      G_M4730_IG74
        mov      ecx, r13d
        movzx    rcx, word  ptr [rbx+2*rcx+0x0C]
        mov      edx, dword ptr [rsp+0xB8]
@@ -403,110 +403,139 @@ G_M4730_IG21:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
                        ;; size=18 bbWeight=16 PerfScore 48.00
 G_M4730_IG22:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        cmp      ecx, 32
-       jne      SHORT G_M4730_IG24
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M4730_IG23:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+       jne      SHORT G_M4730_IG26
+       test     r13d, r13d
+       jl       SHORT G_M4730_IG25
+                       ;; size=10 bbWeight=2 PerfScore 5.00
+G_M4730_IG23:        ; bbWeight=15.84, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M4730_IG69
+       jbe      G_M4730_IG74
        mov      ecx, r13d
        movzx    rcx, word  ptr [rbx+2*rcx+0x0C]
        cmp      ecx, 32
        je       SHORT G_M4730_IG23
-                       ;; size=25 bbWeight=16 PerfScore 80.00
-G_M4730_IG24:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref
-       cmp      ecx, 44
-       mov      eax, dword ptr [rsp+0xC0]
-       jne      G_M4730_IG32
-                       ;; size=16 bbWeight=2 PerfScore 4.50
-G_M4730_IG25:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+                       ;; size=25 bbWeight=15.84 PerfScore 79.20
+G_M4730_IG24:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+       jmp      SHORT G_M4730_IG26
+                       ;; size=2 bbWeight=2 PerfScore 4.00
+G_M4730_IG25:        ; bbWeight=0.16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M4730_IG69
+       jbe      G_M4730_IG74
        mov      ecx, r13d
        movzx    rcx, word  ptr [rbx+2*rcx+0x0C]
        cmp      ecx, 32
        je       SHORT G_M4730_IG25
+                       ;; size=25 bbWeight=0.16 PerfScore 0.80
+G_M4730_IG26:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref
+       cmp      ecx, 44
+       jne      G_M4730_IG38
+                       ;; size=9 bbWeight=2 PerfScore 2.50
+G_M4730_IG27:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+       inc      r13d
+       cmp      r12d, r13d
+       jbe      G_M4730_IG74
+       mov      ecx, r13d
+       movzx    rcx, word  ptr [rbx+2*rcx+0x0C]
+       cmp      ecx, 32
+       je       SHORT G_M4730_IG27
                        ;; size=25 bbWeight=16 PerfScore 80.00
-G_M4730_IG26:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+G_M4730_IG28:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        cmp      ecx, 45
-       jne      SHORT G_M4730_IG27
+       jne      SHORT G_M4730_IG29
        mov      dword ptr [rsp+0xBC], 1
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M4730_IG69
+       jbe      G_M4730_IG74
        mov      ecx, r13d
        movzx    rcx, word  ptr [rbx+2*rcx+0x0C]
                        ;; size=36 bbWeight=2 PerfScore 12.00
-G_M4730_IG27:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+G_M4730_IG29:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        lea      eax, [rcx-0x30]
        cmp      eax, 10
-       jae      G_M4730_IG68
+       jae      G_M4730_IG73
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M4730_IG69
-       jmp      SHORT G_M4730_IG29
+       jbe      G_M4730_IG74
+       jmp      SHORT G_M4730_IG31
                        ;; size=26 bbWeight=2 PerfScore 10.50
-G_M4730_IG28:        ; bbWeight=8, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref
+G_M4730_IG30:        ; bbWeight=8, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref
        lea      eax, [rax+4*rax]
        lea      eax, [rcx+2*rax-0x30]
        mov      dword ptr [rsp+0xC0], eax
        inc      r13d
        cmp      r12d, r13d
        mov      eax, dword ptr [rsp+0xC0]
-       jbe      G_M4730_IG69
+       jbe      G_M4730_IG74
                        ;; size=33 bbWeight=8 PerfScore 40.00
-G_M4730_IG29:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+G_M4730_IG31:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        cmp      r13d, r12d
-       jae      G_M4730_IG65
+       jae      G_M4730_IG70
        mov      ecx, r13d
        movzx    rcx, word  ptr [rbx+2*rcx+0x0C]
        lea      r8d, [rcx-0x30]
        cmp      r8d, 9
-       ja       SHORT G_M4730_IG30
+       ja       SHORT G_M4730_IG32
        cmp      eax, 0xD1FFAB1E
-       jl       SHORT G_M4730_IG28
+       jl       SHORT G_M4730_IG30
                        ;; size=34 bbWeight=16 PerfScore 104.00
-G_M4730_IG30:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+G_M4730_IG32:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        cmp      ecx, 32
-       jne      SHORT G_M4730_IG32
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M4730_IG31:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+       jne      SHORT G_M4730_IG35
+       test     r13d, r13d
+       jl       SHORT G_M4730_IG36
+                       ;; size=10 bbWeight=2 PerfScore 5.00
+G_M4730_IG33:        ; bbWeight=15.84, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M4730_IG69
+       jbe      G_M4730_IG74
        mov      ecx, r13d
        movzx    rcx, word  ptr [rbx+2*rcx+0x0C]
        cmp      ecx, 32
-       je       SHORT G_M4730_IG31
-                       ;; size=25 bbWeight=16 PerfScore 80.00
-G_M4730_IG32:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+       je       SHORT G_M4730_IG33
+                       ;; size=25 bbWeight=15.84 PerfScore 79.20
+G_M4730_IG34:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+       mov      dword ptr [rsp+0xC0], eax
+       jmp      SHORT G_M4730_IG38
+                       ;; size=9 bbWeight=2 PerfScore 6.00
+G_M4730_IG35:        ; bbWeight=1, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+       mov      dword ptr [rsp+0xC0], eax
...

+51 (+2.43%) : 11732.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)

@@ -9,11 +9,11 @@
 ;
 ;  V00 this         [V00,T04] ( 17, 87.50)     ref  ->  rsi         this class-hnd exact single-def <System.Text.StringBuilder>
 ;  V01 arg1         [V01,T25] ( 11, 12.33)     ref  ->  rdi         class-hnd single-def <System.IFormatProvider>
-;  V02 arg2         [V02,T03] ( 18,127   )     ref  ->  rbx         class-hnd exact single-def <System.String>
+;  V02 arg2         [V02,T03] ( 20,127   )     ref  ->  rbx         class-hnd exact single-def <System.String>
 ;  V03 arg3         [V03,T37] (  4,  8   )   byref  ->   r9         ld-addr-op single-def
 ;  V04 loc0         [V04,T49] (  3,  7   )     ref  ->  r15         class-hnd single-def <<unknown class>>
-;  V05 loc1         [V05,T00] ( 61,455   )     int  ->  r13         ld-addr-op
-;  V06 loc2         [V06,T01] ( 30,260   )  ushort  ->  [rsp+0xB4] 
+;  V05 loc1         [V05,T00] ( 71,459   )     int  ->  r13         ld-addr-op
+;  V06 loc2         [V06,T01] ( 34,260   )  ushort  ->  [rsp+0xB4] 
 ;  V07 loc3         [V07,T05] ( 12, 74   )     int  ->  [rsp+0xB0] 
 ;  V08 loc4         [V08,T09] (  5, 46   )   ubyte  ->  [rsp+0xAC] 
 ;* V09 loc5         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ushort]>
@@ -139,7 +139,7 @@
 ;  V129 cse1        [V129,T32] (  3, 12   )     ref  ->  rdx         "CSE - moderate"
 ;  V130 cse2        [V130,T35] (  3, 12   )     int  ->   r8         "CSE - moderate"
 ;  V131 cse3        [V131,T33] (  3, 12   )     ref  ->  rcx         "CSE - moderate"
-;  V132 cse4        [V132,T02] ( 18,142   )     int  ->  r12         "CSE - aggressive"
+;  V132 cse4        [V132,T02] ( 20,142   )     int  ->  r12         "CSE - aggressive"
 ;  V133 cse5        [V133,T06] (  6, 60   )     int  ->  [rsp+0x64]  spill-single-def "CSE - aggressive"
 ;  V134 cse6        [V134,T36] (  3, 12   )     int  ->  rcx         "CSE - moderate"
 ;
@@ -173,7 +173,7 @@ G_M4730_IG02:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0200
        ; byrRegs +[rbp]
        mov      r14d, dword ptr [r9+0x08]
        test     rbx, rbx
-       je       G_M4730_IG63
+       je       G_M4730_IG68
        test     rdi, rdi
        jne      SHORT G_M4730_IG04
                        ;; size=21 bbWeight=1 PerfScore 6.50
@@ -241,7 +241,7 @@ G_M4730_IG10:        ; bbWeight=8, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0
        ; gcrRegs -[rax]
        mov      r12d, dword ptr [rbx+0x08]
        cmp      r12d, r13d
-       jbe      G_M4730_IG58
+       jbe      G_M4730_IG63
                        ;; size=13 bbWeight=8 PerfScore 26.00
 G_M4730_IG11:        ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        mov      ecx, r13d
@@ -284,9 +284,9 @@ G_M4730_IG13:        ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0
        ; gcr arg pop 0
        mov      dword ptr [rsp+0x98], eax
        test     eax, eax
-       jl       G_M4730_IG60
+       jl       G_M4730_IG65
        cmp      eax, dword ptr [rsp+0x8C]
-       ja       G_M4730_IG70
+       ja       G_M4730_IG75
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        mov      rdx, bword ptr [rsp+0x28]
@@ -299,12 +299,12 @@ G_M4730_IG13:        ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0
        ; gcr arg pop 0
        add      r13d, dword ptr [rsp+0x98]
        cmp      r13d, r12d
-       jae      G_M4730_IG62
+       jae      G_M4730_IG67
        mov      ecx, r13d
        movzx    rax, word  ptr [rbx+2*rcx+0x0C]
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M4730_IG66
+       jbe      G_M4730_IG71
        mov      ecx, r13d
        movzx    r8, word  ptr [rbx+2*rcx+0x0C]
        cmp      eax, r8d
@@ -321,7 +321,7 @@ G_M4730_IG13:        ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0
 G_M4730_IG14:        ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        ; gcrRegs -[rax]
        cmp      eax, 123
-       jne      G_M4730_IG64
+       jne      G_M4730_IG69
        xor      eax, eax
        mov      dword ptr [rsp+0xB0], eax
        xor      r10d, r10d
@@ -334,7 +334,7 @@ G_M4730_IG14:        ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0
        mov      dword ptr [rsp+0x90], r11d
        lea      ecx, [r13-0x01]
        cmp      ecx, r12d
-       jae      G_M4730_IG62
+       jae      G_M4730_IG67
        cmp      word  ptr [rbx+2*rcx+0x0C], 123
        je       SHORT G_M4730_IG16
                        ;; size=69 bbWeight=4 PerfScore 48.00
@@ -368,15 +368,15 @@ G_M4730_IG18:        ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0
        mov      r8d, dword ptr [rsp+0xB4]
        lea      edx, [r8-0x30]
        cmp      edx, 10
-       jae      G_M4730_IG65
+       jae      G_M4730_IG70
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M4730_IG66
+       jbe      G_M4730_IG71
        mov      r8d, r13d
        movzx    r8, word  ptr [rbx+2*r8+0x0C]
        mov      ecx, r8d
        cmp      ecx, 125
-       je       G_M4730_IG37
+       je       G_M4730_IG42
                        ;; size=54 bbWeight=4 PerfScore 32.00
 G_M4730_IG19:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        jmp      SHORT G_M4730_IG21
@@ -387,7 +387,7 @@ G_M4730_IG20:        ; bbWeight=8, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0
        mov      dword ptr [rsp+0xA8], edx
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M4730_IG66
+       jbe      G_M4730_IG71
        mov      ecx, r13d
        movzx    rcx, word  ptr [rbx+2*rcx+0x0C]
        mov      edx, dword ptr [rsp+0xA8]
@@ -401,110 +401,139 @@ G_M4730_IG21:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
                        ;; size=18 bbWeight=16 PerfScore 48.00
 G_M4730_IG22:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        cmp      ecx, 32
-       jne      SHORT G_M4730_IG24
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M4730_IG23:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+       jne      SHORT G_M4730_IG26
+       test     r13d, r13d
+       jl       SHORT G_M4730_IG25
+                       ;; size=10 bbWeight=2 PerfScore 5.00
+G_M4730_IG23:        ; bbWeight=15.84, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M4730_IG66
+       jbe      G_M4730_IG71
        mov      ecx, r13d
        movzx    rcx, word  ptr [rbx+2*rcx+0x0C]
        cmp      ecx, 32
        je       SHORT G_M4730_IG23
-                       ;; size=25 bbWeight=16 PerfScore 80.00
-G_M4730_IG24:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref
-       cmp      ecx, 44
-       mov      eax, dword ptr [rsp+0xB0]
-       jne      G_M4730_IG32
-                       ;; size=16 bbWeight=2 PerfScore 4.50
-G_M4730_IG25:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+                       ;; size=25 bbWeight=15.84 PerfScore 79.20
+G_M4730_IG24:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+       jmp      SHORT G_M4730_IG26
+                       ;; size=2 bbWeight=2 PerfScore 4.00
+G_M4730_IG25:        ; bbWeight=0.16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M4730_IG66
+       jbe      G_M4730_IG71
        mov      ecx, r13d
        movzx    rcx, word  ptr [rbx+2*rcx+0x0C]
        cmp      ecx, 32
        je       SHORT G_M4730_IG25
+                       ;; size=25 bbWeight=0.16 PerfScore 0.80
+G_M4730_IG26:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref
+       cmp      ecx, 44
+       jne      G_M4730_IG38
+                       ;; size=9 bbWeight=2 PerfScore 2.50
+G_M4730_IG27:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+       inc      r13d
+       cmp      r12d, r13d
+       jbe      G_M4730_IG71
+       mov      ecx, r13d
+       movzx    rcx, word  ptr [rbx+2*rcx+0x0C]
+       cmp      ecx, 32
+       je       SHORT G_M4730_IG27
                        ;; size=25 bbWeight=16 PerfScore 80.00
-G_M4730_IG26:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+G_M4730_IG28:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        cmp      ecx, 45
-       jne      SHORT G_M4730_IG27
+       jne      SHORT G_M4730_IG29
        mov      dword ptr [rsp+0xAC], 1
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M4730_IG66
+       jbe      G_M4730_IG71
        mov      ecx, r13d
        movzx    rcx, word  ptr [rbx+2*rcx+0x0C]
                        ;; size=36 bbWeight=2 PerfScore 12.00
-G_M4730_IG27:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+G_M4730_IG29:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        lea      eax, [rcx-0x30]
        cmp      eax, 10
-       jae      G_M4730_IG65
+       jae      G_M4730_IG70
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M4730_IG66
-       jmp      SHORT G_M4730_IG29
+       jbe      G_M4730_IG71
+       jmp      SHORT G_M4730_IG31
                        ;; size=26 bbWeight=2 PerfScore 10.50
-G_M4730_IG28:        ; bbWeight=8, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref
+G_M4730_IG30:        ; bbWeight=8, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref
        lea      eax, [rax+4*rax]
        lea      eax, [rcx+2*rax-0x30]
        mov      dword ptr [rsp+0xB0], eax
        inc      r13d
        cmp      r12d, r13d
        mov      eax, dword ptr [rsp+0xB0]
-       jbe      G_M4730_IG66
+       jbe      G_M4730_IG71
                        ;; size=33 bbWeight=8 PerfScore 40.00
-G_M4730_IG29:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+G_M4730_IG31:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        cmp      r13d, r12d
-       jae      G_M4730_IG62
+       jae      G_M4730_IG67
        mov      ecx, r13d
        movzx    rcx, word  ptr [rbx+2*rcx+0x0C]
        lea      r8d, [rcx-0x30]
        cmp      r8d, 9
-       ja       SHORT G_M4730_IG30
+       ja       SHORT G_M4730_IG32
        cmp      eax, 0xD1FFAB1E
-       jl       SHORT G_M4730_IG28
+       jl       SHORT G_M4730_IG30
                        ;; size=34 bbWeight=16 PerfScore 104.00
-G_M4730_IG30:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+G_M4730_IG32:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        cmp      ecx, 32
-       jne      SHORT G_M4730_IG32
-                       ;; size=5 bbWeight=2 PerfScore 2.50
-G_M4730_IG31:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+       jne      SHORT G_M4730_IG35
+       test     r13d, r13d
+       jl       SHORT G_M4730_IG36
+                       ;; size=10 bbWeight=2 PerfScore 5.00
+G_M4730_IG33:        ; bbWeight=15.84, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        inc      r13d
        cmp      r12d, r13d
-       jbe      G_M4730_IG66
+       jbe      G_M4730_IG71
        mov      ecx, r13d
        movzx    rcx, word  ptr [rbx+2*rcx+0x0C]
        cmp      ecx, 32
-       je       SHORT G_M4730_IG31
-                       ;; size=25 bbWeight=16 PerfScore 80.00
-G_M4730_IG32:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+       je       SHORT G_M4730_IG33
+                       ;; size=25 bbWeight=15.84 PerfScore 79.20
+G_M4730_IG34:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+       mov      dword ptr [rsp+0xB0], eax
+       jmp      SHORT G_M4730_IG38
+                       ;; size=9 bbWeight=2 PerfScore 6.00
+G_M4730_IG35:        ; bbWeight=1, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0020 {rbp}, byref, isz
+       mov      dword ptr [rsp+0xB0], eax
...

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
aspnet.run.windows.x64.checked.mch 25 3 22 0 -27 +26,436
benchmarks.run.windows.x64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.windows.x64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_tiered.windows.x64.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.windows.x64.checked.mch 92 5 87 0 -45 +22,650
libraries.crossgen2.windows.x64.checked.mch 6 6 0 0 -362 +0
libraries.pmi.windows.x64.checked.mch 7 5 2 0 -324 +247
libraries_tests.run.windows.x64.Release.mch 474 18 456 0 -1,567 +833,281
librariestestsnotieredcompilation.run.windows.x64.Release.mch 15 13 2 0 -1,367 +154
realworld.run.windows.x64.checked.mch 0 0 0 0 -0 +0
smoke_tests.nativeaot.windows.x64.checked.mch 7 0 7 0 -0 +357
626 50 576 0 -3,692 +883,125

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
aspnet.run.windows.x64.checked.mch 113,446 48,462 64,984 967 (0.85%) 968 (0.85%)
benchmarks.run.windows.x64.checked.mch 28,178 4 28,174 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.windows.x64.checked.mch 101,027 50,170 50,857 126 (0.12%) 126 (0.12%)
benchmarks.run_tiered.windows.x64.checked.mch 54,255 36,844 17,411 0 (0.00%) 0 (0.00%)
coreclr_tests.run.windows.x64.checked.mch 574,111 341,113 232,998 300 (0.05%) 301 (0.05%)
libraries.crossgen2.windows.x64.checked.mch 243,023 15 243,008 0 (0.00%) 0 (0.00%)
libraries.pmi.windows.x64.checked.mch 307,639 6 307,633 2 (0.00%) 2 (0.00%)
libraries_tests.run.windows.x64.Release.mch 682,158 485,176 196,982 2,458 (0.36%) 2,459 (0.36%)
librariestestsnotieredcompilation.run.windows.x64.Release.mch 319,780 21,886 297,894 6 (0.00%) 6 (0.00%)
realworld.run.windows.x64.checked.mch 36,888 3 36,885 0 (0.00%) 0 (0.00%)
smoke_tests.nativeaot.windows.x64.checked.mch 32,444 10 32,434 0 (0.00%) 0 (0.00%)
2,492,949 983,689 1,509,260 3,859 (0.15%) 3,862 (0.15%)

jit-analyze output

aspnet.run.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 41762326 (overridden on cmd)
Total bytes of diff: 41788735 (overridden on cmd)
Total bytes of delta: 26409 (0.06 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        6581 : 96530.dasm (80.25 % of base)
        6581 : 112573.dasm (80.25 % of base)
        6548 : 94952.dasm (79.84 % of base)
        1430 : 37079.dasm (75.94 % of base)
         549 : 41905.dasm (20.04 % of base)
         549 : 52831.dasm (20.04 % of base)
         549 : 96483.dasm (20.04 % of base)
         549 : 36469.dasm (20.04 % of base)
         549 : 112525.dasm (20.04 % of base)
         549 : 94395.dasm (20.04 % of base)
         232 : 94319.dasm (32.95 % of base)
         221 : 112508.dasm (12.51 % of base)
         221 : 36442.dasm (12.51 % of base)
         221 : 41901.dasm (12.51 % of base)
         221 : 52827.dasm (12.51 % of base)
         221 : 94119.dasm (12.51 % of base)
         221 : 96467.dasm (12.51 % of base)
         220 : 39362.dasm (12.63 % of base)
         202 : 37171.dasm (59.59 % of base)
          10 : 94267.dasm (1.15 % of base)

Top file improvements (bytes):
          -9 : 112679.dasm (-0.50 % of base)
          -9 : 95770.dasm (-0.50 % of base)
          -9 : 96631.dasm (-0.50 % of base)

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

Top method regressions (bytes):
        6581 (80.25 % of base) : 96530.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6581 (80.25 % of base) : 112573.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6548 (79.84 % of base) : 94952.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        1430 (75.94 % of base) : 37079.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpHeaders:ParseConnection(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpHeaders):int (Instrumented Tier1)
         549 (20.04 % of base) : 41905.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         549 (20.04 % of base) : 52831.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         549 (20.04 % of base) : 96483.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         549 (20.04 % of base) : 36469.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         549 (20.04 % of base) : 112525.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         549 (20.04 % of base) : 94395.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         232 (32.95 % of base) : 94319.dasm - System.IO.PathInternal:NormalizeDirectorySeparators(System.String):System.String (Instrumented Tier1)
         221 (12.51 % of base) : 112508.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         221 (12.51 % of base) : 36442.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         221 (12.51 % of base) : 41901.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         221 (12.51 % of base) : 52827.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         221 (12.51 % of base) : 94119.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         221 (12.51 % of base) : 96467.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         220 (12.63 % of base) : 39362.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         202 (59.59 % of base) : 37171.dasm - Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker:PrepareArguments(System.Collections.Generic.IDictionary`2[System.String,System.Object],Microsoft.Extensions.Internal.ObjectMethodExecutor):System.Object[] (Instrumented Tier1)
          10 (1.15 % of base) : 94267.dasm - Microsoft.Extensions.Options.OptionsFactory`1[System.__Canon]:Create(System.String):System.__Canon:this (Instrumented Tier1)

Top method improvements (bytes):
          -9 (-0.50 % of base) : 112679.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateInterfaces(System.RuntimeType+RuntimeTypeCache+Filter):System.RuntimeType[]:this (Instrumented Tier1)
          -9 (-0.50 % of base) : 95770.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateInterfaces(System.RuntimeType+RuntimeTypeCache+Filter):System.RuntimeType[]:this (Instrumented Tier1)
          -9 (-0.50 % of base) : 96631.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateInterfaces(System.RuntimeType+RuntimeTypeCache+Filter):System.RuntimeType[]:this (Instrumented Tier1)

Top method regressions (percentages):
        6581 (80.25 % of base) : 96530.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6581 (80.25 % of base) : 112573.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6548 (79.84 % of base) : 94952.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        1430 (75.94 % of base) : 37079.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpHeaders:ParseConnection(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpHeaders):int (Instrumented Tier1)
         202 (59.59 % of base) : 37171.dasm - Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker:PrepareArguments(System.Collections.Generic.IDictionary`2[System.String,System.Object],Microsoft.Extensions.Internal.ObjectMethodExecutor):System.Object[] (Instrumented Tier1)
         232 (32.95 % of base) : 94319.dasm - System.IO.PathInternal:NormalizeDirectorySeparators(System.String):System.String (Instrumented Tier1)
         549 (20.04 % of base) : 41905.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         549 (20.04 % of base) : 52831.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         549 (20.04 % of base) : 96483.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         549 (20.04 % of base) : 36469.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         549 (20.04 % of base) : 112525.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         549 (20.04 % of base) : 94395.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         220 (12.63 % of base) : 39362.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         221 (12.51 % of base) : 112508.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         221 (12.51 % of base) : 36442.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         221 (12.51 % of base) : 41901.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         221 (12.51 % of base) : 52827.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         221 (12.51 % of base) : 94119.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         221 (12.51 % of base) : 96467.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
          10 (1.15 % of base) : 94267.dasm - Microsoft.Extensions.Options.OptionsFactory`1[System.__Canon]:Create(System.String):System.__Canon:this (Instrumented Tier1)

Top method improvements (percentages):
          -9 (-0.50 % of base) : 112679.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateInterfaces(System.RuntimeType+RuntimeTypeCache+Filter):System.RuntimeType[]:this (Instrumented Tier1)
          -9 (-0.50 % of base) : 95770.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateInterfaces(System.RuntimeType+RuntimeTypeCache+Filter):System.RuntimeType[]:this (Instrumented Tier1)
          -9 (-0.50 % of base) : 96631.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateInterfaces(System.RuntimeType+RuntimeTypeCache+Filter):System.RuntimeType[]:this (Instrumented Tier1)

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


coreclr_tests.run.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 392865429 (overridden on cmd)
Total bytes of diff: 392888034 (overridden on cmd)
Total bytes of delta: 22605 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         858 : 2390.dasm (40.00 % of base)
         564 : 30632.dasm (16.93 % of base)
         564 : 224550.dasm (19.14 % of base)
         564 : 232499.dasm (19.19 % of base)
         564 : 273261.dasm (19.14 % of base)
         564 : 34699.dasm (19.14 % of base)
         564 : 51204.dasm (19.19 % of base)
         564 : 105893.dasm (16.86 % of base)
         556 : 110436.dasm (17.62 % of base)
         556 : 154877.dasm (17.75 % of base)
         556 : 175212.dasm (17.62 % of base)
         232 : 2254.dasm (32.95 % of base)
         225 : 24195.dasm (12.91 % of base)
         224 : 220469.dasm (12.63 % of base)
         224 : 230595.dasm (12.61 % of base)
         224 : 288584.dasm (12.76 % of base)
         224 : 332328.dasm (12.76 % of base)
         224 : 359308.dasm (12.63 % of base)
         224 : 105902.dasm (12.64 % of base)
         224 : 354156.dasm (12.76 % of base)

Top file improvements (bytes):
         -17 : 219830.dasm (-0.77 % of base)
          -9 : 192733.dasm (-0.78 % of base)
          -9 : 570751.dasm (-0.80 % of base)
          -6 : 193233.dasm (-0.91 % of base)
          -4 : 235792.dasm (-0.24 % of base)

52 total files with Code Size differences (5 improved, 47 regressed), 0 unchanged.

Top method regressions (bytes):
         858 (40.00 % of base) : 2390.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (Instrumented Tier1)
         564 (16.93 % of base) : 30632.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         564 (19.14 % of base) : 224550.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         564 (19.19 % of base) : 232499.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         564 (19.14 % of base) : 273261.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         564 (19.14 % of base) : 34699.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         564 (19.19 % of base) : 51204.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         564 (16.86 % of base) : 105893.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         556 (17.62 % of base) : 110436.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         556 (17.75 % of base) : 154877.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         556 (17.62 % of base) : 175212.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         232 (32.95 % of base) : 2254.dasm - System.IO.PathInternal:NormalizeDirectorySeparators(System.String):System.String (Instrumented Tier1)
         225 (12.91 % of base) : 24195.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         224 (12.63 % of base) : 220469.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         224 (12.61 % of base) : 230595.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         224 (12.76 % of base) : 288584.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         224 (12.76 % of base) : 332328.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         224 (12.63 % of base) : 359308.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         224 (12.64 % of base) : 105902.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         224 (12.76 % of base) : 354156.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)

Top method improvements (bytes):
         -17 (-0.77 % of base) : 219830.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Instrumented Tier1)
          -9 (-0.80 % of base) : 570751.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
          -9 (-0.78 % of base) : 192733.dasm - System.RuntimeType:GetField(System.String,int):System.Reflection.FieldInfo:this (Instrumented Tier1)
          -6 (-0.91 % of base) : 193233.dasm - System.RuntimeType:GetEventCandidates(System.String,int,ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.EventInfo]:this (Instrumented Tier1)
          -4 (-0.24 % of base) : 235792.dasm - System.Diagnostics.Tracing.EventSource:DebugCheckEvent(byref,System.Diagnostics.Tracing.EventSource+EventMetadata[],System.Reflection.MethodInfo,System.Diagnostics.Tracing.EventAttribute,System.Diagnostics.Tracing.ManifestBuilder,int) (Instrumented Tier1)

Top method regressions (percentages):
         858 (40.00 % of base) : 2390.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (Instrumented Tier1)
         232 (32.95 % of base) : 2254.dasm - System.IO.PathInternal:NormalizeDirectorySeparators(System.String):System.String (Instrumented Tier1)
         564 (19.19 % of base) : 232499.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         564 (19.19 % of base) : 51204.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         564 (19.14 % of base) : 224550.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         564 (19.14 % of base) : 273261.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         564 (19.14 % of base) : 34699.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         556 (17.75 % of base) : 154877.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         556 (17.62 % of base) : 110436.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         556 (17.62 % of base) : 175212.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         564 (16.93 % of base) : 30632.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         564 (16.86 % of base) : 105893.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
         225 (12.91 % of base) : 24195.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         223 (12.76 % of base) : 31003.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         223 (12.76 % of base) : 358606.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         223 (12.76 % of base) : 1293.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         223 (12.76 % of base) : 234287.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         223 (12.76 % of base) : 272591.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         223 (12.76 % of base) : 288731.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)
         223 (12.76 % of base) : 289253.dasm - System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this (Instrumented Tier1)

Top method improvements (percentages):
          -6 (-0.91 % of base) : 193233.dasm - System.RuntimeType:GetEventCandidates(System.String,int,ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.EventInfo]:this (Instrumented Tier1)
          -9 (-0.80 % of base) : 570751.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
          -9 (-0.78 % of base) : 192733.dasm - System.RuntimeType:GetField(System.String,int):System.Reflection.FieldInfo:this (Instrumented Tier1)
         -17 (-0.77 % of base) : 219830.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Instrumented Tier1)
          -4 (-0.24 % of base) : 235792.dasm - System.Diagnostics.Tracing.EventSource:DebugCheckEvent(byref,System.Diagnostics.Tracing.EventSource+EventMetadata[],System.Reflection.MethodInfo,System.Diagnostics.Tracing.EventAttribute,System.Diagnostics.Tracing.ManifestBuilder,int) (Instrumented Tier1)


libraries.crossgen2.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 39442575 (overridden on cmd)
Total bytes of diff: 39442213 (overridden on cmd)
Total bytes of delta: -362 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
        -199 : 99712.dasm (-19.38 % of base)
         -50 : 224930.dasm (-17.86 % of base)
         -50 : 214238.dasm (-17.86 % of base)
         -39 : 21666.dasm (-9.47 % of base)
         -14 : 231069.dasm (-0.93 % of base)
         -10 : 238829.dasm (-1.98 % of base)

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

Top method improvements (bytes):
        -199 (-19.38 % of base) : 99712.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]],int):this (FullOpts)
         -50 (-17.86 % of base) : 224930.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -50 (-17.86 % of base) : 214238.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -39 (-9.47 % of base) : 21666.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (FullOpts)
         -14 (-0.93 % of base) : 231069.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)
         -10 (-1.98 % of base) : 238829.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (percentages):
        -199 (-19.38 % of base) : 99712.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]],int):this (FullOpts)
         -50 (-17.86 % of base) : 224930.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -50 (-17.86 % of base) : 214238.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -39 (-9.47 % of base) : 21666.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (FullOpts)
         -10 (-1.98 % of base) : 238829.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)
         -14 (-0.93 % of base) : 231069.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

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


libraries.pmi.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 61196926 (overridden on cmd)
Total bytes of diff: 61196849 (overridden on cmd)
Total bytes of delta: -77 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         234 : 267754.dasm (2.42 % of base)
          13 : 300113.dasm (2.82 % of base)

Top file improvements (bytes):
        -206 : 104979.dasm (-19.20 % of base)
         -54 : 235315.dasm (-16.31 % of base)
         -54 : 270218.dasm (-16.31 % of base)
          -9 : 254176.dasm (-0.80 % of base)
          -1 : 299191.dasm (-0.07 % of base)

7 total files with Code Size differences (5 improved, 2 regressed), 0 unchanged.

Top method regressions (bytes):
         234 (2.42 % of base) : 267754.dasm - R2RDump.TextDumper:DumpSectionContents(ILCompiler.Reflection.ReadyToRun.ReadyToRunSection):this (FullOpts)
          13 (2.82 % of base) : 300113.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (bytes):
        -206 (-19.20 % of base) : 104979.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]],int):this (FullOpts)
         -54 (-16.31 % of base) : 270218.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -54 (-16.31 % of base) : 235315.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
          -9 (-0.80 % of base) : 254176.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
          -1 (-0.07 % of base) : 299191.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

Top method regressions (percentages):
          13 (2.82 % of base) : 300113.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)
         234 (2.42 % of base) : 267754.dasm - R2RDump.TextDumper:DumpSectionContents(ILCompiler.Reflection.ReadyToRun.ReadyToRunSection):this (FullOpts)

Top method improvements (percentages):
        -206 (-19.20 % of base) : 104979.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ReducedExtensionMethodSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]],int):this (FullOpts)
         -54 (-16.31 % of base) : 270218.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -54 (-16.31 % of base) : 235315.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
          -9 (-0.80 % of base) : 254176.dasm - ILCompiler.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (FullOpts)
          -1 (-0.07 % of base) : 299191.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

7 total methods with Code Size differences (5 improved, 2 regressed).


libraries_tests.run.windows.x64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 279033795 (overridden on cmd)
Total bytes of diff: 279865509 (overridden on cmd)
Total bytes of delta: 831714 (0.30 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        6756 : 293474.dasm (80.34 % of base)
        6756 : 320715.dasm (80.34 % of base)
        6756 : 340676.dasm (80.34 % of base)
        6756 : 382786.dasm (80.34 % of base)
        6756 : 199979.dasm (80.34 % of base)
        6756 : 408447.dasm (80.34 % of base)
        6756 : 547552.dasm (80.34 % of base)
        6756 : 409135.dasm (80.34 % of base)
        6756 : 543412.dasm (80.34 % of base)
        6756 : 547090.dasm (80.34 % of base)
        6756 : 681630.dasm (80.34 % of base)
        6756 : 683540.dasm (80.34 % of base)
        6756 : 186328.dasm (80.34 % of base)
        6756 : 272704.dasm (80.34 % of base)
        6756 : 305746.dasm (80.34 % of base)
        6756 : 319012.dasm (80.34 % of base)
        6756 : 395876.dasm (80.34 % of base)
        6756 : 400752.dasm (80.34 % of base)
        6756 : 507960.dasm (80.34 % of base)
        6756 : 681007.dasm (80.34 % of base)

Top file improvements (bytes):
        -251 : 638050.dasm (-19.03 % of base)
        -205 : 647142.dasm (-15.66 % of base)
        -148 : 638264.dasm (-32.10 % of base)
        -137 : 647594.dasm (-20.42 % of base)
        -136 : 628173.dasm (-19.91 % of base)
        -124 : 638071.dasm (-22.50 % of base)
        -116 : 638075.dasm (-23.63 % of base)
        -115 : 638079.dasm (-19.39 % of base)
         -93 : 638267.dasm (-20.13 % of base)
         -70 : 497107.dasm (-12.66 % of base)
         -70 : 630138.dasm (-17.46 % of base)
         -54 : 647593.dasm (-14.40 % of base)
         -17 : 30498.dasm (-0.77 % of base)
         -10 : 267071.dasm (-0.14 % of base)
          -7 : 29645.dasm (-0.72 % of base)
          -6 : 99185.dasm (-0.93 % of base)
          -4 : 267090.dasm (-0.24 % of base)
          -4 : 35538.dasm (-0.39 % of base)

65 total files with Code Size differences (18 improved, 47 regressed), 0 unchanged.

Top method regressions (bytes):
        6756 (80.34 % of base) : 293474.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6756 (80.34 % of base) : 320715.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6756 (80.34 % of base) : 340676.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6756 (80.34 % of base) : 382786.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6756 (80.34 % of base) : 199979.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6756 (80.34 % of base) : 408447.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6756 (80.34 % of base) : 547552.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6756 (80.34 % of base) : 409135.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6756 (80.34 % of base) : 543412.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6756 (80.34 % of base) : 547090.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6756 (80.34 % of base) : 681630.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6756 (80.34 % of base) : 683540.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6756 (80.34 % of base) : 186328.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6756 (80.34 % of base) : 272704.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6756 (80.34 % of base) : 305746.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6756 (80.34 % of base) : 319012.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6756 (80.34 % of base) : 395876.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6756 (80.34 % of base) : 400752.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6756 (80.34 % of base) : 507960.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6756 (80.34 % of base) : 681007.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)

Top method improvements (bytes):
        -251 (-19.03 % of base) : 638050.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29752_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -205 (-15.66 % of base) : 647142.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31465_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -148 (-32.10 % of base) : 638264.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29890_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -137 (-20.42 % of base) : 647594.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31763_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -136 (-19.91 % of base) : 628173.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29217_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -124 (-22.50 % of base) : 638071.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29783_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -116 (-23.63 % of base) : 638075.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29790_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -115 (-19.39 % of base) : 638079.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29797_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -93 (-20.13 % of base) : 638267.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29892_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -70 (-17.46 % of base) : 630138.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex3172_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -70 (-12.66 % of base) : 497107.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (Instrumented Tier1)
         -54 (-14.40 % of base) : 647593.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31762_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -17 (-0.77 % of base) : 30498.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Instrumented Tier1)
         -10 (-0.14 % of base) : 267071.dasm - System.Diagnostics.Tracing.EventSource:CreateManifestAndDescriptors(System.Type,System.String,System.Diagnostics.Tracing.EventSource,int):ubyte[] (Instrumented Tier1)
          -7 (-0.72 % of base) : 29645.dasm - System.RuntimeType:GetField(System.String,int):System.Reflection.FieldInfo:this (Instrumented Tier1)
          -6 (-0.93 % of base) : 99185.dasm - System.RuntimeType:GetEventCandidates(System.String,int,ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.EventInfo]:this (Instrumented Tier1)
          -4 (-0.24 % of base) : 267090.dasm - System.Diagnostics.Tracing.EventSource:DebugCheckEvent(byref,System.Diagnostics.Tracing.EventSource+EventMetadata[],System.Reflection.MethodInfo,System.Diagnostics.Tracing.EventAttribute,System.Diagnostics.Tracing.ManifestBuilder,int) (Instrumented Tier1)
          -4 (-0.39 % of base) : 35538.dasm - System.IO.Path:Combine(System.String[]):System.String (Instrumented Tier1)

Top method regressions (percentages):
        6624 (80.75 % of base) : 212582.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6624 (80.75 % of base) : 261088.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6691 (80.56 % of base) : 190472.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6691 (80.56 % of base) : 288660.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6691 (80.56 % of base) : 315240.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6691 (80.56 % of base) : 351695.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6691 (80.56 % of base) : 374299.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6691 (80.56 % of base) : 481279.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6691 (80.56 % of base) : 579744.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6691 (80.56 % of base) : 610811.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6691 (80.56 % of base) : 72936.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6691 (80.56 % of base) : 358636.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6691 (80.56 % of base) : 483939.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6691 (80.56 % of base) : 131072.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6691 (80.56 % of base) : 212844.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6691 (80.56 % of base) : 361980.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6691 (80.56 % of base) : 291339.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6691 (80.56 % of base) : 321592.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6691 (80.56 % of base) : 329792.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        6691 (80.56 % of base) : 517483.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)

Top method improvements (percentages):
        -148 (-32.10 % of base) : 638264.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29890_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -116 (-23.63 % of base) : 638075.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29790_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -124 (-22.50 % of base) : 638071.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29783_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -137 (-20.42 % of base) : 647594.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31763_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -93 (-20.13 % of base) : 638267.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29892_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -136 (-19.91 % of base) : 628173.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29217_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -115 (-19.39 % of base) : 638079.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29797_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -251 (-19.03 % of base) : 638050.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29752_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -70 (-17.46 % of base) : 630138.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex3172_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -205 (-15.66 % of base) : 647142.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31465_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -54 (-14.40 % of base) : 647593.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31762_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -70 (-12.66 % of base) : 497107.dasm - System.Text.Rune:DecodeLastFromUtf8(System.ReadOnlySpan`1[ubyte],byref,byref):int (Instrumented Tier1)
          -6 (-0.93 % of base) : 99185.dasm - System.RuntimeType:GetEventCandidates(System.String,int,ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.EventInfo]:this (Instrumented Tier1)
         -17 (-0.77 % of base) : 30498.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Instrumented Tier1)
          -7 (-0.72 % of base) : 29645.dasm - System.RuntimeType:GetField(System.String,int):System.Reflection.FieldInfo:this (Instrumented Tier1)
          -4 (-0.39 % of base) : 35538.dasm - System.IO.Path:Combine(System.String[]):System.String (Instrumented Tier1)
          -4 (-0.24 % of base) : 267090.dasm - System.Diagnostics.Tracing.EventSource:DebugCheckEvent(byref,System.Diagnostics.Tracing.EventSource+EventMetadata[],System.Reflection.MethodInfo,System.Diagnostics.Tracing.EventAttribute,System.Diagnostics.Tracing.ManifestBuilder,int) (Instrumented Tier1)
         -10 (-0.14 % of base) : 267071.dasm - System.Diagnostics.Tracing.EventSource:CreateManifestAndDescriptors(System.Type,System.String,System.Diagnostics.Tracing.EventSource,int):ubyte[] (Instrumented Tier1)


librariestestsnotieredcompilation.run.windows.x64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 133435993 (overridden on cmd)
Total bytes of diff: 133434780 (overridden on cmd)
Total bytes of delta: -1213 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         141 : 302413.dasm (7.91 % of base)
          13 : 121925.dasm (2.82 % of base)

Top file improvements (bytes):
        -252 : 299331.dasm (-19.63 % of base)
        -193 : 305067.dasm (-15.27 % of base)
        -127 : 299350.dasm (-21.10 % of base)
        -127 : 299344.dasm (-24.19 % of base)
        -126 : 305114.dasm (-20.06 % of base)
        -119 : 299347.dasm (-24.84 % of base)
        -106 : 281948.dasm (-17.32 % of base)
         -98 : 299417.dasm (-21.92 % of base)
         -55 : 305113.dasm (-15.28 % of base)
         -54 : 291728.dasm (-15.52 % of base)
         -54 : 65188.dasm (-16.31 % of base)
         -54 : 206727.dasm (-16.31 % of base)
          -2 : 194247.dasm (-0.14 % of base)

15 total files with Code Size differences (13 improved, 2 regressed), 0 unchanged.

Top method regressions (bytes):
         141 (7.91 % of base) : 302413.dasm - System.Text.RegularExpressions.Tests.CustomDerivedRegex+CustomRegexRunnerFactory+CustomRegexRunner:Go():this (FullOpts)
          13 (2.82 % of base) : 121925.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (bytes):
        -252 (-19.63 % of base) : 299331.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31163_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -193 (-15.27 % of base) : 305067.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32394_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -127 (-24.19 % of base) : 299344.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31194_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -127 (-21.10 % of base) : 299350.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31208_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -126 (-20.06 % of base) : 305114.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32691_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -119 (-24.84 % of base) : 299347.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31201_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -106 (-17.32 % of base) : 281948.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex17_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -98 (-21.92 % of base) : 299417.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31303_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -55 (-15.28 % of base) : 305113.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32690_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -54 (-16.31 % of base) : 65188.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -54 (-16.31 % of base) : 206727.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -54 (-15.52 % of base) : 291728.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2787_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          -2 (-0.14 % of base) : 194247.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

Top method regressions (percentages):
         141 (7.91 % of base) : 302413.dasm - System.Text.RegularExpressions.Tests.CustomDerivedRegex+CustomRegexRunnerFactory+CustomRegexRunner:Go():this (FullOpts)
          13 (2.82 % of base) : 121925.dasm - System.Numerics.BigInteger:.ctor(System.Decimal):this (FullOpts)

Top method improvements (percentages):
        -119 (-24.84 % of base) : 299347.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31201_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -127 (-24.19 % of base) : 299344.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31194_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -98 (-21.92 % of base) : 299417.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31303_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -127 (-21.10 % of base) : 299350.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31208_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -126 (-20.06 % of base) : 305114.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32691_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -252 (-19.63 % of base) : 299331.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31163_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -106 (-17.32 % of base) : 281948.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex17_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -54 (-16.31 % of base) : 65188.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -54 (-16.31 % of base) : 206727.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -54 (-15.52 % of base) : 291728.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2787_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -55 (-15.28 % of base) : 305113.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32690_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -193 (-15.27 % of base) : 305067.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32394_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          -2 (-0.14 % of base) : 194247.dasm - System.Runtime.Caching.ExpiresBucket:FlushExpiredItems(System.DateTime,ubyte):int:this (FullOpts)

15 total methods with Code Size differences (13 improved, 2 regressed).


smoke_tests.nativeaot.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 5091660 (overridden on cmd)
Total bytes of diff: 5092017 (overridden on cmd)
Total bytes of delta: 357 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          51 : 16647.dasm (2.23 % of base)
          51 : 6434.dasm (2.32 % of base)
          51 : 11732.dasm (2.43 % of base)
          51 : 5210.dasm (2.16 % of base)
          51 : 1454.dasm (2.23 % of base)
          51 : 21916.dasm (2.23 % of base)
          51 : 19295.dasm (2.23 % of base)

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

Top method regressions (bytes):
          51 (2.32 % of base) : 6434.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
          51 (2.43 % of base) : 11732.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
          51 (2.23 % of base) : 16647.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          51 (2.16 % of base) : 5210.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          51 (2.23 % of base) : 1454.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          51 (2.23 % of base) : 21916.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          51 (2.23 % of base) : 19295.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)

Top method regressions (percentages):
          51 (2.43 % of base) : 11732.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
          51 (2.32 % of base) : 6434.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
          51 (2.23 % of base) : 1454.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          51 (2.23 % of base) : 16647.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          51 (2.23 % of base) : 21916.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          51 (2.23 % of base) : 19295.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          51 (2.16 % of base) : 5210.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)

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