Assembly Diffs

linux arm64

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

MISSED contexts: base: 3,956 (0.16%), diff: 4,060 (0.16%)

Overall (+670,544 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 15,577,276 -156
benchmarks.run_pgo.linux.arm64.checked.mch 80,907,368 +227,948
benchmarks.run_tiered.linux.arm64.checked.mch 24,708,932 +48
coreclr_tests.run.linux.arm64.checked.mch 509,787,824 +37,012
libraries.crossgen2.linux.arm64.checked.mch 55,736,420 +1,616
libraries.pmi.linux.arm64.checked.mch 75,990,012 +32,840
libraries_tests.run.linux.arm64.Release.mch 381,208,104 +242,252
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 162,529,068 +127,424
realworld.run.linux.arm64.checked.mch 15,905,768 +1,280
smoke_tests.nativeaot.linux.arm64.checked.mch 2,949,052 +280

FullOpts (+670,544 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 15,274,268 -156
benchmarks.run_pgo.linux.arm64.checked.mch 55,970,908 +227,948
benchmarks.run_tiered.linux.arm64.checked.mch 4,924,076 +48
coreclr_tests.run.linux.arm64.checked.mch 160,562,768 +37,012
libraries.crossgen2.linux.arm64.checked.mch 55,734,784 +1,616
libraries.pmi.linux.arm64.checked.mch 75,870,028 +32,840
libraries_tests.run.linux.arm64.Release.mch 165,910,964 +242,252
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 149,047,856 +127,424
realworld.run.linux.arm64.checked.mch 15,320,400 +1,280
smoke_tests.nativeaot.linux.arm64.checked.mch 2,948,104 +280

Example diffs

benchmarks.run.linux.arm64.checked.mch

-12 (-3.33%) : 2345.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)

@@ -35,10 +35,10 @@ G_M17703_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             mov     w20, w1
                        ;; size=28 bbWeight=1 PerfScore 5.00
 G_M17703_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
-            tbnz    w20, #31, G_M17703_IG10
+            tbnz    w20, #31, G_M17703_IG08
             fmov    s16, #1.0000
             fcmp    s8, s16
-            blo     G_M17703_IG11
+            blo     G_M17703_IG09
                        ;; size=16 bbWeight=1 PerfScore 3.50
 G_M17703_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             fmov    s16, #1.0000
@@ -48,31 +48,24 @@ G_M17703_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
             fcmp    s8, s16
             beq     G_M17703_IG04
             fcmp    s8, s8
-            bne     G_M17703_IG11
+            bne     G_M17703_IG09
                        ;; size=32 bbWeight=0.50 PerfScore 3.50
 G_M17703_IG04:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             fmov    s16, #10.0000
             fcmp    s8, s16
-            bhs     G_M17703_IG06
+            blo     G_M17703_IG06
                        ;; size=12 bbWeight=1 PerfScore 2.50
-G_M17703_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            b       G_M17703_IG08
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M17703_IG06:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M17703_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             fmov    s16, #10.0000
             fcmp    s8, s16
-            bgt     G_M17703_IG12
+            bgt     G_M17703_IG10
             fmov    s16, #10.0000
             fcmp    s8, s16
-            bne     G_M17703_IG07
-            b       G_M17703_IG08
-                       ;; size=28 bbWeight=0.50 PerfScore 3.00
-G_M17703_IG07:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            beq     G_M17703_IG06
             fcmp    s8, s8
-            beq     G_M17703_IG12
-            b       G_M17703_IG05
-                       ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M17703_IG08:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            beq     G_M17703_IG10
+                       ;; size=32 bbWeight=0.50 PerfScore 3.50
+G_M17703_IG06:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             sxtw    x1, w20
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
@@ -93,13 +86,13 @@ G_M17703_IG08:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             fcvtzs  w0, s16
             str     w0, [x19, #0x1C]
                        ;; size=56 bbWeight=1 PerfScore 15.00
-G_M17703_IG09:        ; bbWeight=1, epilog, nogc, extend
+G_M17703_IG07:        ; bbWeight=1, epilog, nogc, extend
             ldp     x19, x20, [sp, #0x20]
             ldr     d8, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=16 bbWeight=1 PerfScore 5.00
-G_M17703_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M17703_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19]
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
@@ -119,7 +112,7 @@ G_M17703_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; gcrRegs -[x1]
             brk_unix #0
                        ;; size=52 bbWeight=0 PerfScore 0.00
-G_M17703_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M17703_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -136,7 +129,7 @@ G_M17703_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             brk_unix #0
                        ;; size=52 bbWeight=0 PerfScore 0.00
-G_M17703_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M17703_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -156,7 +149,7 @@ G_M17703_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
 RWD00      dd  42C80000h       ;       100
 
 
-; Total bytes of code 360, prolog size 16, PerfScore 39.50, instruction count 90, allocated bytes for code 360 (MethodHash=aa62bad8) for method System.Collections.Queue:.ctor(int,float):this (FullOpts)
+; Total bytes of code 348, prolog size 16, PerfScore 38.00, instruction count 87, allocated bytes for code 348 (MethodHash=aa62bad8) for method System.Collections.Queue:.ctor(int,float):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -167,7 +160,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 90 (0x0005a) Actual length = 360 (0x000168)
+  Function Length   : 87 (0x00057) Actual length = 348 (0x00015c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-20 (-2.60%) : 5301.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,System.__Canon]:FindValue(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant):byref:this (FullOpts)

@@ -10,17 +10,17 @@
 ;
 ;  V00 this         [V00,T05] ( 11,  7   )     ref  ->  x19         this class-hnd single-def <System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,System.__Canon]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Linq.Expressions.Compiler.BoundConstants+TypedConstant>
-;  V02 loc0         [V02,T00] ( 12, 33   )   byref  ->  [fp+0x18] 
-;  V03 loc1         [V03,T23] (  3,  2   )   byref  ->   x0        
+;  V02 loc0         [V02,T00] ( 12, 33   )   byref  ->  x27        
+;  V03 loc1         [V03,T23] (  3,  2   )   byref  ->  x27        
 ;  V04 loc2         [V04,T19] (  4,  3.50)     ref  ->  x22         class-hnd single-def <<unknown class>>
 ;  V05 loc3         [V05,T10] (  5,  6   )     int  ->  x22        
 ;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->  x23        
-;  V07 loc5         [V07,T14] (  3,  5   )     ref  ->  x19         class-hnd exact single-def <<unknown class>>
-;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->  x24        
-;  V09 loc7         [V09,T11] (  5,  6   )     int  ->  x24        
-;  V10 loc8         [V10,T02] (  6, 13.50)     int  ->  x25        
+;  V07 loc5         [V07,T14] (  3,  5   )     ref  ->  x24         class-hnd exact single-def <<unknown class>>
+;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->  x25        
+;  V09 loc7         [V09,T11] (  5,  6   )     int  ->  x23        
+;  V10 loc8         [V10,T02] (  6, 13.50)     int  ->  x24        
 ;  V11 loc9         [V11,T15] (  3,  5   )     ref  ->  x19         class-hnd exact single-def <<unknown class>>
-;  V12 loc10        [V12,T04] (  4, 12.50)     int  ->  x26        
+;  V12 loc10        [V12,T04] (  4, 12.50)     int  ->  x25        
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp2         [V15    ] (  0,  0   )     int  ->  zero-ref    "non-inline candidate call"
@@ -34,10 +34,10 @@
 ;* V23 tmp10        [V23    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Linq.Expressions.Compiler.BoundConstants+TypedConstant>
 ;  V24 tmp11        [V24,T13] (  2,  4   )   ubyte  ->   x0         "Inline return value spill temp"
 ;* V25 tmp12        [V25    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V26 tmp13        [V26,T27] (  3,  1.50)     ref  ->  x26         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V27 tmp14        [V27,T17] (  4,  4   )     int  ->  x27         "Inlining Arg"
-;  V28 tmp15        [V28,T25] (  2,  2   )    long  ->  x28         "Inlining Arg"
-;  V29 tmp16        [V29,T22] (  4,  2   )     int  ->  x28         "Inline stloc first use temp"
+;  V26 tmp13        [V26,T27] (  3,  1.50)     ref  ->  x27         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V27 tmp14        [V27,T17] (  4,  4   )     int  ->  x25         "Inlining Arg"
+;  V28 tmp15        [V28,T25] (  2,  2   )    long  ->  x26         "Inlining Arg"
+;  V29 tmp16        [V29,T22] (  4,  2   )     int  ->  x26         "Inline stloc first use temp"
 ;  V30 tmp17        [V30,T09] (  5,  6   )     ref  ->  x21         single-def "field V01.Value (fldOffset=0x0)" P-INDEP
 ;  V31 tmp18        [V31,T06] (  6,  6.50)     ref  ->  x20         single-def "field V01.Type (fldOffset=0x8)" P-INDEP
 ;  V32 tmp19        [V32,T18] (  2,  4   )     ref  ->   x0         "field V22.Value (fldOffset=0x0)" P-INDEP
@@ -45,20 +45,20 @@
 ;* V34 tmp21        [V34    ] (  0,  0   )     ref  ->  zero-ref    "field V23.Value (fldOffset=0x0)" P-INDEP
 ;* V35 tmp22        [V35    ] (  0,  0   )     ref  ->  zero-ref    "field V23.Type (fldOffset=0x8)" P-INDEP
 ;  V36 cse0         [V36,T28] (  3,  1.50)     int  ->  x24         "CSE - moderate"
-;  V37 cse1         [V37,T29] (  3,  1.50)     int  ->  x25         "CSE - moderate"
-;  V38 cse2         [V38,T07] (  3,  8.50)     int  ->  x25         hoist "CSE - aggressive"
-;  V39 cse3         [V39,T08] (  3,  8.50)     int  ->  x27         hoist "CSE - aggressive"
-;  V40 cse4         [V40,T20] (  3,  3   )    long  ->  x23         "CSE - moderate"
+;  V37 cse1         [V37,T29] (  3,  1.50)     int  ->  x24         "CSE - moderate"
+;  V38 cse2         [V38,T07] (  3,  8.50)     int  ->  x26         hoist "CSE - aggressive"
+;  V39 cse3         [V39,T08] (  3,  8.50)     int  ->  x26         hoist "CSE - aggressive"
+;  V40 cse4         [V40,T20] (  3,  3   )    long  ->  x28         "CSE - moderate"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 0
 
 G_M60986_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x70]!
-            stp     x19, x20, [sp, #0x20]
-            stp     x21, x22, [sp, #0x30]
-            stp     x23, x24, [sp, #0x40]
-            stp     x25, x26, [sp, #0x50]
-            stp     x27, x28, [sp, #0x60]
+            stp     fp, lr, [sp, #-0x60]!
+            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]
@@ -70,7 +70,7 @@ G_M60986_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M60986_IG02:        ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [x19, #0x08]
             ; gcrRegs +[x0]
-            cbz     x0, G_M60986_IG16
+            cbz     x0, G_M60986_IG15
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M60986_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
@@ -130,7 +130,7 @@ G_M60986_IG04:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
             mul     x0, x0, x1
             lsr     x26, x0, #32
             cmp     w25, #0
-            beq     G_M60986_IG18
+            beq     G_M60986_IG17
             udiv    w0, w22, w25
             msub    w0, w0, w25, w22
             cmp     w0, w26
@@ -142,30 +142,32 @@ G_M60986_IG04:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
             blr     x1
             ; gcr arg pop 0
             cmp     w26, w24
-            bhs     G_M60986_IG17
+            bhs     G_M60986_IG16
             add     x0, x23, #16
             ; byrRegs +[x0]
             ldr     w23, [x0, w26, UXTW #2]
             ; gcrRegs -[x23]
-            ldr     x19, [x19, #0x10]
-            mov     w24, wzr
+            ldr     x24, [x19, #0x10]
+            ; gcrRegs +[x24]
+            mov     w25, wzr
             sub     w23, w23, #1
-            ldr     w25, [x19, #0x08]
+            ldr     w26, [x24, #0x08]
                        ;; size=188 bbWeight=0.50 PerfScore 36.50
-G_M60986_IG05:        ; bbWeight=4, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M60986_IG05:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x19]
             ; byrRegs -[x0]
-            cmp     w25, w23
-            bls     G_M60986_IG16
+            cmp     w26, w23
+            bls     G_M60986_IG15
             ubfiz   x0, x23, #5, #32
             add     x0, x0, #16
-            add     x26, x19, x0
-            ; byrRegs +[x26]
-            ldr     w0, [x26, #0x08]
+            add     x27, x24, x0
+            ; byrRegs +[x27]
+            ldr     w0, [x27, #0x08]
             cmp     w0, w22
             bne     G_M60986_IG07
                        ;; size=32 bbWeight=4 PerfScore 32.00
-G_M60986_IG06:        ; bbWeight=2, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=4000000 {x26}, byref, isz
-            ldp     x0, x2, [x26, #0x10]
+G_M60986_IG06:        ; bbWeight=2, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8000000 {x27}, byref, isz
+            ldp     x0, x2, [x27, #0x10]
             ; gcrRegs +[x0 x2]
             cmp     x0, x21
             bne     G_M60986_IG07
@@ -179,18 +181,18 @@ G_M60986_IG06:        ; bbWeight=2, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=40
             blr     x2
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbnz    w0, G_M60986_IG14
+            cbnz    w0, G_M60986_IG12
                        ;; size=40 bbWeight=2 PerfScore 35.00
-G_M60986_IG07:        ; bbWeight=4, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=4000000 {x26}, byref, isz
-            ldr     w23, [x26, #0x0C]
-            add     w24, w24, #1
-            cmp     w25, w24
-            blo     G_M60986_IG19
+G_M60986_IG07:        ; bbWeight=4, gcrefRegs=1300000 {x20 x21 x24}, byrefRegs=8000000 {x27}, byref, isz
+            ldr     w23, [x27, #0x0C]
+            add     w25, w25, #1
+            cmp     w26, w25
+            blo     G_M60986_IG18
             b       G_M60986_IG05
                        ;; size=20 bbWeight=4 PerfScore 24.00
 G_M60986_IG08:        ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x22]
-            ; byrRegs -[x26]
+            ; gcrRegs -[x24] +[x19 x22]
+            ; byrRegs -[x27]
             mov     w0, #1
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -204,20 +206,20 @@ G_M60986_IG08:        ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
             ; gcrRegs +[x2]
             mov     x0, x22
             ; gcrRegs +[x0]
-            movz    x23, #0xD1FFAB1E      // code for <unknown method>
-            movk    x23, #0xD1FFAB1E LSL #16
-            movk    x23, #0xD1FFAB1E LSL #32
-            mov     x11, x23
+            movz    x28, #0xD1FFAB1E      // code for <unknown method>
+            movk    x28, #0xD1FFAB1E LSL #16
+            movk    x28, #0xD1FFAB1E LSL #32
+            mov     x11, x28
             ldr     x3, [x11]
             blr     x3
             ; gcrRegs -[x0-x2]
             ; gcr arg pop 0
-            sxtw    w24, w0
-            ldr     x26, [x19, #0x08]
-            ; gcrRegs +[x26]
-            ldr     w25, [x26, #0x08]
-            sxtw    w27, w25
-            ldr     x28, [x19, #0x30]
+            sxtw    w23, w0
+            ldr     x27, [x19, #0x08]
+            ; gcrRegs +[x27]
+            ldr     w24, [x27, #0x08]
+            sxtw    w25, w24
+            ldr     x26, [x19, #0x30]
             mov     w0, #1
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -225,18 +227,18 @@ G_M60986_IG08:        ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
             ldr     x1, [x1]
             blr     x1
             ; gcr arg pop 0
-            mov     w0, w24
-            mul     x0, x28, x0
+            mov     w0, w23
+            mul     x0, x26, x0
             lsr     x0, x0, #32
             add     x0, x0, #1
-            mov     w1, w27
+            mov     w1, w25
             mul     x0, x0, x1
-            lsr     x28, x0, #32
-            cmp     w27, #0
-            beq     G_M60986_IG18
-            udiv    w0, w24, w27
-            msub    w0, w0, w27, w24
-            cmp     w0, w28
+            lsr     x26, x0, #32
+            cmp     w25, #0
+            beq     G_M60986_IG17
+            udiv    w0, w23, w25
+            msub    w0, w0, w25, w23
+            cmp     w0, w26
             cset    x0, eq
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -244,104 +246,85 @@ G_M60986_IG08:        ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
             ldr     x1, [x1]
             blr     x1
             ; gcr arg pop 0
-            cmp     w28, w25
-            bhs     G_M60986_IG17
-            add     x1, x26, #16
+            cmp     w26, w24
+            bhs     G_M60986_IG16
+            add     x1, x27, #16
             ; byrRegs +[x1]
-            ldr     w25, [x1, w28, UXTW #2]
+            ldr     w24, [x1, w26, UXTW #2]
             ldr     x19, [x19, #0x10]
-            mov     w26, wzr
-            ; gcrRegs -[x26]
-            sub     w25, w25, #1
-            ldr     w27, [x19, #0x08]
+            mov     w25, wzr
+            sub     w24, w24, #1
+            ldr     w26, [x19, #0x08]
                        ;; size=208 bbWeight=0.50 PerfScore 35.00
 G_M60986_IG09:        ; bbWeight=4, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x27]
             ; byrRegs -[x1]
-            cmp     w27, w25
-            bls     G_M60986_IG16
-            ubfiz   x1, x25, #5, #32
+            cmp     w26, w24
...

-4 (-2.27%) : 14485.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)

@@ -58,9 +58,8 @@ G_M14385_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=000D {x0 x2 x3}
             cmp     w4, #110
             beq     G_M14385_IG11
             cmp     w4, #114
-            bne     G_M14385_IG09
-            b       G_M14385_IG07
-                       ;; size=20 bbWeight=2 PerfScore 8.00
+            beq     G_M14385_IG03
+                       ;; size=16 bbWeight=2 PerfScore 6.00
 G_M14385_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000D {x0 x2 x3}, byref, isz
             cmp     w4, #120
             bne     G_M14385_IG13
@@ -96,7 +95,7 @@ G_M14385_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 176, prolog size 8, PerfScore 40.50, instruction count 44, allocated bytes for code 176 (MethodHash=44f4c7ce) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
+; Total bytes of code 172, prolog size 8, PerfScore 38.50, instruction count 43, allocated bytes for code 172 (MethodHash=44f4c7ce) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -107,7 +106,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 44 (0x0002c) Actual length = 176 (0x0000b0)
+  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+5.56%) : 28547.dasm - System.Collections.IterateForEach`1[System.Canon]:FrozenSet():System.Canon:this (FullOpts)

@@ -27,10 +27,10 @@
 ;  V16 tmp11        [V16,T02] (  3,  6   )     ref  ->   x1         single-def "argument with side effect"
 ;  V17 PSPSym       [V17,T10] (  1,  1   )    long  ->  [fp+0x30]  do-not-enreg[V] "PSPSym"
 ;* V18 cse0         [V18,T11] (  0,  0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;  V19 cse1         [V19,T09] (  5,  2.20)    long  ->   x2         hoist multi-def "CSE - aggressive"
-;* V20 rat0         [V20,T05] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V19 cse1         [V19,T09] (  6,  3.20)    long  ->   x2         hoist multi-def "CSE - aggressive"
+;  V20 rat0         [V20,T05] (  2,  4   )    long  ->   x1         "Spilling to split statement for tree"
 ;* V21 rat1         [V21,T08] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V22 rat2         [V22,T03] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V22 rat2         [V22,T03] (  2,  4   )    long  ->   x1         "fgMakeTemp is creating a new local variable"
 ;  V23 rat3         [V23,T04] (  3,  5.60)    long  ->   x3         "fgMakeTemp is creating a new local variable"
 ;  V24 rat4         [V24,T12] (  3,  0   )    long  ->   x2         "Spilling to split statement for tree"
 ;  V25 rat5         [V25,T13] (  3,  0   )    long  ->   x3         "fgMakeTemp is creating a new local variable"
@@ -62,13 +62,18 @@ G_M17622_IG02:        ; bbWeight=1, gcVars=0000000000000002 {V00}, gcrefRegs=000
             ; gcr arg pop 0
             stp     x0, x1, [fp, #0x18]    // [V03 loc2], [V03 loc2+0x08]
                        ;; size=32 bbWeight=1 PerfScore 15.00
-G_M17622_IG03:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M17622_IG03:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             ldr     x0, [fp, #0x10]    // [V00 this]
             ; gcrRegs +[x0]
             ldr     x2, [x0]
+            mov     x1, x2
+            ldr     x1, [x1, #0x38]
+            ldr     x1, [x1]
+            ldr     x1, [x1, #0x20]
+            cbnz    x1, G_M17622_IG05
             b       G_M17622_IG05
-                       ;; size=12 bbWeight=1 PerfScore 6.00
+                       ;; size=32 bbWeight=1 PerfScore 16.50
 G_M17622_IG04:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0 x19]
             ldr     w1, [fp, #0x20]    // [V13 tmp8]
@@ -200,7 +205,7 @@ G_M17622_IG19:        ; bbWeight=0, funclet epilog, nogc, extend
             ret     lr
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 360, prolog size 28, PerfScore 217.50, instruction count 90, allocated bytes for code 360 (MethodHash=5937bb29) for method System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
+; Total bytes of code 380, prolog size 28, PerfScore 228.00, instruction count 95, allocated bytes for code 380 (MethodHash=5937bb29) for method System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -211,7 +216,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 68 (0x00044) Actual length = 272 (0x000110)
+  Function Length   : 73 (0x00049) Actual length = 292 (0x000124)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+12 (+7.69%) : 15929.dasm - System.Collections.Generic.PriorityQueue2[int,int]:MoveUpDefaultComparer(System.ValueTuple2[int,int],int):this (FullOpts)

@@ -16,11 +16,11 @@
 ;* V05 loc2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    <System.ValueTuple`2[int,int]>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V08 tmp2         [V08,T03] (  2, 16   )     int  ->   x7         ld-addr-op "Inlining Arg"
+;  V08 tmp2         [V08,T03] (  3, 20   )     int  ->   x7         ld-addr-op "Inlining Arg"
 ;* V09 tmp3         [V09    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V10 tmp4         [V10,T10] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V11 tmp5         [V11,T08] (  2,  8   )     int  ->   x6         "field V05.Item1 (fldOffset=0x0)" P-INDEP
-;  V12 tmp6         [V12,T05] (  3, 12   )     int  ->   x5         "field V05.Item2 (fldOffset=0x4)" P-INDEP
+;  V12 tmp6         [V12,T05] (  4, 14   )     int  ->   x5         "field V05.Item2 (fldOffset=0x4)" P-INDEP
 ;  V13 tmp7         [V13,T01] (  3, 24   )   byref  ->   x5         "BlockOp address local"
 ;  V14 tmp8         [V14,T02] (  3, 24   )   byref  ->   x2         "BlockOp address local"
 ;  V15 cse0         [V15,T07] (  5, 11   )     int  ->   x1         hoist multi-def "CSE - aggressive"
@@ -37,7 +37,7 @@ G_M9068_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x0]
             ldr     x0, [x0, #0x08]
             cmp     w2, #0
-            ble     G_M9068_IG04
+            ble     G_M9068_IG06
             ldr     w1, [x0, #0x08]
             ldr     w3, [fp, #0x1C]    // [V01 arg1+0x04]
                        ;; size=20 bbWeight=1 PerfScore 9.50
@@ -45,7 +45,7 @@ G_M9068_IG03:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             sub     w4, w2, #1
             asr     w4, w4, #2
             cmp     w4, w1
-            bhs     G_M9068_IG06
+            bhs     G_M9068_IG08
             ubfiz   x5, x4, #3, #32
             add     x5, x5, #16
             add     x5, x0, x5
@@ -54,9 +54,16 @@ G_M9068_IG03:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; byrRegs -[x5]
             sxtw    w7, w3
             cmp     w7, w5
-            bge     G_M9068_IG04
+            blt     G_M9068_IG05
+                       ;; size=44 bbWeight=4 PerfScore 40.00
+G_M9068_IG04:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+            cmp     w7, w5
+            ble     G_M9068_IG06
+            b       G_M9068_IG06
+                       ;; size=12 bbWeight=2 PerfScore 5.00
+G_M9068_IG05:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             cmp     w2, w1
-            bhs     G_M9068_IG06
+            bhs     G_M9068_IG08
             ubfiz   x2, x2, #3, #32
             add     x2, x2, #16
             add     x2, x0, x2
@@ -66,28 +73,28 @@ G_M9068_IG03:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; byrRegs -[x2]
             cmp     w2, #0
             bgt     G_M9068_IG03
-                       ;; size=80 bbWeight=4 PerfScore 66.00
-G_M9068_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+                       ;; size=36 bbWeight=4 PerfScore 26.00
+G_M9068_IG06:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ldr     w1, [x0, #0x08]
             cmp     w2, w1
-            bhs     G_M9068_IG06
+            bhs     G_M9068_IG08
             ubfiz   x1, x2, #3, #32
             add     x1, x1, #16
             ldr     x2, [fp, #0x18]    // [V01 arg1]
             str     x2, [x0, x1]
                        ;; size=28 bbWeight=1 PerfScore 9.00
-G_M9068_IG05:        ; bbWeight=1, epilog, nogc, extend
+G_M9068_IG07:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M9068_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M9068_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 156, prolog size 12, PerfScore 89.00, instruction count 39, allocated bytes for code 156 (MethodHash=d4dadc93) for method System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
+; Total bytes of code 168, prolog size 12, PerfScore 94.00, instruction count 42, allocated bytes for code 168 (MethodHash=d4dadc93) for method System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -98,7 +105,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 39 (0x00027) Actual length = 156 (0x00009c)
+  Function Length   : 42 (0x0002a) Actual length = 168 (0x0000a8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+14.29%) : 24463.dasm - System.Collections.IterateForEach`1[System.Canon]:ImmutableStack():System.Canon:this (FullOpts)

@@ -8,7 +8,7 @@
 ; 0 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  3,  3   )     ref  ->  x19         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+;  V00 this         [V00,T01] (  4,  4   )     ref  ->  x19         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
 ;  V01 loc0         [V01,T04] (  3,  4   )     ref  ->  x20         ld-addr-op class-hnd <System.__Canon>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
 ;* V03 loc2         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op single-def <System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]>
@@ -23,21 +23,22 @@
 ;  V12 tmp7         [V12,T06] (  2,  3   )     ref  ->  x21         "field V03._originalStack (fldOffset=0x0)" P-INDEP
 ;  V13 tmp8         [V13,T00] (  8, 27   )     ref  ->  x22         "field V03._remainingStack (fldOffset=0x8)" P-INDEP
 ;* V14 cse0         [V14,T07] (  0,  0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;* V15 rat0         [V15,T03] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V15 rat0         [V15,T03] (  2,  4   )    long  ->   x0         "Spilling to split statement for tree"
 ;* V16 rat1         [V16,T05] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V17 rat2         [V17,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V17 rat2         [V17,T02] (  2,  4   )    long  ->   x0         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M64146_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
+            stp     fp, lr, [sp, #-0x40]!
+            stp     x19, x20, [sp, #0x20]
+            stp     x21, x22, [sp, #0x30]
             mov     fp, sp
+            str     x0, [fp, #0x18]
             mov     x19, x0
             ; gcrRegs +[x19]
-                       ;; size=20 bbWeight=1 PerfScore 4.00
-G_M64146_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+                       ;; size=24 bbWeight=1 PerfScore 5.00
+G_M64146_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             mov     x20, xzr
             ; gcrRegs +[x20]
             ldr     x0, [x19, #0xA0]
@@ -53,10 +54,16 @@ G_M64146_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             ; gcrRegs +[x21]
             mov     x22, x1
             ; gcrRegs +[x22]
+            ldr     x0, [x19]
+            ; gcrRegs -[x0]
+            ldr     x0, [x0, #0x38]
+            ldr     x0, [x0]
+            ldr     x0, [x0, #0x20]
+            cbnz    x0, G_M64146_IG04
             b       G_M64146_IG04
-                       ;; size=44 bbWeight=1 PerfScore 14.00
+                       ;; size=64 bbWeight=1 PerfScore 27.00
 G_M64146_IG03:        ; bbWeight=2, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0-x1 x20]
+            ; gcrRegs -[x1 x20]
             mov     x0, x22
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for System.Collections.Immutable.ImmutableStack`1[System.__Canon]:Peek():System.__Canon:this
@@ -103,13 +110,13 @@ G_M64146_IG08:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ; gcrRegs +[x0]
                        ;; size=4 bbWeight=1 PerfScore 0.50
 G_M64146_IG09:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
-            ldp     fp, lr, [sp], #0x30
+            ldp     x21, x22, [sp, #0x30]
+            ldp     x19, x20, [sp, #0x20]
+            ldp     fp, lr, [sp], #0x40
             ret     lr
                        ;; size=16 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 168, prolog size 16, PerfScore 99.50, instruction count 42, allocated bytes for code 168 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
+; Total bytes of code 192, prolog size 20, PerfScore 113.50, instruction count 48, allocated bytes for code 192 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -120,7 +127,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 42 (0x0002a) Actual length = 168 (0x0000a8)
+  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -129,8 +136,8 @@ Unwind Info:
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
     E6          save_next
-    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    C8 04       save_regp X#0 Z#4 (0x04); stp x19, x20, [sp, #32]
+    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
     E4          end
     E4          end

benchmarks.run_pgo.linux.arm64.checked.mch

-8 (-11.11%) : 5856.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)

@@ -17,7 +17,7 @@
 ;
 ; Lcl frame size = 0
 
-G_M57887_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M57887_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
@@ -25,8 +25,14 @@ G_M57887_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ; gcrRegs +[x0]
             ldr     x2, [x0, #0x18]
             ; gcrRegs +[x2]
-            cbnz    x2, G_M57887_IG05
-                       ;; size=8 bbWeight=1 PerfScore 4.00
+            cbz     x2, G_M57887_IG03
+            tst     w1, #255
+            bne     G_M57887_IG05
+            ldr     w1, [x2, #0x5C]
+            and     w1, w1, #7
+            cmp     w1, #6
+            beq     G_M57887_IG05
+                       ;; size=32 bbWeight=1 PerfScore 10.50
 G_M57887_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0 x2]
             mov     x0, xzr
@@ -35,33 +41,16 @@ G_M57887_IG04:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M57887_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x0 x2]
-            tst     w1, #255
-            beq     G_M57887_IG07
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M57887_IG06:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2]
-            b       G_M57887_IG08
-                       ;; size=4 bbWeight=0 PerfScore 0.00
-G_M57887_IG07:        ; bbWeight=1, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x2]
-            ldr     w1, [x2, #0x5C]
-            and     w1, w1, #7
-            cmp     w1, #6
-            beq     G_M57887_IG08
-            b       G_M57887_IG03
-                       ;; size=20 bbWeight=1 PerfScore 6.00
-G_M57887_IG08:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2]
+G_M57887_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x0]
             ldr     x0, [x0, #0x18]
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M57887_IG09:        ; bbWeight=0, epilog, nogc, extend
+G_M57887_IG06:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 72, prolog size 8, PerfScore 13.00, instruction count 18, allocated bytes for code 72 (MethodHash=f3d51de0) for method System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
+; Total bytes of code 64, prolog size 8, PerfScore 12.00, instruction count 16, allocated bytes for code 64 (MethodHash=f3d51de0) for method System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -72,7 +61,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-28 (-8.05%) : 129825.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)

@@ -12,39 +12,37 @@
 ;  V00 this         [V00,T00] (  9,  6.59)     ref  ->  x19         this class-hnd single-def <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]>
 ;  V01 arg1         [V01,T02] (  4,  3   )   byref  ->  x20         single-def
 ;  V02 loc0         [V02,T03] (  5,  3.83)     ref  ->  x21         class-hnd exact single-def <<unknown class>>
-;  V03 loc1         [V03    ] (  2,  1.00)  struct ( 8) [fp+0x10]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Threading.SpinWait>
+;  V03 loc1         [V03    ] (  2,  1.00)  struct ( 8) [fp+0x18]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Threading.SpinWait>
 ;  V04 loc2         [V04,T01] (  9,  5.25)     int  ->  x23        
 ;  V05 loc3         [V05,T04] (  3,  3.00)     int  ->  x13        
 ;* V06 loc4         [V06    ] (  0,  0   )     int  ->  zero-ref   
-;  V07 loc5         [V07,T06] (  3,  2.59)     int  ->   x0        
-;  V08 loc6         [V08,T11] (  2,  0.59)   ubyte  ->   x0        
-;  V09 loc7         [V09,T10] (  3,  1.17)     int  ->  x27        
+;  V07 loc5         [V07,T06] (  3,  2.59)     int  ->   x2        
+;  V08 loc6         [V08,T11] (  2,  0.59)   ubyte  ->   x2        
+;  V09 loc7         [V09,T10] (  3,  1.17)     int  ->  x24        
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V11 tmp1         [V11    ] (  2,  1.00)     int  ->  [fp+0x10]  do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x0)" P-DEP
-;  V12 cse0         [V12,T09] (  3,  1.25)   byref  ->  x26         "CSE - moderate"
-;  V13 cse1         [V13,T05] (  4,  2.83)    long  ->  x25         "CSE - aggressive"
-;  V14 cse2         [V14,T08] (  3,  2.41)     int  ->  x24         "CSE - aggressive"
+;  V11 tmp1         [V11    ] (  2,  1.00)     int  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x0)" P-DEP
+;  V12 cse0         [V12,T09] (  3,  1.25)   byref  ->   x3         "CSE - moderate"
+;  V13 cse1         [V13,T05] (  4,  2.83)    long  ->   x1         "CSE - aggressive"
+;  V14 cse2         [V14,T08] (  3,  2.41)     int  ->   x0         "CSE - aggressive"
 ;  V15 cse3         [V15,T07] (  3,  2.42)   byref  ->  x22         hoist "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 16
 
 G_M25277_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     fp, lr, [sp, #-0x50]!
+            stp     x19, x20, [sp, #0x20]
+            stp     x21, x22, [sp, #0x30]
+            stp     x23, x24, [sp, #0x40]
             mov     fp, sp
             mov     x19, x0
             ; gcrRegs +[x19]
             mov     x20, x1
             ; byrRegs +[x20]
-                       ;; size=36 bbWeight=1 PerfScore 7.50
+                       ;; size=28 bbWeight=1 PerfScore 5.50
 G_M25277_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
             ldr     x21, [x19, #0x08]
             ; gcrRegs +[x21]
-            str     wzr, [fp, #0x10]   // [V03 loc1]
+            str     wzr, [fp, #0x18]   // [V03 loc1]
             add     x22, x19, #160
             ; byrRegs +[x22]
                        ;; size=12 bbWeight=1 PerfScore 4.50
@@ -52,99 +50,96 @@ G_M25277_IG03:        ; bbWeight=1.00, gcrefRegs=280000 {x19 x21}, byrefRegs=500
             ldapr   w23, [x22]
             ldr     w13, [x19, #0x18]
             and     w13, w23, w13
-            ldr     w24, [x21, #0x08]
-            cmp     w13, w24
+            ldr     w0, [x21, #0x08]
+            cmp     w13, w0
             bhs     G_M25277_IG13
             mov     w14, #24
             mov     x12, #16
-            umaddl  x25, w13, w14, x12
-            add     x13, x21, x25
+            umaddl  x1, w13, w14, x12
+            add     x13, x21, x1
             ; byrRegs +[x13]
             ldapr   w13, [x13]
             ; byrRegs -[x13]
             add     w14, w23, #1
-            sub     w0, w13, w14
-            cbz     w0, G_M25277_IG05
+            sub     w2, w13, w14
+            cbz     w2, G_M25277_IG07
                        ;; size=56 bbWeight=1.00 PerfScore 22.53
 G_M25277_IG04:        ; bbWeight=0.58, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, byref, isz
-            tbz     w0, #31, G_M25277_IG03
-            ldrb    w0, [x19, #0x1D]
-            add     x1, x19, #0xD1FFAB1E
-            ; byrRegs +[x1]
-            ldapr   w27, [x1]
-            sub     w1, w27, w23
-            ; byrRegs -[x1]
+            tbz     w2, #31, G_M25277_IG03
+            ldrb    w2, [x19, #0x1D]
+            add     x3, x19, #0xD1FFAB1E
+            ; byrRegs +[x3]
+            ldapr   w24, [x3]
+            sub     w1, w24, w23
             cmp     w1, #0
-            ble     G_M25277_IG09
-            b       G_M25277_IG11
-                       ;; size=32 bbWeight=0.58 PerfScore 6.14
-G_M25277_IG05:        ; bbWeight=0.42, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, byref, isz
+            bgt     G_M25277_IG11
+                       ;; size=28 bbWeight=0.58 PerfScore 5.56
+G_M25277_IG05:        ; bbWeight=0.58, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
+            ; gcrRegs -[x19 x21]
+            ; byrRegs -[x3 x22]
+            stp     xzr, xzr, [x20]
+            mov     w0, wzr
+                       ;; size=8 bbWeight=0.58 PerfScore 0.88
+G_M25277_IG06:        ; bbWeight=0.58, epilog, nogc, extend
+            ldp     x23, x24, [sp, #0x40]
+            ldp     x21, x22, [sp, #0x30]
+            ldp     x19, x20, [sp, #0x20]
+            ldp     fp, lr, [sp], #0x50
+            ret     lr
+                       ;; size=20 bbWeight=0.58 PerfScore 2.92
+G_M25277_IG07:        ; bbWeight=0.42, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, gcvars, byref, isz
+            ; gcrRegs +[x19 x21]
+            ; byrRegs +[x22]
             add     w13, w23, #1
             mov     w14, w23
             casal   w14, w13, [x22]
             cmp     w14, w23
             bne     G_M25277_IG03
-            add     x13, x21, x25
+            add     x13, x21, x1
             ; byrRegs +[x13]
-            add     x26, x13, #8
-            ; byrRegs +[x26]
+            add     x3, x13, #8
+            ; byrRegs +[x3]
             mov     x14, x20
             ; byrRegs +[x14]
-            mov     x13, x26
+            mov     x13, x3
             bl      CORINFO_HELP_ASSIGN_BYREF
             ; byrRegs -[x20 x22]
             ldr     x12, [x13], #0x08
             str     x12, [x14], #0x08
-            add     x0, x19, #28
-            ; byrRegs +[x0]
-            ldaprb  w0, [x0]
-            ; byrRegs -[x0]
-            cbnz    w0, G_M25277_IG07
+            add     x2, x19, #28
+            ; byrRegs +[x2]
+            ldaprb  w2, [x2]
+            ; byrRegs -[x2]
+            cbnz    w2, G_M25277_IG09
                        ;; size=60 bbWeight=0.42 PerfScore 7.08
-G_M25277_IG06:        ; bbWeight=0.41, gcrefRegs=200000 {x21}, byrefRegs=4000000 {x26}, byref
+G_M25277_IG08:        ; bbWeight=0.41, gcrefRegs=200000 {x21}, byrefRegs=0008 {x3}, byref
             ; gcrRegs -[x19]
             ; byrRegs -[x13-x14]
-            stp     xzr, xzr, [x26]
-            add     x0, x21, x25
-            ; byrRegs +[x0]
-            add     w1, w24, w23
-            stlr    w1, [x0]
+            stp     xzr, xzr, [x3]
+            add     x2, x21, x1
+            ; byrRegs +[x2]
+            add     w0, w0, w23
+            stlr    w0, [x2]
                        ;; size=16 bbWeight=0.41 PerfScore 1.24
-G_M25277_IG07:        ; bbWeight=0.42, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25277_IG09:        ; bbWeight=0.42, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x21]
-            ; byrRegs -[x0 x26]
+            ; byrRegs -[x2-x3]
             mov     w0, #1
                        ;; size=4 bbWeight=0.42 PerfScore 0.21
-G_M25277_IG08:        ; bbWeight=0.42, 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     fp, lr, [sp], #0x60
+G_M25277_IG10:        ; bbWeight=0.42, epilog, nogc, extend
+            ldp     x23, x24, [sp, #0x40]
+            ldp     x21, x22, [sp, #0x30]
+            ldp     x19, x20, [sp, #0x20]
+            ldp     fp, lr, [sp], #0x50
             ret     lr
-                       ;; size=28 bbWeight=0.42 PerfScore 3.33
-G_M25277_IG09:        ; bbWeight=0.58, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, gcvars, byref
-            ; byrRegs +[x20]
-            stp     xzr, xzr, [x20]
-            mov     w0, wzr
-                       ;; size=8 bbWeight=0.58 PerfScore 0.88
-G_M25277_IG10:        ; bbWeight=0.58, 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     fp, lr, [sp], #0x60
-            ret     lr
-                       ;; size=28 bbWeight=0.58 PerfScore 4.67
+                       ;; size=20 bbWeight=0.42 PerfScore 2.08
 G_M25277_IG11:        ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, gcvars, byref, isz
             ; gcrRegs +[x19 x21]
-            ; byrRegs +[x22]
-            cbnz    w0, G_M25277_IG14
+            ; byrRegs +[x20 x22]
+            cbnz    w2, G_M25277_IG14
                        ;; size=4 bbWeight=0.00 PerfScore 0.00
 G_M25277_IG12:        ; bbWeight=0.00, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, byref
-            add     x0, fp, #16    // [V03 loc1]
+            add     x0, fp, #24    // [V03 loc1]
             movn    w1, #0
             movz    x2, #0xD1FFAB1E      // code for System.Threading.SpinWait:SpinOnce(int):this
             movk    x2, #0xD1FFAB1E LSL #16
@@ -167,25 +162,25 @@ G_M25277_IG14:        ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=500000
             ; gcrRegs +[x0]
             ldr     w0, [x0, #0x08]
             ; gcrRegs -[x0]
-            sub     w0, w27, w0,  LSL #1
+            sub     w0, w24, w0,  LSL #1
             sub     w0, w0, w23
             cmp     w0, #0
-            ble     G_M25277_IG09
+            ble     G_M25277_IG05
             b       G_M25277_IG12
                        ;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 348, prolog size 36, PerfScore 58.09, instruction count 87, allocated bytes for code 348 (MethodHash=26289d42) for method System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)
+; Total bytes of code 320, prolog size 28, PerfScore 52.50, instruction count 80, allocated bytes for code 320 (MethodHash=26289d42) for method System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 3
+  Code Words        : 2
   Epilog Count      : 2
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 87 (0x00057) Actual length = 348 (0x00015c)
+  Function Length   : 80 (0x00050) Actual length = 320 (0x000140)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -196,13 +191,10 @@ 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
...

-28 (-8.05%) : 134113.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)

@@ -12,39 +12,37 @@
 ;  V00 this         [V00,T00] (  9,  6.60)     ref  ->  x19         this class-hnd single-def <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]>
 ;  V01 arg1         [V01,T02] (  4,  3.01)   byref  ->  x20         single-def
 ;  V02 loc0         [V02,T03] (  5,  3.86)     ref  ->  x21         class-hnd exact single-def <<unknown class>>
-;  V03 loc1         [V03    ] (  2,  1.00)  struct ( 8) [fp+0x10]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Threading.SpinWait>
+;  V03 loc1         [V03    ] (  2,  1.00)  struct ( 8) [fp+0x18]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Threading.SpinWait>
 ;  V04 loc2         [V04,T01] (  9,  5.30)     int  ->  x23        
 ;  V05 loc3         [V05,T04] (  3,  3.03)     int  ->  x13        
 ;* V06 loc4         [V06    ] (  0,  0   )     int  ->  zero-ref   
-;  V07 loc5         [V07,T06] (  3,  2.60)     int  ->   x0        
-;  V08 loc6         [V08,T11] (  2,  0.59)   ubyte  ->   x0        
-;  V09 loc7         [V09,T10] (  3,  1.18)     int  ->  x27        
+;  V07 loc5         [V07,T06] (  3,  2.60)     int  ->   x2        
+;  V08 loc6         [V08,T11] (  2,  0.59)   ubyte  ->   x2        
+;  V09 loc7         [V09,T10] (  3,  1.18)     int  ->  x24        
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V11 tmp1         [V11    ] (  2,  1.00)     int  ->  [fp+0x10]  do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x0)" P-DEP
-;  V12 cse0         [V12,T09] (  3,  1.26)   byref  ->  x26         "CSE - moderate"
-;  V13 cse1         [V13,T05] (  4,  2.86)    long  ->  x25         "CSE - aggressive"
-;  V14 cse2         [V14,T07] (  3,  2.44)     int  ->  x24         "CSE - aggressive"
+;  V11 tmp1         [V11    ] (  2,  1.00)     int  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x0)" P-DEP
+;  V12 cse0         [V12,T09] (  3,  1.26)   byref  ->   x3         "CSE - moderate"
+;  V13 cse1         [V13,T05] (  4,  2.86)    long  ->   x1         "CSE - aggressive"
+;  V14 cse2         [V14,T07] (  3,  2.44)     int  ->   x0         "CSE - aggressive"
 ;  V15 cse3         [V15,T08] (  3,  2.43)   byref  ->  x22         hoist "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 16
 
 G_M25277_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     fp, lr, [sp, #-0x50]!
+            stp     x19, x20, [sp, #0x20]
+            stp     x21, x22, [sp, #0x30]
+            stp     x23, x24, [sp, #0x40]
             mov     fp, sp
             mov     x19, x0
             ; gcrRegs +[x19]
             mov     x20, x1
             ; byrRegs +[x20]
-                       ;; size=36 bbWeight=1 PerfScore 7.50
+                       ;; size=28 bbWeight=1 PerfScore 5.50
 G_M25277_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
             ldr     x21, [x19, #0x08]
             ; gcrRegs +[x21]
-            str     wzr, [fp, #0x10]   // [V03 loc1]
+            str     wzr, [fp, #0x18]   // [V03 loc1]
             add     x22, x19, #160
             ; byrRegs +[x22]
                        ;; size=12 bbWeight=1 PerfScore 4.50
@@ -52,99 +50,96 @@ G_M25277_IG03:        ; bbWeight=1.01, gcrefRegs=280000 {x19 x21}, byrefRegs=500
             ldapr   w23, [x22]
             ldr     w13, [x19, #0x18]
             and     w13, w23, w13
-            ldr     w24, [x21, #0x08]
-            cmp     w13, w24
+            ldr     w0, [x21, #0x08]
+            cmp     w13, w0
             bhs     G_M25277_IG13
             mov     w14, #24
             mov     x12, #16
-            umaddl  x25, w13, w14, x12
-            add     x13, x21, x25
+            umaddl  x1, w13, w14, x12
+            add     x13, x21, x1
             ; byrRegs +[x13]
             ldapr   w13, [x13]
             ; byrRegs -[x13]
             add     w14, w23, #1
-            sub     w0, w13, w14
-            cbz     w0, G_M25277_IG05
+            sub     w2, w13, w14
+            cbz     w2, G_M25277_IG07
                        ;; size=56 bbWeight=1.01 PerfScore 22.70
 G_M25277_IG04:        ; bbWeight=0.59, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, byref, isz
-            tbz     w0, #31, G_M25277_IG03
-            ldrb    w0, [x19, #0x1D]
-            add     x1, x19, #0xD1FFAB1E
-            ; byrRegs +[x1]
-            ldapr   w27, [x1]
-            sub     w1, w27, w23
-            ; byrRegs -[x1]
+            tbz     w2, #31, G_M25277_IG03
+            ldrb    w2, [x19, #0x1D]
+            add     x3, x19, #0xD1FFAB1E
+            ; byrRegs +[x3]
+            ldapr   w24, [x3]
+            sub     w1, w24, w23
             cmp     w1, #0
-            ble     G_M25277_IG09
-            b       G_M25277_IG11
-                       ;; size=32 bbWeight=0.59 PerfScore 6.17
-G_M25277_IG05:        ; bbWeight=0.42, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, byref, isz
+            bgt     G_M25277_IG11
+                       ;; size=28 bbWeight=0.59 PerfScore 5.58
+G_M25277_IG05:        ; bbWeight=0.59, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
+            ; gcrRegs -[x19 x21]
+            ; byrRegs -[x3 x22]
+            stp     xzr, xzr, [x20]
+            mov     w0, wzr
+                       ;; size=8 bbWeight=0.59 PerfScore 0.88
+G_M25277_IG06:        ; bbWeight=0.59, epilog, nogc, extend
+            ldp     x23, x24, [sp, #0x40]
+            ldp     x21, x22, [sp, #0x30]
+            ldp     x19, x20, [sp, #0x20]
+            ldp     fp, lr, [sp], #0x50
+            ret     lr
+                       ;; size=20 bbWeight=0.59 PerfScore 2.94
+G_M25277_IG07:        ; bbWeight=0.42, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, gcvars, byref, isz
+            ; gcrRegs +[x19 x21]
+            ; byrRegs +[x22]
             add     w13, w23, #1
             mov     w14, w23
             casal   w14, w13, [x22]
             cmp     w14, w23
             bne     G_M25277_IG03
-            add     x13, x21, x25
+            add     x13, x21, x1
             ; byrRegs +[x13]
-            add     x26, x13, #8
-            ; byrRegs +[x26]
+            add     x3, x13, #8
+            ; byrRegs +[x3]
             mov     x14, x20
             ; byrRegs +[x14]
-            mov     x13, x26
+            mov     x13, x3
             bl      CORINFO_HELP_ASSIGN_BYREF
             ; byrRegs -[x20 x22]
             ldr     x12, [x13], #0x08
             str     x12, [x14], #0x08
-            add     x0, x19, #28
-            ; byrRegs +[x0]
-            ldaprb  w0, [x0]
-            ; byrRegs -[x0]
-            cbnz    w0, G_M25277_IG07
+            add     x2, x19, #28
+            ; byrRegs +[x2]
+            ldaprb  w2, [x2]
+            ; byrRegs -[x2]
+            cbnz    w2, G_M25277_IG09
                        ;; size=60 bbWeight=0.42 PerfScore 7.16
-G_M25277_IG06:        ; bbWeight=0.42, gcrefRegs=200000 {x21}, byrefRegs=4000000 {x26}, byref
+G_M25277_IG08:        ; bbWeight=0.42, gcrefRegs=200000 {x21}, byrefRegs=0008 {x3}, byref
             ; gcrRegs -[x19]
             ; byrRegs -[x13-x14]
-            stp     xzr, xzr, [x26]
-            add     x0, x21, x25
-            ; byrRegs +[x0]
-            add     w1, w24, w23
-            stlr    w1, [x0]
+            stp     xzr, xzr, [x3]
+            add     x2, x21, x1
+            ; byrRegs +[x2]
+            add     w0, w0, w23
+            stlr    w0, [x2]
                        ;; size=16 bbWeight=0.42 PerfScore 1.26
-G_M25277_IG07:        ; bbWeight=0.41, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25277_IG09:        ; bbWeight=0.41, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x21]
-            ; byrRegs -[x0 x26]
+            ; byrRegs -[x2-x3]
             mov     w0, #1
                        ;; size=4 bbWeight=0.41 PerfScore 0.21
-G_M25277_IG08:        ; bbWeight=0.41, 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     fp, lr, [sp], #0x60
+G_M25277_IG10:        ; bbWeight=0.41, epilog, nogc, extend
+            ldp     x23, x24, [sp, #0x40]
+            ldp     x21, x22, [sp, #0x30]
+            ldp     x19, x20, [sp, #0x20]
+            ldp     fp, lr, [sp], #0x50
             ret     lr
-                       ;; size=28 bbWeight=0.41 PerfScore 3.30
-G_M25277_IG09:        ; bbWeight=0.59, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, gcvars, byref
-            ; byrRegs +[x20]
-            stp     xzr, xzr, [x20]
-            mov     w0, wzr
-                       ;; size=8 bbWeight=0.59 PerfScore 0.88
-G_M25277_IG10:        ; bbWeight=0.59, 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     fp, lr, [sp], #0x60
-            ret     lr
-                       ;; size=28 bbWeight=0.59 PerfScore 4.70
+                       ;; size=20 bbWeight=0.41 PerfScore 2.06
 G_M25277_IG11:        ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, gcvars, byref, isz
             ; gcrRegs +[x19 x21]
-            ; byrRegs +[x22]
-            cbnz    w0, G_M25277_IG14
+            ; byrRegs +[x20 x22]
+            cbnz    w2, G_M25277_IG14
                        ;; size=4 bbWeight=0.00 PerfScore 0.00
 G_M25277_IG12:        ; bbWeight=0.00, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, byref
-            add     x0, fp, #16    // [V03 loc1]
+            add     x0, fp, #24    // [V03 loc1]
             movn    w1, #0
             movz    x2, #0xD1FFAB1E      // code for System.Threading.SpinWait:SpinOnce(int):this
             movk    x2, #0xD1FFAB1E LSL #16
@@ -167,25 +162,25 @@ G_M25277_IG14:        ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=500000
             ; gcrRegs +[x0]
             ldr     w0, [x0, #0x08]
             ; gcrRegs -[x0]
-            sub     w0, w27, w0,  LSL #1
+            sub     w0, w24, w0,  LSL #1
             sub     w0, w0, w23
             cmp     w0, #0
-            ble     G_M25277_IG09
+            ble     G_M25277_IG05
             b       G_M25277_IG12
                        ;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 348, prolog size 36, PerfScore 58.38, instruction count 87, allocated bytes for code 348 (MethodHash=26289d42) for method System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)
+; Total bytes of code 320, prolog size 28, PerfScore 52.79, instruction count 80, allocated bytes for code 320 (MethodHash=26289d42) for method System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 3
+  Code Words        : 2
   Epilog Count      : 2
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 87 (0x00057) Actual length = 348 (0x00015c)
+  Function Length   : 80 (0x00050) Actual length = 320 (0x000140)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -196,13 +191,10 @@ 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
...

+24 (+17.65%) : 5879.dasm - System.RuntimeMethodHandle:GetSlot(System.IRuntimeMethodInfo):int (Tier1)

@@ -7,7 +7,7 @@
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  7,  5.50)     ref  ->  x19         class-hnd single-def <System.IRuntimeMethodInfo>
+;  V00 arg0         [V00,T00] (  8,  5.50)     ref  ->  x19         class-hnd single-def <System.IRuntimeMethodInfo>
 ;  V01 loc0         [V01,T01] (  2,  2   )     int  ->   x0        
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  1.50)    long  ->   x0         "guarded devirt return temp"
@@ -27,9 +27,26 @@ G_M43191_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[x19]
                        ;; size=16 bbWeight=1 PerfScore 3.00
 G_M43191_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
-            cbnz    x19, G_M43191_IG04
+            cbz     x19, G_M43191_IG06
+            ldr     x0, [x19]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x0, x1
+            bne     G_M43191_IG07
+                       ;; size=28 bbWeight=1 PerfScore 7.00
+G_M43191_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+            ldr     x0, [x19, #0x50]
+                       ;; size=4 bbWeight=0.50 PerfScore 1.50
+G_M43191_IG04:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+            bl      <unknown method>
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M43191_IG03:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M43191_IG05:        ; bbWeight=1, epilog, nogc, extend
+            ldr     x19, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=1 PerfScore 4.00
+G_M43191_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -41,27 +58,14 @@ G_M43191_IG03:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-                       ;; size=44 bbWeight=0 PerfScore 0.00
-G_M43191_IG04:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [x19]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
-            cmp     x0, x1
-            bne     G_M43191_IG08
-                       ;; size=24 bbWeight=1 PerfScore 6.00
-G_M43191_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            ldr     x0, [x19, #0x50]
-                       ;; size=4 bbWeight=0.50 PerfScore 1.50
-G_M43191_IG06:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            bl      <unknown method>
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M43191_IG07:        ; bbWeight=1, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
-            ret     lr
-                       ;; size=12 bbWeight=1 PerfScore 4.00
-G_M43191_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+            movz    x11, #0xD1FFAB1E
+            movk    x11, #0xD1FFAB1E LSL #16
+            movk    x11, #0xD1FFAB1E LSL #32
+            cmp     x0, x11
+            beq     G_M43191_IG03
+                       ;; size=68 bbWeight=0 PerfScore 0.00
+G_M43191_IG07:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             mov     x0, x19
             ; gcrRegs +[x0]
             movz    x11, #0xD1FFAB1E      // code for <unknown method>
@@ -70,10 +74,10 @@ G_M43191_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000
             ldr     x1, [x11]
             blr     x1
             ; gcrRegs -[x0]
-            b       G_M43191_IG06
+            b       G_M43191_IG04
                        ;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 136, prolog size 12, PerfScore 16.50, instruction count 34, allocated bytes for code 136 (MethodHash=d2705748) for method System.RuntimeMethodHandle:GetSlot(System.IRuntimeMethodInfo):int (Tier1)
+; Total bytes of code 160, prolog size 12, PerfScore 16.50, instruction count 40, allocated bytes for code 160 (MethodHash=d2705748) for method System.RuntimeMethodHandle:GetSlot(System.IRuntimeMethodInfo):int (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -84,7 +88,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 34 (0x00022) Actual length = 136 (0x000088)
+  Function Length   : 40 (0x00028) Actual length = 160 (0x0000a0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+17.86%) : 83265.dasm - System.Collections.Immutable.ImmutableArray1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray1+Builder[System.__Canon]):this (Tier1)

@@ -9,13 +9,13 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  4   )     ref  ->  x19         this class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
-;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->   x1         class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
+;  V01 arg1         [V01,T00] (  6,  5   )     ref  ->   x1         class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V04 tmp2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.__Canon[]>
-;* V05 rat0         [V05,T03] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V05 rat0         [V05,T03] (  2,  4   )    long  ->   x2         "Spilling to split statement for tree"
 ;* V06 rat1         [V06,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V07 rat2         [V07,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V07 rat2         [V07,T02] (  2,  4   )    long  ->   x2         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -29,10 +29,36 @@ G_M61315_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=20 bbWeight=1 PerfScore 4.00
 G_M61315_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
-            ldr     xzr, [x19]
+            ldr     x2, [x19]
+            ldr     x2, [x2, #0x38]
+            ldr     x2, [x2]
+            ldr     x2, [x2, #0x88]
+            cbz     x2, G_M61315_IG06
+                       ;; size=20 bbWeight=1 PerfScore 13.00
+G_M61315_IG03:        ; bbWeight=0.80, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
+            cbz     x1, G_M61315_IG07
+                       ;; size=4 bbWeight=0.80 PerfScore 0.80
+G_M61315_IG04:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
+            ldr     w2, [x1, #0x10]
+            ldr     x1, [x1, #0x08]
+            mov     x0, x19
+            ; gcrRegs +[x0]
+            movz    x3, #0xD1FFAB1E      // code for System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.__Canon[],int):this
+            movk    x3, #0xD1FFAB1E LSL #16
+            movk    x3, #0xD1FFAB1E LSL #32
+            ldr     x3, [x3]
+                       ;; size=28 bbWeight=1 PerfScore 11.00
+G_M61315_IG05:        ; bbWeight=1, epilog, nogc, extend
+            ldr     x19, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x20
+            br      x3
+            ; gcr arg pop 0
+                       ;; size=12 bbWeight=1 PerfScore 4.00
+G_M61315_IG06:        ; bbWeight=0.20, gcVars=0000000000000000 {}, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[x0]
             cbnz    x1, G_M61315_IG04
-                       ;; size=8 bbWeight=1 PerfScore 4.00
-G_M61315_IG03:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+                       ;; size=4 bbWeight=0.20 PerfScore 0.20
+G_M61315_IG07:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
@@ -50,25 +76,8 @@ G_M61315_IG03:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             ; gcr arg pop 0
             brk_unix #0
                        ;; size=44 bbWeight=0 PerfScore 0.00
-G_M61315_IG04:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x1]
-            ldr     w2, [x1, #0x10]
-            ldr     x1, [x1, #0x08]
-            mov     x0, x19
-            ; gcrRegs +[x0]
-            movz    x3, #0xD1FFAB1E      // code for System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.__Canon[],int):this
-            movk    x3, #0xD1FFAB1E LSL #16
-            movk    x3, #0xD1FFAB1E LSL #32
-            ldr     x3, [x3]
-                       ;; size=28 bbWeight=1 PerfScore 11.00
-G_M61315_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
-            br      x3
-            ; gcr arg pop 0
-                       ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 112, prolog size 20, PerfScore 23.00, instruction count 28, allocated bytes for code 112 (MethodHash=e419107c) for method System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
+; Total bytes of code 132, prolog size 20, PerfScore 33.00, instruction count 33, allocated bytes for code 132 (MethodHash=e419107c) for method System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -79,7 +88,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
+  Function Length   : 33 (0x00021) Actual length = 132 (0x000084)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+18.52%) : 83271.dasm - System.Collections.Immutable.ImmutableHashSet1[System.__Canon]:Union(System.Collections.Generic.IEnumerable1[System.Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.Canon]:this (Tier1)

@@ -8,13 +8,13 @@
 ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  4   )     ref  ->  x19         this class-hnd single-def <System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]>
-;  V01 arg1         [V01,T01] (  4,  4   )     ref  ->   x1         class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.__Canon]>
+;  V00 this         [V00,T01] (  4,  4   )     ref  ->  x19         this class-hnd single-def <System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]>
+;  V01 arg1         [V01,T00] (  5,  4   )     ref  ->   x1         class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.__Canon]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V04 rat0         [V04,T03] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V04 rat0         [V04,T03] (  2,  4   )    long  ->   x0         "Spilling to split statement for tree"
 ;* V05 rat1         [V05,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V06 rat2         [V06,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V06 rat2         [V06,T02] (  2,  4   )    long  ->   x0         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -28,10 +28,35 @@ G_M52093_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=20 bbWeight=1 PerfScore 4.00
 G_M52093_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
-            ldr     xzr, [x19]
+            ldr     x0, [x19]
+            ldr     x0, [x0, #0x38]
+            ldr     x0, [x0]
+            ldr     x0, [x0, #0x80]
+            cbz     x0, G_M52093_IG06
+                       ;; size=20 bbWeight=1 PerfScore 13.00
+G_M52093_IG03:        ; bbWeight=0.80, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
+            cbz     x1, G_M52093_IG07
+                       ;; size=4 bbWeight=0.80 PerfScore 0.80
+G_M52093_IG04:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
+            mov     x0, x19
+            ; gcrRegs +[x0]
+            mov     w2, wzr
+            movz    x3, #0xD1FFAB1E      // code for System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon],ubyte):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this
+            movk    x3, #0xD1FFAB1E LSL #16
+            movk    x3, #0xD1FFAB1E LSL #32
+            ldr     x3, [x3]
+                       ;; size=24 bbWeight=1 PerfScore 5.50
+G_M52093_IG05:        ; bbWeight=1, epilog, nogc, extend
+            ldr     x19, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x20
+            br      x3
+            ; gcr arg pop 0
+                       ;; size=12 bbWeight=1 PerfScore 4.00
+G_M52093_IG06:        ; bbWeight=0.20, gcVars=0000000000000000 {}, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[x0]
             cbnz    x1, G_M52093_IG04
-                       ;; size=8 bbWeight=1 PerfScore 4.00
-G_M52093_IG03:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+                       ;; size=4 bbWeight=0.20 PerfScore 0.20
+G_M52093_IG07:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
@@ -49,24 +74,8 @@ G_M52093_IG03:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             ; gcr arg pop 0
             brk_unix #0
                        ;; size=44 bbWeight=0 PerfScore 0.00
-G_M52093_IG04:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x1]
-            mov     x0, x19
-            ; gcrRegs +[x0]
-            mov     w2, wzr
-            movz    x3, #0xD1FFAB1E      // code for System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon],ubyte):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this
-            movk    x3, #0xD1FFAB1E LSL #16
-            movk    x3, #0xD1FFAB1E LSL #32
-            ldr     x3, [x3]
-                       ;; size=24 bbWeight=1 PerfScore 5.50
-G_M52093_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
-            br      x3
-            ; gcr arg pop 0
-                       ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 108, prolog size 20, PerfScore 17.50, instruction count 27, allocated bytes for code 108 (MethodHash=22173482) for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
+; Total bytes of code 128, prolog size 20, PerfScore 27.50, instruction count 32, allocated bytes for code 128 (MethodHash=22173482) for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -77,7 +86,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 27 (0x0001b) Actual length = 108 (0x00006c)
+  Function Length   : 32 (0x00020) Actual length = 128 (0x000080)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

benchmarks.run_tiered.linux.arm64.checked.mch

-4 (-2.13%) : 39154.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier1)

@@ -71,9 +71,8 @@ G_M21922_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x1]
             ldr     w2, [x1, #0x04]
             cmn     w2, #1
-            bge     G_M21922_IG07
-            b       G_M21922_IG03
-                       ;; size=64 bbWeight=2 PerfScore 54.00
+            blt     G_M21922_IG03
+                       ;; size=60 bbWeight=2 PerfScore 52.00
 G_M21922_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref
             ldr     w1, [x1, #0x08]
             ; byrRegs -[x1]
@@ -99,7 +98,7 @@ G_M21922_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 188, prolog size 8, PerfScore 158.25, instruction count 47, allocated bytes for code 188 (MethodHash=7a0aaa5d) for method System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier1)
+; Total bytes of code 184, prolog size 8, PerfScore 156.25, instruction count 46, allocated bytes for code 184 (MethodHash=7a0aaa5d) for method System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -110,7 +109,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 47 (0x0002f) Actual length = 188 (0x0000bc)
+  Function Length   : 46 (0x0002e) Actual length = 184 (0x0000b8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.08%) : 24125.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)

@@ -72,9 +72,8 @@ G_M27287_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x14]
             ldr     w15, [x14, #0x0C]
             cmn     w15, #1
-            bge     G_M27287_IG07
-            b       G_M27287_IG03
-                       ;; size=60 bbWeight=2 PerfScore 45.00
+            blt     G_M27287_IG03
+                       ;; size=56 bbWeight=2 PerfScore 43.00
 G_M27287_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=4001 {x0 x14}, byref
             ldr     x15, [x14]
             ; gcrRegs +[x15]
@@ -102,7 +101,7 @@ G_M27287_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 192, prolog size 8, PerfScore 150.00, instruction count 48, allocated bytes for code 192 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
+; Total bytes of code 188, prolog size 8, PerfScore 148.00, instruction count 47, allocated bytes for code 188 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -113,7 +112,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
+  Function Length   : 47 (0x0002f) Actual length = 188 (0x0000bc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.04%) : 19591.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier1)

@@ -73,9 +73,8 @@ G_M10700_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x14]
             ldr     w15, [x14, #0x14]
             cmn     w15, #1
-            bge     G_M10700_IG07
-            b       G_M10700_IG03
-                       ;; size=64 bbWeight=2 PerfScore 54.00
+            blt     G_M10700_IG03
+                       ;; size=60 bbWeight=2 PerfScore 52.00
 G_M10700_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=4001 {x0 x14}, byref
             ldr     x15, [x14]
             ; gcrRegs +[x15]
@@ -103,7 +102,7 @@ G_M10700_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 196, prolog size 8, PerfScore 159.00, instruction count 49, allocated bytes for code 196 (MethodHash=81a7d633) for method System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier1)
+; Total bytes of code 192, prolog size 8, PerfScore 157.00, instruction count 48, allocated bytes for code 192 (MethodHash=81a7d633) for method System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -114,7 +113,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 49 (0x00031) Actual length = 196 (0x0000c4)
+  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+12 (+2.86%) : 54091.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)

@@ -10,20 +10,20 @@
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <LinqBenchmarks>
-;  V01 loc0         [V01,T21] (  2,  4   )     ref  ->  x22         class-hnd <System.Collections.Generic.List`1[Product]>
-;  V02 loc1         [V02,T17] (  3, 17   )     int  ->  x21        
-;  V03 loc2         [V03,T15] (  3, 24   )     int  ->  x20        
-;  V04 loc3         [V04,T07] (  9, 66   )     ref  ->  x19         class-hnd exact <System.Collections.Generic.List`1[Product]>
-;  V05 loc4         [V05,T23] (  4,  1.03)  struct (24) [fp+0xA0]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+;  V01 loc0         [V01,T22] (  2,  4   )     ref  ->  x22         class-hnd <System.Collections.Generic.List`1[Product]>
+;  V02 loc1         [V02,T18] (  3, 17   )     int  ->  x21        
+;  V03 loc2         [V03,T16] (  3, 24   )     int  ->  x20        
+;  V04 loc3         [V04,T08] (  9, 66   )     ref  ->  x19         class-hnd exact <System.Collections.Generic.List`1[Product]>
+;  V05 loc4         [V05,T24] (  4,  1.03)  struct (24) [fp+0xA0]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
 ;* V06 loc5         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Product>
-;  V07 loc6         [V07,T24] (  1,  1   )  struct (24) [fp+0x80]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+;  V07 loc6         [V07,T25] (  1,  1   )  struct (24) [fp+0x80]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
 ;* V08 loc7         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Product>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T19] (  3, 12   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[Product]>
-;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    "OSR entry state var"
+;  V10 tmp1         [V10,T20] (  3, 12   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[Product]>
+;  V11 tmp2         [V11,T06] (  3, 72.01)     int  ->  x23         "OSR entry state var"
 ;* V12 tmp3         [V12    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
-;  V13 tmp4         [V13,T14] (  3, 24   )     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V14 tmp5         [V14,T11] (  4, 32   )     int  ->  x26         "Inline stloc first use temp"
+;  V13 tmp4         [V13,T15] (  3, 24   )     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V14 tmp5         [V14,T12] (  4, 32   )     int  ->  x23         "Inline stloc first use temp"
 ;  V15 tmp6         [V15,T04] (  3, 80   )   ubyte  ->   x1         "Inline return value spill temp"
 ;* V16 tmp7         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
 ;* V17 tmp8         [V17    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
@@ -32,24 +32,24 @@
 ;* V20 tmp11        [V20    ] (  0,  0   )     ref  ->  zero-ref    "field V12._list (fldOffset=0x0)" P-INDEP
 ;* V21 tmp12        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V12._current (fldOffset=0x8)" P-INDEP
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V12._index (fldOffset=0x10)" P-INDEP
-;  V23 tmp14        [V23,T22] (  2,  4   )     int  ->  x25         "field V12._version (fldOffset=0x14)" P-INDEP
+;  V23 tmp14        [V23,T23] (  2,  4   )     int  ->  x26         "field V12._version (fldOffset=0x14)" P-INDEP
 ;* V24 tmp15        [V24    ] (  0,  0   )     ref  ->  zero-ref    "field V17._list (fldOffset=0x0)" P-INDEP
 ;* V25 tmp16        [V25    ] (  0,  0   )     ref  ->  zero-ref    "field V17._current (fldOffset=0x8)" P-INDEP
 ;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V17._index (fldOffset=0x10)" P-INDEP
-;* V27 tmp18        [V27,T18] (  0,  0   )     int  ->  zero-ref    "field V17._version (fldOffset=0x14)" P-INDEP
-;  V28 tmp19        [V28,T02] (  5, 82.01)     ref  ->  x23         "V05.[000..008)"
-;  V29 tmp20        [V29,T10] (  5, 40   )     ref  ->   x2         "V05.[008..016)"
-;  V30 tmp21        [V30,T08] (  8, 50.01)     int  ->  x24         "V05.[016..020)"
-;  V31 tmp22        [V31,T06] (  3, 66.01)     int  ->  x25         "V05.[020..024)"
+;* V27 tmp18        [V27,T19] (  0,  0   )     int  ->  zero-ref    "field V17._version (fldOffset=0x14)" P-INDEP
+;  V28 tmp19        [V28,T02] (  5, 82.01)     ref  ->  x24         "V05.[000..008)"
+;  V29 tmp20        [V29,T11] (  5, 40   )     ref  ->   x2         "V05.[008..016)"
+;  V30 tmp21        [V30,T09] (  8, 50.01)     int  ->  x25         "V05.[016..020)"
+;  V31 tmp22        [V31,T07] (  3, 66.01)     int  ->  x26         "V05.[020..024)"
 ;  V32 tmp23        [V32,T03] (  3, 80   )     ref  ->  x19         "V07.[000..008)"
 ;* V33 tmp24        [V33    ] (  0,  0   )     ref  ->  zero-ref    "V07.[008..016)"
 ;  V34 tmp25        [V34,T01] (  6,104   )     int  ->   x0         "V07.[016..020)"
-;* V35 tmp26        [V35,T20] (  0,  0   )     int  ->  zero-ref    "V07.[020..024)"
-;  V36 tmp27        [V36,T09] (  3, 48   )     ref  ->   x1         "arr expr"
-;  V37 tmp28        [V37,T13] (  2, 32   )     ref  ->   x1         "arr expr"
-;  V38 cse0         [V38,T12] (  2, 16   )     int  ->   x1         multi-def "CSE - aggressive"
-;  V39 cse1         [V39,T16] (  3, 24   )     int  ->   x1         "CSE - moderate"
-;  V40 cse2         [V40,T00] (  5,152   )     int  ->  x26         multi-def "CSE - aggressive"
+;* V35 tmp26        [V35,T21] (  0,  0   )     int  ->  zero-ref    "V07.[020..024)"
+;  V36 tmp27        [V36,T10] (  3, 48   )     ref  ->   x1         "arr expr"
+;  V37 tmp28        [V37,T14] (  2, 32   )     ref  ->   x1         "arr expr"
+;  V38 cse0         [V38,T13] (  2, 16   )     int  ->   x1         multi-def "CSE - aggressive"
+;  V39 cse1         [V39,T17] (  3, 24   )     int  ->   x1         "CSE - moderate"
+;  V40 cse2         [V40,T00] (  5,152   )     int  ->  registers   multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -67,13 +67,14 @@ G_M25128_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ; gcrRegs +[x19]
                        ;; size=36 bbWeight=0.01 PerfScore 0.12
 G_M25128_IG02:        ; bbWeight=0.01, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
-            ldr     x23, [fp, #0xA0]   // [V05 loc4]
-            ; gcrRegs +[x23]
-            ldp     w24, w25, [fp, #0xB0]  // [V05 loc4+0x10], [V05 loc4+0x14]
-            b       G_M25128_IG06
-                       ;; size=12 bbWeight=0.01 PerfScore 0.05
+            mov     w23, wzr
+            ldr     x24, [fp, #0xA0]   // [V05 loc4]
+            ; gcrRegs +[x24]
+            ldp     w25, w26, [fp, #0xB0]  // [V05 loc4+0x10], [V05 loc4+0x14]
+            b       G_M25128_IG04
+                       ;; size=16 bbWeight=0.01 PerfScore 0.06
 G_M25128_IG03:        ; bbWeight=2, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x19 x23]
+            ; gcrRegs -[x19 x24]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -87,33 +88,36 @@ G_M25128_IG03:        ; bbWeight=2, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, b
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             str     x0, [x19, #0x08]
-            ldr     w25, [x22, #0x14]
-            mov     x23, x22
-            ; gcrRegs +[x23]
-            mov     w24, wzr
-            b       G_M25128_IG06
-                       ;; size=52 bbWeight=2 PerfScore 21.00
-G_M25128_IG04:        ; bbWeight=8, gcrefRegs=C80004 {x2 x19 x22 x23}, byrefRegs=0000 {}, byref, isz
+            ldr     w26, [x22, #0x14]
+            mov     x24, x22
+            ; gcrRegs +[x24]
+            mov     w25, wzr
+                       ;; size=48 bbWeight=2 PerfScore 19.00
+G_M25128_IG04:        ; bbWeight=8, gcrefRegs=1480000 {x19 x22 x24}, byrefRegs=0000 {}, byref, isz
+            cbz     w23, G_M25128_IG07
+            b       G_M25128_IG07
+                       ;; size=8 bbWeight=8 PerfScore 16.00
+G_M25128_IG05:        ; bbWeight=8, gcrefRegs=1480004 {x2 x19 x22 x24}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x2]
             ldr     w1, [x2, #0x1C]
-            cbnz    w1, G_M25128_IG06
-            ldp     w26, w1, [x19, #0x10]
+            cbnz    w1, G_M25128_IG07
+            ldp     w23, w1, [x19, #0x10]
             add     w1, w1, #1
             str     w1, [x19, #0x14]
             ldr     x0, [x19, #0x08]
             ; gcrRegs +[x0]
             ldr     w1, [x0, #0x08]
-            cmp     w1, w26
-            bls     G_M25128_IG05
-            add     w1, w26, #1
+            cmp     w1, w23
+            bls     G_M25128_IG06
+            add     w1, w23, #1
             str     w1, [x19, #0x10]
-            sxtw    x1, w26
+            sxtw    x1, w23
             bl      CORINFO_HELP_ARRADDR_ST
             ; gcrRegs -[x0 x2]
             ; gcr arg pop 0
-            b       G_M25128_IG06
+            b       G_M25128_IG07
                        ;; size=56 bbWeight=8 PerfScore 160.00
-G_M25128_IG05:        ; bbWeight=8, gcrefRegs=C80004 {x2 x19 x22 x23}, byrefRegs=0000 {}, byref
+G_M25128_IG06:        ; bbWeight=8, gcrefRegs=1480004 {x2 x19 x22 x24}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x2]
             mov     x0, x19
             ; gcrRegs +[x0]
@@ -128,73 +132,74 @@ G_M25128_IG05:        ; bbWeight=8, gcrefRegs=C80004 {x2 x19 x22 x23}, byrefRegs
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
                        ;; size=28 bbWeight=8 PerfScore 52.00
-G_M25128_IG06:        ; bbWeight=64, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
-            ldr     w1, [x23, #0x14]
+G_M25128_IG07:        ; bbWeight=64, gcrefRegs=1480000 {x19 x22 x24}, byrefRegs=0000 {}, byref, isz
+            mov     w23, #1
+            ldr     w1, [x24, #0x14]
+            cmp     w26, w1
+            bne     G_M25128_IG21
+                       ;; size=16 bbWeight=64 PerfScore 320.00
+G_M25128_IG08:        ; bbWeight=8, gcrefRegs=1480000 {x19 x22 x24}, byrefRegs=0000 {}, byref, isz
+            ldr     w1, [x24, #0x10]
             cmp     w25, w1
-            bne     G_M25128_IG20
-                       ;; size=12 bbWeight=64 PerfScore 288.00
-G_M25128_IG07:        ; bbWeight=8, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
-            ldr     w1, [x23, #0x10]
-            cmp     w24, w1
-            bhs     G_M25128_IG08
-            ldr     x1, [x23, #0x08]
+            bhs     G_M25128_IG09
+            ldr     x1, [x24, #0x08]
             ; gcrRegs +[x1]
             ldr     w0, [x1, #0x08]
-            cmp     w24, w0
-            bhs     G_M25128_IG19
+            cmp     w25, w0
+            bhs     G_M25128_IG20
             add     x1, x1, #16
             ; gcrRegs -[x1]
             ; byrRegs +[x1]
-            ldr     x2, [x1, w24, UXTW #3]
+            ldr     x2, [x1, w25, UXTW #3]
             ; gcrRegs +[x2]
-            add     w24, w24, #1
+            add     w25, w25, #1
             mov     w1, #1
             ; byrRegs -[x1]
-            b       G_M25128_IG09
+            b       G_M25128_IG10
                        ;; size=48 bbWeight=8 PerfScore 140.00
-G_M25128_IG08:        ; bbWeight=8, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref
+G_M25128_IG09:        ; bbWeight=8, gcrefRegs=1480000 {x19 x22 x24}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
-            add     w24, w1, #1
+            add     w25, w1, #1
             mov     x2, xzr
             ; gcrRegs +[x2]
             mov     w1, wzr
                        ;; size=12 bbWeight=8 PerfScore 12.00
-G_M25128_IG09:        ; bbWeight=64, gcrefRegs=C80004 {x2 x19 x22 x23}, byrefRegs=0000 {}, byref, isz
-            cbnz    w1, G_M25128_IG04
+G_M25128_IG10:        ; bbWeight=64, gcrefRegs=1480004 {x2 x19 x22 x24}, byrefRegs=0000 {}, byref, isz
+            cbnz    w1, G_M25128_IG05
                        ;; size=4 bbWeight=64 PerfScore 64.00
-G_M25128_IG10:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2 x23]
+G_M25128_IG11:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x2 x24]
             ldr     wzr, [x19, #0x14]
             mov     w0, wzr
-            b       G_M25128_IG12
+            b       G_M25128_IG13
                        ;; size=12 bbWeight=8 PerfScore 36.00
-G_M25128_IG11:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+G_M25128_IG12:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
             add     w21, w21, #1
                        ;; size=4 bbWeight=8 PerfScore 4.00
-G_M25128_IG12:        ; bbWeight=64, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
-            ldr     w26, [x19, #0x10]
-            cmp     w0, w26
-            bhs     G_M25128_IG14
+G_M25128_IG13:        ; bbWeight=64, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+            ldr     w1, [x19, #0x10]
+            cmp     w0, w1
+            bhs     G_M25128_IG15
                        ;; size=12 bbWeight=64 PerfScore 288.00
-G_M25128_IG13:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M25128_IG14:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
             ldr     x1, [x19, #0x08]
             ; gcrRegs +[x1]
             ldr     w1, [x1, #0x08]
             ; gcrRegs -[x1]
             cmp     w0, w1
-            bhs     G_M25128_IG19
+            bhs     G_M25128_IG20
             add     w0, w0, #1
             mov     w1, #1
-            b       G_M25128_IG15
+            b       G_M25128_IG16
                        ;; size=28 bbWeight=8 PerfScore 76.00
-G_M25128_IG14:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
-            add     w0, w26, #1
+G_M25128_IG15:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+            add     w0, w1, #1
             mov     w1, wzr
                        ;; size=8 bbWeight=8 PerfScore 8.00
-G_M25128_IG15:        ; bbWeight=64, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
-            cbnz    w1, G_M25128_IG11
+G_M25128_IG16:        ; bbWeight=64, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+            cbnz    w1, G_M25128_IG12
                        ;; size=4 bbWeight=64 PerfScore 64.00
-G_M25128_IG16:        ; bbWeight=8, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
+G_M25128_IG17:        ; bbWeight=8, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x19]
             add     w20, w20, #1
             movz    w0, #0xD1FFAB1E
...

+24 (+3.75%) : 19376.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (Tier1)

@@ -10,21 +10,21 @@
 ;
 ;  V00 this         [V00,T06] ( 11,  7   )     ref  ->  x20         this class-hnd single-def <System.Collections.Generic.Dictionary`2[long,System.__Canon]>
 ;  V01 arg1         [V01,T05] (  7,  7.50)    long  ->  x19         ld-addr-op single-def
-;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  x22        
-;  V03 loc1         [V03,T20] (  3,  2   )   byref  ->  x22        
+;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  [fp+0x10] 
+;  V03 loc1         [V03,T20] (  3,  2   )   byref  ->   x0        
 ;  V04 loc2         [V04,T16] (  4,  3.50)     ref  ->  x21         class-hnd single-def <<unknown class>>
-;  V05 loc3         [V05,T09] (  5,  6   )     int  ->  x21        
-;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->   x0        
-;  V07 loc5         [V07,T11] (  3,  5   )     ref  ->   x1         class-hnd exact single-def <<unknown class>>
-;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->  x11        
-;  V09 loc7         [V09,T10] (  5,  6   )     int  ->  x24        
+;  V05 loc3         [V05,T09] (  5,  6   )     int  ->  x22        
+;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->  x21        
+;  V07 loc5         [V07,T11] (  3,  5   )     ref  ->  x23         class-hnd exact single-def <<unknown class>>
+;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->   x2        
+;  V09 loc7         [V09,T10] (  5,  6   )     int  ->  x27        
 ;  V10 loc8         [V10,T02] (  6, 13.50)     int  ->  x22        
 ;  V11 loc9         [V11,T12] (  3,  5   )     ref  ->  x20         class-hnd exact single-def <<unknown class>>
-;  V12 loc10        [V12,T04] (  4, 12.50)     int  ->  x25        
+;  V12 loc10        [V12,T04] (  4, 12.50)     int  ->  x23        
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp2         [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V16 tmp3         [V16,T23] (  3,  1.50)     ref  ->  x22         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V16 tmp3         [V16,T23] (  3,  1.50)     ref  ->  x21         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V17 tmp4         [V17,T14] (  4,  4   )     int  ->   x0         "Inlining Arg"
 ;  V18 tmp5         [V18,T21] (  2,  2   )    long  ->   x1         "Inlining Arg"
 ;  V19 tmp6         [V19,T18] (  4,  2   )     int  ->  x24         "Inline stloc first use temp"
@@ -37,37 +37,38 @@
 ;* V26 tmp13        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V27 tmp14        [V27    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V28 tmp15        [V28    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V29 tmp16        [V29,T24] (  3,  1.50)     ref  ->  x22         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V29 tmp16        [V29,T24] (  3,  1.50)     ref  ->  x25         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V30 tmp17        [V30,T15] (  4,  4   )     int  ->   x0         "Inlining Arg"
 ;  V31 tmp18        [V31,T22] (  2,  2   )    long  ->   x1         "Inlining Arg"
-;  V32 tmp19        [V32,T19] (  4,  2   )     int  ->  x26         "Inline stloc first use temp"
+;  V32 tmp19        [V32,T19] (  4,  2   )     int  ->  x23         "Inline stloc first use temp"
 ;* V33 tmp20        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp21        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V35 tmp22        [V35    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V36 cse0         [V36,T25] (  3,  1.50)     int  ->  x23         "CSE - moderate"
-;  V37 cse1         [V37,T26] (  3,  1.50)     int  ->  x25         "CSE - moderate"
-;  V38 cse2         [V38,T07] (  3,  8.50)     int  ->   x2         hoist "CSE - aggressive"
-;  V39 cse3         [V39,T08] (  3,  8.50)     int  ->  x26         hoist "CSE - aggressive"
+;  V37 cse1         [V37,T26] (  3,  1.50)     int  ->  x22         "CSE - moderate"
+;  V38 cse2         [V38,T07] (  3,  8.50)     int  ->  x24         hoist "CSE - aggressive"
+;  V39 cse3         [V39,T08] (  3,  8.50)     int  ->  x25         hoist "CSE - aggressive"
 ;  V40 cse4         [V40,T13] (  8,  4   )     ref  ->   x1         multi-def "CSE - aggressive"
-;  V41 cse5         [V41,T17] (  3,  3   )    long  ->  x23         "CSE - moderate"
+;  V41 cse5         [V41,T17] (  3,  3   )    long  ->  x26         "CSE - moderate"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M51674_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x50]!
-            stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
-            stp     x23, x24, [sp, #0x30]
-            stp     x25, x26, [sp, #0x40]
+            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]
             mov     fp, sp
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     x19, x1
-                       ;; size=32 bbWeight=1 PerfScore 6.50
+                       ;; size=36 bbWeight=1 PerfScore 7.50
 G_M51674_IG02:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [x20, #0x08]
             ; gcrRegs +[x0]
-            cbz     x0, G_M51674_IG17
+            cbz     x0, G_M51674_IG18
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M51674_IG03:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
@@ -93,14 +94,12 @@ G_M51674_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
             ; gcrRegs +[x21]
             cbnz    x21, G_M51674_IG09
             asr     x0, x19, #32
-            eor     w21, w19, w0
-            ; gcrRegs -[x21]
-            ldr     x22, [x20, #0x08]
-            ; gcrRegs +[x22]
-            ldr     w23, [x22, #0x08]
+            eor     w22, w19, w0
+            ldr     x21, [x20, #0x08]
+            ldr     w23, [x21, #0x08]
             sxtw    w0, w23
             ldr     x1, [x20, #0x30]
-            mov     w2, w21
+            mov     w2, w22
             mul     x1, x1, x2
             lsr     x1, x1, #32
             add     x1, x1, #1
@@ -108,9 +107,9 @@ G_M51674_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
             mul     x1, x1, x2
             lsr     x24, x1, #32
             cmp     w0, #0
-            beq     G_M51674_IG19
-            udiv    w1, w21, w0
-            msub    w0, w1, w0, w21
+            beq     G_M51674_IG20
+            udiv    w1, w22, w0
+            msub    w0, w1, w0, w22
             cmp     w0, w24
             beq     G_M51674_IG05
             movz    x1, #0xD1FFAB1E
@@ -126,76 +125,77 @@ G_M51674_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
             ; gcrRegs -[x0]
             ; gcr arg pop 0
                        ;; size=120 bbWeight=0.50 PerfScore 23.00
-G_M51674_IG05:        ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M51674_IG05:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
             cmp     w24, w23
-            bhs     G_M51674_IG18
-            add     x0, x22, #16
+            bhs     G_M51674_IG19
+            add     x0, x21, #16
             ; byrRegs +[x0]
-            ldr     w0, [x0, w24, UXTW #2]
-            ; byrRegs -[x0]
-            ldr     x1, [x20, #0x10]
-            ; gcrRegs +[x1]
-            mov     w11, wzr
-            sub     w0, w0, #1
-            ldr     w2, [x1, #0x08]
+            ldr     w21, [x0, w24, UXTW #2]
+            ; gcrRegs -[x21]
+            ldr     x23, [x20, #0x10]
+            ; gcrRegs +[x23]
+            mov     w2, wzr
+            sub     w21, w21, #1
+            ldr     w24, [x23, #0x08]
                        ;; size=32 bbWeight=0.50 PerfScore 6.00
-G_M51674_IG06:        ; bbWeight=4, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x20 x22]
-            cmp     w2, w0
-            bls     G_M51674_IG17
-            mov     w3, #24
-            mov     x4, #16
-            umaddl  x0, w0, w3, x4
-            add     x22, x1, x0
-            ; byrRegs +[x22]
-            ldr     w0, [x22, #0x10]
-            cmp     w0, w21
+G_M51674_IG06:        ; bbWeight=4, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x20]
+            ; byrRegs -[x0]
+            cmp     w24, w21
+            bls     G_M51674_IG18
+            mov     w0, #24
+            mov     x1, #16
+            umaddl  x0, w21, w0, x1
+            add     x25, x23, x0
+            ; byrRegs +[x25]
+            ldr     w0, [x25, #0x10]
+            cmp     w0, w22
             bne     G_M51674_IG08
                        ;; size=36 bbWeight=4 PerfScore 50.00
-G_M51674_IG07:        ; bbWeight=2, gcrefRegs=0002 {x1}, byrefRegs=400000 {x22}, byref, isz
-            ldr     x0, [x22, #0x08]
+G_M51674_IG07:        ; bbWeight=2, gcrefRegs=800000 {x23}, byrefRegs=2000000 {x25}, byref, isz
+            ldr     x0, [x25, #0x08]
             cmp     x0, x19
-            beq     G_M51674_IG14
+            beq     G_M51674_IG16
                        ;; size=12 bbWeight=2 PerfScore 9.00
-G_M51674_IG08:        ; bbWeight=4, gcrefRegs=0002 {x1}, byrefRegs=400000 {x22}, byref, isz
-            ldr     w0, [x22, #0x14]
-            add     w11, w11, #1
-            cmp     w2, w11
-            blo     G_M51674_IG20
+G_M51674_IG08:        ; bbWeight=4, gcrefRegs=800000 {x23}, byrefRegs=2000000 {x25}, byref, isz
+            ldr     w21, [x25, #0x14]
+            add     w2, w2, #1
+            cmp     w24, w2
+            blo     G_M51674_IG21
             b       G_M51674_IG06
                        ;; size=20 bbWeight=4 PerfScore 24.00
 G_M51674_IG09:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x1] +[x20-x21]
-            ; byrRegs -[x22]
+            ; gcrRegs -[x23] +[x20-x21]
+            ; byrRegs -[x25]
             mov     x0, x21
             ; gcrRegs +[x0]
             mov     x1, x19
-            movz    x23, #0xD1FFAB1E      // code for <unknown method>
-            movk    x23, #0xD1FFAB1E LSL #16
-            movk    x23, #0xD1FFAB1E LSL #32
-            mov     x11, x23
+            movz    x26, #0xD1FFAB1E      // code for <unknown method>
+            movk    x26, #0xD1FFAB1E LSL #16
+            movk    x26, #0xD1FFAB1E LSL #32
+            mov     x11, x26
             ldr     x2, [x11]
             blr     x2
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            sxtw    w24, w0
-            ldr     x22, [x20, #0x08]
-            ; gcrRegs +[x22]
-            ldr     w25, [x22, #0x08]
-            sxtw    w0, w25
+            sxtw    w27, w0
+            ldr     x25, [x20, #0x08]
+            ; gcrRegs +[x25]
+            ldr     w22, [x25, #0x08]
+            sxtw    w0, w22
             ldr     x1, [x20, #0x30]
-            mov     w2, w24
+            mov     w2, w27
             mul     x1, x1, x2
             lsr     x1, x1, #32
             add     x1, x1, #1
             mov     w2, w0
             mul     x1, x1, x2
-            lsr     x26, x1, #32
+            lsr     x23, x1, #32
             cmp     w0, #0
-            beq     G_M51674_IG19
-            udiv    w1, w24, w0
-            msub    w0, w1, w0, w24
-            cmp     w0, w26
+            beq     G_M51674_IG20
+            udiv    w1, w27, w0
+            msub    w0, w1, w0, w27
+            cmp     w0, w23
             beq     G_M51674_IG10
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -210,84 +210,100 @@ G_M51674_IG09:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=000
             ; gcrRegs -[x0]
             ; gcr arg pop 0
                        ;; size=140 bbWeight=0.50 PerfScore 24.00
-G_M51674_IG10:        ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
-            cmp     w26, w25
-            bhs     G_M51674_IG18
-            add     x1, x22, #16
+G_M51674_IG10:        ; bbWeight=0.50, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0000 {}, byref, isz
+            cmp     w23, w22
...

+24 (+3.77%) : 9095.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (Tier1)

@@ -10,21 +10,21 @@
 ;
 ;  V00 this         [V00,T06] ( 11,  7   )     ref  ->  x20         this class-hnd single-def <System.Collections.Generic.Dictionary`2[int,System.__Canon]>
 ;  V01 arg1         [V01,T05] (  6,  9   )     int  ->  x19         ld-addr-op single-def
-;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  x22        
-;  V03 loc1         [V03,T20] (  3,  2   )   byref  ->  x22        
+;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  [fp+0x10] 
+;  V03 loc1         [V03,T20] (  3,  2   )   byref  ->   x0        
 ;  V04 loc2         [V04,T16] (  4,  3.50)     ref  ->  x21         class-hnd single-def <<unknown class>>
-;  V05 loc3         [V05,T13] (  5,  4   )     int  ->  x21        
-;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->   x0        
-;  V07 loc5         [V07,T10] (  3,  5   )     ref  ->   x1         class-hnd exact single-def <<unknown class>>
-;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->  x11        
-;  V09 loc7         [V09,T09] (  5,  6   )     int  ->  x24        
+;  V05 loc3         [V05,T13] (  5,  4   )     int  ->  x22        
+;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->  x21        
+;  V07 loc5         [V07,T10] (  3,  5   )     ref  ->  x23         class-hnd exact single-def <<unknown class>>
+;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->   x2        
+;  V09 loc7         [V09,T09] (  5,  6   )     int  ->  x27        
 ;  V10 loc8         [V10,T02] (  6, 13.50)     int  ->  x22        
 ;  V11 loc9         [V11,T11] (  3,  5   )     ref  ->  x20         class-hnd exact single-def <<unknown class>>
-;  V12 loc10        [V12,T04] (  4, 12.50)     int  ->  x25        
+;  V12 loc10        [V12,T04] (  4, 12.50)     int  ->  x23        
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp2         [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V16 tmp3         [V16,T23] (  3,  1.50)     ref  ->  x22         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V16 tmp3         [V16,T23] (  3,  1.50)     ref  ->  x21         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V17 tmp4         [V17,T14] (  4,  4   )     int  ->   x0         "Inlining Arg"
 ;  V18 tmp5         [V18,T21] (  2,  2   )    long  ->   x1         "Inlining Arg"
 ;  V19 tmp6         [V19,T18] (  4,  2   )     int  ->  x24         "Inline stloc first use temp"
@@ -36,37 +36,38 @@
 ;* V25 tmp12        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp13        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V27 tmp14        [V27    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V28 tmp15        [V28,T24] (  3,  1.50)     ref  ->  x22         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V28 tmp15        [V28,T24] (  3,  1.50)     ref  ->  x25         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V29 tmp16        [V29,T15] (  4,  4   )     int  ->   x0         "Inlining Arg"
 ;  V30 tmp17        [V30,T22] (  2,  2   )    long  ->   x1         "Inlining Arg"
-;  V31 tmp18        [V31,T19] (  4,  2   )     int  ->  x26         "Inline stloc first use temp"
+;  V31 tmp18        [V31,T19] (  4,  2   )     int  ->  x23         "Inline stloc first use temp"
 ;* V32 tmp19        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp20        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp21        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V35 cse0         [V35,T25] (  3,  1.50)     int  ->  x23         "CSE - moderate"
-;  V36 cse1         [V36,T26] (  3,  1.50)     int  ->  x25         "CSE - moderate"
-;  V37 cse2         [V37,T07] (  3,  8.50)     int  ->   x2         hoist "CSE - aggressive"
-;  V38 cse3         [V38,T08] (  3,  8.50)     int  ->  x26         hoist "CSE - aggressive"
+;  V36 cse1         [V36,T26] (  3,  1.50)     int  ->  x22         "CSE - moderate"
+;  V37 cse2         [V37,T07] (  3,  8.50)     int  ->  x24         hoist "CSE - aggressive"
+;  V38 cse3         [V38,T08] (  3,  8.50)     int  ->  x25         hoist "CSE - aggressive"
 ;  V39 cse4         [V39,T12] (  8,  4   )     ref  ->   x1         multi-def "CSE - aggressive"
-;  V40 cse5         [V40,T17] (  3,  3   )    long  ->  x23         "CSE - moderate"
+;  V40 cse5         [V40,T17] (  3,  3   )    long  ->  x26         "CSE - moderate"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M7866_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x50]!
-            stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
-            stp     x23, x24, [sp, #0x30]
-            stp     x25, x26, [sp, #0x40]
+            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]
             mov     fp, sp
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     w19, w1
-                       ;; size=32 bbWeight=1 PerfScore 6.50
+                       ;; size=36 bbWeight=1 PerfScore 7.50
 G_M7866_IG02:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [x20, #0x08]
             ; gcrRegs +[x0]
-            cbz     x0, G_M7866_IG17
+            cbz     x0, G_M7866_IG18
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M7866_IG03:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
@@ -91,14 +92,12 @@ G_M7866_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {},
             ldr     x21, [x20, #0x18]
             ; gcrRegs +[x21]
             cbnz    x21, G_M7866_IG09
-            sxtw    w21, w19
-            ; gcrRegs -[x21]
-            ldr     x22, [x20, #0x08]
-            ; gcrRegs +[x22]
-            ldr     w23, [x22, #0x08]
+            sxtw    w22, w19
+            ldr     x21, [x20, #0x08]
+            ldr     w23, [x21, #0x08]
             sxtw    w0, w23
             ldr     x1, [x20, #0x30]
-            mov     w2, w21
+            mov     w2, w22
             mul     x1, x1, x2
             lsr     x1, x1, #32
             add     x1, x1, #1
@@ -106,9 +105,9 @@ G_M7866_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {},
             mul     x1, x1, x2
             lsr     x24, x1, #32
             cmp     w0, #0
-            beq     G_M7866_IG19
-            udiv    w1, w21, w0
-            msub    w0, w1, w0, w21
+            beq     G_M7866_IG20
+            udiv    w1, w22, w0
+            msub    w0, w1, w0, w22
             cmp     w0, w24
             beq     G_M7866_IG05
             movz    x1, #0xD1FFAB1E
@@ -124,76 +123,77 @@ G_M7866_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {},
             ; gcrRegs -[x0]
             ; gcr arg pop 0
                        ;; size=116 bbWeight=0.50 PerfScore 22.50
-G_M7866_IG05:        ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M7866_IG05:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
             cmp     w24, w23
-            bhs     G_M7866_IG18
-            add     x0, x22, #16
+            bhs     G_M7866_IG19
+            add     x0, x21, #16
             ; byrRegs +[x0]
-            ldr     w0, [x0, w24, UXTW #2]
-            ; byrRegs -[x0]
-            ldr     x1, [x20, #0x10]
-            ; gcrRegs +[x1]
-            mov     w11, wzr
-            sub     w0, w0, #1
-            ldr     w2, [x1, #0x08]
+            ldr     w21, [x0, w24, UXTW #2]
+            ; gcrRegs -[x21]
+            ldr     x23, [x20, #0x10]
+            ; gcrRegs +[x23]
+            mov     w2, wzr
+            sub     w21, w21, #1
+            ldr     w24, [x23, #0x08]
                        ;; size=32 bbWeight=0.50 PerfScore 6.00
-G_M7866_IG06:        ; bbWeight=4, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x20 x22]
-            cmp     w2, w0
-            bls     G_M7866_IG17
-            mov     w3, #24
-            mov     x4, #16
-            umaddl  x0, w0, w3, x4
-            add     x22, x1, x0
-            ; byrRegs +[x22]
-            ldr     w0, [x22, #0x08]
+G_M7866_IG06:        ; bbWeight=4, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x20]
+            ; byrRegs -[x0]
+            cmp     w24, w21
+            bls     G_M7866_IG18
+            mov     w0, #24
+            mov     x1, #16
+            umaddl  x0, w21, w0, x1
+            add     x25, x23, x0
+            ; byrRegs +[x25]
+            ldr     w0, [x25, #0x08]
             cmp     w0, w19
             bne     G_M7866_IG08
                        ;; size=36 bbWeight=4 PerfScore 50.00
-G_M7866_IG07:        ; bbWeight=2, gcrefRegs=0002 {x1}, byrefRegs=400000 {x22}, byref, isz
-            ldr     w0, [x22, #0x10]
-            cmp     w0, w21
-            beq     G_M7866_IG14
+G_M7866_IG07:        ; bbWeight=2, gcrefRegs=800000 {x23}, byrefRegs=2000000 {x25}, byref, isz
+            ldr     w0, [x25, #0x10]
+            cmp     w0, w22
+            beq     G_M7866_IG16
                        ;; size=12 bbWeight=2 PerfScore 9.00
-G_M7866_IG08:        ; bbWeight=4, gcrefRegs=0002 {x1}, byrefRegs=400000 {x22}, byref, isz
-            ldr     w0, [x22, #0x0C]
-            add     w11, w11, #1
-            cmp     w2, w11
-            blo     G_M7866_IG20
+G_M7866_IG08:        ; bbWeight=4, gcrefRegs=800000 {x23}, byrefRegs=2000000 {x25}, byref, isz
+            ldr     w21, [x25, #0x0C]
+            add     w2, w2, #1
+            cmp     w24, w2
+            blo     G_M7866_IG21
             b       G_M7866_IG06
                        ;; size=20 bbWeight=4 PerfScore 24.00
 G_M7866_IG09:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x1] +[x20-x21]
-            ; byrRegs -[x22]
+            ; gcrRegs -[x23] +[x20-x21]
+            ; byrRegs -[x25]
             mov     x0, x21
             ; gcrRegs +[x0]
             mov     w1, w19
-            movz    x23, #0xD1FFAB1E      // code for <unknown method>
-            movk    x23, #0xD1FFAB1E LSL #16
-            movk    x23, #0xD1FFAB1E LSL #32
-            mov     x11, x23
+            movz    x26, #0xD1FFAB1E      // code for <unknown method>
+            movk    x26, #0xD1FFAB1E LSL #16
+            movk    x26, #0xD1FFAB1E LSL #32
+            mov     x11, x26
             ldr     x2, [x11]
             blr     x2
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            sxtw    w24, w0
-            ldr     x22, [x20, #0x08]
-            ; gcrRegs +[x22]
-            ldr     w25, [x22, #0x08]
-            sxtw    w0, w25
+            sxtw    w27, w0
+            ldr     x25, [x20, #0x08]
+            ; gcrRegs +[x25]
+            ldr     w22, [x25, #0x08]
+            sxtw    w0, w22
             ldr     x1, [x20, #0x30]
-            mov     w2, w24
+            mov     w2, w27
             mul     x1, x1, x2
             lsr     x1, x1, #32
             add     x1, x1, #1
             mov     w2, w0
             mul     x1, x1, x2
-            lsr     x26, x1, #32
+            lsr     x23, x1, #32
             cmp     w0, #0
-            beq     G_M7866_IG19
-            udiv    w1, w24, w0
-            msub    w0, w1, w0, w24
-            cmp     w0, w26
+            beq     G_M7866_IG20
+            udiv    w1, w27, w0
+            msub    w0, w1, w0, w27
+            cmp     w0, w23
             beq     G_M7866_IG10
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -208,84 +208,100 @@ G_M7866_IG09:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000
             ; gcrRegs -[x0]
             ; gcr arg pop 0
                        ;; size=140 bbWeight=0.50 PerfScore 24.00
-G_M7866_IG10:        ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
-            cmp     w26, w25
-            bhs     G_M7866_IG18
-            add     x1, x22, #16
+G_M7866_IG10:        ; bbWeight=0.50, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0000 {}, byref, isz
+            cmp     w23, w22
...

coreclr_tests.run.linux.arm64.checked.mch

-44 (-7.38%) : 551069.dasm - HelloWorld:Main():int (FullOpts)

@@ -44,21 +44,19 @@
 ;  V33 cse1         [V33,T11] (  3,  1.38)     int  ->   x2         "CSE - moderate"
 ;  V34 cse2         [V34,T12] (  3,  1.38)     int  ->   x2         "CSE - moderate"
 ;  V35 cse3         [V35,T13] (  3,  1.38)     int  ->   x2         "CSE - moderate"
-;  V36 cse4         [V36,T07] (  3,  1.50)     ref  ->  x24         "CSE - moderate"
-;  V37 cse5         [V37,T08] (  3,  1.50)     ref  ->  x25         "CSE - moderate"
+;  V36 cse4         [V36,T07] (  3,  1.50)     ref  ->   x1         "CSE - moderate"
+;  V37 cse5         [V37,T08] (  3,  1.50)     ref  ->   x1         "CSE - moderate"
 ;  V38 cse6         [V38,T09] (  3,  1.50)     ref  ->   x1         "CSE - moderate"
-;  V39 cse7         [V39,T04] (  3,  2.50)     ref  ->  x23         "CSE - aggressive"
+;  V39 cse7         [V39,T04] (  3,  2.50)     ref  ->   x1         "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M1987_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x50]!
-            stp     x19, x20, [sp, #0x18]
-            stp     x21, x22, [sp, #0x28]
-            stp     x23, x24, [sp, #0x38]
-            str     x25, [sp, #0x48]
+            stp     fp, lr, [sp, #-0x30]!
+            stp     x19, x20, [sp, #0x10]
+            stp     x21, x22, [sp, #0x20]
             mov     fp, sp
-                       ;; size=24 bbWeight=1 PerfScore 5.50
+                       ;; size=16 bbWeight=1 PerfScore 3.50
 G_M1987_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             movz    x0, #0xD1FFAB1E      // code for HelloWorld:StepAB_1():System.String
             movk    x0, #0xD1FFAB1E LSL #16
@@ -126,67 +124,121 @@ G_M1987_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ldr     x1, [x1]
             blr     x1
             ; gcrRegs -[x0]
-            movz    x23, #0xD1FFAB1E
-            movk    x23, #0xD1FFAB1E LSL #16
-            movk    x23, #0xD1FFAB1E LSL #32
-            cmp     x19, x23
-            beq     G_M1987_IG05
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x19, x1
+            beq     G_M1987_IG06
                        ;; size=212 bbWeight=1 PerfScore 51.00
-G_M1987_IG03:        ; bbWeight=0.44, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x23]
-            cbz     x19, G_M1987_IG22
+G_M1987_IG03:        ; bbWeight=0.44, gcrefRegs=780002 {x1 x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x1]
+            cbz     x19, G_M1987_IG19
                        ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M1987_IG04:        ; bbWeight=0.44, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, byrefRegs=0000 {}, byref
-            b       G_M1987_IG15
-                       ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M1987_IG05:        ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x19 x23]
-            movz    x24, #0xD1FFAB1E
-            movk    x24, #0xD1FFAB1E LSL #16
-            movk    x24, #0xD1FFAB1E LSL #32
-            cmp     x20, x24
-            beq     G_M1987_IG08
+G_M1987_IG04:        ; bbWeight=0.44, gcrefRegs=780002 {x1 x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+            ldr     w2, [x19, #0x08]
+            cmp     w2, #21
+            bne     G_M1987_IG19
+                       ;; size=12 bbWeight=0.44 PerfScore 1.98
+G_M1987_IG05:        ; bbWeight=0.50, gcrefRegs=780002 {x1 x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+            add     x0, x19, #12
+            ; byrRegs +[x0]
+            lsl     w2, w2, #1
+            mov     w2, w2
+            add     x1, x1, #12
+            ; gcrRegs -[x1]
+            ; byrRegs +[x1]
+            movz    x3, #0xD1FFAB1E      // code for <unknown method>
+            movk    x3, #0xD1FFAB1E LSL #16
+            movk    x3, #0xD1FFAB1E LSL #32
+            ldr     x3, [x3]
+            blr     x3
+            ; gcrRegs -[x19]
+            ; byrRegs -[x0-x1]
+            cbz     w0, G_M1987_IG19
+                       ;; size=40 bbWeight=0.50 PerfScore 4.50
+G_M1987_IG06:        ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x20, x1
+            beq     G_M1987_IG10
                        ;; size=20 bbWeight=0.50 PerfScore 1.50
-G_M1987_IG06:        ; bbWeight=0.44, gcrefRegs=1700000 {x20 x21 x22 x24}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x24]
-            cbz     x20, G_M1987_IG22
+G_M1987_IG07:        ; bbWeight=0.44, gcrefRegs=700002 {x1 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x1]
+            cbz     x20, G_M1987_IG19
                        ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M1987_IG07:        ; bbWeight=0.44, gcrefRegs=1700000 {x20 x21 x22 x24}, byrefRegs=0000 {}, byref
-            b       G_M1987_IG19
-                       ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M1987_IG08:        ; bbWeight=0.50, gcrefRegs=600000 {x21 x22}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x20 x24]
-            movz    x25, #0xD1FFAB1E
-            movk    x25, #0xD1FFAB1E LSL #16
-            movk    x25, #0xD1FFAB1E LSL #32
-            cmp     x21, x25
-            beq     G_M1987_IG11
+G_M1987_IG08:        ; bbWeight=0.44, gcrefRegs=700002 {x1 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+            ldr     w2, [x20, #0x08]
+            cmp     w2, #21
+            bne     G_M1987_IG19
+                       ;; size=12 bbWeight=0.44 PerfScore 1.98
+G_M1987_IG09:        ; bbWeight=0.50, gcrefRegs=700002 {x1 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+            add     x0, x20, #12
+            ; byrRegs +[x0]
+            lsl     w2, w2, #1
+            mov     w2, w2
+            add     x1, x1, #12
+            ; gcrRegs -[x1]
+            ; byrRegs +[x1]
+            movz    x3, #0xD1FFAB1E      // code for <unknown method>
+            movk    x3, #0xD1FFAB1E LSL #16
+            movk    x3, #0xD1FFAB1E LSL #32
+            ldr     x3, [x3]
+            blr     x3
+            ; gcrRegs -[x20]
+            ; byrRegs -[x0-x1]
+            cbz     w0, G_M1987_IG19
+                       ;; size=40 bbWeight=0.50 PerfScore 4.50
+G_M1987_IG10:        ; bbWeight=0.50, gcrefRegs=600000 {x21 x22}, byrefRegs=0000 {}, byref, isz
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x21, x1
+            beq     G_M1987_IG14
                        ;; size=20 bbWeight=0.50 PerfScore 1.50
-G_M1987_IG09:        ; bbWeight=0.44, gcrefRegs=2600000 {x21 x22 x25}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x25]
-            cbz     x21, G_M1987_IG22
+G_M1987_IG11:        ; bbWeight=0.44, gcrefRegs=600002 {x1 x21 x22}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x1]
+            cbz     x21, G_M1987_IG19
                        ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M1987_IG10:        ; bbWeight=0.44, gcrefRegs=2600000 {x21 x22 x25}, byrefRegs=0000 {}, byref
-            b       G_M1987_IG17
-                       ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M1987_IG11:        ; bbWeight=0.50, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x21 x25]
+G_M1987_IG12:        ; bbWeight=0.44, gcrefRegs=600002 {x1 x21 x22}, byrefRegs=0000 {}, byref, isz
+            ldr     w2, [x21, #0x08]
+            cmp     w2, #22
+            bne     G_M1987_IG19
+                       ;; size=12 bbWeight=0.44 PerfScore 1.98
+G_M1987_IG13:        ; bbWeight=0.50, gcrefRegs=600002 {x1 x21 x22}, byrefRegs=0000 {}, byref, isz
+            add     x0, x21, #12
+            ; byrRegs +[x0]
+            lsl     w2, w2, #1
+            mov     w2, w2
+            add     x1, x1, #12
+            ; gcrRegs -[x1]
+            ; byrRegs +[x1]
+            movz    x3, #0xD1FFAB1E      // code for <unknown method>
+            movk    x3, #0xD1FFAB1E LSL #16
+            movk    x3, #0xD1FFAB1E LSL #32
+            ldr     x3, [x3]
+            blr     x3
+            ; gcrRegs -[x21]
+            ; byrRegs -[x0-x1]
+            cbz     w0, G_M1987_IG19
+                       ;; size=40 bbWeight=0.50 PerfScore 4.50
+G_M1987_IG14:        ; bbWeight=0.50, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             cmp     x22, x1
-            beq     G_M1987_IG21
+            beq     G_M1987_IG18
                        ;; size=20 bbWeight=0.50 PerfScore 1.50
-G_M1987_IG12:        ; bbWeight=0.44, gcrefRegs=400002 {x1 x22}, byrefRegs=0000 {}, byref, isz
+G_M1987_IG15:        ; bbWeight=0.44, gcrefRegs=400002 {x1 x22}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
-            cbz     x22, G_M1987_IG22
+            cbz     x22, G_M1987_IG19
                        ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M1987_IG13:        ; bbWeight=0.44, gcrefRegs=400002 {x1 x22}, byrefRegs=0000 {}, byref, isz
+G_M1987_IG16:        ; bbWeight=0.44, gcrefRegs=400002 {x1 x22}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x22, #0x08]
             cmp     w2, #22
-            bne     G_M1987_IG22
+            bne     G_M1987_IG19
                        ;; size=12 bbWeight=0.44 PerfScore 1.98
-G_M1987_IG14:        ; bbWeight=0.50, gcrefRegs=400002 {x1 x22}, byrefRegs=0000 {}, byref, isz
+G_M1987_IG17:        ; bbWeight=0.50, gcrefRegs=400002 {x1 x22}, byrefRegs=0000 {}, byref, isz
             add     x0, x22, #12
             ; byrRegs +[x0]
             lsl     w2, w2, #1
@@ -204,107 +256,34 @@ G_M1987_IG14:        ; bbWeight=0.50, gcrefRegs=400002 {x1 x22}, byrefRegs=0000
             cmp     w0, #0
             cset    x0, eq
             tst     w0, #255
-            bne     G_M1987_IG22
-            b       G_M1987_IG21
-                       ;; size=56 bbWeight=0.50 PerfScore 5.75
-G_M1987_IG15:        ; bbWeight=0.44, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x19-x23]
-            ldr     w2, [x19, #0x08]
-            cmp     w2, #21
-            bne     G_M1987_IG22
-                       ;; size=12 bbWeight=0.44 PerfScore 1.98
-G_M1987_IG16:        ; bbWeight=0.50, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, byrefRegs=0000 {}, byref, isz
-            add     x0, x19, #12
-            ; byrRegs +[x0]
-            lsl     w2, w2, #1
-            mov     w2, w2
-            add     x1, x23, #12
-            ; byrRegs +[x1]
-            movz    x3, #0xD1FFAB1E      // code for <unknown method>
-            movk    x3, #0xD1FFAB1E LSL #16
-            movk    x3, #0xD1FFAB1E LSL #32
-            ldr     x3, [x3]
-            blr     x3
-            ; gcrRegs -[x19 x23]
-            ; byrRegs -[x0-x1]
-            cbz     w0, G_M1987_IG22
-            b       G_M1987_IG05
-                       ;; size=44 bbWeight=0.50 PerfScore 5.00
-G_M1987_IG17:        ; bbWeight=0.44, gcrefRegs=2600000 {x21 x22 x25}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x20] +[x25]
-            ldr     w2, [x21, #0x08]
-            cmp     w2, #22
-            bne     G_M1987_IG22
-                       ;; size=12 bbWeight=0.44 PerfScore 1.98
-G_M1987_IG18:        ; bbWeight=0.50, gcrefRegs=2600000 {x21 x22 x25}, byrefRegs=0000 {}, byref, isz
-            add     x0, x21, #12
-            ; byrRegs +[x0]
-            lsl     w2, w2, #1
-            mov     w2, w2
-            add     x1, x25, #12
-            ; byrRegs +[x1]
-            movz    x3, #0xD1FFAB1E      // code for <unknown method>
-            movk    x3, #0xD1FFAB1E LSL #16
-            movk    x3, #0xD1FFAB1E LSL #32
-            ldr     x3, [x3]
-            blr     x3
-            ; gcrRegs -[x21 x25]
-            ; byrRegs -[x0-x1]
-            cbz     w0, G_M1987_IG22
-            b       G_M1987_IG11
-                       ;; size=44 bbWeight=0.50 PerfScore 5.00
...

-12 (-7.32%) : 1700.dasm - System.Threading.PortableThreadPool+WorkerThread:TakeActiveRequest(System.Threading.PortableThreadPool):ubyte (Instrumented Tier1)

@@ -8,10 +8,11 @@
 ; with Static PGO: edge weights are valid, and fgCalledCount is 43746
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  4,  3.89)     ref  ->  x19         class-hnd single-def <System.Threading.PortableThreadPool>
+;  V00 arg0         [V00,T01] (  3,  3   )     ref  ->   x0         class-hnd single-def <System.Threading.PortableThreadPool>
 ;  V01 loc0         [V01,T00] (  7,  6.68)     int  ->  x20        
-;  V02 loc1         [V02,T02] (  3,  2.79)     int  ->  x21        
+;  V02 loc1         [V02,T03] (  3,  2.79)     int  ->  x21        
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V04 cse0         [V04,T02] (  3,  2.89)   byref  ->  x19         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -20,45 +21,25 @@ G_M49425_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     x19, x20, [sp, #0x18]
             str     x21, [sp, #0x28]
             mov     fp, sp
-            mov     x19, x0
-            ; gcrRegs +[x19]
-                       ;; size=20 bbWeight=1 PerfScore 4.00
-G_M49425_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
-            add     x0, x19, #0xD1FFAB1E
-            ; byrRegs +[x0]
-            ldapr   w20, [x0]
+                       ;; size=16 bbWeight=1 PerfScore 3.50
+G_M49425_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x0]
+            add     x19, x0, #0xD1FFAB1E
+            ; byrRegs +[x19]
+            ldapr   w20, [x19]
             cmp     w20, #0
-            bgt     G_M49425_IG05
+            ble     G_M49425_IG07
                        ;; size=16 bbWeight=1 PerfScore 5.00
-G_M49425_IG03:        ; bbWeight=0.11, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x19]
-            ; byrRegs -[x0]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            bl      CORINFO_HELP_COUNTPROFILE32
-            ; gcr arg pop 0
-            mov     w0, wzr
-                       ;; size=20 bbWeight=0.11 PerfScore 0.32
-G_M49425_IG04:        ; bbWeight=0.11, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
-            ret     lr
-                       ;; size=16 bbWeight=0.11 PerfScore 0.54
-G_M49425_IG05:        ; bbWeight=0.89, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x19]
-            add     x0, x19, #0xD1FFAB1E
-            ; byrRegs +[x0]
-            sub     w1, w20, #1
+G_M49425_IG03:        ; bbWeight=0.89, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+            ; gcrRegs -[x0]
+            sub     w0, w20, #1
             mov     w21, w20
-            casal   w21, w1, [x0]
+            casal   w21, w0, [x19]
             cmp     w21, w20
-            bne     G_M49425_IG08
-                       ;; size=24 bbWeight=0.89 PerfScore 5.36
-G_M49425_IG06:        ; bbWeight=0.89, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x19]
-            ; byrRegs -[x0]
+            bne     G_M49425_IG06
+                       ;; size=20 bbWeight=0.89 PerfScore 4.92
+G_M49425_IG04:        ; bbWeight=0.89, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; byrRegs -[x19]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -66,14 +47,14 @@ G_M49425_IG06:        ; bbWeight=0.89, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ; gcr arg pop 0
             mov     w0, #1
                        ;; size=20 bbWeight=0.89 PerfScore 2.68
-G_M49425_IG07:        ; bbWeight=0.89, epilog, nogc, extend
+G_M49425_IG05:        ; bbWeight=0.89, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=16 bbWeight=0.89 PerfScore 4.46
-G_M49425_IG08:        ; bbWeight=1.00, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x19]
+G_M49425_IG06:        ; bbWeight=1.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, gcvars, byref, isz
+            ; byrRegs +[x19]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -81,11 +62,25 @@ G_M49425_IG08:        ; bbWeight=1.00, gcVars=0000000000000000 {}, gcrefRegs=800
             ; gcr arg pop 0
             sxtw    w20, w21
             cmp     w20, #0
-            bgt     G_M49425_IG05
-            b       G_M49425_IG03
-                       ;; size=32 bbWeight=1.00 PerfScore 5.51
+            bgt     G_M49425_IG03
+                       ;; size=28 bbWeight=1.00 PerfScore 4.50
+G_M49425_IG07:        ; bbWeight=0.11, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; byrRegs -[x19]
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
+            bl      CORINFO_HELP_COUNTPROFILE32
+            ; gcr arg pop 0
+            mov     w0, wzr
+                       ;; size=20 bbWeight=0.11 PerfScore 0.32
+G_M49425_IG08:        ; bbWeight=0.11, epilog, nogc, extend
+            ldr     x21, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x30
+            ret     lr
+                       ;; size=16 bbWeight=0.11 PerfScore 0.54
 
-; Total bytes of code 164, prolog size 20, PerfScore 27.87, instruction count 41, allocated bytes for code 164 (MethodHash=d5fc3eee) for method System.Threading.PortableThreadPool+WorkerThread:TakeActiveRequest(System.Threading.PortableThreadPool):ubyte (Instrumented Tier1)
+; Total bytes of code 152, prolog size 16, PerfScore 25.92, instruction count 38, allocated bytes for code 152 (MethodHash=d5fc3eee) for method System.Threading.PortableThreadPool+WorkerThread:TakeActiveRequest(System.Threading.PortableThreadPool):ubyte (Instrumented Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -96,7 +91,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 38 (0x00026) Actual length = 152 (0x000098)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-7.32%) : 271276.dasm - System.Diagnostics.Tracing.ActivityTracker:FindActiveActivity(System.String,System.Diagnostics.Tracing.ActivityTracker+ActivityInfo):System.Diagnostics.Tracing.ActivityTracker+ActivityInfo (Tier1)

@@ -25,7 +25,7 @@
 ;
 ; Lcl frame size = 0
 
-G_M4867_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M4867_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
             stp     x19, x20, [sp, #0x10]
             mov     fp, sp
@@ -36,34 +36,28 @@ G_M4867_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
             ; gcrRegs +[x1]
             mov     x20, x1
             ; gcrRegs +[x20]
-            cbnz    x20, G_M4867_IG05
+            cbz     x20, G_M4867_IG12
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M4867_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x1 x19-x20]
-            mov     x0, xzr
-                       ;; size=4 bbWeight=0 PerfScore 0.00
-G_M4867_IG04:        ; bbWeight=0, epilog, nogc, extend
-            ldp     x19, x20, [sp, #0x10]
-            ldp     fp, lr, [sp], #0x20
-            ret     lr
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M4867_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x19-x20]
+G_M4867_IG03:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x1]
             ldr     x1, [x20, #0x08]
             ; gcrRegs +[x1]
             cmp     x19, x1
-            beq     G_M4867_IG10
+            beq     G_M4867_IG08
                        ;; size=12 bbWeight=1 PerfScore 4.50
-G_M4867_IG06:        ; bbWeight=0.62, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz
-            cbz     x19, G_M4867_IG11
+G_M4867_IG04:        ; bbWeight=0.62, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x19, G_M4867_IG09
                        ;; size=4 bbWeight=0.62 PerfScore 0.62
-G_M4867_IG07:        ; bbWeight=0.61, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz
-            cbz     x1, G_M4867_IG11
+G_M4867_IG05:        ; bbWeight=0.61, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x1, G_M4867_IG09
                        ;; size=4 bbWeight=0.61 PerfScore 0.61
-G_M4867_IG08:        ; bbWeight=0.61, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref
-            b       G_M4867_IG15
-                       ;; size=4 bbWeight=0.61 PerfScore 0.61
-G_M4867_IG09:        ; bbWeight=1, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M4867_IG06:        ; bbWeight=0.61, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldr     w2, [x19, #0x08]
+            ldr     w0, [x1, #0x08]
+            cmp     w2, w0
+            bne     G_M4867_IG09
+                       ;; size=16 bbWeight=0.61 PerfScore 4.58
+G_M4867_IG07:        ; bbWeight=1, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz
             add     x0, x19, #12
             ; byrRegs +[x0]
             add     x1, x1, #12
@@ -78,40 +72,38 @@ G_M4867_IG09:        ; bbWeight=1, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000
             blr     x3
             ; byrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbz     w0, G_M4867_IG11
+            cbz     w0, G_M4867_IG09
                        ;; size=40 bbWeight=1 PerfScore 9.00
-G_M4867_IG10:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M4867_IG08:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     w0, [x20, #0x34]
-            cbz     w0, G_M4867_IG13
+            cbz     w0, G_M4867_IG10
                        ;; size=8 bbWeight=1 PerfScore 4.00
-G_M4867_IG11:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M4867_IG09:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x20, [x20, #0x10]
-            cbnz    x20, G_M4867_IG05
+            cbz     x20, G_M4867_IG12
             b       G_M4867_IG03
                        ;; size=12 bbWeight=1 PerfScore 5.00
-G_M4867_IG12:        ; bbWeight=0.10, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
-            b       G_M4867_IG11
-                       ;; size=4 bbWeight=0.10 PerfScore 0.10
-G_M4867_IG13:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M4867_IG10:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             mov     x0, x20
             ; gcrRegs +[x0]
                        ;; size=4 bbWeight=1 PerfScore 0.50
-G_M4867_IG14:        ; bbWeight=1, epilog, nogc, extend
+G_M4867_IG11:        ; bbWeight=1, epilog, nogc, extend
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 3.00
-G_M4867_IG15:        ; bbWeight=0.61, gcVars=0000000000000000 {}, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[x0] +[x1 x19]
-            ldr     w2, [x19, #0x08]
-            ldr     w0, [x1, #0x08]
-            cmp     w2, w0
-            beq     G_M4867_IG09
-            b       G_M4867_IG12
-                       ;; size=20 bbWeight=0.61 PerfScore 5.19
+G_M4867_IG12:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0 x20]
+            mov     x0, xzr
+                       ;; size=4 bbWeight=0 PerfScore 0.00
+G_M4867_IG13:        ; bbWeight=0, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 164, prolog size 16, PerfScore 37.64, instruction count 41, allocated bytes for code 164 (MethodHash=b88eecfc) for method System.Diagnostics.Tracing.ActivityTracker:FindActiveActivity(System.String,System.Diagnostics.Tracing.ActivityTracker+ActivityInfo):System.Diagnostics.Tracing.ActivityTracker+ActivityInfo (Tier1)
+; Total bytes of code 152, prolog size 16, PerfScore 36.32, instruction count 38, allocated bytes for code 152 (MethodHash=b88eecfc) for method System.Diagnostics.Tracing.ActivityTracker:FindActiveActivity(System.String,System.Diagnostics.Tracing.ActivityTracker+ActivityInfo):System.Diagnostics.Tracing.ActivityTracker+ActivityInfo (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -122,7 +114,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 38 (0x00026) Actual length = 152 (0x000098)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+77.78%) : 558618.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)

@@ -8,7 +8,7 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T00] (  2,  2   )   float  ->   d0         single-def
+;  V00 loc0         [V00,T00] (  4,  3.50)   float  ->   d0         single-def
 ;* V01 loc1         [V01    ] (  0,  0   )   float  ->  zero-ref   
 ;* V02 loc2         [V02    ] (  0,  0   )   float  ->  zero-ref   
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -19,19 +19,28 @@ G_M53663_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             movz    x0, #0xD1FFAB1E      // code for Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
-                       ;; size=20 bbWeight=1 PerfScore 5.50
-G_M53663_IG03:        ; bbWeight=1, epilog, nogc, extend
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            bhs     G_M53663_IG04
+                       ;; size=32 bbWeight=1 PerfScore 8.00
+G_M53663_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
+G_M53663_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            bne     G_M53663_IG03
+            b       G_M53663_IG03
+                       ;; size=16 bbWeight=0.50 PerfScore 1.75
 
-; Total bytes of code 36, prolog size 8, PerfScore 9.00, instruction count 9, allocated bytes for code 36 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 64, prolog size 8, PerfScore 13.25, instruction count 16, allocated bytes for code 64 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -42,7 +51,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 9 (0x00009) Actual length = 36 (0x000024)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+77.78%) : 562635.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)

@@ -8,7 +8,7 @@
 ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )   float  ->  zero-ref   
+;  V00 loc0         [V00,T00] (  4,  3.50)   float  ->   d0         single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
 ; Lcl frame size = 0
@@ -17,19 +17,28 @@ G_M53663_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             movz    x0, #0xD1FFAB1E      // code for Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
-                       ;; size=20 bbWeight=1 PerfScore 5.50
-G_M53663_IG03:        ; bbWeight=1, epilog, nogc, extend
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            bhs     G_M53663_IG04
+                       ;; size=32 bbWeight=1 PerfScore 8.00
+G_M53663_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
+G_M53663_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            bne     G_M53663_IG03
+            b       G_M53663_IG03
+                       ;; size=16 bbWeight=0.50 PerfScore 1.75
 
-; Total bytes of code 36, prolog size 8, PerfScore 9.00, instruction count 9, allocated bytes for code 36 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 64, prolog size 8, PerfScore 13.25, instruction count 16, allocated bytes for code 64 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -40,7 +49,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 9 (0x00009) Actual length = 36 (0x000024)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+44 (+122.22%) : 562687.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_1():float (FullOpts)

@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )   float  ->  zero-ref   
+;  V00 loc0         [V00,T00] (  5,  4   )   float  ->   d0         single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T00] (  2,  4   )   float  ->   d0         "Single return block return value"
+;  V02 tmp1         [V02,T01] (  2,  4   )   float  ->   d0         "Single return block return value"
 ;
 ; Lcl frame size = 0
 
@@ -18,19 +18,34 @@ G_M53791_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M53791_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53791_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             movz    x0, #0xD1FFAB1E      // code for Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
-                       ;; size=20 bbWeight=1 PerfScore 5.50
-G_M53791_IG03:        ; bbWeight=1, epilog, nogc, extend
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            ble     G_M53791_IG04
+                       ;; size=32 bbWeight=1 PerfScore 8.00
+G_M53791_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            b       G_M53791_IG05
+                       ;; size=4 bbWeight=1 PerfScore 1.00
+G_M53791_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            blo     G_M53791_IG03
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            bne     G_M53791_IG03
+            b       G_M53791_IG03
+                       ;; size=28 bbWeight=0.50 PerfScore 3.00
+G_M53791_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 36, prolog size 8, PerfScore 9.00, instruction count 9, allocated bytes for code 36 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 80, prolog size 8, PerfScore 15.50, instruction count 20, allocated bytes for code 80 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -41,7 +56,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 9 (0x00009) Actual length = 36 (0x000024)
+  Function Length   : 20 (0x00014) Actual length = 80 (0x000050)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries.crossgen2.linux.arm64.checked.mch

-4 (-3.33%) : 182969.dasm - System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)

@@ -48,9 +48,8 @@ G_M9062_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001
             mov     w11, #0xD1FFAB1E
             cmp     w1, #0xD1FFAB1E
             ccmp    w1, w11, z, ne
-            bne     G_M9062_IG07
-            b       G_M9062_IG04
-                       ;; size=20 bbWeight=0.50 PerfScore 1.75
+            beq     G_M9062_IG04
+                       ;; size=16 bbWeight=0.50 PerfScore 1.25
 G_M9062_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     w0, w1
@@ -67,7 +66,7 @@ G_M9062_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=40 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 120, prolog size 8, PerfScore 13.50, instruction count 30, allocated bytes for code 120 (MethodHash=f1e0dc99) for method System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
+; Total bytes of code 116, prolog size 8, PerfScore 13.00, instruction count 29, allocated bytes for code 116 (MethodHash=f1e0dc99) for method System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -78,7 +77,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
+  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.04%) : 34331.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)

@@ -72,9 +72,8 @@ G_M30640_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x11]
             ldr     w1, [x11, #0x04]
             cmn     w1, #1
-            bge     G_M30640_IG07
-            b       G_M30640_IG03
-                       ;; size=60 bbWeight=2 PerfScore 45.00
+            blt     G_M30640_IG03
+                       ;; size=56 bbWeight=2 PerfScore 43.00
 G_M30640_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0801 {x0 x11}, byref
             ldr     w11, [x11, #0x08]
             ; byrRegs -[x11]
@@ -102,7 +101,7 @@ G_M30640_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 196, prolog size 8, PerfScore 149.75, instruction count 49, allocated bytes for code 196 (MethodHash=31a2884f) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 192, prolog size 8, PerfScore 147.75, instruction count 48, allocated bytes for code 192 (MethodHash=31a2884f) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -113,7 +112,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 49 (0x00031) Actual length = 196 (0x0000c4)
+  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.04%) : 34336.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)

@@ -72,9 +72,8 @@ G_M9612_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
             ; byrRegs +[x11]
             ldr     w1, [x11, #0x04]
             cmn     w1, #1
-            bge     G_M9612_IG07
-            b       G_M9612_IG03
-                       ;; size=60 bbWeight=2 PerfScore 45.00
+            blt     G_M9612_IG03
+                       ;; size=56 bbWeight=2 PerfScore 43.00
 G_M9612_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0801 {x0 x11}, byref
             ldrb    w11, [x11, #0x0C]
             ; byrRegs -[x11]
@@ -102,7 +101,7 @@ G_M9612_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 196, prolog size 8, PerfScore 149.75, instruction count 49, allocated bytes for code 196 (MethodHash=d379da73) for method System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 192, prolog size 8, PerfScore 147.75, instruction count 48, allocated bytes for code 192 (MethodHash=d379da73) for method System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -113,7 +112,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 49 (0x00031) Actual length = 196 (0x0000c4)
+  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+10.94%) : 45730.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)

@@ -10,7 +10,7 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T03] (  3,  2.50)     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.OverloadResolution>
-;  V01 arg1         [V01,T00] (  7,  6   )     int  ->  x19         single-def
+;  V01 arg1         [V01,T00] (  9,  6   )     int  ->  x19         single-def
 ;  V02 arg2         [V02,T01] (  7,  4.50)     ref  ->  x20         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;  V03 arg3         [V03,T02] (  4,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -41,16 +41,27 @@ G_M9442_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
             ; gcrRegs +[x21]
                        ;; size=52 bbWeight=1 PerfScore 10.00
 G_M9442_IG02:        ; bbWeight=1, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x0]
+            mov     w11, #0xD1FFAB1E
+            cmp     w19, w11
+            bgt     G_M9442_IG04
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M9442_IG03:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x0]
+            mov     w0, #0xD1FFAB1E
+            mov     w11, #0xD1FFAB1E
+            cmp     w19, w0
+            ccmp    w19, w11, z, ne
+            beq     G_M9442_IG06
+            b       G_M9442_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 2.00
+G_M9442_IG04:        ; bbWeight=0.50, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
             mov     w11, #0xD1FFAB1E
             mov     w1, #0xD1FFAB1E
-            mov     w2, #0xD1FFAB1E
             cmp     w19, w11
             ccmp    w19, w1, z, ne
-            ccmp    w19, w2, nzc, eq
-            ble     G_M9442_IG05
-                       ;; size=28 bbWeight=1 PerfScore 4.00
-G_M9442_IG03:        ; bbWeight=0.50, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0000 {}, byref
+            bne     G_M9442_IG06
             ldr     x0, [x0, #0x08]
             ldr     x0, [x0, #0x08]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -74,14 +85,14 @@ G_M9442_IG03:        ; bbWeight=0.50, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0
             ldr     x2, [x11]
             blr     x2
             ; gcrRegs -[x0 x20-x21]
-                       ;; size=88 bbWeight=0.50 PerfScore 14.75
-G_M9442_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+                       ;; size=108 bbWeight=0.50 PerfScore 16.25
+G_M9442_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x21, [sp, #0x98]
             ldp     x19, x20, [sp, #0x88]
             ldp     fp, lr, [sp], #0xA0
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M9442_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M9442_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x20-x21]
             mov     w1, #23
             orr     w1, w19, w1
@@ -100,14 +111,14 @@ G_M9442_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=3000
             blr     x2
             ; gcrRegs -[x0 x20-x21]
                        ;; size=56 bbWeight=0.50 PerfScore 7.50
-G_M9442_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M9442_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x21, [sp, #0x98]
             ldp     x19, x20, [sp, #0x88]
             ldp     fp, lr, [sp], #0xA0
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
 
-; Total bytes of code 256, prolog size 40, PerfScore 41.25, instruction count 64, allocated bytes for code 256 (MethodHash=8378db1d) for method Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
+; Total bytes of code 284, prolog size 40, PerfScore 42.75, instruction count 71, allocated bytes for code 284 (MethodHash=8378db1d) for method Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -118,7 +129,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 64 (0x00040) Actual length = 256 (0x000100)
+  Function Length   : 71 (0x00047) Actual length = 284 (0x00011c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+12.96%) : 73764.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:g_makeReplacement|171(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)

@@ -9,7 +9,7 @@
 ; 0 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  4,  3.50)     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
+;  V00 arg0         [V00,T00] (  5,  4   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
 ;  V01 arg1         [V01,T01] (  4,  3   )     ref  ->  x20         class-hnd single-def <System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]>
 ;  V02 loc0         [V02,T03] (  4,  2   )     ref  ->   x0         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDagFieldEvaluation>
 ;  V03 loc1         [V03,T05] (  3,  1.50)     ref  ->  x22         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol>
@@ -41,10 +41,22 @@ G_M26195_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ; gcr arg pop 0
             mov     x21, x0
             ; gcrRegs +[x21]
-            cbz     x21, G_M26195_IG05
+            cbnz    x21, G_M26195_IG04
                        ;; size=28 bbWeight=1 PerfScore 7.00
-G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x0]
+G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x0 x21]
+            mov     x0, x19
+            ; gcrRegs +[x0]
+            adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
+            add     x11, x11, [LOW RELOC #0xD1FFAB1E]
+            ldr     x1, [x11]
+            blr     x1
+            ; gcr arg pop 0
+            cbnz    x0, G_M26195_IG06
+            b       G_M26195_IG06
+                       ;; size=28 bbWeight=0.50 PerfScore 3.75
+G_M26195_IG04:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x0] +[x21]
             ldr     x0, [x21, #0x18]
             ; gcrRegs +[x0]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -52,11 +64,11 @@ G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
             ldr     x1, [x11]
             blr     x1
             ; gcr arg pop 0
-            cbz     x0, G_M26195_IG05
+            cbz     x0, G_M26195_IG06
             ldr     x11, [x0, #0x18]
             ; gcrRegs +[x11]
             ldr     x11, [x11, #0x20]
-            cbnz    x11, G_M26195_IG05
+            cbnz    x11, G_M26195_IG06
             ldr     x22, [x0, #0x20]
             ; gcrRegs +[x22]
             mov     x0, x22
@@ -67,7 +79,7 @@ G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
             ldr     x1, [x11]
             blr     x1
             ; gcr arg pop 0
-            cbz     x0, G_M26195_IG05
+            cbz     x0, G_M26195_IG06
             mov     x0, x22
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
@@ -84,14 +96,14 @@ G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
             ldr     wzr, [x0]
             ldr     x2, [x11]
                        ;; size=112 bbWeight=0.50 PerfScore 22.25
-G_M26195_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x21, x22, [sp, #0x20]
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x30
             br      x2
             ; gcr arg pop 0
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
-G_M26195_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
+G_M26195_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0-x1 x21] +[x19]
             mov     x1, x20
             ; gcrRegs +[x1]
@@ -101,7 +113,7 @@ G_M26195_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x2, [x11]
                        ;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M26195_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x21, x22, [sp, #0x20]
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x30
@@ -109,7 +121,7 @@ G_M26195_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ; gcr arg pop 0
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 216, prolog size 24, PerfScore 40.25, instruction count 54, allocated bytes for code 216 (MethodHash=af9999ac) for method Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
+; Total bytes of code 244, prolog size 24, PerfScore 44.00, instruction count 61, allocated bytes for code 244 (MethodHash=af9999ac) for method Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -120,7 +132,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 54 (0x00036) Actual length = 216 (0x0000d8)
+  Function Length   : 61 (0x0003d) Actual length = 244 (0x0000f4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+14.55%) : 136577.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)

@@ -8,7 +8,7 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6,  4   )     int  ->  x19         single-def
+;  V00 arg0         [V00,T00] (  9,  4   )     int  ->  x19         single-def
 ;  V01 arg1         [V01,T01] (  4,  2   )     ref  ->  x20         class-hnd single-def <System.String>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  0   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -27,11 +27,11 @@ G_M20631_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[x20]
                        ;; size=24 bbWeight=1 PerfScore 4.50
 G_M20631_IG02:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
-            mov     w11, #250
             cmp     w19, #0xD1FFAB1E
-            ccmp    w19, w11, 0, le
-            bne     G_M20631_IG04
-                       ;; size=16 bbWeight=1 PerfScore 2.50
+            bgt     G_M20631_IG07
+            cmp     w19, #250
+            bne     G_M20631_IG06
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M20631_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
@@ -97,10 +97,23 @@ G_M20631_IG05:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
             ldr     x1, [x1]
             blr     x1
             ; gcrRegs -[x0 x21]
-            brk_unix #0
-                       ;; size=72 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
+G_M20631_IG06:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x20]
+            sub     w11, w19, #0xD1FFAB1E
+            cmp     w11, #1
+            bls     G_M20631_IG04
+            b       G_M20631_IG04
+                       ;; size=16 bbWeight=0 PerfScore 0.00
+G_M20631_IG07:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+            mov     w11, #0xD1FFAB1E
+            cmp     w19, #0xD1FFAB1E
+            ccmp    w19, w11, z, ne
+            beq     G_M20631_IG04
+            b       G_M20631_IG04
+                       ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 220, prolog size 16, PerfScore 12.00, instruction count 55, allocated bytes for code 220 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 252, prolog size 16, PerfScore 12.50, instruction count 63, allocated bytes for code 252 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -111,7 +124,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 55 (0x00037) Actual length = 220 (0x0000dc)
+  Function Length   : 63 (0x0003f) Actual length = 252 (0x0000fc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries.pmi.linux.arm64.checked.mch

-16 (-11.43%) : 175361.dasm - System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)

@@ -10,48 +10,31 @@
 ;
 ;  V00 this         [V00,T01] (  3,  2.50)     ref  ->   x0         this class-hnd single-def <System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op single-def <System.Threading.CancellationToken>
-;  V02 loc0         [V02,T02] (  3,  1.50)     ref  ->  x19         class-hnd exact single-def <<unknown class>>
+;  V02 loc0         [V02,T02] (  3,  1.50)     ref  ->   x2         class-hnd exact single-def <<unknown class>>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V05 tmp2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;  V06 tmp3         [V06,T00] (  5,  3.18)     ref  ->   x1         single-def "field V01._source (fldOffset=0x0)" P-INDEP
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M3467_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x20]!
-            str     x19, [sp, #0x18]
+            stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
-                       ;; size=12 bbWeight=1 PerfScore 2.50
+                       ;; size=8 bbWeight=1 PerfScore 1.50
 G_M3467_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0-x1]
-            cbz     x1, G_M3467_IG04
+            cbz     x1, G_M3467_IG06
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M3467_IG03:        ; bbWeight=0.18, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             add     x2, x1, #32
             ; byrRegs +[x2]
             ldapr   w2, [x2]
             ; byrRegs -[x2]
-            cbnz    w2, G_M3467_IG06
+            cbz     w2, G_M3467_IG06
                        ;; size=12 bbWeight=0.18 PerfScore 0.80
-G_M3467_IG04:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
-            ldr     x19, [x0, #0x10]
-            ; gcrRegs +[x19]
-            cbnz    x19, G_M3467_IG08
-            movz    x0, #0xD1FFAB1E
+G_M3467_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            ldr     x0, [x0]
-            ; gcrRegs +[x0]
-                       ;; size=24 bbWeight=0.50 PerfScore 4.25
-G_M3467_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
-            ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M3467_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0 x19]
             mov     x0, x1
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for System.Threading.Tasks.Task:FromCanceled(System.Threading.CancellationToken):System.Threading.Tasks.Task
@@ -61,41 +44,56 @@ G_M3467_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002
             ldr     x1, [x1]
             blr     x1
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M3467_IG07:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
+G_M3467_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
             ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M3467_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0] +[x1 x19]
-            ldr     x0, [x19, #0x08]
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M3467_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x1]
+            ldr     x2, [x0, #0x10]
+            ; gcrRegs +[x2]
+            cbnz    x2, G_M3467_IG08
+            movz    x0, #0xD1FFAB1E
+            ; gcrRegs -[x0]
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
+            ldr     x0, [x0]
+            ; gcrRegs +[x0]
+                       ;; size=24 bbWeight=0.50 PerfScore 4.25
+G_M3467_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M3467_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            ldr     x0, [x2, #0x08]
             ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for System.Net.Http.Http2Connection:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             ldr     wzr, [x0]
             blr     x2
-            ; gcrRegs -[x1 x19]
+            ; gcrRegs -[x1]
                        ;; size=28 bbWeight=0.50 PerfScore 5.75
 G_M3467_IG09:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
+            ldp     fp, lr, [sp], #0x10
             ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 140, prolog size 12, PerfScore 23.30, instruction count 35, allocated bytes for code 140 (MethodHash=6a07f274) for method System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 124, prolog size 8, PerfScore 19.30, instruction count 31, allocated bytes for code 124 (MethodHash=6a07f274) for method System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 1
   Epilog Count      : 3
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
+  Function Length   : 31 (0x0001f) Actual length = 124 (0x00007c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -109,10 +107,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 03       save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
-    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
-    E4          end
-    E4          end
+    81          save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
     E4          end
     E4          end
 

-16 (-10.81%) : 176688.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)

@@ -33,37 +33,25 @@ G_M54442_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ldr     d1, [@RWD08]
             str     d1, [fp, #0x10]    // [V08 cse0]
             fcmp    d8, d1
-            bhs     G_M54442_IG04
+            blo     G_M54442_IG04
                        ;; size=28 bbWeight=1 PerfScore 25.00
-G_M54442_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            b       G_M54442_IG07
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M54442_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+G_M54442_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             fcmp    d8, d1
-            bgt     G_M54442_IG05
+            bgt     G_M54442_IG06
             fcmp    d8, d1
-            bne     G_M54442_IG06
-            b       G_M54442_IG07
-                       ;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M54442_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            b       G_M54442_IG09
-                       ;; size=4 bbWeight=0.25 PerfScore 0.25
-G_M54442_IG06:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x0]
+            beq     G_M54442_IG04
             fcmp    d8, d8
-            beq     G_M54442_IG09
-            b       G_M54442_IG03
-                       ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M54442_IG07:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+            beq     G_M54442_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M54442_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             str     x1, [x0, #0x18]
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M54442_IG08:        ; bbWeight=1, epilog, nogc, extend
+G_M54442_IG05:        ; bbWeight=1, epilog, nogc, extend
             ldr     d8, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
-G_M54442_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M54442_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
@@ -85,7 +73,7 @@ RWD00     dq  416312D000000000h   ;     10000000
 RWD08      dq  41DFFFFFFFC00000h   ; 2.14748365e+09
 
 
-; Total bytes of code 148, prolog size 12, PerfScore 37.25, instruction count 37, allocated bytes for code 148 (MethodHash=b6192b55) for method System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
+; Total bytes of code 132, prolog size 12, PerfScore 35.50, instruction count 33, allocated bytes for code 132 (MethodHash=b6192b55) for method System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -96,7 +84,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 33 (0x00021) Actual length = 132 (0x000084)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-48 (-10.43%) : 287095.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)

@@ -12,9 +12,9 @@
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <System.Xml.Linq.XNode>
 ;  V02 loc0         [V02,T10] (  6,  4   )     ref  ->  x20         class-hnd single-def <System.Xml.Linq.XDocumentType>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T03] (  5,  4.76)     ref  ->  x25         class-hnd exact single-def "impAppendStmt" <System.String>
-;  V05 tmp2         [V05,T04] (  5,  4.76)     ref  ->  x21         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V06 tmp3         [V06,T06] (  5,  4.76)     ref  ->  x22         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V04 tmp1         [V04,T03] (  5,  4.76)     ref  ->   x2         class-hnd exact single-def "impAppendStmt" <System.String>
+;  V05 tmp2         [V05,T04] (  5,  4.76)     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V06 tmp3         [V06,T06] (  5,  4.76)     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V07 tmp4         [V07,T18] (  2,  1   )   ubyte  ->   x0         "Inline return value spill temp"
 ;  V08 tmp5         [V08,T11] (  2,  2   )   byref  ->   x0         single-def "impAppendStmt"
 ;* V09 tmp6         [V09    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -22,18 +22,18 @@
 ;* V11 tmp8         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V12 tmp9         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V13 tmp10        [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V14 tmp11        [V14,T05] (  5,  4.76)     ref  ->  x23         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V15 tmp12        [V15,T07] (  5,  4.76)     ref  ->  x24         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V14 tmp11        [V14,T05] (  5,  4.76)     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V15 tmp12        [V15,T07] (  5,  4.76)     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V16 tmp13        [V16,T19] (  2,  1   )   ubyte  ->   x0         "Inline return value spill temp"
-;  V17 tmp14        [V17,T12] (  2,  2   )   byref  ->   x0         single-def "impAppendStmt"
+;  V17 tmp14        [V17,T12] (  2,  2   )   byref  ->   x3         single-def "impAppendStmt"
 ;* V18 tmp15        [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp16        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp17        [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp18        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp19        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V23 tmp20        [V23,T08] (  5,  4.76)     ref  ->  x26         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V23 tmp20        [V23,T08] (  5,  4.76)     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V24 tmp21        [V24,T20] (  2,  1   )   ubyte  ->   x0         "Inline return value spill temp"
-;  V25 tmp22        [V25,T13] (  2,  2   )   byref  ->   x0         single-def "impAppendStmt"
+;  V25 tmp22        [V25,T13] (  2,  2   )   byref  ->   x3         single-def "impAppendStmt"
 ;* V26 tmp23        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V27 tmp24        [V27    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V28 tmp25        [V28    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -48,22 +48,19 @@
 ;* V37 tmp34        [V37    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V38 tmp35        [V38    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V39 tmp36        [V39    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V40 cse0         [V40,T14] (  3,  1.38)     int  ->   x2         "CSE - moderate"
-;  V41 cse1         [V41,T15] (  3,  1.38)     int  ->   x2         "CSE - moderate"
-;  V42 cse2         [V42,T16] (  3,  1.38)     int  ->   x2         "CSE - moderate"
+;  V40 cse0         [V40,T14] (  3,  1.38)     int  ->   x3         "CSE - moderate"
+;  V41 cse1         [V41,T15] (  3,  1.38)     int  ->   x0         "CSE - moderate"
+;  V42 cse2         [V42,T16] (  3,  1.38)     int  ->   x0         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
 G_M37476_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x50]!
+            stp     fp, lr, [sp, #-0x20]!
             stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
-            stp     x23, x24, [sp, #0x30]
-            stp     x25, x26, [sp, #0x40]
             mov     fp, sp
             mov     x19, x0
             ; gcrRegs +[x19]
-                       ;; size=28 bbWeight=1 PerfScore 6.00
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M37476_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
             movz    x0, #0xD1FFAB1E
@@ -73,102 +70,148 @@ G_M37476_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
             ; gcrRegs -[x1] +[x0]
             mov     x20, x0
             ; gcrRegs +[x20]
-            cbz     x20, G_M37476_IG23
+            cbz     x20, G_M37476_IG26
                        ;; size=24 bbWeight=1 PerfScore 4.00
 G_M37476_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x21, [x19, #0x20]
-            ; gcrRegs +[x21]
-            ldr     x22, [x20, #0x20]
-            ; gcrRegs +[x22]
-            cmp     x21, x22
-            beq     G_M37476_IG07
+            ldr     x2, [x19, #0x20]
+            ; gcrRegs +[x2]
+            ldr     x1, [x20, #0x20]
+            ; gcrRegs +[x1]
+            cmp     x2, x1
+            beq     G_M37476_IG08
                        ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M37476_IG04:        ; bbWeight=0.44, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
-            cbz     x21, G_M37476_IG23
+G_M37476_IG04:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x2, G_M37476_IG26
                        ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M37476_IG05:        ; bbWeight=0.44, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
-            b       G_M37476_IG21
+G_M37476_IG05:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x1, G_M37476_IG26
                        ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M37476_IG06:        ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
-            add     x0, x21, #12
+G_M37476_IG06:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldr     w3, [x2, #0x08]
+            ldr     w0, [x1, #0x08]
+            cmp     w3, w0
+            bne     G_M37476_IG26
+                       ;; size=16 bbWeight=0.44 PerfScore 3.30
+G_M37476_IG07:        ; bbWeight=0.50, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            add     x0, x2, #12
             ; byrRegs +[x0]
-            lsl     w2, w2, #1
+            lsl     w2, w3, #1
+            ; gcrRegs -[x2]
             mov     w2, w2
-            add     x1, x22, #12
+            add     x1, x1, #12
+            ; gcrRegs -[x1]
             ; byrRegs +[x1]
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-            ; gcrRegs -[x21-x22]
             ; byrRegs -[x0-x1]
-            cbz     w0, G_M37476_IG23
+            cbz     w0, G_M37476_IG26
                        ;; size=40 bbWeight=0.50 PerfScore 4.50
-G_M37476_IG07:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x23, [x19, #0x28]
-            ; gcrRegs +[x23]
-            ldr     x24, [x20, #0x28]
-            ; gcrRegs +[x24]
-            cmp     x23, x24
-            beq     G_M37476_IG10
-                       ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M37476_IG08:        ; bbWeight=0.44, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
-            cbz     x23, G_M37476_IG23
-                       ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M37476_IG09:        ; bbWeight=0.44, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref
-            b       G_M37476_IG28
-                       ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M37476_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x23-x24]
-            ldr     x25, [x19, #0x30]
-            ; gcrRegs +[x25]
-            ldr     x26, [x20, #0x30]
-            ; gcrRegs +[x26]
-            cmp     x25, x26
+G_M37476_IG08:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldr     x2, [x19, #0x28]
+            ; gcrRegs +[x2]
+            ldr     x1, [x20, #0x28]
+            ; gcrRegs +[x1]
+            cmp     x2, x1
             beq     G_M37476_IG13
                        ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M37476_IG11:        ; bbWeight=0.44, gcrefRegs=6180000 {x19 x20 x25 x26}, byrefRegs=0000 {}, byref, isz
-            cbz     x25, G_M37476_IG23
+G_M37476_IG09:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x2, G_M37476_IG26
                        ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M37476_IG12:        ; bbWeight=0.44, gcrefRegs=6180000 {x19 x20 x25 x26}, byrefRegs=0000 {}, byref
-            b       G_M37476_IG25
+G_M37476_IG10:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x1, G_M37476_IG26
                        ;; size=4 bbWeight=0.44 PerfScore 0.44
+G_M37476_IG11:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldr     w0, [x2, #0x08]
+            ldr     w3, [x1, #0x08]
+            cmp     w0, w3
+            bne     G_M37476_IG26
+                       ;; size=16 bbWeight=0.44 PerfScore 3.30
+G_M37476_IG12:        ; bbWeight=0.50, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            add     x3, x2, #12
+            ; byrRegs +[x3]
+            lsl     w2, w0, #1
+            ; gcrRegs -[x2]
+            mov     w2, w2
+            add     x1, x1, #12
+            ; gcrRegs -[x1]
+            ; byrRegs +[x1]
+            mov     x0, x3
+            ; byrRegs +[x0]
+            movz    x3, #0xD1FFAB1E      // code for <unknown method>
+            ; byrRegs -[x3]
+            movk    x3, #0xD1FFAB1E LSL #16
+            movk    x3, #0xD1FFAB1E LSL #32
+            ldr     x3, [x3]
+            blr     x3
+            ; byrRegs -[x0-x1]
+            cbz     w0, G_M37476_IG26
+                       ;; size=44 bbWeight=0.50 PerfScore 4.75
 G_M37476_IG13:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x25-x26]
+            ldr     x2, [x19, #0x30]
+            ; gcrRegs +[x2]
+            ldr     x1, [x20, #0x30]
+            ; gcrRegs +[x1]
+            cmp     x2, x1
+            beq     G_M37476_IG18
+                       ;; size=16 bbWeight=0.50 PerfScore 3.75
+G_M37476_IG14:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x2, G_M37476_IG26
+                       ;; size=4 bbWeight=0.44 PerfScore 0.44
+G_M37476_IG15:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x1, G_M37476_IG26
+                       ;; size=4 bbWeight=0.44 PerfScore 0.44
+G_M37476_IG16:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldr     w0, [x2, #0x08]
+            ldr     w3, [x1, #0x08]
+            cmp     w0, w3
+            bne     G_M37476_IG26
+                       ;; size=16 bbWeight=0.44 PerfScore 3.30
+G_M37476_IG17:        ; bbWeight=0.50, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            add     x3, x2, #12
+            ; byrRegs +[x3]
+            lsl     w2, w0, #1
+            ; gcrRegs -[x2]
+            mov     w2, w2
+            add     x1, x1, #12
+            ; gcrRegs -[x1]
+            ; byrRegs +[x1]
+            mov     x0, x3
+            ; byrRegs +[x0]
+            movz    x3, #0xD1FFAB1E      // code for <unknown method>
+            ; byrRegs -[x3]
+            movk    x3, #0xD1FFAB1E LSL #16
+            movk    x3, #0xD1FFAB1E LSL #32
+            ldr     x3, [x3]
+            blr     x3
+            ; byrRegs -[x0-x1]
+            cbz     w0, G_M37476_IG26
+                       ;; size=44 bbWeight=0.50 PerfScore 4.75
+G_M37476_IG18:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x2, [x19, #0x38]
             ; gcrRegs +[x2]
             ldr     x1, [x20, #0x38]
             ; gcrRegs +[x1]
             cmp     x2, x1
-            bne     G_M37476_IG15
+            beq     G_M37476_IG25
                        ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M37476_IG14:        ; bbWeight=0.06, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x1-x2 x19-x20]
-            mov     w0, #1
-            b       G_M37476_IG20
-                       ;; size=8 bbWeight=0.06 PerfScore 0.09
-G_M37476_IG15:        ; bbWeight=0.44, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x1-x2]
-            cbz     x2, G_M37476_IG18
+G_M37476_IG19:        ; bbWeight=0.44, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
...

+12 (+13.04%) : 165276.dasm - System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)

@@ -15,12 +15,12 @@
 ;* V04 tmp2         [V04,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V05 tmp3         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V06 tmp4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V07 tmp5         [V07,T05] (  4,  1.00)   ubyte  ->   x0         "Inline return value spill temp"
+;  V07 tmp5         [V07,T05] (  4,  1   )   ubyte  ->   x0         "Inline return value spill temp"
 ;* V08 tmp6         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.Net.IPEndPoint>
 ;* V09 tmp7         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.Net.IPEndPoint>
-;  V10 tmp8         [V10,T00] (  2,  2.00)     ref  ->   x0         single-def "field V00._buffer (fldOffset=0x0)" P-INDEP
+;  V10 tmp8         [V10,T00] (  3,  2.42)     ref  ->   x0         single-def "field V00._buffer (fldOffset=0x0)" P-INDEP
 ;  V11 tmp9         [V11,T02] (  5,  2.11)     ref  ->   x4         single-def "field V00._remoteEndPoint (fldOffset=0x8)" P-INDEP
-;  V12 tmp10        [V12,T01] (  2,  2.00)     ref  ->   x2         single-def "field V01._buffer (fldOffset=0x0)" P-INDEP
+;  V12 tmp10        [V12,T01] (  3,  2.42)     ref  ->   x2         single-def "field V01._buffer (fldOffset=0x0)" P-INDEP
 ;  V13 tmp11        [V13,T03] (  4,  2.01)     ref  ->   x3         single-def "field V01._remoteEndPoint (fldOffset=0x8)" P-INDEP
 ;
 ; Lcl frame size = 0
@@ -34,31 +34,37 @@ G_M22145_IG01:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
 G_M22145_IG02:        ; bbWeight=1.00, gcrefRegs=001D {x0 x2 x3 x4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0 x2-x3]
             cmp     x0, x2
-            bne     G_M22145_IG10
+            beq     G_M22145_IG06
                        ;; size=8 bbWeight=1.00 PerfScore 1.50
-G_M22145_IG03:        ; bbWeight=0.50, gcrefRegs=0018 {x3 x4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x0 x2]
-            cmp     x4, x3
-            bne     G_M22145_IG05
-                       ;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M22145_IG04:        ; bbWeight=0.08, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M22145_IG03:        ; bbWeight=0.42, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x3-x4]
-            mov     w0, #1
-            b       G_M22145_IG09
-                       ;; size=8 bbWeight=0.08 PerfScore 0.12
-G_M22145_IG05:        ; bbWeight=0.42, gcrefRegs=0018 {x3 x4}, byrefRegs=0000 {}, byref, isz
+            cbz     x0, G_M22145_IG13
+                       ;; size=4 bbWeight=0.42 PerfScore 0.42
+G_M22145_IG04:        ; bbWeight=0.42, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x0]
+            cbnz    x2, G_M22145_IG13
+                       ;; size=4 bbWeight=0.42 PerfScore 0.42
+G_M22145_IG05:        ; bbWeight=0.33, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x2]
+            b       G_M22145_IG13
+                       ;; size=4 bbWeight=0.33 PerfScore 0.33
+G_M22145_IG06:        ; bbWeight=0.50, gcrefRegs=0018 {x3 x4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x3-x4]
-            cbz     x4, G_M22145_IG07
+            cmp     x4, x3
+            beq     G_M22145_IG12
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
+G_M22145_IG07:        ; bbWeight=0.42, gcrefRegs=0018 {x3 x4}, byrefRegs=0000 {}, byref, isz
+            cbz     x4, G_M22145_IG09
                        ;; size=4 bbWeight=0.42 PerfScore 0.42
-G_M22145_IG06:        ; bbWeight=0.42, gcrefRegs=0018 {x3 x4}, byrefRegs=0000 {}, byref, isz
-            cbnz    x3, G_M22145_IG08
+G_M22145_IG08:        ; bbWeight=0.42, gcrefRegs=0018 {x3 x4}, byrefRegs=0000 {}, byref, isz
+            cbnz    x3, G_M22145_IG10
                        ;; size=4 bbWeight=0.42 PerfScore 0.42
-G_M22145_IG07:        ; bbWeight=0.33, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M22145_IG09:        ; bbWeight=0.33, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x3-x4]
             mov     w0, wzr
-            b       G_M22145_IG09
+            b       G_M22145_IG11
                        ;; size=8 bbWeight=0.33 PerfScore 0.49
-G_M22145_IG08:        ; bbWeight=0.09, gcrefRegs=0018 {x3 x4}, byrefRegs=0000 {}, byref
+G_M22145_IG10:        ; bbWeight=0.09, gcrefRegs=0018 {x3 x4}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x3-x4]
             mov     x0, x4
             ; gcrRegs +[x0]
@@ -70,18 +76,22 @@ G_M22145_IG08:        ; bbWeight=0.09, gcrefRegs=0018 {x3 x4}, byrefRegs=0000 {}
             blr     x2
             ; gcrRegs -[x0-x1 x3-x4]
                        ;; size=24 bbWeight=0.09 PerfScore 1.04
-G_M22145_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            b       G_M22145_IG11
+G_M22145_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            b       G_M22145_IG14
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M22145_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M22145_IG12:        ; bbWeight=0.08, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            mov     w0, #1
+            b       G_M22145_IG11
+                       ;; size=8 bbWeight=0.08 PerfScore 0.12
+G_M22145_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M22145_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M22145_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 92, prolog size 8, PerfScore 9.48, instruction count 23, allocated bytes for code 92 (MethodHash=a75ea97e) for method System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
+; Total bytes of code 104, prolog size 8, PerfScore 10.65, instruction count 26, allocated bytes for code 104 (MethodHash=a75ea97e) for method System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -92,7 +102,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 23 (0x00017) Actual length = 92 (0x00005c)
+  Function Length   : 26 (0x0001a) Actual length = 104 (0x000068)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+12 (+13.64%) : 2839.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRangeint:int (FullOpts)

@@ -10,7 +10,7 @@
 ;
 ;  V00 arg0         [V00,T06] (  3,  6   )   byref  ->   x0         single-def
 ;  V01 arg1         [V01,T04] (  4,  6.31)     int  ->   x1         ld-addr-op single-def
-;  V02 arg2         [V02,T05] (  3,  6   )     int  ->   x2         ld-addr-op single-def
+;  V02 arg2         [V02,T05] (  4,  6.31)     int  ->   x2         ld-addr-op single-def
 ;  V03 arg3         [V03,T08] (  3,  3   )     int  ->   x3         single-def
 ;  V04 loc0         [V04,T00] (  7, 19.69)     int  ->   x3        
 ;  V05 loc1         [V05,T07] (  2,  8   )   byref  ->   x4        
@@ -18,7 +18,7 @@
 ;* V07 tmp1         [V07,T09] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V08 tmp2         [V08,T01] (  3, 16.61)     int  ->   x5         "Inlining Arg"
 ;* V09 tmp3         [V09,T10] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V10 tmp4         [V10,T02] (  2, 16   )     int  ->   x4         "Inlining Arg"
+;  V10 tmp4         [V10,T02] (  3, 16.61)     int  ->   x4         "Inlining Arg"
 ;  V11 cse0         [V11,T03] (  3, 12   )     int  ->   x4         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
@@ -48,7 +48,7 @@ G_M34838_IG04:        ; bbWeight=0.31, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, b
                        ;; size=8 bbWeight=0.31 PerfScore 0.46
 G_M34838_IG05:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
             cmp     w2, w4
-            bge     G_M34838_IG08
+            bge     G_M34838_IG11
                        ;; size=8 bbWeight=4 PerfScore 6.00
 G_M34838_IG06:        ; bbWeight=1.69, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; byrRegs -[x0]
@@ -71,8 +71,16 @@ G_M34838_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M34838_IG11:        ; bbWeight=0.31, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, gcvars, byref, isz
+            ; byrRegs +[x0]
+            cmp     w2, w4
+            ble     G_M34838_IG08
+                       ;; size=8 bbWeight=0.31 PerfScore 0.46
+G_M34838_IG12:        ; bbWeight=0.04, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
+            b       G_M34838_IG08
+                       ;; size=4 bbWeight=0.04 PerfScore 0.04
 
-; Total bytes of code 88, prolog size 8, PerfScore 46.94, instruction count 22, allocated bytes for code 88 (MethodHash=781577e9) for method System.SpanHelpers:LastIndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
+; Total bytes of code 100, prolog size 8, PerfScore 47.44, instruction count 25, allocated bytes for code 100 (MethodHash=781577e9) for method System.SpanHelpers:LastIndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -83,7 +91,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 22 (0x00016) Actual length = 88 (0x000058)
+  Function Length   : 25 (0x00019) Actual length = 100 (0x000064)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+15.38%) : 264270.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)

@@ -7,7 +7,7 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6,  4   )     int  ->  x19         single-def
+;  V00 arg0         [V00,T00] (  9,  4   )     int  ->  x19         single-def
 ;  V01 arg1         [V01,T01] (  4,  2   )     ref  ->  x20         class-hnd single-def <System.String>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  0   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -26,11 +26,11 @@ G_M20631_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[x20]
                        ;; size=24 bbWeight=1 PerfScore 4.50
 G_M20631_IG02:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
-            mov     w0, #250
             cmp     w19, #0xD1FFAB1E
-            ccmp    w19, w0, 0, le
-            bne     G_M20631_IG04
-                       ;; size=16 bbWeight=1 PerfScore 2.50
+            bgt     G_M20631_IG07
+            cmp     w19, #250
+            bne     G_M20631_IG06
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M20631_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
@@ -93,10 +93,23 @@ G_M20631_IG05:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
             ; gcrRegs +[x0]
             bl      CORINFO_HELP_THROW
             ; gcrRegs -[x0 x21]
-            brk_unix #0
-                       ;; size=64 bbWeight=0 PerfScore 0.00
+                       ;; size=60 bbWeight=0 PerfScore 0.00
+G_M20631_IG06:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x20]
+            sub     w0, w19, #0xD1FFAB1E
+            cmp     w0, #1
+            bls     G_M20631_IG04
+            b       G_M20631_IG04
+                       ;; size=16 bbWeight=0 PerfScore 0.00
+G_M20631_IG07:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+            mov     w0, #0xD1FFAB1E
+            cmp     w19, #0xD1FFAB1E
+            ccmp    w19, w0, z, ne
+            beq     G_M20631_IG04
+            b       G_M20631_IG04
+                       ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 208, prolog size 16, PerfScore 12.00, instruction count 52, allocated bytes for code 208 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 240, prolog size 16, PerfScore 12.50, instruction count 60, allocated bytes for code 240 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -107,7 +120,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
+  Function Length   : 60 (0x0003c) Actual length = 240 (0x0000f0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries_tests.run.linux.arm64.Release.mch

-44 (-13.92%) : 381556.dasm - System.StringComparer:Equals(System.Object,System.Object):ubyte:this (Tier1)

@@ -17,7 +17,7 @@
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.String>
 ;* V07 tmp2         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.String>
-;  V08 tmp3         [V08,T10] (  2,  0   )     int  ->  x19         "guarded devirt return temp"
+;  V08 tmp3         [V08,T10] (  2,  0   )     int  ->   x0         "guarded devirt return temp"
 ;* V09 tmp4         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.OrdinalIgnoreCaseComparer>
 ;  V10 tmp5         [V10,T04] (  3,  2.99)   byref  ->   x3         single-def "impAppendStmt"
 ;  V11 tmp6         [V11,T03] (  4,  4.49)     int  ->   x2         "Inlining Arg"
@@ -25,81 +25,47 @@
 ;  V13 cse0         [V13,T08] (  3,  2.25)    long  ->   x4         "CSE - aggressive"
 ;  V14 cse1         [V14,T09] (  3,  2.25)     int  ->   x0         "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M62400_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x20]!
-            str     x19, [sp, #0x18]
+            stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
             mov     x3, x1
             ; gcrRegs +[x3]
-                       ;; size=16 bbWeight=1 PerfScore 3.00
+                       ;; size=12 bbWeight=1 PerfScore 2.00
 G_M62400_IG02:        ; bbWeight=1, gcrefRegs=000D {x0 x2 x3}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0 x2]
             cmp     x3, x2
-            bne     G_M62400_IG05
+            beq     G_M62400_IG11
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M62400_IG03:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0 x2-x3]
-            mov     w0, #1
-                       ;; size=4 bbWeight=0.25 PerfScore 0.12
-G_M62400_IG04:        ; bbWeight=0.25, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
-            ret     lr
-                       ;; size=12 bbWeight=0.25 PerfScore 1.00
-G_M62400_IG05:        ; bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=000D {x0 x2 x3}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x0 x2-x3]
-            cbnz    x3, G_M62400_IG08
-                       ;; size=4 bbWeight=0.75 PerfScore 0.75
-G_M62400_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0 x2-x3]
-            mov     w0, wzr
-                       ;; size=4 bbWeight=0 PerfScore 0.00
-G_M62400_IG07:        ; bbWeight=0, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
-            ret     lr
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M62400_IG08:        ; bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=000D {x0 x2 x3}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x0 x2-x3]
-            cbz     x2, G_M62400_IG06
-            b       G_M62400_IG17
-                       ;; size=8 bbWeight=0.75 PerfScore 1.50
-G_M62400_IG09:        ; bbWeight=0.75, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x3] +[x1]
+G_M62400_IG03:        ; bbWeight=0.75, gcrefRegs=000D {x0 x2 x3}, byrefRegs=0000 {}, byref, isz
+            cbz     x3, G_M62400_IG09
+            cbz     x2, G_M62400_IG09
+            ldr     x1, [x3]
+            movz    x4, #0xD1FFAB1E
+            movk    x4, #0xD1FFAB1E LSL #16
+            movk    x4, #0xD1FFAB1E LSL #32
+            cmp     x1, x4
+            bne     G_M62400_IG15
+            mov     x1, x3
+            ; gcrRegs +[x1]
+            ldr     x5, [x2]
+            cmp     x5, x4
+            bne     G_M62400_IG15
             ldr     x3, [x0]
+            ; gcrRegs -[x3]
             movz    x4, #0xD1FFAB1E
             movk    x4, #0xD1FFAB1E LSL #16
             movk    x4, #0xD1FFAB1E LSL #32
             cmp     x3, x4
-            beq     G_M62400_IG12
-                       ;; size=24 bbWeight=0.75 PerfScore 4.50
-G_M62400_IG10:        ; bbWeight=0, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {}, byref
-            ldr     x3, [x0]
-            ldr     x3, [x3, #0x50]
-            ldr     x3, [x3, #0x10]
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M62400_IG11:        ; bbWeight=0, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
-            br      x3
-            ; gcr arg pop 0
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M62400_IG12:        ; bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[x0]
+            bne     G_M62400_IG17
             ldr     w0, [x1, #0x08]
+            ; gcrRegs -[x0]
             ldr     w3, [x2, #0x08]
             cmp     w0, w3
-            beq     G_M62400_IG14
-                       ;; size=16 bbWeight=0.75 PerfScore 5.62
-G_M62400_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x1-x2]
-            mov     w19, wzr
-            b       G_M62400_IG20
-                       ;; size=8 bbWeight=0 PerfScore 0.00
-G_M62400_IG14:        ; bbWeight=0.75, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x1-x2]
+            bne     G_M62400_IG13
+                       ;; size=88 bbWeight=0.75 PerfScore 19.88
+G_M62400_IG04:        ; bbWeight=0.75, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
             add     x3, x1, #12
             ; byrRegs +[x3]
             add     x1, x2, #12
@@ -108,9 +74,9 @@ G_M62400_IG14:        ; bbWeight=0.75, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}
             sxtw    w2, w0
             ; gcrRegs -[x2]
             cmp     w2, #8
-            bge     G_M62400_IG18
+            bge     G_M62400_IG07
                        ;; size=20 bbWeight=0.75 PerfScore 2.25
-G_M62400_IG15:        ; bbWeight=0.45, gcrefRegs=0000 {}, byrefRegs=000A {x1 x3}, byref
+G_M62400_IG05:        ; bbWeight=0.45, gcrefRegs=0000 {}, byrefRegs=000A {x1 x3}, byref
             mov     x0, x3
             ; byrRegs +[x0]
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
@@ -119,31 +85,13 @@ G_M62400_IG15:        ; bbWeight=0.45, gcrefRegs=0000 {}, byrefRegs=000A {x1 x3}
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
                        ;; size=20 bbWeight=0.45 PerfScore 2.25
-G_M62400_IG16:        ; bbWeight=0.45, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
+G_M62400_IG06:        ; bbWeight=0.45, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
             br      x3
             ; gcr arg pop 0
-                       ;; size=12 bbWeight=0.45 PerfScore 1.80
-G_M62400_IG17:        ; bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=000D {x0 x2 x3}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x0 x2-x3]
-            ; byrRegs -[x0-x1]
-            ldr     x1, [x3]
-            movz    x4, #0xD1FFAB1E
-            movk    x4, #0xD1FFAB1E LSL #16
-            movk    x4, #0xD1FFAB1E LSL #32
-            cmp     x1, x4
-            bne     G_M62400_IG22
-            mov     x1, x3
-            ; gcrRegs +[x1]
-            ldr     x5, [x2]
-            cmp     x5, x4
-            bne     G_M62400_IG22
-            b       G_M62400_IG09
-                       ;; size=44 bbWeight=0.75 PerfScore 9.00
-G_M62400_IG18:        ; bbWeight=0.30, gcrefRegs=0000 {}, byrefRegs=000A {x1 x3}, byref
-            ; gcrRegs -[x0-x3]
-            ; byrRegs +[x1 x3]
+                       ;; size=8 bbWeight=0.45 PerfScore 0.90
+G_M62400_IG07:        ; bbWeight=0.30, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=000A {x1 x3}, gcvars, byref
+            ; byrRegs -[x0] +[x3]
             mov     x0, x3
             ; byrRegs +[x0]
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
@@ -152,22 +100,35 @@ G_M62400_IG18:        ; bbWeight=0.30, gcrefRegs=0000 {}, byrefRegs=000A {x1 x3}
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
                        ;; size=20 bbWeight=0.30 PerfScore 1.49
-G_M62400_IG19:        ; bbWeight=0.30, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
+G_M62400_IG08:        ; bbWeight=0.30, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
             br      x3
             ; gcr arg pop 0
-                       ;; size=12 bbWeight=0.30 PerfScore 1.19
-G_M62400_IG20:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=8 bbWeight=0.30 PerfScore 0.60
+G_M62400_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; byrRegs -[x0-x1]
-            uxtb    w0, w19
+            mov     w0, wzr
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M62400_IG21:        ; bbWeight=0, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
+G_M62400_IG10:        ; bbWeight=0, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
             ret     lr
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M62400_IG22:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M62400_IG11:        ; bbWeight=0.25, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            mov     w0, #1
+                       ;; size=4 bbWeight=0.25 PerfScore 0.12
+G_M62400_IG12:        ; bbWeight=0.25, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.25 PerfScore 0.50
+G_M62400_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            mov     w0, wzr
+            uxtb    w0, w0
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M62400_IG14:        ; bbWeight=0, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M62400_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x2-x3]
             mov     x0, x3
             ; gcrRegs +[x0]
@@ -178,25 +139,35 @@ G_M62400_IG22:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=000C {
             ldr     x2, [x2, #0x48]
             ldr     x2, [x2, #0x10]
                        ;; size=20 bbWeight=0 PerfScore 0.00
-G_M62400_IG23:        ; bbWeight=0, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
+G_M62400_IG16:        ; bbWeight=0, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
             br      x2
             ; gcr arg pop 0
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M62400_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x3] +[x2]
+            ldr     x3, [x0]
+            ldr     x3, [x3, #0x50]
+            ldr     x3, [x3, #0x10]
                        ;; size=12 bbWeight=0 PerfScore 0.00
+G_M62400_IG18:        ; bbWeight=0, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            br      x3
+            ; gcr arg pop 0
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 316, prolog size 16, PerfScore 35.98, instruction count 79, allocated bytes for code 316 (MethodHash=30ae0c3f) for method System.StringComparer:Equals(System.Object,System.Object):ubyte:this (Tier1)
+; Total bytes of code 272, prolog size 12, PerfScore 31.49, instruction count 68, allocated bytes for code 272 (MethodHash=30ae0c3f) for method System.StringComparer:Equals(System.Object,System.Object):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 1
   Epilog Count      : 7
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 79 (0x0004f) Actual length = 316 (0x00013c)
+  Function Length   : 68 (0x00044) Actual length = 272 (0x000110)
...

-8 (-12.50%) : 452703.dasm - System.Xml.XmlTextReaderImpl:GetResolver():System.Xml.XmlResolver:this (Tier1)

@@ -15,7 +15,7 @@
 ;
 ; Lcl frame size = 0
 
-G_M1329_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M1329_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
@@ -23,37 +23,30 @@ G_M1329_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x0]
             ldr     x1, [x0, #0x30]
             ; gcrRegs +[x1]
-            cbz     x1, G_M1329_IG04
+            cbnz    x1, G_M1329_IG05
                        ;; size=8 bbWeight=1 PerfScore 4.00
-G_M1329_IG03:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x1]
-            ldrb    w1, [x0, #0xD1FFAB1E]
-            cmp     w1, #0
-            cset    x1, eq
-            b       G_M1329_IG08
-                       ;; size=16 bbWeight=0 PerfScore 0.00
-G_M1329_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
+G_M1329_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0-x1]
             mov     x0, xzr
                        ;; size=4 bbWeight=1 PerfScore 0.50
-G_M1329_IG05:        ; bbWeight=1, epilog, nogc, extend
+G_M1329_IG04:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M1329_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M1329_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x0]
+            ldrb    w1, [x0, #0xD1FFAB1E]
+            cmp     w1, #0
+            cset    x1, eq
+            cbnz    w1, G_M1329_IG03
             ldr     x0, [x0, #0x30]
-                       ;; size=4 bbWeight=0 PerfScore 0.00
-G_M1329_IG07:        ; bbWeight=0, epilog, nogc, extend
+                       ;; size=20 bbWeight=0 PerfScore 0.00
+G_M1329_IG06:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M1329_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
-            cbz     w1, G_M1329_IG06
-            b       G_M1329_IG04
-                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 64, prolog size 8, PerfScore 8.00, instruction count 16, allocated bytes for code 64 (MethodHash=4becface) for method System.Xml.XmlTextReaderImpl:GetResolver():System.Xml.XmlResolver:this (Tier1)
+; Total bytes of code 56, prolog size 8, PerfScore 8.00, instruction count 14, allocated bytes for code 56 (MethodHash=4becface) for method System.Xml.XmlTextReaderImpl:GetResolver():System.Xml.XmlResolver:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -64,7 +57,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
+  Function Length   : 14 (0x0000e) Actual length = 56 (0x000038)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-10.00%) : 181381.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:get_SourcePartialImplementation():Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:this (Tier1)

@@ -16,48 +16,42 @@
 ;
 ; Lcl frame size = 0
 
-G_M46194_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M46194_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M46194_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
             ldr     w1, [x0, #0x68]
-            tbz     w1, #14, G_M46194_IG04
+            tbnz    w1, #14, G_M46194_IG05
                        ;; size=8 bbWeight=1 PerfScore 4.00
-G_M46194_IG03:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            ldr     w1, [x0, #0x70]
-            tbnz    w1, #19, G_M46194_IG04
-            ldr     w1, [x0, #0x68]
-            tst     w1, #0xD1FFAB1E
-            cset    x1, eq
-            b       G_M46194_IG08
-                       ;; size=24 bbWeight=0 PerfScore 0.00
-G_M46194_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46194_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     x0, xzr
                        ;; size=4 bbWeight=1 PerfScore 0.50
-G_M46194_IG05:        ; bbWeight=1, epilog, nogc, extend
+G_M46194_IG04:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M46194_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M46194_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x0]
+            ldr     w1, [x0, #0x70]
+            tbnz    w1, #19, G_M46194_IG03
+            ldr     w1, [x0, #0x68]
+            tst     w1, #0xD1FFAB1E
+            cset    x1, eq
+            cbz     w1, G_M46194_IG03
             ldr     x1, [x0]
             ldr     x1, [x1, #0xD1FFAB1E]
             ldr     x1, [x1, #0x08]
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M46194_IG07:        ; bbWeight=0, epilog, nogc, extend
+                       ;; size=36 bbWeight=0 PerfScore 0.00
+G_M46194_IG06:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             br      x1
             ; gcr arg pop 0
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M46194_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
-            cbnz    w1, G_M46194_IG06
-            b       G_M46194_IG04
-                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 80, prolog size 8, PerfScore 8.00, instruction count 20, allocated bytes for code 80 (MethodHash=7bf44b8d) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:get_SourcePartialImplementation():Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:this (Tier1)
+; Total bytes of code 72, prolog size 8, PerfScore 8.00, instruction count 18, allocated bytes for code 72 (MethodHash=7bf44b8d) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:get_SourcePartialImplementation():Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -68,7 +62,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 20 (0x00014) Actual length = 80 (0x000050)
+  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+26.32%) : 92191.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)

@@ -12,7 +12,7 @@
 ;  V00 this         [V00,T00] (  7,  6   )     ref  ->   x0         this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->   x1         class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  4,  4   )     int  ->  x14         "Inline stloc first use temp"
+;  V03 tmp1         [V03,T02] (  8,  4.12)     int  ->   x2         "Inline stloc first use temp"
 ;* V04 tmp2         [V04,T03] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
@@ -25,45 +25,49 @@ G_M46606_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
             ; gcrRegs +[x0-x1]
             ldr     x14, [x0, #0x18]
             ; gcrRegs +[x14]
-            cbz     x14, G_M46606_IG05
-                       ;; size=8 bbWeight=1 PerfScore 4.00
-G_M46606_IG03:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x1 x14]
-            ldr     x0, [x0, #0x18]
-                       ;; size=4 bbWeight=0 PerfScore 0.00
-G_M46606_IG04:        ; bbWeight=0, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0 PerfScore 0.00
-G_M46606_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x1]
+            cbnz    x14, G_M46606_IG06
             add     x14, x1, #52
+            ; gcrRegs -[x14]
             ; byrRegs +[x14]
-            ldapr   w14, [x14]
-            ; byrRegs -[x14]
-            tbnz    w14, #21, G_M46606_IG06
-            tbnz    w14, #22, G_M46606_IG06
-            tbz     w14, #24, G_M46606_IG06
+            ldapr   w2, [x14]
+            tbnz    w2, #21, G_M46606_IG03
+            tbnz    w2, #22, G_M46606_IG03
+            tbz     w2, #24, G_M46606_IG05
             add     x14, x0, #24
-            ; byrRegs +[x14]
             mov     x15, x1
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
             stp     xzr, xzr, [x0, #0x08]
-                       ;; size=36 bbWeight=1 PerfScore 9.50
-G_M46606_IG06:        ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
+                       ;; size=44 bbWeight=1 PerfScore 13.50
+G_M46606_IG03:        ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     x0, x1
             ; gcrRegs +[x0]
                        ;; size=4 bbWeight=1 PerfScore 0.50
-G_M46606_IG07:        ; bbWeight=1, epilog, nogc, extend
+G_M46606_IG04:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
+G_M46606_IG05:        ; bbWeight=0.03, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[x0]
+            tbnz    w2, #23, G_M46606_IG03
+            tbnz    w2, #17, G_M46606_IG03
+            tbnz    w2, #16, G_M46606_IG03
+            tbz     w2, #25, G_M46606_IG03
+            b       G_M46606_IG03
+                       ;; size=20 bbWeight=0.03 PerfScore 0.15
+G_M46606_IG06:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x1] +[x0]
+            ldr     x0, [x0, #0x18]
+                       ;; size=4 bbWeight=0 PerfScore 0.00
+G_M46606_IG07:        ; bbWeight=0, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 76, prolog size 8, PerfScore 17.50, instruction count 19, allocated bytes for code 76 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 96, prolog size 8, PerfScore 17.65, instruction count 24, allocated bytes for code 96 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -74,7 +78,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 19 (0x00013) Actual length = 76 (0x00004c)
+  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+26.32%) : 178968.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)

@@ -12,12 +12,12 @@
 ;  V00 this         [V00,T00] (  7,  6   )     ref  ->   x0         this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->   x1         class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  4,  4   )     int  ->  x14         "Inline stloc first use temp"
+;  V03 tmp1         [V03,T02] (  8,  4   )     int  ->   x2         "Inline stloc first use temp"
 ;* V04 tmp2         [V04,T03] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
-G_M46606_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M46606_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
@@ -29,13 +29,11 @@ G_M46606_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
             add     x14, x1, #52
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
-            ldapr   w14, [x14]
-            ; byrRegs -[x14]
-            tbnz    w14, #21, G_M46606_IG03
-            tbnz    w14, #22, G_M46606_IG03
-            tbz     w14, #24, G_M46606_IG03
+            ldapr   w2, [x14]
+            tbnz    w2, #21, G_M46606_IG03
+            tbnz    w2, #22, G_M46606_IG03
+            tbz     w2, #24, G_M46606_IG07
             add     x14, x0, #24
-            ; byrRegs +[x14]
             mov     x15, x1
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
@@ -60,8 +58,16 @@ G_M46606_IG06:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0 PerfScore 0.00
+G_M46606_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[x0] +[x1]
+            tbnz    w2, #23, G_M46606_IG03
+            tbnz    w2, #17, G_M46606_IG03
+            tbnz    w2, #16, G_M46606_IG03
+            tbz     w2, #25, G_M46606_IG03
+            b       G_M46606_IG03
+                       ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 76, prolog size 8, PerfScore 17.50, instruction count 19, allocated bytes for code 76 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 96, prolog size 8, PerfScore 17.50, instruction count 24, allocated bytes for code 96 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -72,7 +78,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 19 (0x00013) Actual length = 76 (0x00004c)
+  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+26.32%) : 702728.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)

@@ -12,12 +12,12 @@
 ;  V00 this         [V00,T00] (  7,  6   )     ref  ->   x0         this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->   x1         class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  4,  4   )     int  ->  x14         "Inline stloc first use temp"
+;  V03 tmp1         [V03,T02] (  8,  4   )     int  ->   x2         "Inline stloc first use temp"
 ;* V04 tmp2         [V04,T03] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
-G_M46606_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M46606_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
@@ -29,13 +29,11 @@ G_M46606_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
             add     x14, x1, #52
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
-            ldapr   w14, [x14]
-            ; byrRegs -[x14]
-            tbnz    w14, #21, G_M46606_IG03
-            tbnz    w14, #22, G_M46606_IG03
-            tbz     w14, #24, G_M46606_IG03
+            ldapr   w2, [x14]
+            tbnz    w2, #21, G_M46606_IG03
+            tbnz    w2, #22, G_M46606_IG03
+            tbz     w2, #24, G_M46606_IG07
             add     x14, x0, #24
-            ; byrRegs +[x14]
             mov     x15, x1
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
@@ -60,8 +58,16 @@ G_M46606_IG06:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0 PerfScore 0.00
+G_M46606_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[x0] +[x1]
+            tbnz    w2, #23, G_M46606_IG03
+            tbnz    w2, #17, G_M46606_IG03
+            tbnz    w2, #16, G_M46606_IG03
+            tbz     w2, #25, G_M46606_IG03
+            b       G_M46606_IG03
+                       ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 76, prolog size 8, PerfScore 17.50, instruction count 19, allocated bytes for code 76 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 96, prolog size 8, PerfScore 17.50, instruction count 24, allocated bytes for code 96 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -72,7 +78,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 19 (0x00013) Actual length = 76 (0x00004c)
+  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

librariestestsnotieredcompilation.run.linux.arm64.Release.mch

-16 (-11.43%) : 156985.dasm - System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)

@@ -10,48 +10,31 @@
 ;
 ;  V00 this         [V00,T01] (  3,  2.50)     ref  ->   x0         this class-hnd single-def <System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op single-def <System.Threading.CancellationToken>
-;  V02 loc0         [V02,T02] (  3,  1.50)     ref  ->  x19         class-hnd exact single-def <<unknown class>>
+;  V02 loc0         [V02,T02] (  3,  1.50)     ref  ->   x2         class-hnd exact single-def <<unknown class>>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V05 tmp2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;  V06 tmp3         [V06,T00] (  5,  3.18)     ref  ->   x1         single-def "field V01._source (fldOffset=0x0)" P-INDEP
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M3467_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x20]!
-            str     x19, [sp, #0x18]
+            stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
-                       ;; size=12 bbWeight=1 PerfScore 2.50
+                       ;; size=8 bbWeight=1 PerfScore 1.50
 G_M3467_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0-x1]
-            cbz     x1, G_M3467_IG04
+            cbz     x1, G_M3467_IG06
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M3467_IG03:        ; bbWeight=0.18, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             add     x2, x1, #32
             ; byrRegs +[x2]
             ldapr   w2, [x2]
             ; byrRegs -[x2]
-            cbnz    w2, G_M3467_IG06
+            cbz     w2, G_M3467_IG06
                        ;; size=12 bbWeight=0.18 PerfScore 0.80
-G_M3467_IG04:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
-            ldr     x19, [x0, #0x10]
-            ; gcrRegs +[x19]
-            cbnz    x19, G_M3467_IG08
-            movz    x0, #0xD1FFAB1E
+G_M3467_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            ldr     x0, [x0]
-            ; gcrRegs +[x0]
-                       ;; size=24 bbWeight=0.50 PerfScore 4.25
-G_M3467_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
-            ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M3467_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0 x19]
             mov     x0, x1
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for System.Threading.Tasks.Task:FromCanceled(System.Threading.CancellationToken):System.Threading.Tasks.Task
@@ -61,41 +44,56 @@ G_M3467_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002
             ldr     x1, [x1]
             blr     x1
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M3467_IG07:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
+G_M3467_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
             ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M3467_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0] +[x1 x19]
-            ldr     x0, [x19, #0x08]
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M3467_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x1]
+            ldr     x2, [x0, #0x10]
+            ; gcrRegs +[x2]
+            cbnz    x2, G_M3467_IG08
+            movz    x0, #0xD1FFAB1E
+            ; gcrRegs -[x0]
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
+            ldr     x0, [x0]
+            ; gcrRegs +[x0]
+                       ;; size=24 bbWeight=0.50 PerfScore 4.25
+G_M3467_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M3467_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            ldr     x0, [x2, #0x08]
             ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for System.Net.Http.Http2Connection:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             ldr     wzr, [x0]
             blr     x2
-            ; gcrRegs -[x1 x19]
+            ; gcrRegs -[x1]
                        ;; size=28 bbWeight=0.50 PerfScore 5.75
 G_M3467_IG09:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
+            ldp     fp, lr, [sp], #0x10
             ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 140, prolog size 12, PerfScore 23.30, instruction count 35, allocated bytes for code 140 (MethodHash=6a07f274) for method System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 124, prolog size 8, PerfScore 19.30, instruction count 31, allocated bytes for code 124 (MethodHash=6a07f274) for method System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 1
   Epilog Count      : 3
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
+  Function Length   : 31 (0x0001f) Actual length = 124 (0x00007c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -109,10 +107,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 03       save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
-    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
-    E4          end
-    E4          end
+    81          save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
     E4          end
     E4          end
 

-16 (-10.53%) : 145675.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)

@@ -33,37 +33,25 @@ G_M54442_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ldr     d1, [@RWD08]
             str     d1, [fp, #0x10]    // [V08 cse0]
             fcmp    d8, d1
-            bhs     G_M54442_IG04
+            blo     G_M54442_IG04
                        ;; size=28 bbWeight=1 PerfScore 25.00
-G_M54442_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            b       G_M54442_IG07
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M54442_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+G_M54442_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             fcmp    d8, d1
-            bgt     G_M54442_IG05
+            bgt     G_M54442_IG06
             fcmp    d8, d1
-            bne     G_M54442_IG06
-            b       G_M54442_IG07
-                       ;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M54442_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            b       G_M54442_IG09
-                       ;; size=4 bbWeight=0.25 PerfScore 0.25
-G_M54442_IG06:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x0]
+            beq     G_M54442_IG04
             fcmp    d8, d8
-            beq     G_M54442_IG09
-            b       G_M54442_IG03
-                       ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M54442_IG07:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+            beq     G_M54442_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M54442_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             str     x1, [x0, #0x18]
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M54442_IG08:        ; bbWeight=1, epilog, nogc, extend
+G_M54442_IG05:        ; bbWeight=1, epilog, nogc, extend
             ldr     d8, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
-G_M54442_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M54442_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
             movz    w0, #0xD1FFAB1E
             movk    w0, #1 LSL #16
@@ -86,7 +74,7 @@ RWD00     dq  416312D000000000h   ;     10000000
 RWD08      dq  41DFFFFFFFC00000h   ; 2.14748365e+09
 
 
-; Total bytes of code 152, prolog size 12, PerfScore 37.25, instruction count 38, allocated bytes for code 152 (MethodHash=b6192b55) for method System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
+; Total bytes of code 136, prolog size 12, PerfScore 35.50, instruction count 34, allocated bytes for code 136 (MethodHash=b6192b55) for method System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -97,7 +85,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 38 (0x00026) Actual length = 152 (0x000098)
+  Function Length   : 34 (0x00022) Actual length = 136 (0x000088)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-48 (-10.43%) : 302388.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)

@@ -12,9 +12,9 @@
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <System.Xml.Linq.XNode>
 ;  V02 loc0         [V02,T10] (  6,  4   )     ref  ->  x20         class-hnd single-def <System.Xml.Linq.XDocumentType>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T03] (  5,  4.76)     ref  ->  x25         class-hnd exact single-def "impAppendStmt" <System.String>
-;  V05 tmp2         [V05,T04] (  5,  4.76)     ref  ->  x21         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V06 tmp3         [V06,T06] (  5,  4.76)     ref  ->  x22         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V04 tmp1         [V04,T03] (  5,  4.76)     ref  ->   x2         class-hnd exact single-def "impAppendStmt" <System.String>
+;  V05 tmp2         [V05,T04] (  5,  4.76)     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V06 tmp3         [V06,T06] (  5,  4.76)     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V07 tmp4         [V07,T18] (  2,  1   )   ubyte  ->   x0         "Inline return value spill temp"
 ;  V08 tmp5         [V08,T11] (  2,  2   )   byref  ->   x0         single-def "impAppendStmt"
 ;* V09 tmp6         [V09    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -22,18 +22,18 @@
 ;* V11 tmp8         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V12 tmp9         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V13 tmp10        [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V14 tmp11        [V14,T05] (  5,  4.76)     ref  ->  x23         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V15 tmp12        [V15,T07] (  5,  4.76)     ref  ->  x24         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V14 tmp11        [V14,T05] (  5,  4.76)     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V15 tmp12        [V15,T07] (  5,  4.76)     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V16 tmp13        [V16,T19] (  2,  1   )   ubyte  ->   x0         "Inline return value spill temp"
-;  V17 tmp14        [V17,T12] (  2,  2   )   byref  ->   x0         single-def "impAppendStmt"
+;  V17 tmp14        [V17,T12] (  2,  2   )   byref  ->   x3         single-def "impAppendStmt"
 ;* V18 tmp15        [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp16        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp17        [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp18        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp19        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V23 tmp20        [V23,T08] (  5,  4.76)     ref  ->  x26         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V23 tmp20        [V23,T08] (  5,  4.76)     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V24 tmp21        [V24,T20] (  2,  1   )   ubyte  ->   x0         "Inline return value spill temp"
-;  V25 tmp22        [V25,T13] (  2,  2   )   byref  ->   x0         single-def "impAppendStmt"
+;  V25 tmp22        [V25,T13] (  2,  2   )   byref  ->   x3         single-def "impAppendStmt"
 ;* V26 tmp23        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V27 tmp24        [V27    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V28 tmp25        [V28    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -48,22 +48,19 @@
 ;* V37 tmp34        [V37    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V38 tmp35        [V38    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V39 tmp36        [V39    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V40 cse0         [V40,T14] (  3,  1.38)     int  ->   x2         "CSE - moderate"
-;  V41 cse1         [V41,T15] (  3,  1.38)     int  ->   x2         "CSE - moderate"
-;  V42 cse2         [V42,T16] (  3,  1.38)     int  ->   x2         "CSE - moderate"
+;  V40 cse0         [V40,T14] (  3,  1.38)     int  ->   x3         "CSE - moderate"
+;  V41 cse1         [V41,T15] (  3,  1.38)     int  ->   x0         "CSE - moderate"
+;  V42 cse2         [V42,T16] (  3,  1.38)     int  ->   x0         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
 G_M37476_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x50]!
+            stp     fp, lr, [sp, #-0x20]!
             stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
-            stp     x23, x24, [sp, #0x30]
-            stp     x25, x26, [sp, #0x40]
             mov     fp, sp
             mov     x19, x0
             ; gcrRegs +[x19]
-                       ;; size=28 bbWeight=1 PerfScore 6.00
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M37476_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
             movz    x0, #0xD1FFAB1E
@@ -73,102 +70,148 @@ G_M37476_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
             ; gcrRegs -[x1] +[x0]
             mov     x20, x0
             ; gcrRegs +[x20]
-            cbz     x20, G_M37476_IG23
+            cbz     x20, G_M37476_IG26
                        ;; size=24 bbWeight=1 PerfScore 4.00
 G_M37476_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x21, [x19, #0x20]
-            ; gcrRegs +[x21]
-            ldr     x22, [x20, #0x20]
-            ; gcrRegs +[x22]
-            cmp     x21, x22
-            beq     G_M37476_IG07
+            ldr     x2, [x19, #0x20]
+            ; gcrRegs +[x2]
+            ldr     x1, [x20, #0x20]
+            ; gcrRegs +[x1]
+            cmp     x2, x1
+            beq     G_M37476_IG08
                        ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M37476_IG04:        ; bbWeight=0.44, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
-            cbz     x21, G_M37476_IG23
+G_M37476_IG04:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x2, G_M37476_IG26
                        ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M37476_IG05:        ; bbWeight=0.44, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
-            b       G_M37476_IG21
+G_M37476_IG05:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x1, G_M37476_IG26
                        ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M37476_IG06:        ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
-            add     x0, x21, #12
+G_M37476_IG06:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldr     w3, [x2, #0x08]
+            ldr     w0, [x1, #0x08]
+            cmp     w3, w0
+            bne     G_M37476_IG26
+                       ;; size=16 bbWeight=0.44 PerfScore 3.30
+G_M37476_IG07:        ; bbWeight=0.50, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            add     x0, x2, #12
             ; byrRegs +[x0]
-            lsl     w2, w2, #1
+            lsl     w2, w3, #1
+            ; gcrRegs -[x2]
             mov     w2, w2
-            add     x1, x22, #12
+            add     x1, x1, #12
+            ; gcrRegs -[x1]
             ; byrRegs +[x1]
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-            ; gcrRegs -[x21-x22]
             ; byrRegs -[x0-x1]
-            cbz     w0, G_M37476_IG23
+            cbz     w0, G_M37476_IG26
                        ;; size=40 bbWeight=0.50 PerfScore 4.50
-G_M37476_IG07:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x23, [x19, #0x28]
-            ; gcrRegs +[x23]
-            ldr     x24, [x20, #0x28]
-            ; gcrRegs +[x24]
-            cmp     x23, x24
-            beq     G_M37476_IG10
-                       ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M37476_IG08:        ; bbWeight=0.44, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
-            cbz     x23, G_M37476_IG23
-                       ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M37476_IG09:        ; bbWeight=0.44, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref
-            b       G_M37476_IG28
-                       ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M37476_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x23-x24]
-            ldr     x25, [x19, #0x30]
-            ; gcrRegs +[x25]
-            ldr     x26, [x20, #0x30]
-            ; gcrRegs +[x26]
-            cmp     x25, x26
+G_M37476_IG08:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldr     x2, [x19, #0x28]
+            ; gcrRegs +[x2]
+            ldr     x1, [x20, #0x28]
+            ; gcrRegs +[x1]
+            cmp     x2, x1
             beq     G_M37476_IG13
                        ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M37476_IG11:        ; bbWeight=0.44, gcrefRegs=6180000 {x19 x20 x25 x26}, byrefRegs=0000 {}, byref, isz
-            cbz     x25, G_M37476_IG23
+G_M37476_IG09:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x2, G_M37476_IG26
                        ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M37476_IG12:        ; bbWeight=0.44, gcrefRegs=6180000 {x19 x20 x25 x26}, byrefRegs=0000 {}, byref
-            b       G_M37476_IG25
+G_M37476_IG10:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x1, G_M37476_IG26
                        ;; size=4 bbWeight=0.44 PerfScore 0.44
+G_M37476_IG11:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldr     w0, [x2, #0x08]
+            ldr     w3, [x1, #0x08]
+            cmp     w0, w3
+            bne     G_M37476_IG26
+                       ;; size=16 bbWeight=0.44 PerfScore 3.30
+G_M37476_IG12:        ; bbWeight=0.50, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            add     x3, x2, #12
+            ; byrRegs +[x3]
+            lsl     w2, w0, #1
+            ; gcrRegs -[x2]
+            mov     w2, w2
+            add     x1, x1, #12
+            ; gcrRegs -[x1]
+            ; byrRegs +[x1]
+            mov     x0, x3
+            ; byrRegs +[x0]
+            movz    x3, #0xD1FFAB1E      // code for <unknown method>
+            ; byrRegs -[x3]
+            movk    x3, #0xD1FFAB1E LSL #16
+            movk    x3, #0xD1FFAB1E LSL #32
+            ldr     x3, [x3]
+            blr     x3
+            ; byrRegs -[x0-x1]
+            cbz     w0, G_M37476_IG26
+                       ;; size=44 bbWeight=0.50 PerfScore 4.75
 G_M37476_IG13:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x25-x26]
+            ldr     x2, [x19, #0x30]
+            ; gcrRegs +[x2]
+            ldr     x1, [x20, #0x30]
+            ; gcrRegs +[x1]
+            cmp     x2, x1
+            beq     G_M37476_IG18
+                       ;; size=16 bbWeight=0.50 PerfScore 3.75
+G_M37476_IG14:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x2, G_M37476_IG26
+                       ;; size=4 bbWeight=0.44 PerfScore 0.44
+G_M37476_IG15:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x1, G_M37476_IG26
+                       ;; size=4 bbWeight=0.44 PerfScore 0.44
+G_M37476_IG16:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldr     w0, [x2, #0x08]
+            ldr     w3, [x1, #0x08]
+            cmp     w0, w3
+            bne     G_M37476_IG26
+                       ;; size=16 bbWeight=0.44 PerfScore 3.30
+G_M37476_IG17:        ; bbWeight=0.50, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            add     x3, x2, #12
+            ; byrRegs +[x3]
+            lsl     w2, w0, #1
+            ; gcrRegs -[x2]
+            mov     w2, w2
+            add     x1, x1, #12
+            ; gcrRegs -[x1]
+            ; byrRegs +[x1]
+            mov     x0, x3
+            ; byrRegs +[x0]
+            movz    x3, #0xD1FFAB1E      // code for <unknown method>
+            ; byrRegs -[x3]
+            movk    x3, #0xD1FFAB1E LSL #16
+            movk    x3, #0xD1FFAB1E LSL #32
+            ldr     x3, [x3]
+            blr     x3
+            ; byrRegs -[x0-x1]
+            cbz     w0, G_M37476_IG26
+                       ;; size=44 bbWeight=0.50 PerfScore 4.75
+G_M37476_IG18:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x2, [x19, #0x38]
             ; gcrRegs +[x2]
             ldr     x1, [x20, #0x38]
             ; gcrRegs +[x1]
             cmp     x2, x1
-            bne     G_M37476_IG15
+            beq     G_M37476_IG25
                        ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M37476_IG14:        ; bbWeight=0.06, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x1-x2 x19-x20]
-            mov     w0, #1
-            b       G_M37476_IG20
-                       ;; size=8 bbWeight=0.06 PerfScore 0.09
-G_M37476_IG15:        ; bbWeight=0.44, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x1-x2]
-            cbz     x2, G_M37476_IG18
+G_M37476_IG19:        ; bbWeight=0.44, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
...

+24 (+20.69%) : 43078.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)

@@ -8,7 +8,7 @@
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  3.50)     ref  ->  x19         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+;  V00 this         [V00,T00] (  5,  4   )     ref  ->  x19         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
 ;  V02 loc0         [V02,T06] (  3,  1.50)     int  ->   x1         ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
 ;  V09 tmp4         [V09,T04] (  3,  2.50)   byref  ->   x0         single-def "Inline stloc first use temp"
 ;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V11 tmp6         [V11,T07] (  3,  1.50)     ref  ->   x2         single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V12 rat0         [V12,T05] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V12 rat0         [V12,T05] (  2,  2   )    long  ->   x0         "Spilling to split statement for tree"
 ;* V13 rat1         [V13,T09] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V14 rat2         [V14,T03] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V14 rat2         [V14,T03] (  2,  2   )    long  ->   x0         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -30,9 +30,10 @@ G_M43979_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     fp, lr, [sp, #-0x20]!
             str     x19, [sp, #0x18]
             mov     fp, sp
+            str     x0, [fp, #0x10]
             mov     x19, x0
             ; gcrRegs +[x19]
-                       ;; size=16 bbWeight=1 PerfScore 3.00
+                       ;; size=20 bbWeight=1 PerfScore 4.00
 G_M43979_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
             ldr     x0, [x19, #0x20]
@@ -45,47 +46,54 @@ G_M43979_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
             blr     x2
             ; gcrRegs -[x0-x1]
             ; byrRegs +[x0]
-            cbz     x0, G_M43979_IG04
+            cbz     x0, G_M43979_IG05
                        ;; size=32 bbWeight=1 PerfScore 12.50
-G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref
+G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
             ldr     w1, [x0]
             ldr     x2, [x19, #0x80]
             ; gcrRegs +[x2]
-            b       G_M43979_IG06
-                       ;; size=12 bbWeight=0.50 PerfScore 3.50
-G_M43979_IG04:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2]
+            ldr     x0, [x19]
             ; byrRegs -[x0]
+            ldr     x0, [x0, #0x38]
+            ldr     x0, [x0]
+            ldr     x0, [x0, #0xC0]
+            cbnz    x0, G_M43979_IG07
+                       ;; size=28 bbWeight=0.50 PerfScore 9.50
+G_M43979_IG04:        ; bbWeight=0.10, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref
+            b       G_M43979_IG07
+                       ;; size=4 bbWeight=0.10 PerfScore 0.10
+G_M43979_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x2]
             mov     x0, xzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M43979_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M43979_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x2]
             ldr     w0, [x2, #0x08]
             cmp     w1, w0
-            bhs     G_M43979_IG08
+            bhs     G_M43979_IG09
             add     x0, x2, #16
             ; byrRegs +[x0]
             ldr     x0, [x0, w1, UXTW #3]
             ; gcrRegs +[x0]
             ; byrRegs -[x0]
                        ;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M43979_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M43979_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0 x2]
             bl      CORINFO_HELP_RNGCHKFAIL
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 116, prolog size 12, PerfScore 27.25, instruction count 29, allocated bytes for code 116 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 140, prolog size 16, PerfScore 34.35, instruction count 35, allocated bytes for code 140 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -96,7 +104,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
+  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+20.69%) : 48950.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)

@@ -8,7 +8,7 @@
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  3.50)     ref  ->  x19         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+;  V00 this         [V00,T00] (  5,  4   )     ref  ->  x19         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
 ;  V02 loc0         [V02,T06] (  3,  1.50)     int  ->   x1         ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
 ;  V09 tmp4         [V09,T04] (  3,  2.50)   byref  ->   x0         single-def "Inline stloc first use temp"
 ;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V11 tmp6         [V11,T07] (  3,  1.50)     ref  ->   x2         single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V12 rat0         [V12,T05] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V12 rat0         [V12,T05] (  2,  2   )    long  ->   x0         "Spilling to split statement for tree"
 ;* V13 rat1         [V13,T09] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V14 rat2         [V14,T03] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V14 rat2         [V14,T03] (  2,  2   )    long  ->   x0         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -30,9 +30,10 @@ G_M43979_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     fp, lr, [sp, #-0x20]!
             str     x19, [sp, #0x18]
             mov     fp, sp
+            str     x0, [fp, #0x10]
             mov     x19, x0
             ; gcrRegs +[x19]
-                       ;; size=16 bbWeight=1 PerfScore 3.00
+                       ;; size=20 bbWeight=1 PerfScore 4.00
 G_M43979_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
             ldr     x0, [x19, #0x20]
@@ -45,47 +46,54 @@ G_M43979_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
             blr     x2
             ; gcrRegs -[x0-x1]
             ; byrRegs +[x0]
-            cbz     x0, G_M43979_IG04
+            cbz     x0, G_M43979_IG05
                        ;; size=32 bbWeight=1 PerfScore 12.50
-G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref
+G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
             ldr     w1, [x0]
             ldr     x2, [x19, #0x80]
             ; gcrRegs +[x2]
-            b       G_M43979_IG06
-                       ;; size=12 bbWeight=0.50 PerfScore 3.50
-G_M43979_IG04:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2]
+            ldr     x0, [x19]
             ; byrRegs -[x0]
+            ldr     x0, [x0, #0x38]
+            ldr     x0, [x0]
+            ldr     x0, [x0, #0xC0]
+            cbnz    x0, G_M43979_IG07
+                       ;; size=28 bbWeight=0.50 PerfScore 9.50
+G_M43979_IG04:        ; bbWeight=0.10, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref
+            b       G_M43979_IG07
+                       ;; size=4 bbWeight=0.10 PerfScore 0.10
+G_M43979_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x2]
             mov     x0, xzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M43979_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M43979_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x2]
             ldr     w0, [x2, #0x08]
             cmp     w1, w0
-            bhs     G_M43979_IG08
+            bhs     G_M43979_IG09
             add     x0, x2, #16
             ; byrRegs +[x0]
             ldr     x0, [x0, w1, UXTW #3]
             ; gcrRegs +[x0]
             ; byrRegs -[x0]
                        ;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M43979_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M43979_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0 x2]
             bl      CORINFO_HELP_RNGCHKFAIL
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 116, prolog size 12, PerfScore 27.25, instruction count 29, allocated bytes for code 116 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 140, prolog size 16, PerfScore 34.35, instruction count 35, allocated bytes for code 140 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -96,7 +104,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
+  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+20.69%) : 6068.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)

@@ -8,7 +8,7 @@
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  3.50)     ref  ->  x19         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+;  V00 this         [V00,T00] (  5,  4   )     ref  ->  x19         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
 ;  V02 loc0         [V02,T06] (  3,  1.50)     int  ->   x1         ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
 ;  V09 tmp4         [V09,T04] (  3,  2.50)   byref  ->   x0         single-def "Inline stloc first use temp"
 ;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V11 tmp6         [V11,T07] (  3,  1.50)     ref  ->   x2         single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V12 rat0         [V12,T05] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V12 rat0         [V12,T05] (  2,  2   )    long  ->   x0         "Spilling to split statement for tree"
 ;* V13 rat1         [V13,T09] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V14 rat2         [V14,T03] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V14 rat2         [V14,T03] (  2,  2   )    long  ->   x0         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -30,9 +30,10 @@ G_M43979_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     fp, lr, [sp, #-0x20]!
             str     x19, [sp, #0x18]
             mov     fp, sp
+            str     x0, [fp, #0x10]
             mov     x19, x0
             ; gcrRegs +[x19]
-                       ;; size=16 bbWeight=1 PerfScore 3.00
+                       ;; size=20 bbWeight=1 PerfScore 4.00
 G_M43979_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
             ldr     x0, [x19, #0x20]
@@ -45,47 +46,54 @@ G_M43979_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
             blr     x2
             ; gcrRegs -[x0-x1]
             ; byrRegs +[x0]
-            cbz     x0, G_M43979_IG04
+            cbz     x0, G_M43979_IG05
                        ;; size=32 bbWeight=1 PerfScore 12.50
-G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref
+G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
             ldr     w1, [x0]
             ldr     x2, [x19, #0x80]
             ; gcrRegs +[x2]
-            b       G_M43979_IG06
-                       ;; size=12 bbWeight=0.50 PerfScore 3.50
-G_M43979_IG04:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2]
+            ldr     x0, [x19]
             ; byrRegs -[x0]
+            ldr     x0, [x0, #0x38]
+            ldr     x0, [x0]
+            ldr     x0, [x0, #0xD1FFAB1E]
+            cbnz    x0, G_M43979_IG07
+                       ;; size=28 bbWeight=0.50 PerfScore 9.50
+G_M43979_IG04:        ; bbWeight=0.10, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref
+            b       G_M43979_IG07
+                       ;; size=4 bbWeight=0.10 PerfScore 0.10
+G_M43979_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x2]
             mov     x0, xzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M43979_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M43979_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x2]
             ldr     w0, [x2, #0x08]
             cmp     w1, w0
-            bhs     G_M43979_IG08
+            bhs     G_M43979_IG09
             add     x0, x2, #16
             ; byrRegs +[x0]
             ldr     x0, [x0, w1, UXTW #3]
             ; gcrRegs +[x0]
             ; byrRegs -[x0]
                        ;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M43979_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M43979_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0 x2]
             bl      CORINFO_HELP_RNGCHKFAIL
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 116, prolog size 12, PerfScore 27.25, instruction count 29, allocated bytes for code 116 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 140, prolog size 16, PerfScore 34.35, instruction count 35, allocated bytes for code 140 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -96,7 +104,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
+  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

realworld.run.linux.arm64.checked.mch

-4 (-2.13%) : 5118.dasm - System.Collections.Generic.Dictionary2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)

@@ -71,9 +71,8 @@ G_M18821_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x1]
             ldr     w2, [x1, #0x04]
             cmn     w2, #1
-            bge     G_M18821_IG07
-            b       G_M18821_IG03
-                       ;; size=60 bbWeight=2 PerfScore 45.00
+            blt     G_M18821_IG03
+                       ;; size=56 bbWeight=2 PerfScore 43.00
 G_M18821_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref
             ldr     q16, [x1, #0x10]
             str     q16, [x0, #0x10]
@@ -99,7 +98,7 @@ G_M18821_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 188, prolog size 8, PerfScore 149.75, instruction count 47, allocated bytes for code 188 (MethodHash=4fb9b67a) for method System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 184, prolog size 8, PerfScore 147.75, instruction count 46, allocated bytes for code 184 (MethodHash=4fb9b67a) for method System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -110,7 +109,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 47 (0x0002f) Actual length = 188 (0x0000bc)
+  Function Length   : 46 (0x0002e) Actual length = 184 (0x0000b8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.13%) : 13530.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)

@@ -77,9 +77,8 @@ G_M20310_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x1]
             ldr     w2, [x1, #0x04]
             cmn     w2, #1
-            bge     G_M20310_IG07
-            b       G_M20310_IG03
-                       ;; size=60 bbWeight=2 PerfScore 45.00
+            blt     G_M20310_IG03
+                       ;; size=56 bbWeight=2 PerfScore 43.00
 G_M20310_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref
             ldp     w2, w1, [x1, #0x08]
             ; byrRegs -[x1]
@@ -105,7 +104,7 @@ G_M20310_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 188, prolog size 8, PerfScore 149.75, instruction count 47, allocated bytes for code 188 (MethodHash=5c1ab0a9) for method System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 184, prolog size 8, PerfScore 147.75, instruction count 46, allocated bytes for code 184 (MethodHash=5c1ab0a9) for method System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -116,7 +115,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 47 (0x0002f) Actual length = 188 (0x0000bc)
+  Function Length   : 46 (0x0002e) Actual length = 184 (0x0000b8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.08%) : 15369.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)

@@ -72,9 +72,8 @@ G_M27287_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x14]
             ldr     w15, [x14, #0x0C]
             cmn     w15, #1
-            bge     G_M27287_IG07
-            b       G_M27287_IG03
-                       ;; size=60 bbWeight=2 PerfScore 45.00
+            blt     G_M27287_IG03
+                       ;; size=56 bbWeight=2 PerfScore 43.00
 G_M27287_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=4001 {x0 x14}, byref
             ldr     x15, [x14]
             ; gcrRegs +[x15]
@@ -102,7 +101,7 @@ G_M27287_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 192, prolog size 8, PerfScore 150.00, instruction count 48, allocated bytes for code 192 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 188, prolog size 8, PerfScore 148.00, instruction count 47, allocated bytes for code 188 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -113,7 +112,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
+  Function Length   : 47 (0x0002f) Actual length = 188 (0x0000bc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+8.62%) : 24806.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)

@@ -27,10 +27,10 @@
 ;* V16 tmp10        [V16,T07] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
 ;* V17 tmp11        [V17,T08] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V18 cse0         [V18,T14] (  0,  0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;  V19 cse1         [V19,T10] (  2,  2.50)    long  ->  x24         hoist "CSE - aggressive"
-;* V20 rat0         [V20,T12] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V19 cse1         [V19,T10] (  3,  3   )    long  ->  x24         hoist "CSE - aggressive"
+;  V20 rat0         [V20,T12] (  2,  2   )    long  ->   x0         "Spilling to split statement for tree"
 ;* V21 rat1         [V21,T13] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V22 rat2         [V22,T11] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V22 rat2         [V22,T11] (  2,  2   )    long  ->   x0         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 16
 
@@ -64,7 +64,7 @@ G_M9562_IG02:        ; bbWeight=1, gcrefRegs=80004 {x2 x19}, byrefRegs=100000 {x
             ; gcrRegs +[x21]
             cbz     x21, G_M9562_IG07
                        ;; size=40 bbWeight=1 PerfScore 13.50
-G_M9562_IG03:        ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=100000 {x20}, byref
+G_M9562_IG03:        ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=100000 {x20}, byref, isz
             ; gcrRegs -[x0]
             mov     x0, x21
             ; gcrRegs +[x0]
@@ -77,10 +77,15 @@ G_M9562_IG03:        ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=1000
             ; gcrRegs +[x22]
             mov     w23, w1
             ldr     x24, [x19]
-            b       G_M9562_IG05
-                       ;; size=40 bbWeight=0.50 PerfScore 5.50
-G_M9562_IG04:        ; bbWeight=2, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=100000 {x20}, byref
+            mov     x0, x24
             ; gcrRegs -[x0]
+            ldr     x0, [x0, #0x38]
+            ldr     x0, [x0]
+            ldr     x0, [x0, #0x50]
+            cbnz    x0, G_M9562_IG05
+            b       G_M9562_IG05
+                       ;; size=60 bbWeight=0.50 PerfScore 10.75
+G_M9562_IG04:        ; bbWeight=2, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=100000 {x20}, byref
             mov     x0, x22
             ; gcrRegs +[x0]
             mov     w1, w23
@@ -130,7 +135,7 @@ G_M9562_IG07:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
             ret     lr
                        ;; size=20 bbWeight=1 PerfScore 5.00
 
-; Total bytes of code 232, prolog size 24, PerfScore 101.50, instruction count 58, allocated bytes for code 232 (MethodHash=57bfdaa5) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
+; Total bytes of code 252, prolog size 24, PerfScore 106.75, instruction count 63, allocated bytes for code 252 (MethodHash=57bfdaa5) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -141,7 +146,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
+  Function Length   : 63 (0x0003f) Actual length = 252 (0x0000fc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+9.80%) : 23464.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System._Canon]:getHasAnyApplicableMember():ubyte:this (FullOpts)

@@ -27,10 +27,10 @@
 ;  V16 tmp12        [V16,T00] (  5, 27   )     int  ->  x21         "field V01._index (fldOffset=0x8)" P-INDEP
 ;* V17 tmp13        [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "V03.[004..005)"
 ;* V18 cse0         [V18,T11] (  0,  0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;  V19 cse1         [V19,T06] (  1,  1   )    long  ->  x22         hoist "CSE - aggressive"
-;* V20 rat0         [V20,T07] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V19 cse1         [V19,T06] (  2,  2   )    long  ->  x22         hoist "CSE - aggressive"
+;  V20 rat0         [V20,T07] (  2,  4   )    long  ->   x0         "Spilling to split statement for tree"
 ;* V21 rat1         [V21,T08] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V22 rat2         [V22,T05] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V22 rat2         [V22,T05] (  2,  4   )    long  ->   x0         "fgMakeTemp is creating a new local variable"
 ;* V23 rat3         [V23,T10] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
 ;* V24 rat4         [V24,T01] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
@@ -49,7 +49,7 @@ G_M864_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {},
             mov     x19, x0
             ; gcrRegs +[x19]
                        ;; size=40 bbWeight=1 PerfScore 8.00
-G_M864_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M864_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [x19, #0x08]
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]]:GetEnumerator():Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1+Enumerator[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]]:this
@@ -62,10 +62,15 @@ G_M864_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byre
             ; gcrRegs +[x20]
             mov     w21, w1
             ldr     x22, [x19]
-            b       G_M864_IG04
-                       ;; size=44 bbWeight=1 PerfScore 16.50
-G_M864_IG03:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            mov     x0, x22
             ; gcrRegs -[x0]
+            ldr     x0, [x0, #0x38]
+            ldr     x0, [x0]
+            ldr     x0, [x0, #0x30]
+            cbnz    x0, G_M864_IG04
+            b       G_M864_IG04
+                       ;; size=64 bbWeight=1 PerfScore 27.00
+G_M864_IG03:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [x20, #0x08]
             ; gcrRegs +[x0]
             add     x8, fp, #24    // [V02 loc1]
@@ -113,7 +118,7 @@ G_M864_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 204, prolog size 36, PerfScore 128.00, instruction count 51, allocated bytes for code 204 (MethodHash=caadfc9f) for method Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
+; Total bytes of code 224, prolog size 36, PerfScore 138.50, instruction count 56, allocated bytes for code 224 (MethodHash=caadfc9f) for method Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -124,7 +129,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 51 (0x00033) Actual length = 204 (0x0000cc)
+  Function Length   : 56 (0x00038) Actual length = 224 (0x0000e0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+25.93%) : 10702.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)

@@ -8,8 +8,8 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  6,  4.50)     ref  ->  x19         this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
-;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <FSharp.Compiler.Infos+PropInfo>
+;  V00 this         [V00,T00] (  7,  5   )     ref  ->  x19         this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <<unknown class>>
 ;  V03 loc2         [V03,T04] (  2,  1   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
 ;* V04 loc3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <FSharp.Compiler.TypedTree+ValRef>
@@ -37,16 +37,29 @@ G_M3270_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
             bl      CORINFO_HELP_ISINSTANCEOFCLASS
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
-            cbz     x0, G_M3270_IG05
+            cbnz    x0, G_M3270_IG04
                        ;; size=24 bbWeight=1 PerfScore 4.00
 G_M3270_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
+            mov     x1, x19
+            ; gcrRegs +[x1]
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
+            bl      CORINFO_HELP_ISINSTANCEOFCLASS
+            ; gcrRegs -[x1 x19] +[x0]
+            ; gcr arg pop 0
+            cbnz    x0, G_M3270_IG06
+            b       G_M3270_IG06
+                       ;; size=28 bbWeight=0.50 PerfScore 2.50
+G_M3270_IG04:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x0] +[x19]
             ldr     x0, [x19, #0x18]
             ; gcrRegs +[x0]
-            cbz     x0, G_M3270_IG05
+            cbz     x0, G_M3270_IG06
             ldr     x1, [x19, #0x20]
             ; gcrRegs +[x1]
-            cbnz    x1, G_M3270_IG05
+            cbnz    x1, G_M3270_IG06
             ldr     x0, [x0, #0x08]
             ldr     x1, [x19, #0x08]
             movz    x2, #0xD1FFAB1E      // code for FSharp.Compiler.Infos:ValRef.IsFSharpEventProperty(FSharp.Compiler.TypedTree+ValRef,FSharp.Compiler.TcGlobals+TcGlobals):ubyte
@@ -54,23 +67,23 @@ G_M3270_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
                        ;; size=40 bbWeight=0.50 PerfScore 9.25
-G_M3270_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             br      x2
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M3270_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M3270_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0-x1 x19]
             mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M3270_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 108, prolog size 16, PerfScore 20.50, instruction count 27, allocated bytes for code 108 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
+; Total bytes of code 136, prolog size 16, PerfScore 23.00, instruction count 34, allocated bytes for code 136 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -81,7 +94,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 27 (0x0001b) Actual length = 108 (0x00006c)
+  Function Length   : 34 (0x00022) Actual length = 136 (0x000088)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

smoke_tests.nativeaot.linux.arm64.checked.mch

-4 (-3.45%) : 16584.dasm - System.Globalization.CompareInfo:IndexOf(System.ReadOnlySpan1[ushort],System.ReadOnlySpan1[ushort],int):int:this (FullOpts)

@@ -88,7 +88,7 @@ G_M8857_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0041 {x0 x6},
             ; byrRegs +[x2]
             bl      <unknown method>
             ; byrRegs -[x0 x2 x6]
-            b       G_M8857_IG08
+            b       G_M8857_IG07
                        ;; size=12 bbWeight=0.50 PerfScore 1.25
 G_M8857_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0041 {x0 x6}, byref
             ; byrRegs +[x0 x6]
@@ -96,34 +96,31 @@ G_M8857_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0041 {x0 x6},
             ; byrRegs +[x2]
             bl      <unknown method>
             ; byrRegs -[x0 x2 x6]
-            b       G_M8857_IG08
+            b       G_M8857_IG07
                        ;; size=12 bbWeight=0.50 PerfScore 1.25
 G_M8857_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0041 {x0 x6}, byref, isz
             ; byrRegs +[x0 x6]
             mov     w2, #0xD1FFAB1E
             cmp     w5, w2
-            bne     G_M8857_IG07
-            b       G_M8857_IG04
-                       ;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M8857_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0041 {x0 x6}, byref, isz
+            beq     G_M8857_IG04
             mov     w2, #0xD1FFAB1E
             cmp     w5, w2
-            bne     G_M8857_IG09
+            bne     G_M8857_IG08
             b       G_M8857_IG05
-                       ;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M8857_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+                       ;; size=28 bbWeight=0.50 PerfScore 2.50
+G_M8857_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[x0 x6]
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M8857_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M8857_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             mov     w0, #69
             mov     w1, #85
             bl      System.ThrowHelper:ThrowArgumentException(int,int)
             brk_unix #0
                        ;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 116, prolog size 8, PerfScore 13.00, instruction count 29, allocated bytes for code 116 (MethodHash=5574dd66) for method System.Globalization.CompareInfo:IndexOf(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
+; Total bytes of code 112, prolog size 8, PerfScore 12.50, instruction count 28, allocated bytes for code 112 (MethodHash=5574dd66) for method System.Globalization.CompareInfo:IndexOf(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
 ; ============================================================
 
 Cfi Info:

-4 (-2.27%) : 13755.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)

@@ -72,9 +72,8 @@ G_M27287_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x14]
             ldr     w15, [x14, #0x0C]
             cmn     w15, #1
-            bge     G_M27287_IG07
-            b       G_M27287_IG03
-                       ;; size=60 bbWeight=2 PerfScore 45.00
+            blt     G_M27287_IG03
+                       ;; size=56 bbWeight=2 PerfScore 43.00
 G_M27287_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=4001 {x0 x14}, byref
             ldr     x15, [x14]
             ; gcrRegs +[x15]
@@ -98,7 +97,7 @@ G_M27287_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 176, prolog size 8, PerfScore 150.00, instruction count 44, allocated bytes for code 176 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 172, prolog size 8, PerfScore 148.00, instruction count 43, allocated bytes for code 172 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Cfi Info:

-4 (-2.22%) : 12607.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.Canon,System.Canon]:MoveNext():ubyte:this (FullOpts)

@@ -73,9 +73,8 @@ G_M56828_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x14]
             ldr     w15, [x14, #0x14]
             cmn     w15, #1
-            bge     G_M56828_IG07
-            b       G_M56828_IG03
-                       ;; size=64 bbWeight=2 PerfScore 54.00
+            blt     G_M56828_IG03
+                       ;; size=60 bbWeight=2 PerfScore 52.00
 G_M56828_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=4001 {x0 x14}, byref
             ldr     x15, [x14]
             ; gcrRegs +[x15]
@@ -99,7 +98,7 @@ G_M56828_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 180, prolog size 8, PerfScore 159.00, instruction count 45, allocated bytes for code 180 (MethodHash=5db22203) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 176, prolog size 8, PerfScore 157.00, instruction count 44, allocated bytes for code 176 (MethodHash=5db22203) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Cfi Info:

+24 (+5.61%) : 6461.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)

@@ -15,7 +15,7 @@
 ;  V05 loc1         [V05,T11] (  8, 10   )    long  ->  registers  
 ;  V06 loc2         [V06,T15] (  5,  5.50)     int  ->   x6        
 ;  V07 loc3         [V07,T14] (  6,  6   )     int  ->   x1        
-;  V08 loc4         [V08,T00] ( 18,106.50)     int  ->   x7        
+;  V08 loc4         [V08,T00] ( 20,106.50)     int  ->   x7        
 ;  V09 loc5         [V09,T13] (  5,  7   )     int  ->   x2        
 ;  V10 loc6         [V10,T16] (  4,  5   )     int  ->   x8        
 ;  V11 loc7         [V11,T06] (  6, 21   )   short  ->   x9        
@@ -26,10 +26,10 @@
 ;* V16 tmp4         [V16    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V17 tmp5         [V17    ] (  0,  0   )    long  ->  zero-ref    "impSpillLclRefs"
 ;* V18 tmp6         [V18    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V19 tmp7         [V19,T07] (  3, 16   )     int  ->  x10         "Inlining Arg"
+;  V19 tmp7         [V19,T07] (  4, 16   )     int  ->  x10         "Inlining Arg"
 ;* V20 tmp8         [V20,T19] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V21 tmp9         [V21    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V22 tmp10        [V22,T02] (  3, 64   )     int  ->  x10         "Inlining Arg"
+;  V22 tmp10        [V22,T02] (  4, 64   )     int  ->  x10         "Inlining Arg"
 ;* V23 tmp11        [V23,T08] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V24 tmp12        [V24,T05] (  3, 24   )     ref  ->  x10         "arr expr"
 ;  V25 tmp13        [V25,T01] (  3, 96   )     ref  ->  x10         "arr expr"
@@ -184,7 +184,17 @@ G_M62864_IG19:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M62864_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M62864_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            cmp     w7, w10
+            bls     G_M62864_IG22
+            b       G_M62864_IG22
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M62864_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            cmp     w7, w10
+            bls     G_M62864_IG23
+            b       G_M62864_IG23
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M62864_IG22:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, w7
             mov     w1, w10
             adrp    x2, [HIGH RELOC #0xD1FFAB1E]
@@ -195,7 +205,7 @@ G_M62864_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M62864_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M62864_IG23:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, w7
             mov     w1, w10
             adrp    x2, [HIGH RELOC #0xD1FFAB1E]
@@ -207,7 +217,7 @@ G_M62864_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 428, prolog size 8, PerfScore 398.50, instruction count 107, allocated bytes for code 428 (MethodHash=62ff0a6f) for method Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
+; Total bytes of code 452, prolog size 8, PerfScore 398.50, instruction count 113, allocated bytes for code 452 (MethodHash=62ff0a6f) for method Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
 ; ============================================================
 
 Cfi Info:

+24 (+6.67%) : 6467.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)

@@ -16,7 +16,7 @@
 ;  V06 loc1         [V06,T17] (  5,  8.50)    long  ->  registers  
 ;  V07 loc2         [V07,T15] (  7, 11   )    long  ->  registers  
 ;  V08 loc3         [V08,T18] (  6,  6   )     int  ->   x6        
-;  V09 loc4         [V09,T00] ( 16,102.50)     int  ->   x7        
+;  V09 loc4         [V09,T00] ( 18,102.50)     int  ->   x7        
 ;  V10 loc5         [V10,T20] (  3,  6   )     int  ->  x11        
 ;  V11 loc6         [V11,T04] (  7, 26   )     int  ->  x13        
 ;  V12 loc7         [V12,T12] (  6, 12   )    long  ->   x2        
@@ -25,10 +25,10 @@
 ;  V15 tmp2         [V15,T13] (  3, 12   )    long  ->   x3         "impSpillLclRefs"
 ;  V16 tmp3         [V16,T14] (  3, 12   )    long  ->  x13         "impSpillLclRefs"
 ;* V17 tmp4         [V17    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V18 tmp5         [V18,T10] (  3, 16   )     int  ->   x9         "Inlining Arg"
+;  V18 tmp5         [V18,T10] (  4, 16   )     int  ->   x9         "Inlining Arg"
 ;* V19 tmp6         [V19,T24] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V20 tmp7         [V20    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V21 tmp8         [V21,T01] (  3, 64   )     int  ->  x14         "Inlining Arg"
+;  V21 tmp8         [V21,T01] (  4, 64   )     int  ->  x14         "Inlining Arg"
 ;* V22 tmp9         [V22,T11] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V23 tmp10        [V23,T05] (  3, 24   )     ref  ->   x9         "arr expr"
 ;* V24 tmp11        [V24,T03] (  0,  0   )     ref  ->  zero-ref    "arr expr"
@@ -162,7 +162,17 @@ G_M50170_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M50170_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M50170_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            cmp     w7, w9
+            bls     G_M50170_IG21
+            b       G_M50170_IG21
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M50170_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            cmp     w7, w14
+            bls     G_M50170_IG22
+            b       G_M50170_IG22
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M50170_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, w7
             mov     w1, w9
             adrp    x2, [HIGH RELOC #0xD1FFAB1E]
@@ -173,7 +183,7 @@ G_M50170_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M50170_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M50170_IG22:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, w7
             mov     w1, w14
             adrp    x2, [HIGH RELOC #0xD1FFAB1E]
@@ -185,7 +195,7 @@ G_M50170_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 360, prolog size 8, PerfScore 285.50, instruction count 90, allocated bytes for code 360 (MethodHash=70013c05) for method Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
+; Total bytes of code 384, prolog size 8, PerfScore 285.50, instruction count 96, allocated bytes for code 384 (MethodHash=70013c05) for method Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
 ; ============================================================
 
 Cfi Info:

+36 (+7.69%) : 5571.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)

@@ -13,7 +13,7 @@
 ;  V03 loc0         [V03,T18] (  3,  6   )     int  ->  x21         single-def
 ;  V04 loc1         [V04,T14] (  6,  9   )     int  ->  x22         single-def
 ;* V05 loc2         [V05    ] (  0,  0   )     int  ->  zero-ref   
-;  V06 loc3         [V06,T00] ( 13, 35   )     int  ->  x23        
+;  V06 loc3         [V06,T00] ( 15, 35   )     int  ->  x23        
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V08 tmp1         [V08,T26] (  2,  1   )     int  ->   x0        
 ;  V09 tmp2         [V09,T19] (  2,  4   )     int  ->   x0        
@@ -24,19 +24,19 @@
 ;* V14 tmp7         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp8         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp9         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
-;  V17 tmp10        [V17,T01] (  5, 32   )     int  ->   x0         "Inlining Arg"
+;  V17 tmp10        [V17,T01] (  6, 32   )     int  ->   x0         "Inlining Arg"
 ;* V18 tmp11        [V18    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V19 tmp12        [V19,T07] (  3, 16   )     int  ->   x1         "Inlining Arg"
+;  V19 tmp12        [V19,T07] (  4, 16   )     int  ->   x1         "Inlining Arg"
 ;* V20 tmp13        [V20,T20] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V21 tmp14        [V21,T11] (  3, 12   )     ref  ->   x0         class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
 ;* V22 tmp15        [V22    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V23 tmp16        [V23,T15] (  3,  8   )     int  ->   x1         "Inlining Arg"
+;  V23 tmp16        [V23,T15] (  4,  8   )     int  ->   x1         "Inlining Arg"
 ;* V24 tmp17        [V24,T24] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V25 tmp18        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp19        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V27 tmp20        [V27,T02] (  3, 24   )     ref  ->   x0         class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
 ;* V28 tmp21        [V28    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V29 tmp22        [V29,T08] (  3, 16   )     int  ->   x1         "Inlining Arg"
+;  V29 tmp22        [V29,T08] (  4, 16   )     int  ->   x1         "Inlining Arg"
 ;* V30 tmp23        [V30,T21] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V31 tmp24        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
 ;  V32 tmp25        [V32,T23] (  3,  3   )     ref  ->   x0         single-def "arr expr"
@@ -209,7 +209,22 @@ G_M29651_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M29651_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            cmp     w0, w1
+            bls     G_M29651_IG14
+            b       G_M29651_IG14
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M29651_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            cmp     w23, w1
+            bls     G_M29651_IG15
+            b       G_M29651_IG15
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M29651_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            cmp     w23, w1
+            bls     G_M29651_IG16
+            b       G_M29651_IG16
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M29651_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             adrp    x2, [HIGH RELOC #0xD1FFAB1E]
             add     x2, x2, [LOW RELOC #0xD1FFAB1E]
             ; gcrRegs +[x2]
@@ -217,7 +232,7 @@ G_M29651_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
             brk_unix #0
                        ;; size=16 bbWeight=0 PerfScore 0.00
-G_M29651_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, w23
             adrp    x2, [HIGH RELOC #0xD1FFAB1E]
             add     x2, x2, [LOW RELOC #0xD1FFAB1E]
@@ -226,7 +241,7 @@ G_M29651_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
             brk_unix #0
                        ;; size=20 bbWeight=0 PerfScore 0.00
-G_M29651_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, w23
             adrp    x2, [HIGH RELOC #0xD1FFAB1E]
             add     x2, x2, [LOW RELOC #0xD1FFAB1E]
@@ -236,7 +251,7 @@ G_M29651_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 468, prolog size 20, PerfScore 278.50, instruction count 117, allocated bytes for code 468 (MethodHash=0e6f8c2c) for method Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
+; Total bytes of code 504, prolog size 20, PerfScore 278.50, instruction count 126, allocated bytes for code 504 (MethodHash=0e6f8c2c) for method Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
 ; ============================================================
 
 Cfi Info:

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.arm64.checked.mch 478 151 49 278 -768 +612
benchmarks.run_pgo.linux.arm64.checked.mch 61,066 22,958 20,637 17,471 -150,400 +378,348
benchmarks.run_tiered.linux.arm64.checked.mch 149 42 17 90 -184 +232
coreclr_tests.run.linux.arm64.checked.mch 64,578 17,921 18,601 28,056 -104,496 +141,508
libraries.crossgen2.linux.arm64.checked.mch 1,093 95 125 873 -496 +2,112
libraries.pmi.linux.arm64.checked.mch 29,466 5,371 7,468 16,627 -32,640 +65,480
libraries_tests.run.linux.arm64.Release.mch 111,540 36,101 41,074 34,365 -339,232 +581,484
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 66,547 10,611 28,259 27,677 -67,344 +194,768
realworld.run.linux.arm64.checked.mch 377 42 73 262 -188 +1,468
smoke_tests.nativeaot.linux.arm64.checked.mch 118 17 23 78 -80 +360
335,412 93,309 116,326 125,777 -695,828 +1,366,372

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.arm64.checked.mch 33,632 2,755 30,877 0 (0.00%) 4 (0.01%)
benchmarks.run_pgo.linux.arm64.checked.mch 153,694 60,106 93,588 152 (0.10%) 162 (0.11%)
benchmarks.run_tiered.linux.arm64.checked.mch 63,981 47,942 16,039 0 (0.00%) 2 (0.00%)
coreclr_tests.run.linux.arm64.checked.mch 628,056 383,770 244,286 413 (0.07%) 415 (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,232 6 294,226 1 (0.00%) 8 (0.00%)
libraries_tests.run.linux.arm64.Release.mch 737,382 487,495 249,887 3,384 (0.46%) 3,456 (0.47%)
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 304,061 21,560 282,501 6 (0.00%) 10 (0.00%)
realworld.run.linux.arm64.checked.mch 33,301 151 33,150 0 (0.00%) 3 (0.01%)
smoke_tests.nativeaot.linux.arm64.checked.mch 19,041 6 19,035 0 (0.00%) 0 (0.00%)
2,501,157 1,003,806 1,497,351 3,956 (0.16%) 4,060 (0.16%)

jit-analyze output

benchmarks.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: 15577276 (overridden on cmd)
Total bytes of diff: 15577120 (overridden on cmd)
Total bytes of delta: -156 (-0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          32 : 11979.dasm (0.24 % of base)
          28 : 18805.dasm (0.91 % of base)
          24 : 12688.dasm (3.77 % of base)
          24 : 15360.dasm (4.08 % of base)
          24 : 229.dasm (3.77 % of base)
          24 : 2981.dasm (3.75 % of base)
          24 : 16177.dasm (0.66 % of base)
          24 : 17013.dasm (3.75 % of base)
          24 : 20058.dasm (0.36 % of base)
          24 : 24463.dasm (14.29 % of base)
          20 : 21756.dasm (3.85 % of base)
          20 : 28547.dasm (5.56 % of base)
          20 : 6360.dasm (3.40 % of base)
          16 : 11185.dasm (2.88 % of base)
          16 : 13042.dasm (2.67 % of base)
          16 : 19493.dasm (4.17 % of base)
          16 : 2583.dasm (2.55 % of base)
          16 : 13128.dasm (0.99 % of base)
          12 : 11476.dasm (0.15 % of base)
          12 : 9984.dasm (2.29 % of base)

Top file improvements (bytes):
         -36 : 11630.dasm (-0.26 % of base)
         -32 : 11489.dasm (-0.32 % of base)
         -32 : 12480.dasm (-0.32 % of base)
         -20 : 5301.dasm (-2.60 % of base)
         -16 : 23205.dasm (-0.66 % of base)
         -12 : 10696.dasm (-0.85 % of base)
         -12 : 18152.dasm (-0.99 % of base)
         -12 : 2345.dasm (-3.33 % of base)
          -8 : 16136.dasm (-0.39 % of base)
          -8 : 16226.dasm (-1.33 % of base)
          -8 : 1935.dasm (-0.90 % of base)
          -8 : 15645.dasm (-0.46 % of base)
          -8 : 3554.dasm (-0.46 % of base)
          -8 : 5229.dasm (-1.06 % of base)
          -4 : 6793.dasm (-0.51 % of base)
          -4 : 8622.dasm (-2.27 % of base)
          -4 : 10879.dasm (-2.13 % of base)
          -4 : 13318.dasm (-2.27 % of base)
          -4 : 14485.dasm (-2.27 % of base)
          -4 : 223.dasm (-1.96 % of base)

59 total files with Code Size differences (34 improved, 25 regressed), 20 unchanged.

Top method regressions (bytes):
          32 (0.24 % of base) : 11979.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
          28 (0.91 % of base) : 18805.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
          24 (0.36 % of base) : 20058.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          24 (3.77 % of base) : 229.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
          24 (3.75 % of base) : 2981.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
          24 (3.77 % of base) : 12688.dasm - System.Collections.Generic.Dictionary`2[uint,System.__Canon]:FindValue(uint):byref:this (FullOpts)
          24 (3.75 % of base) : 17013.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (FullOpts)
          24 (14.29 % of base) : 24463.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
          24 (4.08 % of base) : 15360.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
          24 (0.66 % of base) : 16177.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
          20 (3.85 % of base) : 21756.dasm - System.Collections.Concurrent.ConcurrentBag`1[int]:ToArray():int[]:this (FullOpts)
          20 (3.40 % of base) : 6360.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
          20 (5.56 % of base) : 28547.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
          16 (4.17 % of base) : 19493.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
          16 (2.55 % of base) : 2583.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (FullOpts)
          16 (2.67 % of base) : 13042.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
          16 (2.88 % of base) : 11185.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
          16 (0.99 % of base) : 13128.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
          12 (0.15 % of base) : 11476.dasm - (dynamicClass):_DynamicMethod9(byref,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
          12 (7.69 % of base) : 15929.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)

Top method improvements (bytes):
         -36 (-0.26 % of base) : 11630.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (FullOpts)
         -32 (-0.32 % of base) : 12480.dasm - Jil.Deserialize.Methods:ParseISO8601Date(System.IO.TextReader,ushort[],int,int):System.DateTime (FullOpts)
         -32 (-0.32 % of base) : 11489.dasm - Jil.Deserialize.Methods:ParseISO8601DateThunkReader(byref,ushort[],int,int):System.DateTime (FullOpts)
         -20 (-2.60 % of base) : 5301.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,System.__Canon]:FindValue(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant):byref:this (FullOpts)
         -16 (-0.66 % of base) : 23205.dasm - System.Text.Json.Tests.Perf_Deep:WriteDeepUtf16():this (FullOpts)
         -12 (-0.99 % of base) : 18152.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.__Canon]]):this (FullOpts)
         -12 (-0.85 % of base) : 10696.dasm - System.Collections.Generic.PriorityQueue`2[System.Guid,System.Guid]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.Guid,System.Guid]]):this (FullOpts)
         -12 (-3.33 % of base) : 2345.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
          -8 (-1.06 % of base) : 5229.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:FindValue(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant):byref:this (FullOpts)
          -8 (-0.46 % of base) : 15645.dasm - System.IO.Pipes.PipeStream+<WriteAsyncCore>d__83:MoveNext():this (FullOpts)
          -8 (-0.46 % of base) : 3554.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:ProcessSafeContents(byref,byref,byref,byref,byref,byref) (FullOpts)
          -8 (-0.90 % of base) : 1935.dasm - System.Text.Json.Utf8JsonReader:ReadSingleSegment():ubyte:this (FullOpts)
          -8 (-1.33 % of base) : 16226.dasm - System.Text.Json.Utf8JsonReader:SkipAllComments(byref):ubyte:this (FullOpts)
          -8 (-0.39 % of base) : 16136.dasm - System.Xml.XmlConverter:TryParseDateTime(ubyte[],int,int,byref):ubyte (FullOpts)
          -4 (-0.18 % of base) : 5489.dasm - Microsoft.AspNetCore.Server.Kestrel.Performance.PipeThroughputBenchmark+<Parse_SequentialAsync>d__15:MoveNext():this (FullOpts)
          -4 (-2.27 % of base) : 8622.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 13318.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 14485.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 22543.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 7944.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)

Top method regressions (percentages):
          24 (14.29 % of base) : 24463.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
          12 (7.69 % of base) : 15929.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
          20 (5.56 % of base) : 28547.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
          16 (4.17 % of base) : 19493.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
          24 (4.08 % of base) : 15360.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
          20 (3.85 % of base) : 21756.dasm - System.Collections.Concurrent.ConcurrentBag`1[int]:ToArray():int[]:this (FullOpts)
          24 (3.77 % of base) : 229.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
          24 (3.77 % of base) : 12688.dasm - System.Collections.Generic.Dictionary`2[uint,System.__Canon]:FindValue(uint):byref:this (FullOpts)
          24 (3.75 % of base) : 2981.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
          24 (3.75 % of base) : 17013.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (FullOpts)
          12 (3.70 % of base) : 3953.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
          20 (3.40 % of base) : 6360.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
          16 (2.88 % of base) : 11185.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
          16 (2.67 % of base) : 13042.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
          16 (2.55 % of base) : 2583.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (FullOpts)
          12 (2.29 % of base) : 9984.dasm - System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (FullOpts)
           4 (1.45 % of base) : 14035.dasm - Microsoft.Extensions.Logging.Logger:Log[Microsoft.Extensions.Logging.FormattedLogValues](int,Microsoft.Extensions.Logging.EventId,Microsoft.Extensions.Logging.FormattedLogValues,System.Exception,System.Func`3[Microsoft.Extensions.Logging.FormattedLogValues,System.Exception,System.String]):this (FullOpts)
           4 (1.20 % of base) : 5627.dasm - Microsoft.Extensions.Logging.Logger:Log[Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon]](int,Microsoft.Extensions.Logging.EventId,Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon],System.Exception,System.Func`3[Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon],System.__Canon,System.__Canon]):this (FullOpts)
          16 (0.99 % of base) : 13128.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
           8 (0.98 % of base) : 10276.dasm - System.Runtime.Serialization.Json.JsonEncodingStreamWrapper:InitForReading(System.IO.Stream,System.Text.Encoding):this (FullOpts)

Top method improvements (percentages):
         -12 (-3.33 % of base) : 2345.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
         -20 (-2.60 % of base) : 5301.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,System.__Canon]:FindValue(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant):byref:this (FullOpts)
          -4 (-2.27 % of base) : 8622.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 13318.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 14485.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 22543.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 7944.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 21535.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 28677.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 4704.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.13 % of base) : 10879.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.08 % of base) : 4376.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 111.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 3021.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.96 % of base) : 223.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.82 % of base) : 5261.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.41 % of base) : 6797.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -8 (-1.33 % of base) : 16226.dasm - System.Text.Json.Utf8JsonReader:SkipAllComments(byref):ubyte:this (FullOpts)
          -4 (-1.30 % of base) : 2739.dasm - System.Text.Json.Utf8JsonWriter:ValidateEnd(ubyte):this (FullOpts)
          -8 (-1.06 % of base) : 5229.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:FindValue(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant):byref:this (FullOpts)


benchmarks.run_pgo.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: 80907368 (overridden on cmd)
Total bytes of diff: 81135316 (overridden on cmd)
Total bytes of delta: 227948 (0.28 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         284 : 134867.dasm (11.11 % of base)
         280 : 129118.dasm (10.95 % of base)
         268 : 134825.dasm (9.84 % of base)
         264 : 134849.dasm (9.69 % of base)
         264 : 134839.dasm (9.75 % of base)
         260 : 129129.dasm (10.42 % of base)
         236 : 136041.dasm (10.02 % of base)
         228 : 85503.dasm (2.20 % of base)
         220 : 134810.dasm (11.80 % of base)
         216 : 134775.dasm (11.59 % of base)
         216 : 107928.dasm (11.56 % of base)
         216 : 134824.dasm (11.59 % of base)
         200 : 108314.dasm (10.71 % of base)
         200 : 134819.dasm (10.85 % of base)
         200 : 97645.dasm (10.18 % of base)
         200 : 118380.dasm (10.18 % of base)
         160 : 129119.dasm (7.30 % of base)
         160 : 134865.dasm (7.30 % of base)
         156 : 147338.dasm (3.66 % of base)
         144 : 37334.dasm (4.08 % of base)

Top file improvements (bytes):
        -128 : 60441.dasm (-3.48 % of base)
        -120 : 95499.dasm (-0.78 % of base)
         -80 : 124911.dasm (-2.58 % of base)
         -76 : 146862.dasm (-2.34 % of base)
         -76 : 149766.dasm (-2.45 % of base)
         -72 : 111572.dasm (-2.33 % of base)
         -72 : 102548.dasm (-2.29 % of base)
         -72 : 18611.dasm (-2.30 % of base)
         -72 : 20513.dasm (-2.30 % of base)
         -68 : 84288.dasm (-0.81 % of base)
         -68 : 139434.dasm (-2.17 % of base)
         -68 : 150263.dasm (-2.11 % of base)
         -68 : 89904.dasm (-2.40 % of base)
         -64 : 118337.dasm (-2.05 % of base)
         -60 : 126108.dasm (-1.85 % of base)
         -60 : 51855.dasm (-1.85 % of base)
         -60 : 56882.dasm (-1.95 % of base)
         -60 : 87335.dasm (-1.95 % of base)
         -60 : 89216.dasm (-1.85 % of base)
         -52 : 134661.dasm (-2.66 % of base)

93 total files with Code Size differences (40 improved, 53 regressed), 20 unchanged.

Top method regressions (bytes):
         284 (11.11 % of base) : 134867.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         280 (10.95 % of base) : 129118.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         268 (9.84 % of base) : 134825.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1)
         264 (9.75 % of base) : 134839.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1)
         264 (9.69 % of base) : 134849.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1)
         260 (10.42 % of base) : 129129.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         236 (10.02 % of base) : 136041.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]:IndexOf(byref,int):int:this (Tier1)
         228 (2.20 % of base) : 85503.dasm - Microsoft.CodeAnalysis.Compilation:Emit(System.IO.Stream,System.IO.Stream,System.IO.Stream,System.IO.Stream,System.IO.Stream,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.ResourceDescription],Microsoft.CodeAnalysis.Emit.EmitOptions,Microsoft.CodeAnalysis.IMethodSymbol,System.IO.Stream,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.EmbeddedText],Microsoft.CodeAnalysis.RebuildData,Microsoft.CodeAnalysis.CodeGen.CompilationTestData,System.Threading.CancellationToken):Microsoft.CodeAnalysis.Emit.EmitResult:this (Tier1)
         220 (11.80 % of base) : 134810.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         216 (11.56 % of base) : 107928.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         216 (11.59 % of base) : 134775.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         216 (11.59 % of base) : 134824.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         200 (10.18 % of base) : 97645.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         200 (10.18 % of base) : 118380.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         200 (10.85 % of base) : 134819.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         200 (10.71 % of base) : 108314.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         160 (7.30 % of base) : 129119.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         160 (7.30 % of base) : 134865.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         156 (3.66 % of base) : 147338.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
         144 (4.08 % of base) : 37334.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)

Top method improvements (bytes):
        -128 (-3.48 % of base) : 60441.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1)
        -120 (-0.78 % of base) : 95499.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:IntroSort(System.Span`1[System.__Canon],int,System.Comparison`1[System.__Canon]) (Tier1)
         -80 (-2.58 % of base) : 124911.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -76 (-2.34 % of base) : 146862.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -76 (-2.45 % of base) : 149766.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -72 (-2.33 % of base) : 111572.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -72 (-2.29 % of base) : 102548.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -72 (-2.30 % of base) : 18611.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -72 (-2.30 % of base) : 20513.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -68 (-0.81 % of base) : 84288.dasm - Microsoft.Cci.ReferenceIndexerBase:Visit(Microsoft.Cci.IMethodReference):this (Tier1)
         -68 (-2.17 % of base) : 139434.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -68 (-2.11 % of base) : 150263.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -68 (-2.40 % of base) : 89904.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -64 (-2.05 % of base) : 118337.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -60 (-1.85 % of base) : 126108.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -60 (-1.85 % of base) : 51855.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -60 (-1.95 % of base) : 56882.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -60 (-1.95 % of base) : 87335.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -60 (-1.85 % of base) : 89216.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -52 (-2.66 % of base) : 134661.dasm - System.Linq.Enumerable+DistinctIterator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)

Top method regressions (percentages):
         120 (27.52 % of base) : 131318.dasm - System.Threading.LowLevelMonitor:Acquire():this (Tier1)
          80 (21.28 % of base) : 5687.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Enumerator[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier1)
          20 (18.52 % of base) : 83271.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
          20 (17.86 % of base) : 83265.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
          24 (17.65 % of base) : 5879.dasm - System.RuntimeMethodHandle:GetSlot(System.IRuntimeMethodInfo):int (Tier1)
          20 (17.24 % of base) : 95577.dasm - System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.__Canon]]:SetItem(int,System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.__Canon]],byref,byref):System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.__Canon]]:this (Tier1)
          24 (17.14 % of base) : 141254.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
          24 (17.14 % of base) : 144766.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
          76 (15.45 % of base) : 84366.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:GetEmbeddedTypes(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (Tier1)
          20 (14.29 % of base) : 141229.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
          20 (14.29 % of base) : 144751.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
          36 (13.43 % of base) : 129113.dasm - System.Buffers.StringSearchValuesHelper:ValidateReadPosition(System.ReadOnlySpan`1[ushort],byref,int) (Tier1)
          16 (13.33 % of base) : 95100.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.PredefinedTypeSyntax:.ctor(ushort,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactoryContext):this (Tier1)
          48 (13.04 % of base) : 83368.dasm - System.Threading.LowLevelLifoSemaphore:WaitCore(int):ubyte:this (Tier1)
          48 (13.04 % of base) : 51384.dasm - System.Threading.LowLevelLifoSemaphore:WaitCore(int):ubyte:this (Tier1)
          48 (13.04 % of base) : 69900.dasm - System.Threading.LowLevelLifoSemaphore:WaitCore(int):ubyte:this (Tier1)
          48 (13.04 % of base) : 85728.dasm - System.Threading.LowLevelLifoSemaphore:WaitCore(int):ubyte:this (Tier1)
          48 (13.04 % of base) : 109760.dasm - System.Threading.LowLevelLifoSemaphore:WaitCore(int):ubyte:this (Tier1)
          48 (13.04 % of base) : 51844.dasm - System.Threading.LowLevelLifoSemaphore:WaitCore(int):ubyte:this (Tier1)
          48 (13.04 % of base) : 87780.dasm - System.Threading.LowLevelLifoSemaphore:WaitCore(int):ubyte:this (Tier1)

Top method improvements (percentages):
          -8 (-11.11 % of base) : 5856.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
         -28 (-8.05 % of base) : 134113.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)
         -28 (-8.05 % of base) : 129825.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)
          -4 (-7.69 % of base) : 84975.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:IsSpecialEndHandlerBlock(Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock):ubyte (Tier1)
         -12 (-7.32 % of base) : 84899.dasm - Microsoft.CodeAnalysis.CSharp.BoundStatementList:.ctor(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],ubyte):this (Tier1)
         -12 (-7.32 % of base) : 22330.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
          -4 (-7.14 % of base) : 58059.dasm - Benchstone.BenchF.DMath:Fact(double):double (Tier1)
          -4 (-7.14 % of base) : 58058.dasm - Benchstone.BenchF.DMath:Power(double,double):double (Tier1)
         -12 (-6.82 % of base) : 84708.dasm - Roslyn.Utilities.FileNameUtilities:IndexOfFileName(System.String):int (Tier1)
         -20 (-6.76 % of base) : 59182.dasm - NeuralJagged:do_mid_error() (Tier1)
          -8 (-6.67 % of base) : 85234.dasm - Microsoft.CodeAnalysis.Emit.PEModuleBuilder`9+<GetTopLevelTypeDefinitions>d__23[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:System.IDisposable.Dispose():this (Tier1)
         -20 (-6.67 % of base) : 63965.dasm - Neural:do_mid_error() (Tier1)
          -4 (-6.67 % of base) : 37030.dasm - System.Math:Max(double,double):double (Tier1)
         -20 (-6.49 % of base) : 63963.dasm - Neural:do_out_forward() (Tier1)
          -8 (-6.45 % of base) : 74964.dasm - System.Reflection.Internal.MemoryBlock:PeekTaggedReference(int,ubyte):uint:this (Tier1)
          -4 (-6.25 % of base) : 142611.dasm - System.Math:Max(double,double):double (Tier1)
          -4 (-6.25 % of base) : 123765.dasm - System.Number+HexParser`1[ubyte]:FromChar(uint):uint (Tier1)
          -4 (-6.25 % of base) : 21287.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -4 (-6.25 % of base) : 22498.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -4 (-6.25 % of base) : 22319.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)


benchmarks.run_tiered.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: 24708932 (overridden on cmd)
Total bytes of diff: 24708980 (overridden on cmd)
Total bytes of delta: 48 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          32 : 22704.dasm (0.24 % of base)
          24 : 19376.dasm (3.75 % of base)
          24 : 47614.dasm (0.36 % of base)
          24 : 9095.dasm (3.77 % of base)
          16 : 51939.dasm (2.55 % of base)
          16 : 45985.dasm (2.52 % of base)
          12 : 23728.dasm (0.15 % of base)
          12 : 52208.dasm (1.26 % of base)
          12 : 18151.dasm (0.65 % of base)
          12 : 54091.dasm (2.86 % of base)
          12 : 57685.dasm (1.91 % of base)
           8 : 24046.dasm (0.82 % of base)
           8 : 53093.dasm (0.20 % of base)
           8 : 46067.dasm (0.90 % of base)
           4 : 13040.dasm (0.11 % of base)
           4 : 51324.dasm (0.17 % of base)
           4 : 59270.dasm (0.07 % of base)

Top file improvements (bytes):
          -8 : 29571.dasm (-0.46 % of base)
          -8 : 24073.dasm (-0.46 % of base)
          -8 : 30954.dasm (-0.55 % of base)
          -8 : 38859.dasm (-0.36 % of base)
          -4 : 16117.dasm (-0.36 % of base)
          -4 : 20219.dasm (-0.50 % of base)
          -4 : 19373.dasm (-0.22 % of base)
          -4 : 19817.dasm (-0.20 % of base)
          -4 : 24125.dasm (-2.08 % of base)
          -4 : 24861.dasm (-0.21 % of base)
          -4 : 25923.dasm (-0.57 % of base)
          -4 : 29554.dasm (-0.22 % of base)
          -4 : 30495.dasm (-0.57 % of base)
          -4 : 30578.dasm (-0.85 % of base)
          -4 : 31377.dasm (-0.23 % of base)
          -4 : 38478.dasm (-0.55 % of base)
          -4 : 45747.dasm (-0.43 % of base)
          -4 : 4656.dasm (-1.92 % of base)
          -4 : 63621.dasm (-0.38 % of base)
          -4 : 7929.dasm (-0.06 % of base)

49 total files with Code Size differences (32 improved, 17 regressed), 22 unchanged.

Top method regressions (bytes):
          32 (0.24 % of base) : 22704.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
          24 (0.36 % of base) : 47614.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier1)
          24 (3.77 % of base) : 9095.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (Tier1)
          24 (3.75 % of base) : 19376.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (Tier1)
          16 (2.55 % of base) : 51939.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:FindValue(int):byref:this (Tier1)
          16 (2.52 % of base) : 45985.dasm - System.Collections.Generic.Dictionary`2[System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle]]:FindValue(System.Reflection.Metadata.TypeDefinitionHandle):byref:this (Tier1)
          12 (0.15 % of base) : 23728.dasm - (dynamicClass):_DynamicMethod9(byref,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
          12 (1.26 % of base) : 52208.dasm - JetStream.Hands:playHands(System.Collections.Generic.List`1[JetStream.Player]) (Tier1-OSR)
          12 (2.86 % of base) : 54091.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
          12 (1.91 % of base) : 57685.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)
          12 (0.65 % of base) : 18151.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:FindChainViaAia(byref):Interop+Crypto+X509VerifyStatusCode:this (Tier0-FullOpts)
           8 (0.90 % of base) : 46067.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (Tier1)
           8 (0.82 % of base) : 24046.dasm - System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]:FindValue(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon]):byref:this (Tier1)
           8 (0.20 % of base) : 53093.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<ReadAsyncSlowPath>d__37:MoveNext():this (Tier1)
           4 (0.07 % of base) : 59270.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
           4 (0.17 % of base) : 51324.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (Tier1)
           4 (0.11 % of base) : 13040.dasm - System.Reflection.MethodBaseInvoker:InvokeWithManyArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (Tier0-FullOpts)

Top method improvements (bytes):
          -8 (-0.46 % of base) : 24073.dasm - System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]:TryInsert(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon,ubyte):ubyte:this (Tier1)
          -8 (-0.55 % of base) : 30954.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<SyncReadAsyncWithCancellationToken>d__9:MoveNext():this (Tier1-OSR)
          -8 (-0.36 % of base) : 38859.dasm - System.Net.Security.Tests.SslStreamTests+<>c__DisplayClass40_0+<<ConcurrentReadWriteLargeBuffer>b__0>d:MoveNext():this (Tier1)
          -8 (-0.46 % of base) : 29571.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:ProcessSafeContents(byref,byref,byref,byref,byref,byref) (Tier1)
          -4 (-0.42 % of base) : 37537.dasm - Interop.ComWrappersTests+<ParallelRCWLookUp>d__4:MoveNext():this (Tier1)
          -4 (-0.43 % of base) : 45747.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:MakeDeclaredBaseType():Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier1)
          -4 (-0.46 % of base) : 50965.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantNodesOnly>d__172:MoveNext():ubyte:this (Tier1)
          -4 (-1.92 % of base) : 4656.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-2.04 % of base) : 1440.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)
          -4 (-2.04 % of base) : 19591.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-2.13 % of base) : 39154.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier1)
          -4 (-2.08 % of base) : 24125.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-0.23 % of base) : 31377.dasm - System.IO.File+<<WriteAllBytesAsync>g__Core|94_0>d:MoveNext():this (Tier1)
          -4 (-0.47 % of base) : 34746.dasm - System.IO.Pipes.Tests.Perf_PipeTest+<ReadWrite>d__7:MoveNext():this (Tier1-OSR)
          -4 (-0.29 % of base) : 25538.dasm - System.IO.RandomAccess:WriteGatherAtOffset(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList`1[System.ReadOnlyMemory`1[ubyte]],long) (Tier0-FullOpts)
          -4 (-0.22 % of base) : 19373.dasm - System.IO.Tests.Perf_FileStream+<CopyToFileAsync>d__45:MoveNext():this (Tier1)
          -4 (-0.21 % of base) : 24861.dasm - System.IO.Tests.Perf_FileStream+<WriteAsync>d__37:MoveNext():this (Tier1)
          -4 (-0.20 % of base) : 19817.dasm - System.IO.Tests.Perf_RandomAccess+<ReadAsync>d__16:MoveNext():this (Tier1)
          -4 (-0.38 % of base) : 63621.dasm - System.IO.Tests.StringReaderReadLineTests+<ReadLineAsync>d__2:MoveNext():this (Tier1-OSR)
          -4 (-0.20 % of base) : 30605.dasm - System.Net.Security.Tests.SslStreamTests+<WriteReadAsync>d__33:MoveNext():this (Tier1)

Top method regressions (percentages):
          24 (3.77 % of base) : 9095.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (Tier1)
          24 (3.75 % of base) : 19376.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (Tier1)
          12 (2.86 % of base) : 54091.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
          16 (2.55 % of base) : 51939.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:FindValue(int):byref:this (Tier1)
          16 (2.52 % of base) : 45985.dasm - System.Collections.Generic.Dictionary`2[System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle]]:FindValue(System.Reflection.Metadata.TypeDefinitionHandle):byref:this (Tier1)
          12 (1.91 % of base) : 57685.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)
          12 (1.26 % of base) : 52208.dasm - JetStream.Hands:playHands(System.Collections.Generic.List`1[JetStream.Player]) (Tier1-OSR)
           8 (0.90 % of base) : 46067.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (Tier1)
           8 (0.82 % of base) : 24046.dasm - System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]:FindValue(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon]):byref:this (Tier1)
          12 (0.65 % of base) : 18151.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:FindChainViaAia(byref):Interop+Crypto+X509VerifyStatusCode:this (Tier0-FullOpts)
          24 (0.36 % of base) : 47614.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier1)
          32 (0.24 % of base) : 22704.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
           8 (0.20 % of base) : 53093.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<ReadAsyncSlowPath>d__37:MoveNext():this (Tier1)
           4 (0.17 % of base) : 51324.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (Tier1)
          12 (0.15 % of base) : 23728.dasm - (dynamicClass):_DynamicMethod9(byref,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
           4 (0.11 % of base) : 13040.dasm - System.Reflection.MethodBaseInvoker:InvokeWithManyArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (Tier0-FullOpts)
           4 (0.07 % of base) : 59270.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)

Top method improvements (percentages):
          -4 (-2.13 % of base) : 39154.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier1)
          -4 (-2.08 % of base) : 24125.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-2.04 % of base) : 1440.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)
          -4 (-2.04 % of base) : 19591.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-1.92 % of base) : 4656.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-0.85 % of base) : 19363.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetResult():this (Tier1)
          -4 (-0.85 % of base) : 30578.dasm - System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder:SetResult():this (Tier1)
          -4 (-0.57 % of base) : 25923.dasm - System.String:Equals(System.String,int):ubyte:this (Tier1)
          -4 (-0.57 % of base) : 30495.dasm - System.String:Equals(System.String,System.String,int):ubyte (Tier1)
          -8 (-0.55 % of base) : 30954.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<SyncReadAsyncWithCancellationToken>d__9:MoveNext():this (Tier1-OSR)
          -4 (-0.55 % of base) : 38478.dasm - System.Threading.Tasks.Tests.Perf_AsyncMethods+<Yield>d__2:MoveNext():this (Tier1)
          -4 (-0.50 % of base) : 20219.dasm - System.Text.Json.Serialization.JsonConverter`1[System.__Canon]:TryWrite(System.Text.Json.Utf8JsonWriter,byref,System.Text.Json.JsonSerializerOptions,byref):ubyte:this (Tier1)
          -4 (-0.47 % of base) : 34746.dasm - System.IO.Pipes.Tests.Perf_PipeTest+<ReadWrite>d__7:MoveNext():this (Tier1-OSR)
          -4 (-0.47 % of base) : 36378.dasm - System.Threading.Tasks.Tests.Perf_AsyncMethods+<EmptyAsyncMethodInvocation>d__0:MoveNext():this (Tier1-OSR)
          -4 (-0.46 % of base) : 50965.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantNodesOnly>d__172:MoveNext():ubyte:this (Tier1)
          -8 (-0.46 % of base) : 29571.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:ProcessSafeContents(byref,byref,byref,byref,byref,byref) (Tier1)
          -8 (-0.46 % of base) : 24073.dasm - System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]:TryInsert(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon,ubyte):ubyte:this (Tier1)
          -4 (-0.43 % of base) : 45747.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:MakeDeclaredBaseType():Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier1)
          -4 (-0.42 % of base) : 37537.dasm - Interop.ComWrappersTests+<ParallelRCWLookUp>d__4:MoveNext():this (Tier1)
          -4 (-0.39 % of base) : 48500.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<SendAsyncThenReceiveAsync_SocketAsyncEventArgs>d__11:MoveNext():this (Tier1-OSR)


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: 509787824 (overridden on cmd)
Total bytes of diff: 509824836 (overridden on cmd)
Total bytes of delta: 37012 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1032 : 24774.dasm (90.53 % of base)
         384 : 324835.dasm (6.11 % of base)
         292 : 574277.dasm (2.94 % of base)
         232 : 426507.dasm (2.17 % of base)
         188 : 421163.dasm (1.75 % of base)
         184 : 423985.dasm (3.12 % of base)
         184 : 426746.dasm (3.12 % of base)
         172 : 418642.dasm (2.53 % of base)
         172 : 612764.dasm (1.73 % of base)
         172 : 425779.dasm (2.53 % of base)
         160 : 386402.dasm (2.98 % of base)
         160 : 387274.dasm (2.96 % of base)
         160 : 613929.dasm (2.98 % of base)
         160 : 614376.dasm (2.98 % of base)
         156 : 419332.dasm (2.04 % of base)
         156 : 426028.dasm (2.04 % of base)
         140 : 265511.dasm (4.81 % of base)
         108 : 248162.dasm (4.80 % of base)
         108 : 418253.dasm (1.56 % of base)
         108 : 426392.dasm (2.80 % of base)

Top file improvements (bytes):
        -212 : 271332.dasm (-3.30 % of base)
        -212 : 412884.dasm (-1.77 % of base)
        -172 : 412207.dasm (-1.71 % of base)
        -148 : 425904.dasm (-2.73 % of base)
        -140 : 311592.dasm (-1.84 % of base)
        -132 : 287234.dasm (-1.74 % of base)
        -128 : 301632.dasm (-1.68 % of base)
        -108 : 418743.dasm (-1.78 % of base)
        -104 : 415462.dasm (-2.91 % of base)
        -100 : 628022.dasm (-0.81 % of base)
         -96 : 419138.dasm (-2.00 % of base)
         -92 : 420890.dasm (-1.22 % of base)
         -84 : 420402.dasm (-1.07 % of base)
         -76 : 418640.dasm (-2.44 % of base)
         -72 : 418948.dasm (-0.66 % of base)
         -72 : 311585.dasm (-1.71 % of base)
         -68 : 559495.dasm (-0.17 % of base)
         -68 : 559499.dasm (-0.17 % of base)
         -68 : 425843.dasm (-1.12 % of base)
         -64 : 145909.dasm (-1.16 % of base)

97 total files with Code Size differences (43 improved, 54 regressed), 20 unchanged.

Top method regressions (bytes):
        1032 (90.53 % of base) : 24774.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Tier1-OSR)
         384 (6.11 % of base) : 324835.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         292 (2.94 % of base) : 574277.dasm - ILGEN_0x372a9ae6:Method_0xdc6ff1a4(byte,byte,int,long,ushort,double,long,ulong):int (FullOpts)
         232 (2.17 % of base) : 426507.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugInfoTableNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
         188 (1.75 % of base) : 421163.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugInfoTableNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
         184 (3.12 % of base) : 423985.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
         184 (3.12 % of base) : 426746.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
         172 (1.73 % of base) : 612764.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
         172 (2.53 % of base) : 418642.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugInfoTableNode:CreateVarBlobForMethod(Internal.JitInterface.NativeVarInfo[],Internal.TypeSystem.TargetDetails):ubyte[] (Tier1)
         172 (2.53 % of base) : 425779.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugInfoTableNode:CreateVarBlobForMethod(Internal.JitInterface.NativeVarInfo[],Internal.TypeSystem.TargetDetails):ubyte[] (Tier1)
         160 (2.98 % of base) : 613929.dasm - StrSwitchFinalTest:Run():int:this (FullOpts)
         160 (2.98 % of base) : 614376.dasm - StrSwitchFinalTest:Run():int:this (FullOpts)
         160 (2.98 % of base) : 386402.dasm - StrSwitchFinalTest:Run():int:this (Tier0-FullOpts)
         160 (2.96 % of base) : 387274.dasm - StrSwitchFinalTest:Run():int:this (Tier0-FullOpts)
         156 (2.04 % of base) : 419332.dasm - Internal.JitInterface.InstructionSetFlags:ExpandInstructionSetByReverseImplicationHelper(int,Internal.JitInterface.InstructionSetFlags):Internal.JitInterface.InstructionSetFlags (Tier1)
         156 (2.04 % of base) : 426028.dasm - Internal.JitInterface.InstructionSetFlags:ExpandInstructionSetByReverseImplicationHelper(int,Internal.JitInterface.InstructionSetFlags):Internal.JitInterface.InstructionSetFlags (Tier1)
         140 (4.81 % of base) : 265511.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         108 (4.80 % of base) : 248162.dasm - AssignRect:second_assignments(int[,],short[,]) (Tier1-OSR)
         108 (2.80 % of base) : 426392.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.SignatureBuilder:EmitTypeSignature(Internal.TypeSystem.TypeDesc,ILCompiler.DependencyAnalysis.ReadyToRun.SignatureContext):this (Tier1)
         108 (1.56 % of base) : 418253.dasm - Internal.JitInterface.CorInfoImpl:getCallInfo(byref,ulong,ulong,int,ulong):this (Tier1)

Top method improvements (bytes):
        -212 (-1.77 % of base) : 412884.dasm - ILCompiler.NativeAotNameMangler:ComputeMangledTypeName(Internal.TypeSystem.TypeDesc):System.String:this (Tier1-OSR)
        -212 (-3.30 % of base) : 271332.dasm - System.Diagnostics.Tracing.EventPipePayloadDecoder:DecodePayload(byref,System.ReadOnlySpan`1[ubyte]):System.Object[] (Tier1)
        -172 (-1.71 % of base) : 412207.dasm - ILCompiler.NativeAotNameMangler:ComputeMangledTypeName(Internal.TypeSystem.TypeDesc):System.String:this (Tier1-OSR)
        -148 (-2.73 % of base) : 425904.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -140 (-1.84 % of base) : 311592.dasm - System.Reflection.PortableExecutable.PEHeaders:.ctor(System.IO.Stream,int,ubyte):this (Tier1)
        -132 (-1.74 % of base) : 287234.dasm - System.Reflection.PortableExecutable.PEHeaders:.ctor(System.IO.Stream,int,ubyte):this (Tier1)
        -128 (-1.68 % of base) : 301632.dasm - System.Reflection.PortableExecutable.PEHeaders:.ctor(System.IO.Stream,int,ubyte):this (Tier1)
        -108 (-1.78 % of base) : 418743.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (Tier1)
        -104 (-2.91 % of base) : 415462.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,byref):ubyte:this (Tier1)
        -100 (-0.81 % of base) : 628022.dasm - Tracing.Tests.ProcessInfoValidation.ProcessInfoValidation:TestEntryPoint() (FullOpts)
         -96 (-2.00 % of base) : 419138.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
         -92 (-1.22 % of base) : 420890.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.AttributePresenceFilterNode:GetCustomAttributeEntries():System.Collections.Generic.List`1[ILCompiler.DependencyAnalysis.ReadyToRun.AttributePresenceFilterNode+CustomAttributeEntry]:this (Tier1-OSR)
         -84 (-1.07 % of base) : 420402.dasm - ILCompiler.NativeAotNameMangler:ComputeMangledTypeName(Internal.TypeSystem.TypeDesc):System.String:this (Tier1)
         -76 (-2.44 % of base) : 418640.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugInfoTableNode:CreateBoundsBlobForMethod(Internal.JitInterface.OffsetMapping[]):ubyte[] (Tier1)
         -72 (-0.66 % of base) : 418948.dasm - ILCompiler.TypeExtensions:TryResolveConstraintMethodApprox(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc,Internal.TypeSystem.MethodDesc,byref,byref):Internal.TypeSystem.MethodDesc (Tier1)
         -72 (-1.71 % of base) : 311585.dasm - System.Diagnostics.StackTrace:ToString(int,System.Text.StringBuilder):this (Tier1)
         -68 (-1.12 % of base) : 425843.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DevirtualizationManager:ResolveVirtualMethod(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,byref):Internal.TypeSystem.MethodDesc:this (Tier1)
         -68 (-0.17 % of base) : 559495.dasm - sbyteMDArrTest:TestEntryPoint():int (FullOpts)
         -68 (-0.17 % of base) : 559499.dasm - shortMDArrTest:TestEntryPoint():int (FullOpts)
         -64 (-1.16 % of base) : 145909.dasm - System.Reflection.InvokerEmitUtil:CreateInvokeDelegate_ObjSpanArgs(System.Reflection.MethodBase,ubyte):System.Reflection.InvokerEmitUtil+InvokeFunc_ObjSpanArgs (Tier1)

Top method regressions (percentages):
          44 (122.22 % of base) : 562687.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
        1032 (90.53 % of base) : 24774.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Tier1-OSR)
          28 (77.78 % of base) : 558618.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
          28 (77.78 % of base) : 562635.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
          52 (44.83 % of base) : 558184.dasm - Test_10w5d.testout1:Func_0_2_6_2_2():double (FullOpts)
          36 (39.13 % of base) : 558659.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
          36 (34.62 % of base) : 573633.dasm - Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
          20 (25.00 % of base) : 443501.dasm - filter1:f4() (FullOpts)
          32 (17.78 % of base) : 429088.dasm - System.Threading.TimerQueue:EnsureTimerFiresBy(uint):ubyte:this (Tier1)
          28 (16.28 % of base) : 439898.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          28 (16.28 % of base) : 440315.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          24 (15.00 % of base) : 312804.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper_NoCacheLookup(byref,ulong,System.Object) (FullOpts)
          28 (14.89 % of base) : 324773.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.89 % of base) : 409013.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.58 % of base) : 406648.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.58 % of base) : 408476.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.58 % of base) : 410115.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.58 % of base) : 410217.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.58 % of base) : 424599.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          32 (14.55 % of base) : 441119.dasm - testout1:Sub_Funclet_104():int (FullOpts)

Top method improvements (percentages):
         -44 (-7.38 % of base) : 551069.dasm - HelloWorld:Main():int (FullOpts)
         -12 (-7.32 % of base) : 271276.dasm - System.Diagnostics.Tracing.ActivityTracker:FindActiveActivity(System.String,System.Diagnostics.Tracing.ActivityTracker+ActivityInfo):System.Diagnostics.Tracing.ActivityTracker+ActivityInfo (Tier1)
         -12 (-7.32 % of base) : 1700.dasm - System.Threading.PortableThreadPool+WorkerThread:TakeActiveRequest(System.Threading.PortableThreadPool):ubyte (Instrumented Tier1)
          -8 (-6.90 % of base) : 5239.dasm - System.String:op_Equality(System.String,System.String):ubyte (Instrumented Tier1)
          -8 (-6.90 % of base) : 5942.dasm - System.String:op_Equality(System.String,System.String):ubyte (Tier1)
          -4 (-6.67 % of base) : 568154.dasm - Runtime_56495:TestEntryPoint():int (FullOpts)
          -8 (-6.67 % of base) : 4873.dasm - System.Resources.FastResourceComparer:Equals(System.String,System.String):ubyte:this (Instrumented Tier1)
          -8 (-6.67 % of base) : 5334.dasm - System.Resources.FastResourceComparer:Equals(System.String,System.String):ubyte:this (Tier1)
         -12 (-6.67 % of base) : 223187.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfClass(ulong,System.Object):System.Object (Tier1)
         -12 (-6.67 % of base) : 223494.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfClass(ulong,System.Object):System.Object (Tier1)
         -12 (-6.67 % of base) : 24020.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfClass(ulong,System.Object):System.Object (Tier1)
         -12 (-6.67 % of base) : 267109.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfClass(ulong,System.Object):System.Object (Tier1)
         -12 (-6.67 % of base) : 223330.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfClass(ulong,System.Object):System.Object (Tier1)
          -8 (-6.67 % of base) : 243648.dasm - Tests_len31_11:Test_tst_0(System.String):ubyte (FullOpts)
          -8 (-6.67 % of base) : 243650.dasm - Tests_len31_11:Test_tst_1(System.String):ubyte (FullOpts)
          -8 (-6.67 % of base) : 243652.dasm - Tests_len31_11:Test_tst_2(System.String):ubyte (FullOpts)
          -8 (-6.67 % of base) : 243710.dasm - Tests_len31_12:Test_tst_0(System.String):ubyte (FullOpts)
          -8 (-6.67 % of base) : 243712.dasm - Tests_len31_12:Test_tst_1(System.String):ubyte (FullOpts)
          -8 (-6.67 % of base) : 243714.dasm - Tests_len31_12:Test_tst_2(System.String):ubyte (FullOpts)
          -8 (-6.67 % of base) : 243774.dasm - Tests_len34_13:Test_tst_1(System.String):ubyte (FullOpts)


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: 55736420 (overridden on cmd)
Total bytes of diff: 55738036 (overridden on cmd)
Total bytes of delta: 1616 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         660 : 5994.dasm (750.00 % of base)
         144 : 43083.dasm (22.64 % of base)
         112 : 38497.dasm (5.57 % of base)
          56 : 172651.dasm (0.21 % of base)
          36 : 72479.dasm (8.91 % of base)
          36 : 165139.dasm (2.22 % of base)
          32 : 145238.dasm (0.44 % of base)
          32 : 136577.dasm (14.55 % of base)
          28 : 45730.dasm (10.94 % of base)
          28 : 44862.dasm (1.31 % of base)
          28 : 73764.dasm (12.96 % of base)
          24 : 173432.dasm (2.13 % of base)
          24 : 228318.dasm (1.21 % of base)
          24 : 228478.dasm (3.66 % of base)
          24 : 43797.dasm (0.53 % of base)
          24 : 165039.dasm (2.25 % of base)
          24 : 174931.dasm (2.13 % of base)
          20 : 136412.dasm (9.43 % of base)
          20 : 80293.dasm (7.04 % of base)
          20 : 52338.dasm (3.79 % of base)

Top file improvements (bytes):
         -48 : 34264.dasm (-1.80 % of base)
         -12 : 222629.dasm (-1.05 % of base)
         -12 : 222630.dasm (-1.12 % of base)
         -12 : 11556.dasm (-1.18 % of base)
         -12 : 188056.dasm (-1.18 % of base)
          -8 : 135013.dasm (-0.45 % of base)
          -8 : 189778.dasm (-0.94 % of base)
          -8 : 190587.dasm (-0.47 % of base)
          -8 : 213389.dasm (-0.16 % of base)
          -8 : 213393.dasm (-0.23 % of base)
          -8 : 43938.dasm (-0.35 % of base)
          -8 : 16351.dasm (-1.32 % of base)
          -8 : 135480.dasm (-0.45 % of base)
          -8 : 16350.dasm (-1.33 % of base)
          -8 : 190684.dasm (-1.32 % of base)
          -4 : 182969.dasm (-3.33 % of base)
          -4 : 202222.dasm (-1.54 % of base)
          -4 : 212128.dasm (-1.47 % of base)
          -4 : 212133.dasm (-1.47 % of base)
          -4 : 33834.dasm (-1.96 % of base)

69 total files with Code Size differences (37 improved, 32 regressed), 20 unchanged.

Top method regressions (bytes):
         660 (750.00 % of base) : 5994.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
         144 (22.64 % of base) : 43083.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
         112 (5.57 % of base) : 38497.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          56 (0.21 % of base) : 172651.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          36 (8.91 % of base) : 72479.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          36 (2.22 % of base) : 165139.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
          32 (0.44 % of base) : 145238.dasm - Microsoft.CodeAnalysis.CommonCompiler:CompileAndEmit(Microsoft.CodeAnalysis.TouchedFileLogger,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISourceGenerator],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText],Microsoft.CodeAnalysis.AnalyzerConfigSet,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AnalyzerConfigOptionsResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.EmbeddedText],Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.ErrorLogger,System.Threading.CancellationToken,byref,byref,byref):this (FullOpts)
          32 (14.55 % of base) : 136577.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          28 (12.96 % of base) : 73764.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
          28 (10.94 % of base) : 45730.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          28 (1.31 % of base) : 44862.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
          24 (0.53 % of base) : 43797.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          24 (2.13 % of base) : 173432.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
          24 (2.25 % of base) : 165039.dasm - System.Data.ExpressionParser:ParseAggregateArgument(int):System.Data.AggregateNode:this (FullOpts)
          24 (3.66 % of base) : 228478.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
          24 (1.21 % of base) : 228318.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
          24 (2.13 % of base) : 174931.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
          20 (3.79 % of base) : 52338.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetCorrespondingBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):int (FullOpts)
          20 (7.04 % of base) : 80293.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
          20 (3.25 % of base) : 183127.dasm - System.Data.Odbc.OdbcDataReader:GetData(int,short,int,byref):ubyte:this (FullOpts)

Top method improvements (bytes):
         -48 (-1.80 % of base) : 34264.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (FullOpts)
         -12 (-1.12 % of base) : 222630.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.__Canon],System.__Canon):this (FullOpts)
         -12 (-1.05 % of base) : 222629.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.__Canon]]):this (FullOpts)
         -12 (-1.18 % of base) : 188056.dasm - System.Linq.Expressions.Compiler.CompilerScope:EmitVariableAccess(System.Linq.Expressions.Compiler.LambdaCompiler,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.ParameterExpression]):this (FullOpts)
         -12 (-1.18 % of base) : 11556.dasm - System.Xml.Serialization.XmlSchemaImporter:ImportAny(System.Xml.Schema.XmlSchemaAny,ubyte,System.String):System.Xml.Serialization.ElementAccessor[]:this (FullOpts)
          -8 (-0.35 % of base) : 43938.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeDeconstructInvocationExpression(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Binder+DeconstructionVariable]):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          -8 (-0.45 % of base) : 135013.dasm - Newtonsoft.Json.Converters.XmlNodeConverter:ReadAttributeElements(Newtonsoft.Json.JsonReader,System.Xml.XmlNamespaceManager):System.Collections.Generic.Dictionary`2[System.String,System.String]:this (FullOpts)
          -8 (-0.45 % of base) : 135480.dasm - Newtonsoft.Json.Linq.JsonPath.ArraySliceFilter+<ExecuteFilter>d__12:MoveNext():ubyte:this (FullOpts)
          -8 (-0.23 % of base) : 213393.dasm - R2RTest.BuildFolderSet:WriteCombinedLog(System.String):this (FullOpts)
          -8 (-0.16 % of base) : 213389.dasm - R2RTest.BuildFolderSet:WriteExecutableSizeStatistics(System.IO.StreamWriter):this (FullOpts)
          -8 (-1.33 % of base) : 16350.dasm - System.Numerics.Matrix4x4:CreatePerspectiveFieldOfView(float,float,float,float):System.Numerics.Matrix4x4 (FullOpts)
          -8 (-1.32 % of base) : 16351.dasm - System.Numerics.Matrix4x4:CreatePerspectiveFieldOfViewLeftHanded(float,float,float,float):System.Numerics.Matrix4x4 (FullOpts)
          -8 (-0.47 % of base) : 190587.dasm - System.Text.Json.Utf8JsonReader:ConsumeNextTokenFromLastNonCommentToken():ubyte:this (FullOpts)
          -8 (-0.94 % of base) : 189778.dasm - System.Text.Json.Utf8JsonReader:ReadSingleSegment():ubyte:this (FullOpts)
          -8 (-1.32 % of base) : 190684.dasm - System.Text.Json.Utf8JsonReader:SkipAllComments(byref):ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 156012.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 202978.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 206943.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 156017.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 202983.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)

Top method regressions (percentages):
         660 (750.00 % of base) : 5994.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
         144 (22.64 % of base) : 43083.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
          32 (14.55 % of base) : 136577.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          28 (12.96 % of base) : 73764.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
          28 (10.94 % of base) : 45730.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          20 (9.43 % of base) : 136412.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
          36 (8.91 % of base) : 72479.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          16 (7.55 % of base) : 136502.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
          20 (7.04 % of base) : 80293.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
          16 (5.80 % of base) : 182930.dasm - System.Data.Odbc.OdbcHandle:ReleaseHandle():ubyte:this (FullOpts)
         112 (5.57 % of base) : 38497.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          12 (5.45 % of base) : 173620.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:IsMemberPublic(System.Reflection.MemberInfo):ubyte (FullOpts)
          12 (4.55 % of base) : 220967.dasm - Microsoft.Diagnostics.Tools.RuntimeClient.EventPipeClient:StopTracing(int,ulong):ulong (FullOpts)
           4 (4.35 % of base) : 190730.dasm - System.Text.Json.Utf8JsonReader:ThrowOnDangerousLineSeparator(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
          16 (4.21 % of base) : 69191.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
          16 (4.17 % of base) : 94097.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SingleLineLambdaContext:ProcessStatementTerminator(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext:this (FullOpts)
          12 (4.11 % of base) : 225052.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
          20 (3.79 % of base) : 52338.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetCorrespondingBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):int (FullOpts)
           8 (3.77 % of base) : 136558.dasm - System.Net.Mail.StartTlsCommand:CheckResponse(int,System.String) (FullOpts)
          24 (3.66 % of base) : 228478.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)

Top method improvements (percentages):
          -4 (-3.33 % of base) : 182969.dasm - System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
          -4 (-2.04 % of base) : 34331.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 34336.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.96 % of base) : 33834.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.89 % of base) : 25357.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.85 % of base) : 25663.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.85 % of base) : 25679.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -48 (-1.80 % of base) : 34264.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (FullOpts)
          -4 (-1.67 % of base) : 25645.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.59 % of base) : 44858.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:IsReceiverRefReadOnly(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
          -4 (-1.54 % of base) : 156012.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 202978.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 206943.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 156017.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 202983.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 206948.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 202222.dasm - Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 155243.dasm - Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.47 % of base) : 212128.dasm - System.Collections.Generic.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.47 % of base) : 212133.dasm - System.Collections.Generic.SegmentedDictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)


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: 75990012 (overridden on cmd)
Total bytes of diff: 76022852 (overridden on cmd)
Total bytes of delta: 32840 (0.04 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         660 : 27565.dasm (687.50 % of base)
         344 : 148412.dasm (14.36 % of base)
         140 : 17262.dasm (2.17 % of base)
         128 : 58443.dasm (2.79 % of base)
         108 : 197820.dasm (1.31 % of base)
         108 : 17692.dasm (3.15 % of base)
         104 : 179.dasm (14.36 % of base)
         104 : 292716.dasm (4.57 % of base)
         100 : 19240.dasm (1.02 % of base)
          96 : 17720.dasm (1.19 % of base)
          96 : 17937.dasm (1.64 % of base)
          92 : 198010.dasm (2.79 % of base)
          84 : 197838.dasm (1.27 % of base)
          84 : 17925.dasm (1.99 % of base)
          84 : 197842.dasm (1.14 % of base)
          80 : 290215.dasm (2.74 % of base)
          76 : 197768.dasm (1.39 % of base)
          72 : 261402.dasm (2.21 % of base)
          72 : 197770.dasm (1.27 % of base)
          72 : 293553.dasm (3.24 % of base)

Top file improvements (bytes):
         -64 : 171425.dasm (-1.06 % of base)
         -60 : 289056.dasm (-1.08 % of base)
         -60 : 86710.dasm (-1.50 % of base)
         -56 : 208842.dasm (-1.42 % of base)
         -52 : 21919.dasm (-0.98 % of base)
         -48 : 20231.dasm (-1.94 % of base)
         -48 : 205818.dasm (-10.26 % of base)
         -48 : 246961.dasm (-1.83 % of base)
         -48 : 287095.dasm (-10.43 % of base)
         -48 : 288589.dasm (-4.24 % of base)
         -48 : 285740.dasm (-0.96 % of base)
         -40 : 245930.dasm (-2.34 % of base)
         -40 : 171063.dasm (-2.34 % of base)
         -40 : 258053.dasm (-8.77 % of base)
         -36 : 197634.dasm (-7.50 % of base)
         -36 : 178664.dasm (-1.79 % of base)
         -36 : 220340.dasm (-1.79 % of base)
         -36 : 26626.dasm (-1.09 % of base)
         -36 : 268178.dasm (-0.49 % of base)
         -32 : 14467.dasm (-9.41 % of base)

80 total files with Code Size differences (37 improved, 43 regressed), 20 unchanged.

Top method regressions (bytes):
         660 (687.50 % of base) : 27565.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
         344 (14.36 % of base) : 148412.dasm - Microsoft.Build.Construction.SolutionFile:ParseAspNetCompilerProperty(Microsoft.Build.Construction.ProjectInSolution,System.String,System.String) (FullOpts)
         140 (2.17 % of base) : 17262.dasm - System.Xml.XmlTextReaderImpl+<SkipDtdAsync>d__568:MoveNext():this (FullOpts)
         128 (2.79 % of base) : 58443.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
         108 (1.31 % of base) : 197820.dasm - Newtonsoft.Json.JsonTextReader+<ParseValueAsync>d__8:MoveNext():this (FullOpts)
         108 (3.15 % of base) : 17692.dasm - System.Xml.XmlWellFormedWriter+AttributeValueCache+<ReplayAsync>d__24:MoveNext():this (FullOpts)
         104 (14.36 % of base) : 179.dasm - Interop+Sys:AllocNullTerminatedArray(System.String[],byref) (FullOpts)
         104 (4.57 % of base) : 292716.dasm - System.DirectoryServices.Protocols.LdapConnection:BuildControlArray(System.DirectoryServices.Protocols.DirectoryControlCollection,ubyte):System.DirectoryServices.Protocols.LdapControl[] (FullOpts)
         100 (1.02 % of base) : 19240.dasm - System.Xml.DtdParser+<GetTokenAsync>d__173:MoveNext():this (FullOpts)
          96 (1.19 % of base) : 17720.dasm - System.Xml.XmlWellFormedWriter+<WriteEndAttributeAsync_SepcialAtt>d__132:MoveNext():this (FullOpts)
          96 (1.64 % of base) : 17937.dasm - System.Xml.XmlWriter+<WriteNodeAsync_CallAsyncReader>d__105:MoveNext():this (FullOpts)
          92 (2.79 % of base) : 198010.dasm - Newtonsoft.Json.Utilities.JavaScriptUtils+<WriteDefinitelyEscapedJavaScriptStringWithoutDelimitersAsync>d__16:MoveNext():this (FullOpts)
          84 (1.27 % of base) : 197838.dasm - Newtonsoft.Json.JsonTextReader+<ReadNumberValueAsync>d__38:MoveNext():this (FullOpts)
          84 (1.14 % of base) : 197842.dasm - Newtonsoft.Json.JsonTextReader+<ReadStringValueAsync>d__37:MoveNext():this (FullOpts)
          84 (1.99 % of base) : 17925.dasm - System.Xml.XmlWriter+<<WriteNodeAsync>g__Core|106_0>d:MoveNext():this (FullOpts)
          80 (2.74 % of base) : 290215.dasm - System.ServiceModel.Syndication.AtomPub10ServiceDocumentFormatter:ReadDocument(System.Xml.XmlReader):this (FullOpts)
          76 (1.39 % of base) : 197768.dasm - Newtonsoft.Json.JsonTextReader+<DoReadAsBooleanAsync>d__40:MoveNext():this (FullOpts)
          72 (1.27 % of base) : 197770.dasm - Newtonsoft.Json.JsonTextReader+<DoReadAsBytesAsync>d__42:MoveNext():this (FullOpts)
          72 (3.24 % of base) : 293553.dasm - System.Drawing.ColorTranslator:FromHtml(System.String):System.Drawing.Color (FullOpts)
          72 (2.21 % of base) : 261402.dasm - System.Net.WebClient+<DownloadBitsAsync>d__150:MoveNext():this (FullOpts)

Top method improvements (bytes):
         -64 (-1.06 % of base) : 171425.dasm - System.Security.Cryptography.Pkcs.Pkcs12SafeContents:ReadBags(System.ReadOnlyMemory`1[ubyte]):System.Collections.Generic.List`1[System.Security.Cryptography.Pkcs.Pkcs12SafeBag] (FullOpts)
         -60 (-1.50 % of base) : 86710.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:AdjustAssignmentTarget(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
         -60 (-1.08 % of base) : 289056.dasm - PerfEventSourceListener:PrintPerfResults():this (FullOpts)
         -56 (-1.42 % of base) : 208842.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
         -52 (-0.98 % of base) : 21919.dasm - System.Xml.Schema.XmlSchemaInference:FindMatchingElement(ubyte,System.Xml.XmlReader,System.Xml.Schema.XmlSchemaComplexType,byref,System.Xml.Schema.XmlSchema,ubyte):System.Xml.Schema.XmlSchemaElement:this (FullOpts)
         -48 (-10.26 % of base) : 205818.dasm - System.ComponentModel.LookupBindingPropertiesAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -48 (-0.96 % of base) : 285740.dasm - System.Formats.Asn1.AsnWriter:WriteGeneralizedTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset,ubyte):this (FullOpts)
         -48 (-1.83 % of base) : 246961.dasm - System.Net.Security.EndpointChannelBindingToken:GetHashForChannelBinding(System.Security.Cryptography.X509Certificates.X509Certificate2):ubyte[] (FullOpts)
         -48 (-4.24 % of base) : 288589.dasm - System.Reflection.Emit.MethodBuilderImpl:SetCustomAttributeCore(System.Reflection.ConstructorInfo,System.ReadOnlySpan`1[ubyte]):this (FullOpts)
         -48 (-10.43 % of base) : 287095.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)
         -48 (-1.94 % of base) : 20231.dasm - System.Xml.Schema.SchemaCollectionCompiler:CompileAttribute(System.Xml.Schema.XmlSchemaAttribute):this (FullOpts)
         -40 (-8.77 % of base) : 258053.dasm - System.Diagnostics.ActivityLink:op_Inequality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)
         -40 (-2.34 % of base) : 245930.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:IterationsFromParameters(byref):uint (FullOpts)
         -40 (-2.34 % of base) : 171063.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:IterationsFromParameters(byref):uint (FullOpts)
         -36 (-1.79 % of base) : 178664.dasm - Microsoft.Cci.NativeResourceWriter:SerializeWin32Resources(System.Reflection.Metadata.BlobBuilder,System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IWin32Resource],int) (FullOpts)
         -36 (-1.79 % of base) : 220340.dasm - Microsoft.Cci.NativeResourceWriter:SerializeWin32Resources(System.Reflection.Metadata.BlobBuilder,System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IWin32Resource],int) (FullOpts)
         -36 (-7.50 % of base) : 197634.dasm - Newtonsoft.Json.Converters.XmlNodeConverter:ValueAttributes(System.Collections.Generic.List`1[Newtonsoft.Json.Converters.IXmlNode]):ubyte:this (FullOpts)
         -36 (-0.49 % of base) : 268178.dasm - R2RDump.Extensions:WriteTo(ILCompiler.Reflection.ReadyToRun.RuntimeFunction,System.IO.TextWriter,R2RDump.DumpModel) (FullOpts)
         -36 (-1.09 % of base) : 26626.dasm - System.Xml.Serialization.ReflectionXmlSerializationReader:GenerateLiteralMembersElementInternal(System.Xml.Serialization.MemberMapping[],ubyte,System.Object[]):ubyte:this (FullOpts)
         -32 (-9.41 % of base) : 258731.dasm - System.Diagnostics.Metrics.StringSequence3:Equals(System.Diagnostics.Metrics.StringSequence3):ubyte:this (FullOpts)

Top method regressions (percentages):
         660 (687.50 % of base) : 27565.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
          32 (15.38 % of base) : 264270.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
         104 (14.36 % of base) : 179.dasm - Interop+Sys:AllocNullTerminatedArray(System.String[],byref) (FullOpts)
         344 (14.36 % of base) : 148412.dasm - Microsoft.Build.Construction.SolutionFile:ParseAspNetCompilerProperty(Microsoft.Build.Construction.ProjectInSolution,System.String,System.String) (FullOpts)
          12 (13.64 % of base) : 2839.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
          12 (13.04 % of base) : 165276.dasm - System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
           4 (12.50 % of base) : 259236.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
          12 (12.50 % of base) : 165275.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Net.Sockets.UdpReceiveResult):ubyte:this (FullOpts)
          12 (12.50 % of base) : 2827.dasm - System.SpanHelpers:IndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
          12 (10.71 % of base) : 165277.dasm - System.Net.Sockets.UdpReceiveResult:op_Inequality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
          36 (10.23 % of base) : 136883.dasm - Microsoft.Diagnostics.Tracing.Ctf.CtfReader:ReallocateBuffer(int):ubyte[]:this (FullOpts)
          20 (10.00 % of base) : 264289.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
          12 (8.82 % of base) : 165274.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Object):ubyte:this (FullOpts)
          44 (8.59 % of base) : 245709.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:LoadKey(System.Security.Cryptography.Asn1.Pkcs12.SafeBagAsn,System.ReadOnlySpan`1[ushort]):System.Security.Cryptography.AsymmetricAlgorithm:this (FullOpts)
          36 (8.57 % of base) : 61971.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          36 (8.41 % of base) : 282177.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,System.Nullable`1[int]],int):this (FullOpts)
          16 (8.00 % of base) : 264266.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
          60 (7.32 % of base) : 83200.dasm - ILCompiler.CompilerTypeSystemContext:OpenAssociatedSymbolFile(System.String,System.Reflection.PortableExecutable.PEReader):Internal.TypeSystem.Ecma.PdbSymbolReader:this (FullOpts)
          20 (7.25 % of base) : 116427.dasm - System.Configuration.ConfigurationPropertyCollection:Contains(System.String):ubyte:this (FullOpts)
          20 (7.25 % of base) : 216721.dasm - System.Configuration.ConfigurationPropertyCollection:Contains(System.String):ubyte:this (FullOpts)

Top method improvements (percentages):
         -16 (-11.43 % of base) : 175361.dasm - System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
         -16 (-10.81 % of base) : 176688.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
         -48 (-10.43 % of base) : 287095.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)
         -48 (-10.26 % of base) : 205818.dasm - System.ComponentModel.LookupBindingPropertiesAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -32 (-9.41 % of base) : 258731.dasm - System.Diagnostics.Metrics.StringSequence3:Equals(System.Diagnostics.Metrics.StringSequence3):ubyte:this (FullOpts)
         -32 (-9.41 % of base) : 14467.dasm - System.Xml.XmlSqlBinaryReader+QName:Equals(System.Xml.XmlSqlBinaryReader+QName):ubyte:this (FullOpts)
          -8 (-9.09 % of base) : 870.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[double](double,double,System.String) (FullOpts)
         -28 (-8.86 % of base) : 14468.dasm - System.Xml.XmlSqlBinaryReader+QName:op_Equality(System.Xml.XmlSqlBinaryReader+QName,System.Xml.XmlSqlBinaryReader+QName):ubyte (FullOpts)
         -40 (-8.77 % of base) : 258053.dasm - System.Diagnostics.ActivityLink:op_Inequality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)
         -20 (-8.47 % of base) : 14462.dasm - System.Xml.XmlSqlBinaryReader+QName:MatchPrefix(System.String,System.String):ubyte:this (FullOpts)
         -32 (-8.16 % of base) : 292725.dasm - System.DirectoryServices.Protocols.LdapConnection:SameCredential(System.Net.NetworkCredential,System.Net.NetworkCredential):ubyte (FullOpts)
         -36 (-7.50 % of base) : 197634.dasm - Newtonsoft.Json.Converters.XmlNodeConverter:ValueAttributes(System.Collections.Generic.List`1[Newtonsoft.Json.Converters.IXmlNode]):ubyte:this (FullOpts)
         -12 (-7.50 % of base) : 160354.dasm - System.Linq.ParallelEnumerable:AsSequential[System.__Canon](System.Linq.ParallelQuery`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
         -20 (-7.14 % of base) : 154860.dasm - Microsoft.Build.BackEnd.ItemGroupIntrinsicTask+NestedMetadataTable:GetEscapedValueIfPresent(System.String,System.String):System.String:this (FullOpts)
         -20 (-6.94 % of base) : 180546.dasm - Microsoft.CodeAnalysis.SuppressionDescriptor:Equals(Microsoft.CodeAnalysis.SuppressionDescriptor):ubyte:this (FullOpts)
         -20 (-6.94 % of base) : 222177.dasm - Microsoft.CodeAnalysis.SuppressionDescriptor:Equals(Microsoft.CodeAnalysis.SuppressionDescriptor):ubyte:this (FullOpts)
         -16 (-6.90 % of base) : 270542.dasm - Internal.Microsoft.Extensions.DependencyModel.Dependency:Equals(Internal.Microsoft.Extensions.DependencyModel.Dependency):ubyte:this (FullOpts)
         -16 (-6.90 % of base) : 258726.dasm - System.Diagnostics.Metrics.StringSequence2:Equals(System.Diagnostics.Metrics.StringSequence2):ubyte:this (FullOpts)
         -16 (-6.90 % of base) : 26669.dasm - System.Xml.Serialization.ReflectionXmlSerializationReader:QNameEqual(System.Xml.XmlQualifiedName,System.String,System.String):ubyte (FullOpts)
         -16 (-6.90 % of base) : 14461.dasm - System.Xml.XmlSqlBinaryReader+QName:MatchNs(System.String,System.String):ubyte:this (FullOpts)


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: 381208104 (overridden on cmd)
Total bytes of diff: 381450356 (overridden on cmd)
Total bytes of delta: 242252 (0.06 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        3432 : 690110.dasm (12.29 % of base)
        2568 : 287967.dasm (21.95 % of base)
        1356 : 57313.dasm (7.21 % of base)
        1264 : 92261.dasm (6.61 % of base)
         856 : 90796.dasm (8.03 % of base)
         784 : 93935.dasm (5.94 % of base)
         672 : 474165.dasm (4.49 % of base)
         640 : 475433.dasm (4.31 % of base)
         592 : 475438.dasm (4.85 % of base)
         576 : 475440.dasm (4.86 % of base)
         572 : 36814.dasm (4.94 % of base)
         560 : 475422.dasm (3.39 % of base)
         552 : 475388.dasm (3.15 % of base)
         544 : 179037.dasm (4.09 % of base)
         540 : 62234.dasm (4.21 % of base)
         516 : 669801.dasm (8.07 % of base)
         512 : 62235.dasm (4.26 % of base)
         512 : 273855.dasm (8.00 % of base)
         512 : 413906.dasm (8.00 % of base)
         512 : 358681.dasm (8.00 % of base)

Top file improvements (bytes):
        -616 : 626833.dasm (-2.44 % of base)
        -316 : 94640.dasm (-2.91 % of base)
        -280 : 284451.dasm (-2.20 % of base)
        -276 : 175485.dasm (-2.92 % of base)
        -260 : 83576.dasm (-2.97 % of base)
        -248 : 51545.dasm (-2.84 % of base)
        -244 : 612289.dasm (-1.35 % of base)
        -220 : 687330.dasm (-4.34 % of base)
        -216 : 562325.dasm (-2.75 % of base)
        -204 : 687328.dasm (-3.75 % of base)
        -204 : 707193.dasm (-1.48 % of base)
        -204 : 210607.dasm (-2.86 % of base)
        -204 : 554626.dasm (-2.86 % of base)
        -204 : 324286.dasm (-2.86 % of base)
        -176 : 627331.dasm (-1.53 % of base)
        -172 : 697504.dasm (-2.28 % of base)
        -168 : 67176.dasm (-1.10 % of base)
        -164 : 105301.dasm (-2.06 % of base)
        -164 : 323269.dasm (-2.06 % of base)
        -164 : 315197.dasm (-1.94 % of base)

97 total files with Code Size differences (58 improved, 39 regressed), 20 unchanged.

Top method regressions (bytes):
        3432 (12.29 % of base) : 690110.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex3805_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        2568 (21.95 % of base) : 287967.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):ubyte:this (Tier1)
        1356 (7.21 % of base) : 57313.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
        1264 (6.61 % of base) : 92261.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
         856 (8.03 % of base) : 90796.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:Equals(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):ubyte:this (Tier1)
         784 (5.94 % of base) : 93935.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckValidNullableMethodOverride[System.__Canon](Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Symbols.ReportMismatchInReturnType`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.Symbols.ReportMismatchInParameterType`1[System.__Canon],System.__Canon,ubyte):ubyte (Tier1)
         672 (4.49 % of base) : 474165.dasm - System.Xml.Tests.TCXMLIntegrityBase:AddChildren():this (Tier1)
         640 (4.31 % of base) : 475433.dasm - System.Xml.Tests.TCReadValue:AddChildren():this (Tier1)
         592 (4.85 % of base) : 475438.dasm - System.Xml.Tests.TCReadElementContentAsBase64:AddChildren():this (Tier1)
         576 (4.86 % of base) : 475440.dasm - System.Xml.Tests.TCReadElementContentAsBinHex:AddChildren():this (Tier1)
         572 (4.94 % of base) : 36814.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
         560 (3.39 % of base) : 475422.dasm - System.Xml.Tests.TCRead2:AddChildren():this (Tier1)
         552 (3.15 % of base) : 475388.dasm - System.Xml.Tests.TCInvalidXML:AddChildren():this (Tier1)
         544 (4.09 % of base) : 179037.dasm - Microsoft.Extensions.Options.Generators.SymbolLoader:TryLoad(Microsoft.CodeAnalysis.Compilation,byref):ubyte (Tier1)
         540 (4.21 % of base) : 62234.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:<CheckModifierMismatchOnImplementingMember>g__checkMethodOverride|100_0(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
         516 (8.07 % of base) : 669801.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         512 (4.26 % of base) : 62235.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckValidNullableMethodOverride[System.ValueTuple`2[System.__Canon,ubyte]](Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Symbols.ReportMismatchInReturnType`1[System.ValueTuple`2[System.__Canon,ubyte]],Microsoft.CodeAnalysis.CSharp.Symbols.ReportMismatchInParameterType`1[System.ValueTuple`2[System.__Canon,ubyte]],System.ValueTuple`2[System.__Canon,ubyte],ubyte):ubyte (Tier1)
         512 (8.00 % of base) : 273855.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         512 (8.00 % of base) : 413906.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         512 (8.00 % of base) : 358681.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)

Top method improvements (bytes):
        -616 (-2.44 % of base) : 626833.dasm - System.Text.Json.SourceGeneration.Tests.CollectionTests_Metadata+CollectionTestsContext_Metadata:global::System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver.GetTypeInfo(System.Type,System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonTypeInfo:this (Tier1)
        -316 (-2.91 % of base) : 94640.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindInvocationExpressionContinued(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.MethodGroup,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier1)
        -280 (-2.20 % of base) : 284451.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -276 (-2.92 % of base) : 175485.dasm - System.Reflection.PortableExecutable.PEHeader:.ctor(byref):this (Tier1)
        -260 (-2.97 % of base) : 83576.dasm - System.Reflection.PortableExecutable.PEHeader:.ctor(byref):this (Tier1)
        -248 (-2.84 % of base) : 51545.dasm - System.Reflection.PortableExecutable.PEHeader:.ctor(byref):this (Tier1)
        -244 (-1.35 % of base) : 612289.dasm - System.Text.Json.SourceGeneration.Tests.NumberHandlingTests_Default+NumberHandlingTestsContext_Default:global::System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver.GetTypeInfo(System.Type,System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonTypeInfo:this (Tier1)
        -220 (-4.34 % of base) : 687330.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:TryCalculateSyntaxOffsetOfPositionInInitializer(int,Microsoft.CodeAnalysis.SyntaxTree,ubyte,int,byref):ubyte:this (Tier1)
        -216 (-2.75 % of base) : 562325.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -204 (-3.75 % of base) : 687328.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CalculateSyntaxOffsetInSynthesizedConstructor(int,Microsoft.CodeAnalysis.SyntaxTree,ubyte):int:this (Tier1)
        -204 (-1.48 % of base) : 707193.dasm - Microsoft.CodeAnalysis.Formatting.TokenStream:GetColumn(Microsoft.CodeAnalysis.Formatting.TokenData,System.Func`3[Microsoft.CodeAnalysis.Formatting.TokenData,Microsoft.CodeAnalysis.Formatting.TokenData,Microsoft.CodeAnalysis.Formatting.TriviaData]):int:this (Tier1)
        -204 (-2.86 % of base) : 210607.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
        -204 (-2.86 % of base) : 554626.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
        -204 (-2.86 % of base) : 324286.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
        -176 (-1.53 % of base) : 627331.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Metadata+ConstructorTestsContext_Metadata:global::System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver.GetTypeInfo(System.Type,System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonTypeInfo:this (Tier1)
        -172 (-2.28 % of base) : 697504.dasm - System.Reflection.PortableExecutable.PEHeaders:.ctor(System.IO.Stream,int,ubyte):this (Tier1)
        -168 (-1.10 % of base) : 67176.dasm - Microsoft.CodeAnalysis.CSharp.BuiltInOperators:GetSimpleBuiltInOperators(int,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature],ubyte):this (Tier1)
        -164 (-2.06 % of base) : 105301.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -164 (-2.06 % of base) : 323269.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -164 (-1.94 % of base) : 315197.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)

Top method regressions (percentages):
          20 (26.32 % of base) : 702728.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
          20 (26.32 % of base) : 178968.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
          20 (26.32 % of base) : 92191.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
          20 (26.32 % of base) : 63866.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
          20 (26.32 % of base) : 54450.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
          24 (25.00 % of base) : 46221.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon]):this (Tier1)
          12 (25.00 % of base) : 464984.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
          12 (25.00 % of base) : 564670.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
          24 (25.00 % of base) : 335640.dasm - System.IO.Pipelines.Pipe:CreateSegmentUnsynchronized():System.IO.Pipelines.BufferSegment:this (Tier1)
        2568 (21.95 % of base) : 287967.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):ubyte:this (Tier1)
          20 (20.83 % of base) : 217850.dasm - System.Collections.Immutable.ImmutableEnumerableDebuggerProxy`1[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
          20 (20.83 % of base) : 43925.dasm - System.Collections.Immutable.ImmutableExtensions+FallbackWrapper`1[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
          20 (20.83 % of base) : 36069.dasm - System.Collections.Immutable.ImmutableExtensions+ListOfTWrapper`1[System.ValueTuple`3[int,int,System.__Canon]]:.ctor(System.Collections.Generic.IList`1[System.ValueTuple`3[int,int,System.__Canon]]):this (Tier1)
          20 (20.83 % of base) : 627023.dasm - System.Collections.Immutable.ImmutableStack`1+EnumeratorObject[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableStack`1[System.__Canon]):this (Tier1)
          20 (20.83 % of base) : 38544.dasm - System.Collections.Immutable.SecurePooledObject`1[System.__Canon]:.ctor(System.__Canon):this (Tier1)
          24 (20.69 % of base) : 46214.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],System.Func`2[System.Threading.CancellationToken,System.__Canon]):this (Tier1)
          24 (20.00 % of base) : 693878.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNativeIntegerOverflowingUnaryOperator(int,Microsoft.CodeAnalysis.ConstantValue):System.Object (Tier1)
          32 (18.60 % of base) : 36072.dasm - System.Collections.Immutable.ImmutableList`1+Builder[System.ValueTuple`3[int,int,System.__Canon]]:.ctor(System.Collections.Immutable.ImmutableList`1[System.ValueTuple`3[int,int,System.__Canon]]):this (Tier1)
          20 (18.52 % of base) : 43286.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
          20 (18.52 % of base) : 706062.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2[System.__Canon,System.__Canon]:ContainsKey(System.__Canon):ubyte:this (Tier1)

Top method improvements (percentages):
         -44 (-13.92 % of base) : 381556.dasm - System.StringComparer:Equals(System.Object,System.Object):ubyte:this (Tier1)
          -8 (-12.50 % of base) : 452703.dasm - System.Xml.XmlTextReaderImpl:GetResolver():System.Xml.XmlResolver:this (Tier1)
          -8 (-10.00 % of base) : 181381.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:get_SourcePartialImplementation():Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:this (Tier1)
          -8 (-10.00 % of base) : 56246.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:get_SourcePartialImplementation():Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:this (Tier1)
          -8 (-9.52 % of base) : 720456.dasm - System.Threading.Tasks.Dataflow.Internal.TargetCore`1[int]:get_CanceledOrFaulted():ubyte:this (Tier1)
         -36 (-9.28 % of base) : 549214.dasm - System.Security.Cryptography.Rsa.Tests.RSAFactory:Create(System.Security.Cryptography.RSAParameters):System.Security.Cryptography.RSA (Tier1)
          -8 (-9.09 % of base) : 427527.dasm - System.Int32:MaxMagnitude(int,int):int (Tier1)
          -8 (-9.09 % of base) : 429776.dasm - System.Int32:MaxMagnitude(int,int):int (Tier1)
          -8 (-9.09 % of base) : 427379.dasm - System.Int32:MinMagnitude(int,int):int (Tier1)
          -8 (-9.09 % of base) : 429670.dasm - System.Int32:MinMagnitude(int,int):int (Tier1)
          -8 (-9.09 % of base) : 431214.dasm - System.Int64:MaxMagnitude(long,long):long (Tier1)
          -8 (-9.09 % of base) : 423534.dasm - System.Int64:MaxMagnitude(long,long):long (Tier1)
          -8 (-9.09 % of base) : 431218.dasm - System.Int64:MinMagnitude(long,long):long (Tier1)
          -8 (-9.09 % of base) : 423504.dasm - System.Int64:MinMagnitude(long,long):long (Tier1)
          -8 (-9.09 % of base) : 422833.dasm - System.IntPtr:MinMagnitude(long,long):long (Tier1)
          -8 (-9.09 % of base) : 430230.dasm - System.IntPtr:MinMagnitude(long,long):long (Tier1)
         -12 (-9.09 % of base) : 737121.dasm - System.Xml.Linq.XNodeEqualityComparer:Equals(System.Xml.Linq.XNode,System.Xml.Linq.XNode):ubyte:this (Tier1)
         -16 (-8.89 % of base) : 674488.dasm - Roslyn.Utilities.FileNameUtilities:IndexOfFileName(System.String):int (Tier1)
         -16 (-8.89 % of base) : 91103.dasm - Roslyn.Utilities.FileNameUtilities:IndexOfFileName(System.String):int (Tier1)
         -16 (-8.89 % of base) : 57547.dasm - Roslyn.Utilities.FileNameUtilities:IndexOfFileName(System.String):int (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: 162529068 (overridden on cmd)
Total bytes of diff: 162656492 (overridden on cmd)
Total bytes of delta: 127424 (0.08 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         136 : 210686.dasm (3.56 % of base)
         128 : 19141.dasm (2.91 % of base)
         116 : 210743.dasm (3.44 % of base)
         116 : 259663.dasm (2.72 % of base)
         112 : 207398.dasm (3.26 % of base)
         112 : 210911.dasm (3.26 % of base)
         112 : 211056.dasm (3.20 % of base)
         112 : 212402.dasm (3.20 % of base)
         108 : 234725.dasm (1.61 % of base)
         108 : 238324.dasm (1.61 % of base)
         108 : 260229.dasm (1.61 % of base)
         108 : 261408.dasm (1.60 % of base)
         108 : 302715.dasm (3.15 % of base)
         104 : 17520.dasm (14.36 % of base)
         104 : 242090.dasm (2.98 % of base)
         104 : 260152.dasm (2.98 % of base)
         100 : 234508.dasm (1.72 % of base)
         100 : 260187.dasm (1.72 % of base)
         100 : 258592.dasm (0.70 % of base)
         100 : 261775.dasm (1.05 % of base)

Top file improvements (bytes):
        -140 : 298658.dasm (-2.66 % of base)
        -116 : 197526.dasm (-3.15 % of base)
         -92 : 261700.dasm (-1.00 % of base)
         -84 : 200292.dasm (-2.90 % of base)
         -72 : 274386.dasm (-1.80 % of base)
         -64 : 216880.dasm (-1.11 % of base)
         -52 : 137315.dasm (-1.36 % of base)
         -52 : 190186.dasm (-0.72 % of base)
         -52 : 198006.dasm (-1.59 % of base)
         -52 : 90930.dasm (-1.04 % of base)
         -48 : 114497.dasm (-0.96 % of base)
         -48 : 154986.dasm (-0.93 % of base)
         -48 : 83298.dasm (-10.26 % of base)
         -48 : 154266.dasm (-1.86 % of base)
         -48 : 179109.dasm (-4.46 % of base)
         -48 : 302388.dasm (-10.43 % of base)
         -44 : 193720.dasm (-0.65 % of base)
         -44 : 56237.dasm (-1.64 % of base)
         -44 : 194170.dasm (-0.65 % of base)
         -44 : 217289.dasm (-2.14 % of base)

83 total files with Code Size differences (39 improved, 44 regressed), 20 unchanged.

Top method regressions (bytes):
         136 (3.56 % of base) : 210686.dasm - System.Tests.TimeZoneInfoTests:ConvertTime_DateTime_LocalToLocal() (FullOpts)
         128 (2.91 % of base) : 19141.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
         116 (3.44 % of base) : 210743.dasm - System.Tests.TimeZoneInfoTests:GetAmbiguousTimeOffsets_LocalAmbiguousOffsets() (FullOpts)
         116 (2.72 % of base) : 259663.dasm - System.Text.Json.Serialization.Tests.ReadValueTests:ReadClasses() (FullOpts)
         112 (3.20 % of base) : 211056.dasm - System.Tests.UInt64Tests:Parse_Valid(System.String,int,System.IFormatProvider,ulong) (FullOpts)
         112 (3.20 % of base) : 212402.dasm - System.Tests.UInt64Tests_GenericMath:ParseValidStringTest(System.String,int,System.IFormatProvider,ulong) (FullOpts)
         112 (3.26 % of base) : 210911.dasm - System.Tests.UIntPtrTests:Parse_Valid(System.String,int,System.IFormatProvider,ulong) (FullOpts)
         112 (3.26 % of base) : 207398.dasm - System.Tests.UIntPtrTests_GenericMath:ParseValidStringTest(System.String,int,System.IFormatProvider,ulong) (FullOpts)
         108 (1.61 % of base) : 238324.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<Number_AsCollectionElement_RoundTrip>d__22:MoveNext():this (FullOpts)
         108 (1.60 % of base) : 261408.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<Number_AsCollectionElement_RoundTrip>d__22:MoveNext():this (FullOpts)
         108 (1.61 % of base) : 234725.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<Number_AsRootType_RoundTrip>d__7:MoveNext():this (FullOpts)
         108 (1.61 % of base) : 260229.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<Number_AsRootType_RoundTrip>d__7:MoveNext():this (FullOpts)
         108 (3.15 % of base) : 302715.dasm - System.Xml.XmlWellFormedWriter+AttributeValueCache+<ReplayAsync>d__24:MoveNext():this (FullOpts)
         104 (14.36 % of base) : 17520.dasm - Interop+Sys:AllocNullTerminatedArray(System.String[],byref) (FullOpts)
         104 (2.98 % of base) : 242090.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<ReadPrimitiveImmutableHashSetT>d__310:MoveNext():this (FullOpts)
         104 (2.98 % of base) : 260152.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<ReadPrimitiveImmutableHashSetT>d__349:MoveNext():this (FullOpts)
         100 (0.70 % of base) : 258592.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<DictionaryOfString>d__29:MoveNext():this (FullOpts)
         100 (1.05 % of base) : 261775.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<Disallow_ArbritaryStrings_On_AllowFloatingPointConstants>d__60:MoveNext():this (FullOpts)
         100 (1.72 % of base) : 234508.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<UnsupportedFormats>d__48:MoveNext():this (FullOpts)
         100 (1.72 % of base) : 260187.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<UnsupportedFormats>d__48:MoveNext():this (FullOpts)

Top method improvements (bytes):
        -140 (-2.66 % of base) : 298658.dasm - System.Threading.Tasks.Tests.TaskRtTests_Core:RunTaskCompletionSourceTests_SetException() (FullOpts)
        -116 (-3.15 % of base) : 197526.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
         -92 (-1.00 % of base) : 261700.dasm - System.Text.Json.Serialization.Tests.SimpleTestClassWithFields:Initialize():this (FullOpts)
         -84 (-2.90 % of base) : 200292.dasm - HandleTests:RuntimeMethodHandleTest() (FullOpts)
         -72 (-1.80 % of base) : 274386.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1927_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -64 (-1.11 % of base) : 216880.dasm - System.Security.Cryptography.Pkcs.Pkcs12SafeContents:ReadBags(System.ReadOnlyMemory`1[ubyte]):System.Collections.Generic.List`1[System.Security.Cryptography.Pkcs.Pkcs12SafeBag] (FullOpts)
         -52 (-1.59 % of base) : 198006.dasm - DataContractSerializerTests:DCS_TypeWithPrimitiveKnownTypes() (FullOpts)
         -52 (-1.36 % of base) : 137315.dasm - System.Linq.Tests.TakeTests:MutableSourceNotList():this (FullOpts)
         -52 (-0.72 % of base) : 190186.dasm - System.Reflection.Metadata.ApplyUpdateTest:CheckCustomNoteAttribute(System.Reflection.MemberInfo,System.String,System.String,System.String,int) (FullOpts)
         -52 (-1.04 % of base) : 90930.dasm - System.Xml.Schema.XmlSchemaInference:FindMatchingElement(ubyte,System.Xml.XmlReader,System.Xml.Schema.XmlSchemaComplexType,byref,System.Xml.Schema.XmlSchema,ubyte):System.Xml.Schema.XmlSchemaElement:this (FullOpts)
         -48 (-10.26 % of base) : 83298.dasm - System.ComponentModel.LookupBindingPropertiesAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -48 (-0.96 % of base) : 114497.dasm - System.Formats.Asn1.AsnWriter:WriteGeneralizedTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset,ubyte):this (FullOpts)
         -48 (-1.86 % of base) : 154266.dasm - System.Net.Security.EndpointChannelBindingToken:GetHashForChannelBinding(System.Security.Cryptography.X509Certificates.X509Certificate2):ubyte[] (FullOpts)
         -48 (-4.46 % of base) : 179109.dasm - System.Reflection.Emit.MethodBuilderImpl:SetCustomAttributeCore(System.Reflection.ConstructorInfo,System.ReadOnlySpan`1[ubyte]):this (FullOpts)
         -48 (-0.93 % of base) : 154986.dasm - System.Security.Cryptography.Asn1.AsnWriter:WriteGeneralizedTimeCore(System.Security.Cryptography.Asn1.Asn1Tag,System.DateTimeOffset,ubyte):this (FullOpts)
         -48 (-10.43 % of base) : 302388.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)
         -44 (-0.65 % of base) : 193720.dasm - DataContractJsonSerializerTests:DCJS_VerifyDateTimeForFormatStringDCJsonSerSettings() (FullOpts)
         -44 (-0.65 % of base) : 194170.dasm - DataContractJsonSerializerTests:DCJS_VerifyDateTimeForFormatStringDCJsonSerSettings() (FullOpts)
         -44 (-1.64 % of base) : 56237.dasm - Microsoft.Gen.OptionsValidation.Unit.Test.OptionsRuntimeTests:TestValidationWithEnumeration():this (FullOpts)
         -44 (-2.14 % of base) : 217289.dasm - System.Security.Cryptography.Pkcs.Tests.Pkcs8PrivateKeyInfoTests:Decode_SkipCopyIsRespected(ubyte) (FullOpts)

Top method regressions (percentages):
          24 (20.69 % of base) : 48950.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          24 (20.69 % of base) : 6068.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          24 (20.69 % of base) : 43078.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          16 (19.05 % of base) : 144058.dasm - System.SpanTests.SpanTests+<>c__DisplayClass651_0:<SliceIntRangeChecksd>b__6():this (FullOpts)
          20 (15.62 % of base) : 144054.dasm - System.SpanTests.SpanTests+<>c__DisplayClass651_0:<SliceIntRangeChecksd>b__3():this (FullOpts)
          32 (15.38 % of base) : 148923.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          20 (15.15 % of base) : 144052.dasm - System.SpanTests.SpanTests+<>c__DisplayClass651_0:<SliceIntRangeChecksd>b__1():this (FullOpts)
          12 (15.00 % of base) : 144056.dasm - System.SpanTests.SpanTests+<>c__DisplayClass651_0:<SliceIntRangeChecksd>b__5():this (FullOpts)
          44 (14.67 % of base) : 18921.dasm - NativeExports.Arrays:FillRange2D(ulong,int,ulong,int):ubyte (FullOpts)
         104 (14.36 % of base) : 17520.dasm - Interop+Sys:AllocNullTerminatedArray(System.String[],byref) (FullOpts)
          44 (13.41 % of base) : 190138.dasm - System.Runtime.Loader.Tests.AssemblyLoadContextTest+CollectibleWithOneAssemblyLoadedWithStrongReferenceToInstanceTest:FreeHandle():this (FullOpts)
          44 (13.41 % of base) : 189968.dasm - System.Runtime.Loader.Tests.AssemblyLoadContextTest+CollectibleWithOneAssemblyLoadedWithStrongReferenceToTypeTest:FreeHandle():this (FullOpts)
          40 (13.33 % of base) : 77290.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,int]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,int],int):this (FullOpts)
          16 (13.33 % of base) : 200444.dasm - System.Tests.StringTests+<>c__DisplayClass26_0:<CopyTo_Span>b__0():this (FullOpts)
          28 (12.73 % of base) : 100132.dasm - System.DirectoryServices.Protocols.Tests.BerConversionExceptionTests:Ctor_Default():this (FullOpts)
          28 (12.73 % of base) : 99593.dasm - System.DirectoryServices.Protocols.Tests.DirectoryExceptionTests:Ctor_Default():this (FullOpts)
          28 (12.73 % of base) : 194569.dasm - System.Runtime.Serialization.Tests.InvalidDataContractExceptionTests:Ctor_Default():this (FullOpts)
          32 (10.96 % of base) : 141638.dasm - System.SpanTests.ReplaceTests`1+<>c__DisplayClass5_0[System.__Canon]:<ArgumentValidation_Copy>b__1():this (FullOpts)
          28 (10.94 % of base) : 126664.dasm - System.IO.Packaging.Tests.Tests:T203A_FileFormatException():this (FullOpts)
          28 (10.61 % of base) : 87128.dasm - System.Composition.Runtime.Tests.CompositionFailedExceptionTests:Ctor_Default():this (FullOpts)

Top method improvements (percentages):
         -16 (-11.43 % of base) : 156985.dasm - System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
         -16 (-10.53 % of base) : 145675.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
         -48 (-10.43 % of base) : 302388.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)
         -48 (-10.26 % of base) : 83298.dasm - System.ComponentModel.LookupBindingPropertiesAttribute:Equals(System.Object):ubyte:this (FullOpts)
          -8 (-7.14 % of base) : 143777.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__0():this (FullOpts)
         -20 (-6.94 % of base) : 19696.dasm - Microsoft.CodeAnalysis.SuppressionDescriptor:Equals(Microsoft.CodeAnalysis.SuppressionDescriptor):ubyte:this (FullOpts)
          -8 (-6.90 % of base) : 143778.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__1():this (FullOpts)
         -12 (-6.82 % of base) : 71032.dasm - System.Collections.CaseInsensitiveHashCodeProvider:GetHashCode(System.Object):int:this (FullOpts)
         -20 (-6.76 % of base) : 83067.dasm - System.ComponentModel.DesignerAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -20 (-6.76 % of base) : 83086.dasm - System.ComponentModel.EditorAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -20 (-6.76 % of base) : 84878.dasm - System.ComponentModel.ProvidePropertyAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -16 (-6.56 % of base) : 212711.dasm - System.Security.Claims.ClaimsPrincipalTests+<>c:<Ctor_IIdentity_NonClaims>b__2_0(System.Security.Claims.Claim):ubyte:this (FullOpts)
          -4 (-6.25 % of base) : 143779.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__2():this (FullOpts)
          -4 (-6.25 % of base) : 144078.dasm - System.SpanTests.SpanTests+<>c__DisplayClass104_0:<CtorArrayIntIntNegativeStart>b__0():this (FullOpts)
          -4 (-6.25 % of base) : 144354.dasm - System.SpanTests.SpanTests+<>c__DisplayClass105_0:<CtorArrayIntIntStartTooLarge>b__0():this (FullOpts)
          -4 (-6.25 % of base) : 143252.dasm - System.SpanTests.SpanTests+<>c__DisplayClass106_0:<CtorArrayIntIntNegativeLength>b__0():this (FullOpts)
          -4 (-6.25 % of base) : 144446.dasm - System.SpanTests.SpanTests+<>c__DisplayClass107_0:<CtorArrayIntIntStartAndLengthTooLarge>b__0():this (FullOpts)
          -4 (-6.25 % of base) : 144447.dasm - System.SpanTests.SpanTests+<>c__DisplayClass107_0:<CtorArrayIntIntStartAndLengthTooLarge>b__1():this (FullOpts)
          -4 (-6.25 % of base) : 144449.dasm - System.SpanTests.SpanTests+<>c__DisplayClass107_0:<CtorArrayIntIntStartAndLengthTooLarge>b__3():this (FullOpts)
          -4 (-6.25 % of base) : 144450.dasm - System.SpanTests.SpanTests+<>c__DisplayClass107_0:<CtorArrayIntIntStartAndLengthTooLarge>b__4():this (FullOpts)


realworld.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: 15905768 (overridden on cmd)
Total bytes of diff: 15907048 (overridden on cmd)
Total bytes of delta: 1280 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         224 : 5082.dasm (58.95 % of base)
         108 : 22519.dasm (2.33 % of base)
          72 : 5797.dasm (4.79 % of base)
          64 : 9181.dasm (3.16 % of base)
          48 : 12396.dasm (3.33 % of base)
          36 : 27172.dasm (8.57 % of base)
          32 : 2051.dasm (3.48 % of base)
          32 : 22536.dasm (2.07 % of base)
          28 : 10702.dasm (25.93 % of base)
          28 : 24410.dasm (5.88 % of base)
          28 : 10660.dasm (2.24 % of base)
          28 : 18548.dasm (0.91 % of base)
          28 : 10705.dasm (3.83 % of base)
          24 : 19426.dasm (0.36 % of base)
          24 : 22423.dasm (1.52 % of base)
          24 : 22685.dasm (2.00 % of base)
          24 : 229.dasm (3.77 % of base)
          24 : 25342.dasm (2.88 % of base)
          24 : 25472.dasm (1.14 % of base)
          24 : 1025.dasm (2.97 % of base)

Top file improvements (bytes):
         -12 : 3719.dasm (-1.36 % of base)
          -8 : 19715.dasm (-0.21 % of base)
          -8 : 13681.dasm (-0.25 % of base)
          -8 : 7191.dasm (-1.14 % of base)
          -4 : 11614.dasm (-0.57 % of base)
          -4 : 1325.dasm (-0.36 % of base)
          -4 : 13381.dasm (-0.34 % of base)
          -4 : 13589.dasm (-0.31 % of base)
          -4 : 14817.dasm (-0.74 % of base)
          -4 : 15377.dasm (-0.20 % of base)
          -4 : 15462.dasm (-0.85 % of base)
          -4 : 21309.dasm (-0.27 % of base)
          -4 : 2397.dasm (-0.36 % of base)
          -4 : 2441.dasm (-0.27 % of base)
          -4 : 27777.dasm (-0.12 % of base)
          -4 : 3664.dasm (-2.04 % of base)
          -4 : 3797.dasm (-0.57 % of base)
          -4 : 8822.dasm (-0.27 % of base)
          -4 : 111.dasm (-2.04 % of base)
          -4 : 13530.dasm (-2.13 % of base)

62 total files with Code Size differences (32 improved, 30 regressed), 20 unchanged.

Top method regressions (bytes):
         224 (58.95 % of base) : 5082.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
         108 (2.33 % of base) : 22519.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
          72 (4.79 % of base) : 5797.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          64 (3.16 % of base) : 9181.dasm - FSharp.Compiler.ConstraintSolver:consistent@1992(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+TyparConstraint,FSharp.Compiler.TypedTree+TyparConstraint):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
          48 (3.33 % of base) : 12396.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
          36 (8.57 % of base) : 27172.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          32 (3.48 % of base) : 2051.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
          32 (2.07 % of base) : 22536.dasm - Microsoft.CodeAnalysis.MarshalAsAttributeDecoder`4[System.__Canon,System.__Canon,System.__Canon,short]:DecodeMarshalAsArray(byref,Microsoft.CodeAnalysis.CommonMessageProvider,ubyte) (FullOpts)
          28 (2.24 % of base) : 10660.dasm - FSharp.Compiler.AccessibilityLogic:IsPropInfoAccessible(FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.AccessibilityLogic+AccessorDomain,FSharp.Compiler.Infos+PropInfo):ubyte (FullOpts)
          28 (25.93 % of base) : 10702.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
          28 (3.83 % of base) : 10705.dasm - FSharp.Compiler.Infos+PropInfo:get_IsIndexer():ubyte:this (FullOpts)
          28 (0.91 % of base) : 18548.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
          28 (5.88 % of base) : 24410.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          24 (2.97 % of base) : 1025.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
          24 (1.52 % of base) : 22423.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeStructLayoutAttribute[System.__Canon,System.__Canon,System.__Canon,short](byref,int,int,Microsoft.CodeAnalysis.CommonMessageProvider) (FullOpts)
          24 (0.36 % of base) : 19426.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          24 (1.14 % of base) : 25472.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
          24 (2.00 % of base) : 22685.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData:DecodeMemberNotNullWhenAttribute[System.__Canon](Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref) (FullOpts)
          24 (3.77 % of base) : 229.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
          24 (2.88 % of base) : 25342.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:IndexOf(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],int,int,System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):int:this (FullOpts)

Top method improvements (bytes):
         -12 (-1.36 % of base) : 3719.dasm - System.Collections.Generic.Dictionary`2[Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+StructBox`1[System.__Canon],System.__Canon]:FindValue(Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+StructBox`1[System.__Canon]):byref:this (FullOpts)
          -8 (-0.21 % of base) : 19715.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:GetCustomAttribute(System.Reflection.Metadata.CustomAttributeHandle,byref,byref):ubyte:this (FullOpts)
          -8 (-0.25 % of base) : 13681.dasm - Microsoft.ML.Trainers.SdcaMulticlassTrainerBase`1[System.__Canon]:CheckConvergence(Microsoft.ML.Runtime.IProgressChannel,int,Microsoft.ML.Trainers.FloatLabelCursor+Factory,Microsoft.ML.Trainers.SdcaTrainerBase`3+DualsTableBase[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Trainers.SdcaTrainerBase`3+IdToIdxLookup[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Data.VBuffer`1[float][],Microsoft.ML.Data.VBuffer`1[float][],float[],float[],float[],float[],long,double[],byref,byref):ubyte:this (FullOpts)
          -8 (-1.14 % of base) : 7191.dasm - System.Collections.Generic.Dictionary`2[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:FindValue(FSharp.Compiler.Text.Position):byref:this (FullOpts)
          -4 (-0.36 % of base) : 1325.dasm - BenchmarkDotNet.Engines.RunResults+<GetWorkloadResultMeasurements>d__18:MoveNext():ubyte:this (FullOpts)
          -4 (-0.88 % of base) : 11111.dasm - FSharp.Compiler.CompilerConfig:GetWarningNumber(FSharp.Compiler.Text.Range,System.String):Microsoft.FSharp.Core.FSharpOption`1[int] (FullOpts)
          -4 (-0.57 % of base) : 11060.dasm - FSharp.Compiler.Parser+_fsyacc_reductions@7366-478:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)
          -4 (-0.27 % of base) : 8822.dasm - FSharp.Compiler.PatternMatchCompilation:CompileFallThroughTree@1359(FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.TypedTreeOps+DisplayEnv,FSharp.Compiler.Import+ImportMap,Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.TypedTree+ValRef,Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.TypedTree+ValUseFlag,Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+TType],Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Text.Range,System.Tuple`2[FSharp.Compiler.TypedTree+Expr,FSharp.Compiler.TypedTree+TType]]]]],FSharp.Compiler.InfoReader+InfoReader,FSharp.Compiler.Text.Range,FSharp.Compiler.Text.Range,ubyte,FSharp.Compiler.PatternMatchCompilation+ActionOnFailure,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar],FSharp.Compiler.TypedTree+Val,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+Expr],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.TypedTreeOps+MatchBuilder,FSharp.Compiler.PatternMatchCompilation+TypedMatchClause[],int,Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.PatternMatchCompilation+SubExprOfInput,FSharp.Compiler.TypedTree+Expr],Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.PatternMatchCompilation+Pattern,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+DecisionTreeTest]],Microsoft.FSharp.Core.FSharpRef`1[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.PatternMatchCompilation+TypedMatchClause]],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.PatternMatchCompilation+Frontier],FSharp.Compiler.PatternMatchCompilation+Path,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.PatternMatchCompilation+RefutedSet],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+DecisionTreeCase]):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+DecisionTree] (FullOpts)
          -4 (-1.39 % of base) : 24637.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-0.12 % of base) : 27777.dasm - Microsoft.CodeAnalysis.CSharp.IteratorAndAsyncCaptureWalker:Analyze(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.Collections.OrderedSet`1[Microsoft.CodeAnalysis.CSharp.Symbol] (FullOpts)
          -4 (-1.64 % of base) : 24957.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:IsReceiverRefReadOnly(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
          -4 (-0.27 % of base) : 21309.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:FindMethodSymbolInSuperType(System.Reflection.Metadata.TypeDefinitionHandle,System.Reflection.Metadata.MethodDefinitionHandle):System.__Canon:this (FullOpts)
          -4 (-0.31 % of base) : 13589.dasm - Microsoft.ML.Transforms.RowShufflingTransformer+Cursor+<LoopProducerWorker>d__31:MoveNext():this (FullOpts)
          -4 (-0.34 % of base) : 13381.dasm - System.Collections.Concurrent.BlockingCollection`1[System.__Canon]:TryTakeWithNoTimeValidation(byref,int,System.Threading.CancellationToken,System.Threading.CancellationTokenSource):ubyte:this (FullOpts)
          -4 (-0.27 % of base) : 2441.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.Resources.ResourceLocator]:TryInsert(System.__Canon,System.Resources.ResourceLocator,ubyte):ubyte:this (FullOpts)
          -4 (-2.13 % of base) : 13530.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.96 % of base) : 223.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 111.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.13 % of base) : 5118.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 3664.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)

Top method regressions (percentages):
         224 (58.95 % of base) : 5082.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
          28 (25.93 % of base) : 10702.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
          20 (9.80 % of base) : 23464.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
          20 (8.62 % of base) : 24806.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
          36 (8.57 % of base) : 27172.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          20 (7.94 % of base) : 24903.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
          28 (5.88 % of base) : 24410.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          12 (5.08 % of base) : 28448.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
          72 (4.79 % of base) : 5797.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          20 (4.67 % of base) : 24994.dasm - Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:.ctor(Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (FullOpts)
          16 (4.17 % of base) : 20466.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
           8 (4.08 % of base) : 21705.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AttributeDataExtensions:DecodeNotNullIfNotNullAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.String (FullOpts)
          20 (3.94 % of base) : 27108.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetCorrespondingBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):int (FullOpts)
          28 (3.83 % of base) : 10705.dasm - FSharp.Compiler.Infos+PropInfo:get_IsIndexer():ubyte:this (FullOpts)
           8 (3.77 % of base) : 21726.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:DecodeMaybeNullWhenOrNotNullWhenOrDoesNotReturnIfAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.Nullable`1[ubyte] (FullOpts)
          24 (3.77 % of base) : 229.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
          12 (3.70 % of base) : 14843.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
          32 (3.48 % of base) : 2051.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
          48 (3.33 % of base) : 12396.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
          64 (3.16 % of base) : 9181.dasm - FSharp.Compiler.ConstraintSolver:consistent@1992(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+TyparConstraint,FSharp.Compiler.TypedTree+TyparConstraint):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)

Top method improvements (percentages):
          -4 (-2.13 % of base) : 13530.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.13 % of base) : 5118.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.08 % of base) : 15369.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 111.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 3664.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.96 % of base) : 223.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.92 % of base) : 23927.dasm - System.Collections.Generic.HashSet`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.64 % of base) : 24957.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:IsReceiverRefReadOnly(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
          -4 (-1.41 % of base) : 33055.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -4 (-1.39 % of base) : 24637.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -12 (-1.36 % of base) : 3719.dasm - System.Collections.Generic.Dictionary`2[Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+StructBox`1[System.__Canon],System.__Canon]:FindValue(Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+StructBox`1[System.__Canon]):byref:this (FullOpts)
          -8 (-1.14 % of base) : 7191.dasm - System.Collections.Generic.Dictionary`2[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:FindValue(FSharp.Compiler.Text.Position):byref:this (FullOpts)
          -4 (-0.88 % of base) : 11111.dasm - FSharp.Compiler.CompilerConfig:GetWarningNumber(FSharp.Compiler.Text.Range,System.String):Microsoft.FSharp.Core.FSharpOption`1[int] (FullOpts)
          -4 (-0.85 % of base) : 15462.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetResult():this (FullOpts)
          -4 (-0.77 % of base) : 13547.dasm - System.Threading.ThreadLocal`1[System.__Canon]:GrowTable(byref,int) (FullOpts)
          -4 (-0.74 % of base) : 14817.dasm - System.DomainNameHelper:IdnEquivalent(System.String):System.String (FullOpts)
          -4 (-0.57 % of base) : 3797.dasm - System.String:Equals(System.String,int):ubyte:this (FullOpts)
          -4 (-0.57 % of base) : 11060.dasm - FSharp.Compiler.Parser+_fsyacc_reductions@7366-478:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)
          -4 (-0.57 % of base) : 11614.dasm - System.String:Equals(System.String,System.String,int):ubyte (FullOpts)
          -4 (-0.48 % of base) : 32884.dasm - System.Management.Automation.Internal.ObjectStream:RaiseEvents():this (FullOpts)


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: 2949052 (overridden on cmd)
Total bytes of diff: 2949332 (overridden on cmd)
Total bytes of delta: 280 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          96 : 8911.dasm (4.71 % of base)
          40 : 14535.dasm (2.62 % of base)
          36 : 5571.dasm (7.69 % of base)
          24 : 6461.dasm (5.61 % of base)
          24 : 6467.dasm (6.67 % of base)
          16 : 14794.dasm (1.07 % of base)
          16 : 14356.dasm (3.25 % of base)
          12 : 16486.dasm (0.44 % of base)
          12 : 3673.dasm (0.44 % of base)
          12 : 4014.dasm (1.28 % of base)
           8 : 3169.dasm (0.51 % of base)
           8 : 16377.dasm (4.76 % of base)
           8 : 17745.dasm (1.59 % of base)
           8 : 6651.dasm (4.88 % of base)
           8 : 15394.dasm (1.61 % of base)
           4 : 1268.dasm (1.35 % of base)
           4 : 15950.dasm (1.25 % of base)
           4 : 16044.dasm (1.33 % of base)
           4 : 1207.dasm (0.78 % of base)
           4 : 448.dasm (0.16 % of base)

Top file improvements (bytes):
         -12 : 2491.dasm (-0.57 % of base)
          -8 : 5740.dasm (-0.41 % of base)
          -4 : 16131.dasm (-0.83 % of base)
          -4 : 2035.dasm (-1.22 % of base)
          -4 : 2445.dasm (-1.41 % of base)
          -4 : 2460.dasm (-1.89 % of base)
          -4 : 4869.dasm (-0.36 % of base)
          -4 : 12607.dasm (-2.22 % of base)
          -4 : 13755.dasm (-2.27 % of base)
          -4 : 1494.dasm (-0.84 % of base)
          -4 : 16185.dasm (-0.83 % of base)
          -4 : 16314.dasm (-1.61 % of base)
          -4 : 16580.dasm (-2.13 % of base)
          -4 : 16584.dasm (-3.45 % of base)
          -4 : 4591.dasm (-1.64 % of base)
          -4 : 5997.dasm (-0.83 % of base)
          -4 : 942.dasm (-2.08 % of base)

39 total files with Code Size differences (17 improved, 22 regressed), 23 unchanged.

Top method regressions (bytes):
          96 (4.71 % of base) : 8911.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
          40 (2.62 % of base) : 14535.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (FullOpts)
          36 (7.69 % of base) : 5571.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
          24 (5.61 % of base) : 6461.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
          24 (6.67 % of base) : 6467.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
          16 (3.25 % of base) : 14356.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (FullOpts)
          16 (1.07 % of base) : 14794.dasm - System.IO.KeyParser:TryParseTerminalInputSequence(ushort[],System.TerminalFormatStrings,byref,byref,int):ubyte (FullOpts)
          12 (0.44 % of base) : 16486.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
          12 (0.44 % of base) : 3673.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
          12 (1.28 % of base) : 4014.dasm - System.Reflection.Runtime.MethodInfos.RuntimeNamedMethodInfo`1[System.Reflection.Runtime.MethodInfos.NativeFormat.NativeFormatMethodCommon]:MakeGenericMethod(System.Type[]):System.Reflection.MethodInfo:this (FullOpts)
           8 (0.51 % of base) : 3169.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeSearcher`1+<GetMatchingCustomAttributesIterator>d__2[System.__Canon]:MoveNext():ubyte:this (FullOpts)
           8 (1.61 % of base) : 15394.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
           8 (1.59 % of base) : 17745.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
           8 (4.76 % of base) : 16377.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
           8 (4.88 % of base) : 6651.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
           4 (0.78 % of base) : 1207.dasm - System.Runtime.CompilerServices.ClassConstructorRunner:EnsureClassConstructorRun(ulong) (FullOpts)
           4 (0.78 % of base) : 15998.dasm - System.Runtime.CompilerServices.ClassConstructorRunner:EnsureClassConstructorRun(ulong) (FullOpts)
           4 (1.25 % of base) : 15950.dasm - System.Text.DecoderExceptionFallbackBuffer:Throw(ubyte[],int) (FullOpts)
           4 (1.27 % of base) : 1072.dasm - System.Text.DecoderExceptionFallbackBuffer:Throw(ubyte[],int) (FullOpts)
           4 (1.35 % of base) : 1268.dasm - System.Text.DecoderFallbackBuffer:ThrowLastBytesRecursive(ubyte[]) (FullOpts)

Top method improvements (bytes):
         -12 (-0.57 % of base) : 2491.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:TryInsert(System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo,ubyte):ubyte:this (FullOpts)
          -8 (-0.41 % of base) : 5740.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
          -4 (-2.08 % of base) : 942.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.89 % of base) : 2460.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.22 % of base) : 12607.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.27 % of base) : 13755.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.61 % of base) : 16314.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -4 (-1.64 % of base) : 4591.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -4 (-1.22 % of base) : 2035.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -4 (-2.13 % of base) : 16580.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -4 (-1.41 % of base) : 2445.dasm - System.Globalization.CompareInfo:IndexOf(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -4 (-3.45 % of base) : 16584.dasm - System.Globalization.CompareInfo:IndexOf(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -4 (-0.36 % of base) : 4869.dasm - System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly:UncachedGetTypeCoreCaseSensitive(System.String):System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo:this (FullOpts)
          -4 (-0.83 % of base) : 16131.dasm - System.String:Equals(System.String,int):ubyte:this (FullOpts)
          -4 (-0.84 % of base) : 1494.dasm - System.String:Equals(System.String,int):ubyte:this (FullOpts)
          -4 (-0.83 % of base) : 16185.dasm - System.String:Equals(System.String,System.String,int):ubyte (FullOpts)
          -4 (-0.83 % of base) : 5997.dasm - System.String:Equals(System.String,System.String,int):ubyte (FullOpts)

Top method regressions (percentages):
          36 (7.69 % of base) : 5571.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
          24 (6.67 % of base) : 6467.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
          24 (5.61 % of base) : 6461.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
           8 (4.88 % of base) : 6651.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
           8 (4.76 % of base) : 16377.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
          96 (4.71 % of base) : 8911.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
          16 (3.25 % of base) : 14356.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (FullOpts)
          40 (2.62 % of base) : 14535.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (FullOpts)
           8 (1.61 % of base) : 15394.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
           8 (1.59 % of base) : 17745.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
           4 (1.35 % of base) : 1268.dasm - System.Text.DecoderFallbackBuffer:ThrowLastBytesRecursive(ubyte[]) (FullOpts)
           4 (1.33 % of base) : 16044.dasm - System.Text.DecoderFallbackBuffer:ThrowLastBytesRecursive(ubyte[]) (FullOpts)
          12 (1.28 % of base) : 4014.dasm - System.Reflection.Runtime.MethodInfos.RuntimeNamedMethodInfo`1[System.Reflection.Runtime.MethodInfos.NativeFormat.NativeFormatMethodCommon]:MakeGenericMethod(System.Type[]):System.Reflection.MethodInfo:this (FullOpts)
           4 (1.27 % of base) : 1072.dasm - System.Text.DecoderExceptionFallbackBuffer:Throw(ubyte[],int) (FullOpts)
           4 (1.25 % of base) : 15950.dasm - System.Text.DecoderExceptionFallbackBuffer:Throw(ubyte[],int) (FullOpts)
          16 (1.07 % of base) : 14794.dasm - System.IO.KeyParser:TryParseTerminalInputSequence(ushort[],System.TerminalFormatStrings,byref,byref,int):ubyte (FullOpts)
           4 (0.78 % of base) : 1207.dasm - System.Runtime.CompilerServices.ClassConstructorRunner:EnsureClassConstructorRun(ulong) (FullOpts)
           4 (0.78 % of base) : 15998.dasm - System.Runtime.CompilerServices.ClassConstructorRunner:EnsureClassConstructorRun(ulong) (FullOpts)
           8 (0.51 % of base) : 3169.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeSearcher`1+<GetMatchingCustomAttributesIterator>d__2[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          12 (0.44 % of base) : 16486.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)

Top method improvements (percentages):
          -4 (-3.45 % of base) : 16584.dasm - System.Globalization.CompareInfo:IndexOf(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -4 (-2.27 % of base) : 13755.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.22 % of base) : 12607.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.13 % of base) : 16580.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -4 (-2.08 % of base) : 942.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.89 % of base) : 2460.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.64 % of base) : 4591.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -4 (-1.61 % of base) : 16314.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -4 (-1.41 % of base) : 2445.dasm - System.Globalization.CompareInfo:IndexOf(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -4 (-1.22 % of base) : 2035.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -4 (-0.84 % of base) : 1494.dasm - System.String:Equals(System.String,int):ubyte:this (FullOpts)
          -4 (-0.83 % of base) : 16131.dasm - System.String:Equals(System.String,int):ubyte:this (FullOpts)
          -4 (-0.83 % of base) : 5997.dasm - System.String:Equals(System.String,System.String,int):ubyte (FullOpts)
          -4 (-0.83 % of base) : 16185.dasm - System.String:Equals(System.String,System.String,int):ubyte (FullOpts)
         -12 (-0.57 % of base) : 2491.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:TryInsert(System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo,ubyte):ubyte:this (FullOpts)
          -8 (-0.41 % of base) : 5740.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
          -4 (-0.36 % of base) : 4869.dasm - System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly:UncachedGetTypeCoreCaseSensitive(System.String):System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo:this (FullOpts)



linux x64

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

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

Overall (+5,892,963 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 13,734,994 +130
benchmarks.run_pgo.linux.x64.checked.mch 66,799,129 +1,835,927
benchmarks.run_tiered.linux.x64.checked.mch 17,373,065 +87
coreclr_tests.run.linux.x64.checked.mch 458,906,575 +644,503
libraries.crossgen2.linux.x64.checked.mch 38,668,470 +1,762
libraries.pmi.linux.x64.checked.mch 59,969,140 +174,992
libraries_tests.run.linux.x64.Release.mch 330,795,748 +2,763,181
librariestestsnotieredcompilation.run.linux.x64.Release.mch 129,997,542 +470,821
realworld.run.linux.x64.checked.mch 13,193,410 +1,198
smoke_tests.nativeaot.linux.x64.checked.mch 4,197,804 +362

FullOpts (+5,892,963 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 13,468,201 +130
benchmarks.run_pgo.linux.x64.checked.mch 46,969,372 +1,835,927
benchmarks.run_tiered.linux.x64.checked.mch 3,695,305 +87
coreclr_tests.run.linux.x64.checked.mch 132,348,440 +644,503
libraries.crossgen2.linux.x64.checked.mch 38,667,268 +1,762
libraries.pmi.linux.x64.checked.mch 59,856,270 +174,992
libraries_tests.run.linux.x64.Release.mch 146,406,227 +2,763,181
librariestestsnotieredcompilation.run.linux.x64.Release.mch 119,339,071 +470,821
realworld.run.linux.x64.checked.mch 12,804,304 +1,198
smoke_tests.nativeaot.linux.x64.checked.mch 4,196,893 +362

Example diffs

benchmarks.run.linux.x64.checked.mch

-6 (-2.99%) : 8205.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)

@@ -32,13 +32,13 @@ G_M7049_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rbx, rdi
        ; gcrRegs +[rbx]
                        ;; size=16 bbWeight=1 PerfScore 5.75
-G_M7049_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M7049_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      eax, dword ptr [rbx+0x24]
        mov      rdi, gword ptr [rbx+0x08]
        ; gcrRegs +[rdi]
        cmp      eax, dword ptr [rdi+0x38]
-       jne      G_M7049_IG10
-                       ;; size=16 bbWeight=1 PerfScore 8.00
+       jne      SHORT G_M7049_IG10
+                       ;; size=12 bbWeight=1 PerfScore 8.00
 G_M7049_IG03:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdi]
        cmp      dword ptr [rbx+0x20], 0
@@ -74,9 +74,8 @@ G_M7049_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0008 {r
        test     rsi, rsi
        je       SHORT G_M7049_IG03
        cmp      rsi, r14
-       jne      SHORT G_M7049_IG07
-       jmp      SHORT G_M7049_IG03
-                       ;; size=51 bbWeight=2 PerfScore 37.50
+       je       SHORT G_M7049_IG03
+                       ;; size=49 bbWeight=2 PerfScore 33.50
 G_M7049_IG07:        ; bbWeight=0.50, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        lea      rdi, bword ptr [rbx+0x10]
@@ -133,7 +132,7 @@ G_M7049_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=45 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 201, prolog size 16, PerfScore 92.50, instruction count 63, allocated bytes for code 201 (MethodHash=9cafe476) for method System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 195, prolog size 16, PerfScore 88.50, instruction count 62, allocated bytes for code 195 (MethodHash=9cafe476) for method System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-10 (-2.51%) : 6657.dasm - System.Reflection.Emit.RuntimeTypeBuilder:DefineFieldCore(System.String,System.Type,System.Type[],System.Type[],int):System.Reflection.Emit.FieldBuilder:this (FullOpts)

@@ -25,7 +25,7 @@
 ;* V14 tmp5         [V14,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V15 tmp6         [V15,T00] (  7, 19   )     ref  ->  [rbp-0x50]  class-hnd "Inline stloc first use temp" <System.Type>
 ;  V16 PSPSym       [V16,T15] (  1,  1   )    long  ->  [rbp-0x68]  do-not-enreg[V] "PSPSym"
-;  V17 cse0         [V17,T11] (  3,  3   )     ref  ->  [rbp-0x58]  "CSE - moderate"
+;  V17 cse0         [V17,T11] (  3,  3   )     ref  ->  [rbp-0x58]  spill-single-def "CSE - moderate"
 ;  V18 cse1         [V18,T13] (  3,  1.50)     ref  ->  rsi         "CSE - moderate"
 ;
 ; Lcl frame size = 72
@@ -141,7 +141,7 @@ G_M46147_IG07:        ; bbWeight=1, gcVars=0000000000001080 {V04 V06}, gcrefRegs
        call     [<unknown method>]
        ; gcrRegs -[rax rcx rdx rbx rsi rdi r8-r9 r12-r13 r15]
        ; gcr arg pop 0
-       jmp      SHORT G_M46147_IG12
+       jmp      SHORT G_M46147_IG13
                        ;; size=50 bbWeight=1 PerfScore 10.50
 G_M46147_IG08:        ; bbWeight=0, gcVars=0000000000001000 {V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; GC ptr vars -{V10}
@@ -152,22 +152,19 @@ G_M46147_IG08:        ; bbWeight=0, gcVars=0000000000001000 {V06}, gcrefRegs=000
 G_M46147_IG09:        ; bbWeight=2, gcVars=0000000000001880 {V04 V06 V17}, gcrefRegs=B009 {rax rbx r12 r13 r15}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rax rbx r12-r13 r15]
        ; GC ptr vars +{V04 V11 V17}
-       mov      rcx, gword ptr [rbp-0x58]
-       ; gcrRegs +[rcx]
        mov      gword ptr [rbp-0x50], rax
        ; GC ptr vars +{V15}
        mov      rdi, rax
        ; gcrRegs +[rdi]
-       mov      gword ptr [rbp-0x58], rcx
-       mov      rsi, rcx
+       mov      rsi, gword ptr [rbp-0x58]
        ; gcrRegs +[rsi]
        ; GC ptr vars -{V11}
        call     [System.Reflection.Emit.RuntimeTypeBuilder:IsTypeEqual(System.Type,System.Type):ubyte]
-       ; gcrRegs -[rax rcx rsi rdi]
+       ; gcrRegs -[rax rsi rdi]
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M46147_IG11
-                       ;; size=28 bbWeight=2 PerfScore 15.50
+       jne      SHORT G_M46147_IG12
+                       ;; size=21 bbWeight=2 PerfScore 13.00
 G_M46147_IG10:        ; bbWeight=4, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
        mov      rdi, gword ptr [rbp-0x50]
        ; gcrRegs +[rdi]
@@ -179,11 +176,13 @@ G_M46147_IG10:        ; bbWeight=4, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=
        ; gcr arg pop 0
        test     rax, rax
        jne      SHORT G_M46147_IG09
-       jmp      SHORT G_M46147_IG07
-                       ;; size=24 bbWeight=4 PerfScore 45.00
+                       ;; size=22 bbWeight=4 PerfScore 37.00
 G_M46147_IG11:        ; bbWeight=0.50, gcVars=0000000000001080 {V04 V06}, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax]
        ; GC ptr vars -{V17}
+       jmp      SHORT G_M46147_IG07
+                       ;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M46147_IG12:        ; bbWeight=0.50, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
        test     r14b, 16
        jne      SHORT G_M46147_IG07
        lea      rdi, bword ptr [rbx+0x50]
@@ -193,15 +192,15 @@ G_M46147_IG11:        ; bbWeight=0.50, gcVars=0000000000001080 {V04 V06}, gcrefR
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rsi]
        ; byrRegs -[rdi]
-       jmp      G_M46147_IG07
-                       ;; size=23 bbWeight=0.50 PerfScore 2.50
-G_M46147_IG12:        ; bbWeight=1, gcVars=0000000000001004 {V06 V10}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       jmp      SHORT G_M46147_IG07
+                       ;; size=20 bbWeight=0.50 PerfScore 2.50
+G_M46147_IG13:        ; bbWeight=1, gcVars=0000000000001004 {V06 V10}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rbx r12-r13 r15]
        ; GC ptr vars -{V04} +{V02 V10}
        cmp      byte  ptr [rbp-0x30], 0
-       je       SHORT G_M46147_IG14
+       je       SHORT G_M46147_IG15
                        ;; size=6 bbWeight=1 PerfScore 3.00
-G_M46147_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46147_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rdi, gword ptr [rbp-0x40]
        ; gcrRegs +[rdi]
        ; GC ptr vars -{V02 V06}
@@ -209,11 +208,11 @@ G_M46147_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ; gcrRegs -[rdi]
        ; gcr arg pop 0
                        ;; size=9 bbWeight=0.50 PerfScore 1.00
-G_M46147_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46147_IG15:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rax, gword ptr [rbp-0x48]
        ; gcrRegs +[rax]
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M46147_IG15:        ; bbWeight=1, epilog, nogc, extend
+G_M46147_IG16:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 72
        pop      rbx
        pop      r12
@@ -223,7 +222,7 @@ G_M46147_IG15:        ; bbWeight=1, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=1 PerfScore 4.25
-G_M46147_IG16:        ; bbWeight=0, gcVars=0000000000001000 {V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M46147_IG17:        ; bbWeight=0, gcVars=0000000000001000 {V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
        ; gcrRegs -[rax]
        ; GC ptr vars -{V10} +{V06 V12}
        push     rbp
@@ -237,9 +236,9 @@ G_M46147_IG16:        ; bbWeight=0, gcVars=0000000000001000 {V06}, gcrefRegs=000
        mov      qword ptr [rsp+0x08], rbp
        lea      rbp, [rbp+0x70]
                        ;; size=27 bbWeight=0 PerfScore 0.00
-G_M46147_IG17:        ; bbWeight=0, gcVars=0000000000001000 {V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M46147_IG18:        ; bbWeight=0, gcVars=0000000000001000 {V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
        cmp      byte  ptr [rbp-0x30], 0
-       je       SHORT G_M46147_IG18
+       je       SHORT G_M46147_IG19
        mov      rdi, gword ptr [rbp-0x40]
        ; gcrRegs +[rdi]
        ; GC ptr vars -{V06 V12}
@@ -247,10 +246,10 @@ G_M46147_IG17:        ; bbWeight=0, gcVars=0000000000001000 {V06}, gcrefRegs=000
        ; gcrRegs -[rdi]
        ; gcr arg pop 0
                        ;; size=15 bbWeight=0 PerfScore 0.00
-G_M46147_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46147_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0 PerfScore 0.00
-G_M46147_IG19:        ; bbWeight=0, funclet epilog, nogc, extend
+G_M46147_IG20:        ; bbWeight=0, funclet epilog, nogc, extend
        add      rsp, 24
        pop      rbx
        pop      r12
@@ -261,7 +260,7 @@ G_M46147_IG19:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=15 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 398, prolog size 42, PerfScore 126.62, instruction count 118, allocated bytes for code 398 (MethodHash=832e4bbc) for method System.Reflection.Emit.RuntimeTypeBuilder:DefineFieldCore(System.String,System.Type,System.Type[],System.Type[],int):System.Reflection.Emit.FieldBuilder:this (FullOpts)
+; Total bytes of code 388, prolog size 42, PerfScore 117.12, instruction count 116, allocated bytes for code 388 (MethodHash=832e4bbc) for method System.Reflection.Emit.RuntimeTypeBuilder:DefineFieldCore(System.String,System.Type,System.Type[],System.Type[],int):System.Reflection.Emit.FieldBuilder:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -300,4 +299,4 @@ Unwind Info:
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
 *************** EH table for System.Reflection.Emit.RuntimeTypeBuilder:DefineFieldCore(System.String,System.Type,System.Type[],System.Type[],int):System.Reflection.Emit.FieldBuilder:this
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M46147_IG03..G_M46147_IG12) handled by [G_M46147_IG16..END) (fault)
+EH#0: try [G_M46147_IG03..G_M46147_IG13) handled by [G_M46147_IG17..END) (fault)

-2 (-2.47%) : 4585.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)

@@ -53,9 +53,8 @@ G_M14385_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0086 {rcx rdx r
        cmp      eax, 110
        je       SHORT G_M14385_IG10
        cmp      eax, 114
-       jne      SHORT G_M14385_IG08
-       jmp      SHORT G_M14385_IG06
-                       ;; size=12 bbWeight=2 PerfScore 9.00
+       je       SHORT G_M14385_IG03
+                       ;; size=10 bbWeight=2 PerfScore 5.00
 G_M14385_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0086 {rcx rdx rdi}, byref, isz
        cmp      eax, 120
        jne      SHORT G_M14385_IG11
@@ -77,7 +76,7 @@ G_M14385_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 81, prolog size 4, PerfScore 36.12, instruction count 29, allocated bytes for code 81 (MethodHash=44f4c7ce) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
+; Total bytes of code 79, prolog size 4, PerfScore 32.12, instruction count 28, allocated bytes for code 79 (MethodHash=44f4c7ce) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:

+19 (+6.76%) : 29150.dasm - System.Collections.IterateForEach`1[System.Canon]:FrozenSet():System.Canon:this (FullOpts)

@@ -27,10 +27,10 @@
 ;  V16 tmp11        [V16,T02] (  3,  6   )     ref  ->  rax         single-def "argument with side effect"
 ;  V17 PSPSym       [V17,T10] (  1,  1   )    long  ->  [rbp-0x30]  do-not-enreg[V] "PSPSym"
 ;* V18 cse0         [V18,T11] (  0,  0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;  V19 cse1         [V19,T09] (  5,  2.20)    long  ->  rax         hoist multi-def "CSE - aggressive"
-;* V20 rat0         [V20,T05] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V19 cse1         [V19,T09] (  6,  3.20)    long  ->  rax         hoist multi-def "CSE - aggressive"
+;  V20 rat0         [V20,T05] (  2,  4   )    long  ->  rsi         "Spilling to split statement for tree"
 ;* V21 rat1         [V21,T08] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V22 rat2         [V22,T03] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V22 rat2         [V22,T03] (  2,  4   )    long  ->  rsi         "fgMakeTemp is creating a new local variable"
 ;  V23 rat3         [V23,T04] (  3,  5.60)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
 ;  V24 rat4         [V24,T12] (  3,  0   )    long  ->  rax         "Spilling to split statement for tree"
 ;  V25 rat5         [V25,T13] (  3,  0   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
@@ -71,8 +71,14 @@ G_M17622_IG03:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      rdi, gword ptr [rbp-0x28]
        ; gcrRegs +[rdi]
        mov      rax, qword ptr [rdi]
+       mov      rsi, rax
+       mov      rsi, qword ptr [rsi+0x38]
+       mov      rsi, qword ptr [rsi]
+       mov      rsi, qword ptr [rsi+0x20]
+       test     rsi, rsi
+       jne      SHORT G_M17622_IG05
        jmp      SHORT G_M17622_IG05
-                       ;; size=9 bbWeight=1 PerfScore 5.00
+                       ;; size=28 bbWeight=1 PerfScore 12.50
 G_M17622_IG04:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbx rdi]
        mov      esi, dword ptr [rbp-0x18]
@@ -196,7 +202,7 @@ G_M17622_IG19:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 281, prolog size 33, PerfScore 161.70, instruction count 88, allocated bytes for code 281 (MethodHash=5937bb29) for method System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
+; Total bytes of code 300, prolog size 33, PerfScore 169.20, instruction count 94, allocated bytes for code 300 (MethodHash=5937bb29) for method System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+17 (+8.21%) : 9706.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)

@@ -20,10 +20,10 @@
 ;  V09 tmp7         [V09,T05] (  4,  4   )     int  ->  rcx         "Inline stloc first use temp"
 ;  V10 tmp8         [V10,T11] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;  V11 PSPSym       [V11,T10] (  1,  1   )    long  ->  [rbp-0x30]  do-not-enreg[V] "PSPSym"
-;  V12 cse0         [V12,T07] (  4,  1.50)    long  ->  rbx         multi-def "CSE - aggressive"
-;* V13 rat0         [V13,T04] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V12 cse0         [V12,T07] (  5,  2.50)    long  ->  rbx         multi-def "CSE - aggressive"
+;  V13 rat0         [V13,T04] (  2,  4   )    long  ->  rax         "Spilling to split statement for tree"
 ;* V14 rat1         [V14,T09] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V15 rat2         [V15,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V15 rat2         [V15,T02] (  2,  4   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 40
 
@@ -42,7 +42,12 @@ G_M44994_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
 G_M44994_IG02:        ; bbWeight=1, gcVars=0000000000000009 {V00 V01}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rsi rdi]
        mov      rbx, qword ptr [rdi]
-                       ;; size=3 bbWeight=1 PerfScore 2.00
+       mov      rax, rbx
+       mov      rax, qword ptr [rax+0x38]
+       mov      rax, qword ptr [rax]
+       mov      rax, qword ptr [rax+0x68]
+       test     rax, rax
+                       ;; size=20 bbWeight=1 PerfScore 8.50
 G_M44994_IG03:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdi]
        mov      rdx, rsi
@@ -149,7 +154,7 @@ G_M44994_IG12:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 207, prolog size 27, PerfScore 41.88, instruction count 64, allocated bytes for code 207 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
+; Total bytes of code 224, prolog size 27, PerfScore 48.38, instruction count 69, allocated bytes for code 224 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+31 (+30.39%) : 27309.dasm - System.Collections.IterateForEach`1[System.Canon]:ImmutableStack():System.Canon:this (FullOpts)

@@ -8,7 +8,7 @@
 ; 0 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  3,  3   )     ref  ->  rbx         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+;  V00 this         [V00,T01] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
 ;  V01 loc0         [V01,T04] (  3,  4   )     ref  ->  r15         ld-addr-op class-hnd <System.__Canon>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
 ;* V03 loc2         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op single-def <System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]>
@@ -23,11 +23,11 @@
 ;  V12 tmp7         [V12,T06] (  2,  3   )     ref  ->  r14         "field V03._originalStack (fldOffset=0x0)" P-INDEP
 ;  V13 tmp8         [V13,T00] (  8, 27   )     ref  ->  r13         "field V03._remainingStack (fldOffset=0x8)" P-INDEP
 ;* V14 cse0         [V14,T07] (  0,  0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;* V15 rat0         [V15,T03] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V15 rat0         [V15,T03] (  2,  4   )    long  ->  rdi         "Spilling to split statement for tree"
 ;* V16 rat1         [V16,T05] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V17 rat2         [V17,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V17 rat2         [V17,T02] (  2,  4   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M64146_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
@@ -35,10 +35,12 @@ G_M64146_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     r14
        push     r13
        push     rbx
-       lea      rbp, [rsp+0x20]
+       sub      rsp, 16
+       lea      rbp, [rsp+0x30]
+       mov      qword ptr [rbp-0x28], rdi
        mov      rbx, rdi
        ; gcrRegs +[rbx]
-                       ;; size=16 bbWeight=1 PerfScore 5.75
+                       ;; size=24 bbWeight=1 PerfScore 7.00
 G_M64146_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        xor      r15, r15
        ; gcrRegs +[r15]
@@ -51,8 +53,14 @@ G_M64146_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcrRegs +[r14]
        mov      r13, rdx
        ; gcrRegs +[r13]
+       mov      rdi, qword ptr [rbx]
+       mov      rdi, qword ptr [rdi+0x38]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       jne      SHORT G_M64146_IG04
        jmp      SHORT G_M64146_IG04
-                       ;; size=26 bbWeight=1 PerfScore 10.75
+                       ;; size=45 bbWeight=1 PerfScore 20.00
 G_M64146_IG03:        ; bbWeight=2, gcrefRegs=6008 {rbx r13 r14}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax rdx r15]
        mov      rdi, r13
@@ -94,15 +102,16 @@ G_M64146_IG08:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
        ; gcrRegs +[rax]
                        ;; size=3 bbWeight=1 PerfScore 0.25
 G_M64146_IG09:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 16
        pop      rbx
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=1 PerfScore 3.50
+                       ;; size=13 bbWeight=1 PerfScore 3.75
 
-; Total bytes of code 102, prolog size 13, PerfScore 88.75, instruction count 35, allocated bytes for code 102 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
+; Total bytes of code 133, prolog size 21, PerfScore 99.50, instruction count 44, allocated bytes for code 133 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -110,11 +119,12 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x08
-  CountOfUnwindCodes: 5
+  SizeOfProlog      : 0x0C
+  CountOfUnwindCodes: 6
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
+    CodeOffset: 0x0C UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 1 * 8 + 8 = 16 = 0x10
     CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r13 (13)
     CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)

benchmarks.run_pgo.linux.x64.checked.mch

-4 (-12.12%) : 91899.dasm - Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)

@@ -23,28 +23,24 @@ G_M32701_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byr
        ; byrRegs +[rdi]
        movzx    rax, byte  ptr [rdi+0x08]
        cmp      eax, 20
-       jne      SHORT G_M32701_IG04
+       je       SHORT G_M32701_IG05
                        ;; size=9 bbWeight=1 PerfScore 3.25
-G_M32701_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M32701_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rdi]
-       mov      eax, 1
-       jmp      SHORT G_M32701_IG05
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M32701_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        cmp      eax, 29
-       je       SHORT G_M32701_IG03
-       jmp      SHORT G_M32701_IG06
-                       ;; size=7 bbWeight=0.50 PerfScore 1.62
-G_M32701_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+       je       SHORT G_M32701_IG05
+       xor      eax, eax
+                       ;; size=7 bbWeight=0.50 PerfScore 0.75
+G_M32701_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        pop      rbp
        ret      
                        ;; size=2 bbWeight=1 PerfScore 1.50
-G_M32701_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-       xor      eax, eax
-       jmp      SHORT G_M32701_IG05
-                       ;; size=4 bbWeight=0.50 PerfScore 1.12
+G_M32701_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       mov      eax, 1
+       jmp      SHORT G_M32701_IG04
+                       ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 33, prolog size 4, PerfScore 8.75, instruction count 14, allocated bytes for code 33 (MethodHash=ed408042) for method Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
+; Total bytes of code 29, prolog size 4, PerfScore 6.75, instruction count 12, allocated bytes for code 29 (MethodHash=ed408042) for method Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:

-21 (-7.45%) : 46283.dasm - EMFloatClass:StickyShiftRightMant(EMFloatClass+InternalFPF,int) (Tier1)

@@ -14,160 +14,157 @@
 ;  V02 loc0         [V02,T06] (  9,  8.13)     int  ->  rax        
 ;  V03 loc1         [V03,T04] (  6, 20.34)  ushort  ->  rcx         ld-addr-op
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T09] (  3,  0.95)   byref  ->  rcx         "dup spill"
+;  V05 tmp1         [V05,T09] (  3,  0.95)   byref  ->  r10         "dup spill"
 ;  V06 tmp2         [V06,T02] ( 11, 34.73)     int  ->   r8         "Inline stloc first use temp"
-;  V07 tmp3         [V07,T01] (  8, 40.88)     ref  ->  rdx         class-hnd "Inlining Arg" <ushort[]>
-;  V08 tmp4         [V08,T00] ( 14, 45.33)  ushort  ->  r11         "Inline stloc first use temp"
-;  V09 tmp5         [V09,T05] (  4, 16.26)     int  ->  rbx         "Inline stloc first use temp"
-;  V10 tmp6         [V10,T10] (  2,  0.63)     ref  ->  rcx         "arr expr"
-;  V11 tmp7         [V11,T12] (  3,  0   )     ref  ->  rcx         "arr expr"
-;  V12 tmp8         [V12,T13] (  2,  0   )     ref  ->  rax         single-def "arr expr"
-;  V13 cse0         [V13,T11] (  8,  0.35)     int  ->   r9         multi-def "CSE - conservative"
-;  V14 cse1         [V14,T03] (  3, 24.15)    long  ->  r10         "CSE - aggressive"
+;  V07 tmp3         [V07,T01] (  8, 44.11)     ref  ->  rdx         class-hnd "Inlining Arg" <ushort[]>
+;  V08 tmp4         [V08,T00] ( 14, 45.33)  ushort  ->  r10         "Inline stloc first use temp"
+;  V09 tmp5         [V09,T05] (  4, 16.26)     int  ->  r11         "Inline stloc first use temp"
+;  V10 tmp6         [V10,T10] (  3,  0.95)     ref  ->  r10         "arr expr"
+;  V11 tmp7         [V11,T11] (  3,  0   )     ref  ->  rcx         "arr expr"
+;  V12 tmp8         [V12,T12] (  3,  0   )     ref  ->  rax         single-def "arr expr"
+;  V13 cse0         [V13,T03] (  3, 24.15)    long  ->   r9         "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M59627_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       push     rbx
-       push     rax
-       lea      rbp, [rsp+0x10]
-                       ;; size=8 bbWeight=1 PerfScore 3.50
+       mov      rbp, rsp
+                       ;; size=4 bbWeight=1 PerfScore 1.25
 G_M59627_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rdi]
        cmp      byte  ptr [rdi+0x12], 0
-       je       G_M59627_IG19
+       je       G_M59627_IG13
                        ;; size=10 bbWeight=1 PerfScore 4.00
 G_M59627_IG03:        ; bbWeight=1.00, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
        xor      eax, eax
        cmp      esi, 64
-       jl       G_M59627_IG18
+       jge      G_M59627_IG20
                        ;; size=11 bbWeight=1.00 PerfScore 1.50
-G_M59627_IG04:        ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       mov      rcx, gword ptr [rdi+0x08]
-       ; gcrRegs +[rcx]
-       mov      r9d, dword ptr [rcx+0x08]
-       cmp      eax, r9d
-       jae      G_M59627_IG20
-       mov      edx, eax
-       mov      word  ptr [rcx+2*rdx+0x10], 0
-       inc      eax
-       cmp      eax, 3
-       jl       SHORT G_M59627_IG04
-       mov      rax, gword ptr [rdi+0x08]
-       ; gcrRegs +[rax]
-       cmp      r9d, 3
-       jbe      G_M59627_IG20
-       mov      word  ptr [rax+0x16], 1
-                       ;; size=53 bbWeight=0 PerfScore 0.00
-G_M59627_IG05:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      rbp
-       ret      
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M59627_IG06:        ; bbWeight=2.04, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax rcx]
+G_M59627_IG04:        ; bbWeight=3.05, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+       cmp      eax, esi
+       jge      SHORT G_M59627_IG13
+                       ;; size=4 bbWeight=3.05 PerfScore 3.81
+G_M59627_IG05:        ; bbWeight=2.04, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
        xor      ecx, ecx
        mov      rdx, gword ptr [rdi+0x08]
        ; gcrRegs +[rdx]
        xor      r8d, r8d
        test     rdx, rdx
-       je       SHORT G_M59627_IG12
+       je       SHORT G_M59627_IG11
                        ;; size=14 bbWeight=2.04 PerfScore 7.65
-G_M59627_IG07:        ; bbWeight=0.01, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
-       mov      r9d, dword ptr [rdx+0x08]
-       cmp      r9d, 4
-       jl       SHORT G_M59627_IG12
-                       ;; size=10 bbWeight=0.01 PerfScore 0.04
+G_M59627_IG06:        ; bbWeight=1.63, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
+       cmp      dword ptr [rdx+0x08], 4
+       jl       SHORT G_M59627_IG11
+                       ;; size=6 bbWeight=1.63 PerfScore 6.53
+G_M59627_IG07:        ; bbWeight=8.05, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
+       mov      r9d, r8d
+       movzx    r10, word  ptr [rdx+2*r9+0x10]
+       mov      r11d, r10d
+       and      r11d, 1
+       sar      r10d, 1
+       movzx    r10, r10w
+       test     ecx, ecx
+       jne      SHORT G_M59627_IG10
+                       ;; size=27 bbWeight=8.05 PerfScore 38.24
 G_M59627_IG08:        ; bbWeight=8.05, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
-       mov      r10d, r8d
-       movzx    r11, word  ptr [rdx+2*r10+0x10]
-       mov      ebx, r11d
-       and      ebx, 1
-       sar      r11d, 1
-       movzx    r11, r11w
-       test     ecx, ecx
-       je       SHORT G_M59627_IG10
-                       ;; size=26 bbWeight=8.05 PerfScore 38.24
-G_M59627_IG09:        ; bbWeight=2.31, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref
-       or       r11d, 0x8000
-       movzx    r11, r11w
-                       ;; size=11 bbWeight=2.31 PerfScore 1.16
-G_M59627_IG10:        ; bbWeight=8.05, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
-       movzx    rcx, bx
-       mov      word  ptr [rdx+2*r10+0x10], r11w
+       movzx    rcx, r11w
+       mov      word  ptr [rdx+2*r9+0x10], r10w
        inc      r8d
        cmp      r8d, 4
-       jl       SHORT G_M59627_IG08
-                       ;; size=18 bbWeight=8.05 PerfScore 22.14
-G_M59627_IG11:        ; bbWeight=0.01, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+       jl       SHORT G_M59627_IG07
+                       ;; size=19 bbWeight=8.05 PerfScore 22.14
+G_M59627_IG09:        ; bbWeight=1.63, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdx]
-       jmp      SHORT G_M59627_IG15
-                       ;; size=2 bbWeight=0.01 PerfScore 0.03
-G_M59627_IG12:        ; bbWeight=0.08, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M59627_IG16
+                       ;; size=2 bbWeight=1.63 PerfScore 3.26
+G_M59627_IG10:        ; bbWeight=2.31, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rdx]
-       mov      r9d, dword ptr [rdx+0x08]
-       cmp      r8d, r9d
-       jae      SHORT G_M59627_IG20
-       mov      r11d, r8d
-       movzx    r11, word  ptr [rdx+2*r11+0x10]
-       mov      ebx, r11d
-       and      ebx, 1
-       sar      r11d, 1
-       movzx    r11, r11w
-       test     ecx, ecx
-       je       SHORT G_M59627_IG14
-                       ;; size=35 bbWeight=0.08 PerfScore 0.65
-G_M59627_IG13:        ; bbWeight=0.02, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref
-       or       r11d, 0x8000
-       movzx    r11, r11w
-                       ;; size=11 bbWeight=0.02 PerfScore 0.01
-G_M59627_IG14:        ; bbWeight=0.08, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
-       movzx    rcx, bx
+       or       r10d, 0x8000
+       movzx    r10, r10w
+       jmp      SHORT G_M59627_IG08
+                       ;; size=13 bbWeight=2.31 PerfScore 5.78
+G_M59627_IG11:        ; bbWeight=0.08, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
+       cmp      r8d, dword ptr [rdx+0x08]
+       jae      SHORT G_M59627_IG19
        mov      r10d, r8d
-       mov      word  ptr [rdx+2*r10+0x10], r11w
-       inc      r8d
-       cmp      r8d, 4
-       jl       SHORT G_M59627_IG12
-                       ;; size=21 bbWeight=0.08 PerfScore 0.24
-G_M59627_IG15:        ; bbWeight=2.04, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rdx]
+       movzx    r10, word  ptr [rdx+2*r10+0x10]
+       mov      r11d, r10d
+       and      r11d, 1
+       sar      r10d, 1
+       movzx    r10, r10w
        test     ecx, ecx
-       je       SHORT G_M59627_IG17
-                       ;; size=4 bbWeight=2.04 PerfScore 2.55
-G_M59627_IG16:        ; bbWeight=0.16, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       mov      rcx, gword ptr [rdi+0x08]
-       ; gcrRegs +[rcx]
-       cmp      r9d, 3
-       jbe      SHORT G_M59627_IG20
-       add      rcx, 22
-       ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
-       or       word  ptr [rcx], 1
-                       ;; size=18 bbWeight=0.16 PerfScore 1.03
-G_M59627_IG17:        ; bbWeight=2.04, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rcx]
-       inc      eax
-                       ;; size=2 bbWeight=2.04 PerfScore 0.51
-G_M59627_IG18:        ; bbWeight=3.05, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
-       cmp      eax, esi
-       jl       G_M59627_IG06
-                       ;; size=8 bbWeight=3.05 PerfScore 3.81
-G_M59627_IG19:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-       ; gcrRegs -[rdi]
-       add      rsp, 8
-       pop      rbx
+       je       SHORT G_M59627_IG15
+                       ;; size=33 bbWeight=0.08 PerfScore 0.71
+G_M59627_IG12:        ; bbWeight=0.02, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M59627_IG14
+                       ;; size=2 bbWeight=0.02 PerfScore 0.05
+G_M59627_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+       ; gcrRegs -[rdx rdi]
        pop      rbp
        ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
-G_M59627_IG20:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=2 bbWeight=1 PerfScore 1.50
+G_M59627_IG14:        ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs +[rdx rdi]
+       or       r10d, 0x8000
+       movzx    r10, r10w
+                       ;; size=11 bbWeight=0.02 PerfScore 0.01
+G_M59627_IG15:        ; bbWeight=0.08, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
+       movzx    rcx, r11w
+       mov      r11d, r8d
+       mov      word  ptr [rdx+2*r11+0x10], r10w
+       inc      r8d
+       cmp      r8d, 4
+       jl       SHORT G_M59627_IG11
+                       ;; size=22 bbWeight=0.08 PerfScore 0.24
+G_M59627_IG16:        ; bbWeight=2.04, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rdx]
+       test     ecx, ecx
+       jne      SHORT G_M59627_IG18
+                       ;; size=4 bbWeight=2.04 PerfScore 2.55
+G_M59627_IG17:        ; bbWeight=2.04, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       inc      eax
+       jmp      G_M59627_IG04
+                       ;; size=7 bbWeight=2.04 PerfScore 4.59
+G_M59627_IG18:        ; bbWeight=0.16, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+       mov      r10, gword ptr [rdi+0x08]
+       ; gcrRegs +[r10]
+       cmp      dword ptr [r10+0x08], 3
+       jbe      SHORT G_M59627_IG19
+       add      r10, 22
+       ; gcrRegs -[r10]
+       ; byrRegs +[r10]
+       or       word  ptr [r10], 1
+       jmp      SHORT G_M59627_IG17
+                       ;; size=22 bbWeight=0.16 PerfScore 1.78
+G_M59627_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rdi]
+       ; byrRegs -[r10]
        call     CORINFO_HELP_RNGCHKFAIL
...

-2 (-7.14%) : 39125.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)

@@ -15,14 +15,14 @@
 ;
 ; Lcl frame size = 0
 
-G_M23529_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M23529_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rbp
        mov      rbp, rsp
                        ;; size=4 bbWeight=1 PerfScore 1.25
 G_M23529_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi]
        test     rsi, rsi
-       jne      SHORT G_M23529_IG06
+       jne      SHORT G_M23529_IG05
                        ;; size=5 bbWeight=1 PerfScore 1.25
 G_M23529_IG03:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        mov      rax, rsi
@@ -32,19 +32,18 @@ G_M23529_IG04:        ; bbWeight=1, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=2 bbWeight=1 PerfScore 1.50
-G_M23529_IG05:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M23529_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax]
+       cmp      qword ptr [rsi], rdi
+       je       SHORT G_M23529_IG03
+                       ;; size=5 bbWeight=0 PerfScore 0.00
+G_M23529_IG06:        ; bbWeight=0, epilog, nogc, extend
        pop      rbp
        tail.jmp [System.Runtime.CompilerServices.CastHelpers:ChkCastClassSpecial(ulong,System.Object):System.Object]
        ; gcr arg pop 0
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M23529_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, isz
-       cmp      qword ptr [rsi], rdi
-       jne      SHORT G_M23529_IG05
-       jmp      SHORT G_M23529_IG03
-                       ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 28, prolog size 4, PerfScore 4.25, instruction count 12, allocated bytes for code 28 (MethodHash=3733a416) for method System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
+; Total bytes of code 26, prolog size 4, PerfScore 4.25, instruction count 11, allocated bytes for code 26 (MethodHash=3733a416) for method System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
 ; ============================================================
 
 Unwind Info:

+35 (+32.71%) : 153879.dasm - System.Collections.Generic.Stack1[System.ValueTuple3[System.Canon,System.Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)

@@ -9,7 +9,7 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  7,  6.71)     ref  ->  rbx         this class-hnd single-def <System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]>
+;  V00 this         [V00,T00] (  8,  7.61)     ref  ->  rbx         this class-hnd single-def <System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]>
 ;  V01 arg1         [V01,T02] (  4,  3   )   byref  ->  registers   single-def
 ;  V02 loc0         [V02,T04] (  4,  3.81)     int  ->  rdi        
 ;  V03 loc1         [V03,T05] (  3,  2.90)     ref  ->  rcx         class-hnd exact single-def <<unknown class>>
@@ -20,20 +20,22 @@
 ;* V08 tmp3         [V08    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04.Item2 (fldOffset=0x8)" P-INDEP
 ;* V09 tmp4         [V09    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04.Item3 (fldOffset=0x10)" P-INDEP
 ;  V10 cse0         [V10,T06] (  3,  2.71)   byref  ->  r15         "CSE - aggressive"
-;* V11 rat0         [V11,T03] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V11 rat0         [V11,T03] (  2,  3.61)    long  ->  rax         "Spilling to split statement for tree"
 ;* V12 rat1         [V12,T07] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V13 rat2         [V13,T01] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V13 rat2         [V13,T01] (  2,  3.61)    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M60687_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
        push     rbx
-       lea      rbp, [rsp+0x10]
+       sub      rsp, 16
+       lea      rbp, [rsp+0x20]
+       mov      qword ptr [rbp-0x18], rdi
        mov      rbx, rdi
        ; gcrRegs +[rbx]
-                       ;; size=12 bbWeight=1 PerfScore 3.75
+                       ;; size=20 bbWeight=1 PerfScore 5.00
 G_M60687_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
        ; byrRegs +[rsi]
        mov      edi, dword ptr [rbx+0x10]
@@ -41,7 +43,7 @@ G_M60687_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi},
        mov      rcx, gword ptr [rbx+0x08]
        ; gcrRegs +[rcx]
        cmp      dword ptr [rcx+0x08], edi
-       jbe      SHORT G_M60687_IG04
+       jbe      SHORT G_M60687_IG05
                        ;; size=14 bbWeight=1 PerfScore 8.25
 G_M60687_IG03:        ; bbWeight=0.90, gcrefRegs=000A {rcx rbx}, byrefRegs=0040 {rsi}, byref, isz
        inc      dword ptr [rbx+0x14]
@@ -57,23 +59,33 @@ G_M60687_IG03:        ; bbWeight=0.90, gcrefRegs=000A {rcx rbx}, byrefRegs=0040
        ; gcrRegs -[rcx]
        call     CORINFO_HELP_ASSIGN_BYREF
        call     CORINFO_HELP_ASSIGN_BYREF
-       jmp      SHORT G_M60687_IG06
-                       ;; size=40 bbWeight=0.90 PerfScore 10.16
-G_M60687_IG04:        ; bbWeight=0.10, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
-       ; byrRegs -[rdi r15]
+       mov      rax, qword ptr [rbx]
+       mov      rax, qword ptr [rax+0x38]
+       mov      rax, qword ptr [rax]
+       mov      rax, qword ptr [rax+0x20]
+       test     rax, rax
+       jne      SHORT G_M60687_IG07
+                       ;; size=57 bbWeight=0.90 PerfScore 16.71
+G_M60687_IG04:        ; bbWeight=0.18, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref, isz
+       ; byrRegs -[rsi rdi]
+       jmp      SHORT G_M60687_IG07
+                       ;; size=2 bbWeight=0.18 PerfScore 0.36
+G_M60687_IG05:        ; bbWeight=0.10, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
+       ; byrRegs -[r15] +[rsi]
        xor      eax, eax
        mov      qword ptr [rsi], rax
        mov      qword ptr [rsi+0x08], rax
        mov      qword ptr [rsi+0x10], rax
                        ;; size=13 bbWeight=0.10 PerfScore 0.31
-G_M60687_IG05:        ; bbWeight=0.10, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M60687_IG06:        ; bbWeight=0.10, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
        ; byrRegs -[rsi]
+       add      rsp, 16
        pop      rbx
        pop      r15
        pop      rbp
        ret      
-                       ;; size=5 bbWeight=0.10 PerfScore 0.24
-G_M60687_IG06:        ; bbWeight=0.90, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, gcvars, byref
+                       ;; size=9 bbWeight=0.10 PerfScore 0.27
+G_M60687_IG07:        ; bbWeight=0.90, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, gcvars, byref
        ; byrRegs +[r15]
        xor      eax, eax
        mov      qword ptr [r15], rax
@@ -81,14 +93,15 @@ G_M60687_IG06:        ; bbWeight=0.90, gcVars=0000000000000000 {}, gcrefRegs=000
        mov      qword ptr [r15+0x10], rax
        mov      eax, 1
                        ;; size=18 bbWeight=0.90 PerfScore 3.16
-G_M60687_IG07:        ; bbWeight=0.90, epilog, nogc, extend
+G_M60687_IG08:        ; bbWeight=0.90, epilog, nogc, extend
+       add      rsp, 16
        pop      rbx
        pop      r15
        pop      rbp
        ret      
-                       ;; size=5 bbWeight=0.90 PerfScore 2.26
+                       ;; size=9 bbWeight=0.90 PerfScore 2.48
 
-; Total bytes of code 107, prolog size 9, PerfScore 28.14, instruction count 38, allocated bytes for code 107 (MethodHash=056e12f0) for method System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
+; Total bytes of code 142, prolog size 17, PerfScore 36.55, instruction count 48, allocated bytes for code 142 (MethodHash=056e12f0) for method System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -96,11 +109,12 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x04
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x08
+  CountOfUnwindCodes: 4
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
+    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 1 * 8 + 8 = 16 = 0x10
     CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+25 (+33.78%) : 91430.dasm - System.Collections.Immutable.ImmutableArray1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray1+Builder[System.__Canon]):this (Tier1)

@@ -9,13 +9,13 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
-;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->  rsi         class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
+;  V01 arg1         [V01,T00] (  6,  5   )     ref  ->  rsi         class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V04 tmp2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.__Canon[]>
-;* V05 rat0         [V05,T03] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V05 rat0         [V05,T03] (  2,  4   )    long  ->  rdx         "Spilling to split statement for tree"
 ;* V06 rat1         [V06,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V07 rat2         [V07,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V07 rat2         [V07,T02] (  2,  4   )    long  ->  rdx         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -30,11 +30,36 @@ G_M61315_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=15 bbWeight=1 PerfScore 4.75
 G_M61315_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi]
-       cmp      dword ptr [rbx], ebx
+       mov      rdx, qword ptr [rbx]
+       mov      rdx, qword ptr [rdx+0x38]
+       mov      rdx, qword ptr [rdx]
+       mov      rdx, qword ptr [rdx+0x88]
+       test     rdx, rdx
+       je       SHORT G_M61315_IG06
+                       ;; size=22 bbWeight=1 PerfScore 9.25
+G_M61315_IG03:        ; bbWeight=0.80, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+       test     rsi, rsi
+       je       SHORT G_M61315_IG07
+                       ;; size=5 bbWeight=0.80 PerfScore 1.00
+G_M61315_IG04:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+       mov      edx, dword ptr [rsi+0x10]
+       mov      rsi, gword ptr [rsi+0x08]
+       mov      rdi, rbx
+       ; gcrRegs +[rdi]
+                       ;; size=10 bbWeight=1 PerfScore 4.25
+G_M61315_IG05:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 8
+       pop      rbx
+       pop      rbp
+       tail.jmp [System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.__Canon[],int):this]
+       ; gcr arg pop 0
+                       ;; size=12 bbWeight=1 PerfScore 3.25
+G_M61315_IG06:        ; bbWeight=0.20, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rdi]
        test     rsi, rsi
        jne      SHORT G_M61315_IG04
-                       ;; size=7 bbWeight=1 PerfScore 4.25
-G_M61315_IG03:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+                       ;; size=5 bbWeight=0.20 PerfScore 0.25
+G_M61315_IG07:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi]
        mov      edi, 959
        mov      rsi, 0xD1FFAB1E
@@ -48,22 +73,8 @@ G_M61315_IG03:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcr arg pop 0
        int3     
                        ;; size=30 bbWeight=0 PerfScore 0.00
-G_M61315_IG04:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rsi]
-       mov      edx, dword ptr [rsi+0x10]
-       mov      rsi, gword ptr [rsi+0x08]
-       mov      rdi, rbx
-       ; gcrRegs +[rdi]
-                       ;; size=10 bbWeight=1 PerfScore 4.25
-G_M61315_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      rbp
-       tail.jmp [System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.__Canon[],int):this]
-       ; gcr arg pop 0
-                       ;; size=12 bbWeight=1 PerfScore 3.25
 
-; Total bytes of code 74, prolog size 15, PerfScore 16.50, instruction count 22, allocated bytes for code 74 (MethodHash=e419107c) for method System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
+; Total bytes of code 99, prolog size 15, PerfScore 22.75, instruction count 29, allocated bytes for code 99 (MethodHash=e419107c) for method System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
 ; ============================================================
 
 Unwind Info:

+25 (+36.23%) : 91437.dasm - System.Collections.Immutable.ImmutableHashSet1[System.__Canon]:Union(System.Collections.Generic.IEnumerable1[System.Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.Canon]:this (Tier1)

@@ -8,13 +8,13 @@
 ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]>
-;  V01 arg1         [V01,T01] (  4,  4   )     ref  ->  rsi         class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.__Canon]>
+;  V00 this         [V00,T01] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]>
+;  V01 arg1         [V01,T00] (  5,  4   )     ref  ->  rsi         class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.__Canon]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V04 rat0         [V04,T03] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V04 rat0         [V04,T03] (  2,  4   )    long  ->  rdi         "Spilling to split statement for tree"
 ;* V05 rat1         [V05,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V06 rat2         [V06,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V06 rat2         [V06,T02] (  2,  4   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -29,11 +29,35 @@ G_M52093_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=15 bbWeight=1 PerfScore 4.75
 G_M52093_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi]
-       cmp      dword ptr [rbx], ebx
+       mov      rdi, qword ptr [rbx]
+       mov      rdi, qword ptr [rdi+0x38]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x80]
+       test     rdi, rdi
+       je       SHORT G_M52093_IG06
+                       ;; size=22 bbWeight=1 PerfScore 9.25
+G_M52093_IG03:        ; bbWeight=0.80, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+       test     rsi, rsi
+       je       SHORT G_M52093_IG07
+                       ;; size=5 bbWeight=0.80 PerfScore 1.00
+G_M52093_IG04:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+       mov      rdi, rbx
+       ; gcrRegs +[rdi]
+       xor      edx, edx
+                       ;; size=5 bbWeight=1 PerfScore 0.50
+G_M52093_IG05:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 8
+       pop      rbx
+       pop      rbp
+       tail.jmp [System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon],ubyte):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this]
+       ; gcr arg pop 0
+                       ;; size=12 bbWeight=1 PerfScore 3.25
+G_M52093_IG06:        ; bbWeight=0.20, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rdi]
        test     rsi, rsi
        jne      SHORT G_M52093_IG04
-                       ;; size=7 bbWeight=1 PerfScore 4.25
-G_M52093_IG03:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+                       ;; size=5 bbWeight=0.20 PerfScore 0.25
+G_M52093_IG07:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi]
        mov      edi, 0x48B
        mov      rsi, 0xD1FFAB1E
@@ -47,21 +71,8 @@ G_M52093_IG03:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcr arg pop 0
        int3     
                        ;; size=30 bbWeight=0 PerfScore 0.00
-G_M52093_IG04:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rsi]
-       mov      rdi, rbx
-       ; gcrRegs +[rdi]
-       xor      edx, edx
-                       ;; size=5 bbWeight=1 PerfScore 0.50
-G_M52093_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      rbp
-       tail.jmp [System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon],ubyte):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this]
-       ; gcr arg pop 0
-                       ;; size=12 bbWeight=1 PerfScore 3.25
 
-; Total bytes of code 69, prolog size 15, PerfScore 12.75, instruction count 21, allocated bytes for code 69 (MethodHash=22173482) for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
+; Total bytes of code 94, prolog size 15, PerfScore 19.00, instruction count 28, allocated bytes for code 94 (MethodHash=22173482) for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
 ; ============================================================
 
 Unwind Info:

benchmarks.run_tiered.linux.x64.checked.mch

-28 (-2.32%) : 30391.dasm - System.IO.Pipelines.Tests.PerfPipe+d_9:MoveNext():this (Tier1-OSR)

@@ -58,8 +58,8 @@
 ;* V46 tmp35        [V46    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V47 tmp36        [V47,T20] (  4,  8   )   byref  ->  rdi         single-def "Inlining Arg"
 ;* V48 tmp37        [V48    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op single-def "Inline ldloca(s) first use temp" <System.Threading.Tasks.VoidTaskResult>
-;  V49 tmp38        [V49,T10] ( 10, 20   )     ref  ->  r15         class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
-;  V50 tmp39        [V50,T24] (  2,  4   )  struct ( 8) rbx         "Inlining Arg" <System.Threading.Tasks.VoidTaskResult>
+;  V49 tmp38        [V49,T10] ( 10, 20   )     ref  ->  rbx         class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
+;  V50 tmp39        [V50,T24] (  2,  4   )  struct ( 8) r15         "Inlining Arg" <System.Threading.Tasks.VoidTaskResult>
 ;  V51 tmp40        [V51,T15] (  6, 12   )     ref  ->  r14         class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TplEventSource>
 ;* V52 tmp41        [V52    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V53 tmp42        [V53    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -117,18 +117,15 @@ G_M52295_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
 G_M52295_IG02:        ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, gcvars, byref
        ; GC ptr vars +{V00}
        cmp      dword ptr [rdi+0x14], 0x2710
-       jge      G_M52295_IG21
+       jge      G_M52295_IG22
                        ;; size=13 bbWeight=1 PerfScore 4.00
-G_M52295_IG03:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rdi]
-       mov      rdi, bword ptr [rbp+0x130]
-       ; byrRegs +[rdi]
+G_M52295_IG03:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, byref
        mov      rax, gword ptr [rdi+0x08]
        ; gcrRegs +[rax]
        mov      rdx, gword ptr [rbx+0x10]
        ; gcrRegs +[rdx]
        cmp      byte  ptr [rdx+0x24], 0
-       jne      G_M52295_IG08
+       jne      G_M52295_IG20
        lea      rsi, [rbp+0x78]
        mov      rdi, rax
        ; gcrRegs +[rdi]
@@ -139,7 +136,7 @@ G_M52295_IG03:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        call     [rax+0x28]<unknown method>
        ; gcrRegs -[rdx rdi]
        ; gcr arg pop 0
-                       ;; size=42 bbWeight=4 PerfScore 67.00
+                       ;; size=35 bbWeight=4 PerfScore 63.00
 G_M52295_IG04:        ; bbWeight=4, nogc, extend
        vmovdqu  ymm0, ymmword ptr [rbp+0x78]
        vmovdqu  ymmword ptr [rbp+0xA8], ymm0
@@ -150,7 +147,7 @@ G_M52295_IG05:        ; bbWeight=4, isz, extend
        mov      r15, gword ptr [rbp+0xA8]
        ; gcrRegs +[r15]
        test     r15, r15
-       je       G_M52295_IG09
+       je       G_M52295_IG08
        mov      rsi, r15
        ; gcrRegs +[rsi]
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.IO.Pipelines.ReadResult]
@@ -158,7 +155,7 @@ G_M52295_IG05:        ; bbWeight=4, isz, extend
        ; gcrRegs -[rsi] +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       jne      G_M52295_IG09
+       jne      G_M52295_IG08
        mov      rsi, r15
        ; gcrRegs +[rsi]
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
@@ -186,10 +183,10 @@ G_M52295_IG06:        ; bbWeight=4, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
        ; gcrRegs -[rsi] +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M52295_IG10
+       je       SHORT G_M52295_IG09
        test     dword ptr [rax+0x34], 0xD1FFAB1E
-       jne      G_M52295_IG11
-                       ;; size=36 bbWeight=4 PerfScore 27.00
+       jne      SHORT G_M52295_IG10
+                       ;; size=32 bbWeight=4 PerfScore 27.00
 G_M52295_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax rbx r15]
        xor      edi, edi
@@ -218,22 +215,16 @@ G_M52295_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [<unknown method>]
        ; gcrRegs -[rax rsi]
        ; gcr arg pop 0
-       jmp      G_M52295_IG31
+       jmp      G_M52295_IG32
                        ;; size=79 bbWeight=1 PerfScore 18.75
-G_M52295_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[r15]
-       mov      edi, 70
-       call     [System.ThrowHelper:ThrowObjectDisposedException(int)]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M52295_IG09:        ; bbWeight=4, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M52295_IG08:        ; bbWeight=4, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rbx r15]
+       ; byrRegs -[r15]
        test     r15, r15
-       jne      G_M52295_IG06
-       jmp      SHORT G_M52295_IG11
-                       ;; size=11 bbWeight=4 PerfScore 13.00
-G_M52295_IG10:        ; bbWeight=4, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+       jne      SHORT G_M52295_IG06
+       jmp      SHORT G_M52295_IG10
+                       ;; size=7 bbWeight=4 PerfScore 13.00
+G_M52295_IG09:        ; bbWeight=4, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        mov      rdi, r15
        ; gcrRegs +[rdi]
        movsx    rsi, word  ptr [rbp+0xB0]
@@ -242,16 +233,15 @@ G_M52295_IG10:        ; bbWeight=4, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
        ; gcrRegs -[rdi r15]
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M52295_IG11
-       jmp      G_M52295_IG07
-                       ;; size=33 bbWeight=4 PerfScore 39.00
-G_M52295_IG11:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       je       SHORT G_M52295_IG07
+                       ;; size=28 bbWeight=4 PerfScore 31.00
+G_M52295_IG10:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      r14, gword ptr [rbp+0xA8]
        ; gcrRegs +[r14]
        test     r14, r14
-       je       SHORT G_M52295_IG13
+       je       SHORT G_M52295_IG12
                        ;; size=12 bbWeight=8 PerfScore 18.00
-G_M52295_IG12:        ; bbWeight=4, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M52295_IG11:        ; bbWeight=4, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
        mov      rsi, r14
        ; gcrRegs +[rsi]
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.IO.Pipelines.ReadResult]
@@ -259,7 +249,7 @@ G_M52295_IG12:        ; bbWeight=4, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
        ; gcrRegs -[rsi] +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       jne      SHORT G_M52295_IG13
+       jne      SHORT G_M52295_IG12
        mov      rsi, r14
        ; gcrRegs +[rsi]
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
@@ -270,7 +260,7 @@ G_M52295_IG12:        ; bbWeight=4, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
        test     rax, rax
        setne    dil
        test     dil, dil
-       jne      SHORT G_M52295_IG16
+       jne      SHORT G_M52295_IG15
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        mov      rdi, rsi
@@ -278,21 +268,21 @@ G_M52295_IG12:        ; bbWeight=4, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
        call     [<unknown method>]
        ; gcrRegs -[rax rsi rdi]
        ; gcr arg pop 0
-       jmp      SHORT G_M52295_IG16
+       jmp      SHORT G_M52295_IG15
                        ;; size=76 bbWeight=4 PerfScore 50.00
-G_M52295_IG13:        ; bbWeight=8, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M52295_IG12:        ; bbWeight=8, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
        test     r14, r14
-       jne      SHORT G_M52295_IG16
+       jne      SHORT G_M52295_IG15
                        ;; size=5 bbWeight=8 PerfScore 10.00
-G_M52295_IG14:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, nogc
+G_M52295_IG13:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, nogc
        ; gcrRegs -[r14]
        vmovdqu  ymm0, ymmword ptr [rbp+0xB8]
        vmovdqu  ymmword ptr [rbp-0x40], ymm0
                        ;; size=13 bbWeight=4 PerfScore 20.00
-G_M52295_IG15:        ; bbWeight=4, isz, extend
-       jmp      SHORT G_M52295_IG19
+G_M52295_IG14:        ; bbWeight=4, isz, extend
+       jmp      SHORT G_M52295_IG18
                        ;; size=2 bbWeight=4 PerfScore 8.00
-G_M52295_IG16:        ; bbWeight=4, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M52295_IG15:        ; bbWeight=4, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[r14]
        mov      rsi, r14
        ; gcrRegs +[rsi]
@@ -303,11 +293,11 @@ G_M52295_IG16:        ; bbWeight=4, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
        mov      r13, rax
        ; gcrRegs +[r13]
        test     r13, r13
-       je       G_M52295_IG20
+       je       G_M52295_IG21
        mov      edi, dword ptr [r13+0x34]
        and      edi, 0xD1FFAB1E
        cmp      edi, 0xD1FFAB1E
-       je       SHORT G_M52295_IG17
+       je       SHORT G_M52295_IG16
        mov      rdi, r13
        ; gcrRegs +[rdi]
        xor      esi, esi
@@ -315,11 +305,11 @@ G_M52295_IG16:        ; bbWeight=4, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
        ; gcrRegs -[rax rdi r14]
        ; gcr arg pop 0
                        ;; size=59 bbWeight=4 PerfScore 40.00
-G_M52295_IG17:        ; bbWeight=4, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
+G_M52295_IG16:        ; bbWeight=4, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
        mov      edi, dword ptr [r13+0x34]
        and      edi, 0xD1FFAB1E
        cmp      edi, 0xD1FFAB1E
-       je       SHORT G_M52295_IG18
+       je       SHORT G_M52295_IG17
        mov      rdi, 0xD1FFAB1E
        ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
@@ -328,11 +318,11 @@ G_M52295_IG17:        ; bbWeight=4, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {},
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
                        ;; size=44 bbWeight=4 PerfScore 28.00
-G_M52295_IG18:        ; bbWeight=4, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, nogc
+G_M52295_IG17:        ; bbWeight=4, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, nogc
        vmovdqu  ymm0, ymmword ptr [r13+0x38]
        vmovdqu  ymmword ptr [rbp-0x40], ymm0
                        ;; size=11 bbWeight=4 PerfScore 24.00
-G_M52295_IG19:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M52295_IG18:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r13]
        mov      rsi, gword ptr [rbp-0x38]
        ; gcrRegs +[rsi]
@@ -349,12 +339,24 @@ G_M52295_IG19:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcr arg pop 0
        inc      dword ptr [r15+0x14]
        cmp      dword ptr [r15+0x14], 0x2710
-       jge      SHORT G_M52295_IG21
-       jmp      G_M52295_IG03
-                       ;; size=53 bbWeight=8 PerfScore 170.00
-G_M52295_IG20:        ; bbWeight=4, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[r14]
+       mov      rdi, r15
+       ; byrRegs +[rdi]
+       jl       G_M52295_IG03
+                       ;; size=55 bbWeight=8 PerfScore 156.00
+G_M52295_IG19:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
+       ; gcrRegs -[rbx]
        ; byrRegs -[r15]
+       jmp      SHORT G_M52295_IG22
+                       ;; size=2 bbWeight=1 PerfScore 2.00
+G_M52295_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; byrRegs -[rdi]
+       mov      edi, 70
+       call     [System.ThrowHelper:ThrowObjectDisposedException(int)]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M52295_IG21:        ; bbWeight=4, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[rbx r14]
        lea      rsi, [rbp-0x40]
        mov      rdi, r14
        ; gcrRegs +[rdi]
@@ -363,46 +365,44 @@ G_M52295_IG20:        ; bbWeight=4, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
        call     [r11]<unknown method>
        ; gcrRegs -[rdi r14]
        ; gcr arg pop 0
-       jmp      SHORT G_M52295_IG19
...

-19 (-2.02%) : 5470.dasm - System.Collections.Generic.Dictionary`2[int,System.Canon]:TryInsert(int,System.Canon,ubyte):ubyte:this (Tier1)

@@ -61,7 +61,7 @@
 ;  V50 cse4         [V50,T32] (  3,  1.50)     int  ->  rdi         "CSE - moderate"
 ;  V51 cse5         [V51,T02] ( 10, 23   )     int  ->  [rbp-0x44]  hoist multi-def "CSE - aggressive"
 ;  V52 cse6         [V52,T09] ( 13,  6.50)     ref  ->  rsi         multi-def "CSE - aggressive"
-;  V53 cse7         [V53,T19] (  6,  3   )     int  ->  r11         multi-def "CSE - moderate"
+;  V53 cse7         [V53,T19] (  6,  3   )     int  ->  rbx         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 72
 
@@ -188,15 +188,18 @@ G_M272_IG13:        ; bbWeight=1, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0000 {
        mov      edi, r10d
        lea      rax, bword ptr [r9+4*rdi+0x10]
        ; byrRegs +[rax]
+       mov      bword ptr [rbp-0x58], rax
+       ; GC ptr vars +{V08}
        mov      edx, dword ptr [rax]
        dec      edx
        mov      r9, gword ptr [rbp-0x50]
        test     r9, r9
        jne      G_M272_IG22
        mov      r10d, dword ptr [r12+0x08]
-                       ;; size=48 bbWeight=1 PerfScore 13.75
-G_M272_IG14:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0001 {rax}, gcvars, byref, isz
+                       ;; size=52 bbWeight=1 PerfScore 14.75
+G_M272_IG14:        ; bbWeight=4, gcVars=0000000000020000 {V08}, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[r9]
+       ; byrRegs -[rax]
        ; GC ptr vars -{V05 V22}
        cmp      r10d, edx
        jbe      G_M272_IG27
@@ -208,26 +211,27 @@ G_M272_IG14:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=5008 {rb
        cmp      dword ptr [rdi+0x08], ecx
        jne      SHORT G_M272_IG16
                        ;; size=28 bbWeight=4 PerfScore 32.00
-G_M272_IG15:        ; bbWeight=2, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0081 {rax rdi}, byref, isz
+G_M272_IG15:        ; bbWeight=2, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0080 {rdi}, byref, isz
        cmp      dword ptr [rdi+0x10], r15d
        je       SHORT G_M272_IG17
                        ;; size=6 bbWeight=2 PerfScore 8.00
-G_M272_IG16:        ; bbWeight=4, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0081 {rax rdi}, byref, isz
+G_M272_IG16:        ; bbWeight=4, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0080 {rdi}, byref, isz
        mov      edx, dword ptr [rdi+0x0C]
        mov      r8d, dword ptr [rbp-0x30]
        inc      r8d
-       cmp      r10d, r8d
        mov      dword ptr [rbp-0x30], r8d
+       cmp      r10d, r8d
        jb       G_M272_IG36
        jmp      SHORT G_M272_IG14
                        ;; size=25 bbWeight=4 PerfScore 30.00
-G_M272_IG17:        ; bbWeight=0.50, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {}, byref, isz
+G_M272_IG17:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rbx]
-       ; byrRegs -[rax rdi]
-       movzx    r11, r13b
-       cmp      r11d, 1
+       ; byrRegs -[rdi]
+       ; GC ptr vars -{V08}
+       movzx    rbx, r13b
+       cmp      ebx, 1
        jne      SHORT G_M272_IG19
-                       ;; size=10 bbWeight=0.50 PerfScore 0.75
+                       ;; size=9 bbWeight=0.50 PerfScore 0.75
 G_M272_IG18:        ; bbWeight=0.50, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {}, byref
        cmp      edx, r10d
        jae      G_M272_IG35
@@ -243,9 +247,9 @@ G_M272_IG18:        ; bbWeight=0.50, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {}
        jmp      G_M272_IG33
                        ;; size=33 bbWeight=0.50 PerfScore 3.12
 G_M272_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       cmp      r11d, 2
+       cmp      ebx, 2
        je       G_M272_IG37
-                       ;; size=10 bbWeight=0.50 PerfScore 0.62
+                       ;; size=9 bbWeight=0.50 PerfScore 0.62
 G_M272_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
@@ -259,10 +263,9 @@ G_M272_IG21:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M272_IG22:        ; bbWeight=4, gcVars=0000000000000800 {V05}, gcrefRegs=5208 {rbx r9 r12 r14}, byrefRegs=0001 {rax}, gcvars, byref, isz
+G_M272_IG22:        ; bbWeight=4, gcVars=0000000000020800 {V05 V08}, gcrefRegs=5208 {rbx r9 r12 r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx r9 r12 r14]
-       ; byrRegs +[rax]
-       ; GC ptr vars +{V05 V11}
+       ; GC ptr vars +{V05 V08 V11}
        mov      r10d, dword ptr [r12+0x08]
        mov      dword ptr [rbp-0x44], r10d
        cmp      r10d, edx
@@ -278,10 +281,8 @@ G_M272_IG22:        ; bbWeight=4, gcVars=0000000000000800 {V05}, gcrefRegs=5208
        cmp      dword ptr [r11+0x08], ecx
        jne      SHORT G_M272_IG24
                        ;; size=41 bbWeight=4 PerfScore 52.00
-G_M272_IG23:        ; bbWeight=2, gcVars=0000000000000840 {V05 V47}, gcrefRegs=5208 {rbx r9 r12 r14}, byrefRegs=0801 {rax r11}, gcvars, byref, isz
+G_M272_IG23:        ; bbWeight=2, gcVars=0000000000020840 {V05 V08 V47}, gcrefRegs=5208 {rbx r9 r12 r14}, byrefRegs=0800 {r11}, gcvars, byref, isz
        ; GC ptr vars -{V11}
-       mov      bword ptr [rbp-0x58], rax
-       ; GC ptr vars +{V08}
        mov      esi, dword ptr [r11+0x10]
        mov      rdi, r9
        ; gcrRegs +[rdi]
@@ -290,51 +291,45 @@ G_M272_IG23:        ; bbWeight=2, gcVars=0000000000000840 {V05 V47}, gcrefRegs=5
        ; byrRegs -[r11]
        call     [r11]<unknown method>
        ; gcrRegs -[rdi r9]
-       ; byrRegs -[rax]
        ; gcr arg pop 0
        test     eax, eax
-       mov      rax, bword ptr [rbp-0x58]
-       ; byrRegs +[rax]
        mov      r9, gword ptr [rbp-0x50]
        ; gcrRegs +[r9]
        mov      r11, bword ptr [rbp-0x68]
        ; byrRegs +[r11]
        jne      SHORT G_M272_IG26
-                       ;; size=43 bbWeight=2 PerfScore 22.00
-G_M272_IG24:        ; bbWeight=4, gcVars=0000000000000840 {V05 V47}, gcrefRegs=5208 {rbx r9 r12 r14}, byrefRegs=0801 {rax r11}, gcvars, byref, isz
-       ; GC ptr vars -{V08}
+                       ;; size=35 bbWeight=2 PerfScore 18.00
+G_M272_IG24:        ; bbWeight=4, gcrefRegs=5208 {rbx r9 r12 r14}, byrefRegs=0800 {r11}, byref, isz
        mov      edx, dword ptr [r11+0x0C]
-       mov      edi, edx
        mov      r8d, dword ptr [rbp-0x30]
        inc      r8d
        cmp      dword ptr [rbp-0x44], r8d
-       mov      dword ptr [rbp-0x30], r8d
-       mov      edx, edi
        jb       G_M272_IG36
+       mov      dword ptr [rbp-0x30], r8d
        jmp      SHORT G_M272_IG22
-                       ;; size=31 bbWeight=4 PerfScore 39.00
-G_M272_IG25:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0001 {rax}, gcvars, byref, isz
+                       ;; size=27 bbWeight=4 PerfScore 37.00
+G_M272_IG25:        ; bbWeight=2, gcVars=0000000000020000 {V08}, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[r9]
        ; byrRegs -[r11]
        ; GC ptr vars -{V05 V47}
        mov      r10d, dword ptr [rbp-0x44]
        jmp      SHORT G_M272_IG27
                        ;; size=6 bbWeight=2 PerfScore 6.00
-G_M272_IG26:        ; bbWeight=0.50, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {}, byref
+G_M272_IG26:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rbx]
-       ; byrRegs -[rax]
-       movzx    r11, r13b
-       cmp      r11d, 1
+       ; GC ptr vars -{V08}
+       movzx    rbx, r13b
+       cmp      ebx, 1
        mov      edx, dword ptr [rbp-0x34]
        mov      r10d, dword ptr [rbp-0x44]
        je       G_M272_IG18
-       cmp      r11d, 2
+       cmp      ebx, 2
        je       G_M272_IG37
        jmp      G_M272_IG20
-                       ;; size=36 bbWeight=0.50 PerfScore 3.38
-G_M272_IG27:        ; bbWeight=0.50, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0001 {rax}, byref, isz
+                       ;; size=34 bbWeight=0.50 PerfScore 3.38
+G_M272_IG27:        ; bbWeight=0.50, gcVars=0000000000020000 {V08}, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx]
-       ; byrRegs +[rax]
+       ; GC ptr vars +{V08}
        cmp      dword ptr [rbx+0x40], 0
        jle      SHORT G_M272_IG29
        mov      edi, dword ptr [rbx+0x3C]
@@ -348,21 +343,15 @@ G_M272_IG27:        ; bbWeight=0.50, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=000
        add      edi, -3
        cmp      edi, -1
        jge      SHORT G_M272_IG28
-       mov      bword ptr [rbp-0x58], rax
-       ; GC ptr vars +{V08}
        mov      rdi, 0xD1FFAB1E
        ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
-       ; byrRegs -[rax]
        ; gcr arg pop 0
-       mov      rax, bword ptr [rbp-0x58]
-       ; byrRegs +[rax]
-                       ;; size=78 bbWeight=0.50 PerfScore 9.12
-G_M272_IG28:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0001 {rax}, gcvars, byref
-       ; GC ptr vars -{V08}
+                       ;; size=70 bbWeight=0.50 PerfScore 8.12
+G_M272_IG28:        ; bbWeight=0.50, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0000 {}, byref
        mov      edi, dword ptr [rbx+0x3C]
        cmp      edi, dword ptr [rbp-0x44]
        jae      G_M272_IG35
@@ -375,14 +364,14 @@ G_M272_IG28:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=5008
        dec      dword ptr [rbx+0x40]
        jmp      G_M272_IG32
                        ;; size=40 bbWeight=0.50 PerfScore 7.12
-G_M272_IG29:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0001 {rax}, byref, isz
+G_M272_IG29:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[r12]
        mov      edi, dword ptr [rbx+0x38]
        mov      r13d, edi
        cmp      r10d, r13d
        jne      G_M272_IG31
+       ; GC ptr vars -{V08}
        call     [System.Collections.HashHelpers:ExpandPrime(int):int]
-       ; byrRegs -[rax]
        ; gcr arg pop 0
        mov      esi, eax
        mov      rdi, rbx
@@ -429,16 +418,17 @@ G_M272_IG30:        ; bbWeight=0.50, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=000
        mov      r12, rax
        ; gcrRegs -[r12]
        ; byrRegs +[r12]
-       mov      rax, r12
-                       ;; size=24 bbWeight=0.50 PerfScore 2.88
-G_M272_IG31:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0001 {rax}, byref
-       ; byrRegs -[r12]
+       mov      bword ptr [rbp-0x58], r12
+       ; GC ptr vars +{V08}
+                       ;; size=25 bbWeight=0.50 PerfScore 3.25
+G_M272_IG31:        ; bbWeight=0.50, gcVars=0000000000020000 {V08}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
+       ; byrRegs -[rax r12]
        lea      edi, [r13+0x01]
        mov      dword ptr [rbx+0x38], edi
        mov      r12, gword ptr [rbx+0x10]
        ; gcrRegs +[r12]
                        ;; size=11 bbWeight=0.50 PerfScore 1.75
-G_M272_IG32:        ; bbWeight=0.50, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0001 {rax}, byref, isz
+G_M272_IG32:        ; bbWeight=0.50, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0000 {}, byref, isz
        cmp      r13d, dword ptr [r12+0x08]
        jae      SHORT G_M272_IG35
        mov      edi, r13d
@@ -447,8 +437,8 @@ G_M272_IG32:        ; bbWeight=0.50, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=000
        ; byrRegs +[rdi]
        mov      ecx, dword ptr [rbp-0x2C]
        mov      dword ptr [rdi+0x08], ecx
-       mov      bword ptr [rbp-0x58], rax
-       ; GC ptr vars +{V08}
+       mov      rax, bword ptr [rbp-0x58]
+       ; byrRegs +[rax]
        mov      esi, dword ptr [rax]
        dec      esi
        mov      dword ptr [rdi+0x0C], esi
@@ -496,7 +486,7 @@ G_M272_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=10 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 941, prolog size 31, PerfScore 349.62, instruction count 258, allocated bytes for code 941 (MethodHash=2f3dfeef) for method System.Collections.Generic.Dictionary`2[int,System.__Canon]:TryInsert(int,System.__Canon,ubyte):ubyte:this (Tier1)
+; Total bytes of code 922, prolog size 31, PerfScore 344.00, instruction count 253, allocated bytes for code 922 (MethodHash=2f3dfeef) for method System.Collections.Generic.Dictionary`2[int,System.__Canon]:TryInsert(int,System.__Canon,ubyte):ubyte:this (Tier1)
 ; ============================================================
...

-19 (-2.01%) : 51111.dasm - System.Collections.Generic.Dictionary2[System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray1[System.Reflection.Metadata.TypeDefinitionHandle]]:TryInsert(System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle],ubyte):ubyte:this (Tier1)

@@ -65,7 +65,7 @@
 ;  V54 cse4         [V54,T33] (  3,  1.50)     int  ->  rdi         "CSE - moderate"
 ;  V55 cse5         [V55,T03] ( 10, 23   )     int  ->  [rbp-0x50]  hoist multi-def "CSE - aggressive"
 ;  V56 cse6         [V56,T09] ( 13,  6.50)     ref  ->  rsi         multi-def "CSE - aggressive"
-;  V57 cse7         [V57,T20] (  6,  3   )     int  ->  r11         multi-def "CSE - moderate"
+;  V57 cse7         [V57,T20] (  6,  3   )     int  ->  rbx         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 72
 
@@ -192,15 +192,18 @@ G_M8976_IG13:        ; bbWeight=1, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000
        mov      edi, r10d
        lea      rax, bword ptr [r9+4*rdi+0x10]
        ; byrRegs +[rax]
+       mov      bword ptr [rbp-0x60], rax
+       ; GC ptr vars +{V08}
        mov      edx, dword ptr [rax]
        dec      edx
        mov      r9, gword ptr [rbp-0x58]
        test     r9, r9
        jne      G_M8976_IG22
        mov      r10d, dword ptr [r12+0x08]
-                       ;; size=48 bbWeight=1 PerfScore 13.75
-G_M8976_IG14:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0001 {rax}, gcvars, byref, isz
+                       ;; size=52 bbWeight=1 PerfScore 14.75
+G_M8976_IG14:        ; bbWeight=4, gcVars=0000000000040000 {V08}, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[r9]
+       ; byrRegs -[rax]
        ; GC ptr vars -{V05 V22}
        cmp      r10d, edx
        jbe      G_M8976_IG27
@@ -210,27 +213,27 @@ G_M8976_IG14:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=3008 {r
        cmp      dword ptr [r12+8*rdi+0x10], ecx
        jne      SHORT G_M8976_IG16
                        ;; size=25 bbWeight=4 PerfScore 28.00
-G_M8976_IG15:        ; bbWeight=2, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0001 {rax}, byref, isz
+G_M8976_IG15:        ; bbWeight=2, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, byref, isz
        mov      esi, dword ptr [r12+8*rdi+0x18]
        cmp      esi, r15d
        je       SHORT G_M8976_IG17
                        ;; size=10 bbWeight=2 PerfScore 6.50
-G_M8976_IG16:        ; bbWeight=4, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0001 {rax}, byref, isz
+G_M8976_IG16:        ; bbWeight=4, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, byref, isz
        mov      edx, dword ptr [r12+8*rdi+0x14]
        mov      r8d, dword ptr [rbp-0x30]
        inc      r8d
-       cmp      r10d, r8d
        mov      dword ptr [rbp-0x30], r8d
+       cmp      r10d, r8d
        jb       G_M8976_IG36
        jmp      SHORT G_M8976_IG14
                        ;; size=27 bbWeight=4 PerfScore 30.00
-G_M8976_IG17:        ; bbWeight=0.50, gcrefRegs=3000 {r12 r13}, byrefRegs=0000 {}, byref, isz
+G_M8976_IG17:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=3000 {r12 r13}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rbx]
-       ; byrRegs -[rax]
-       movzx    r11, r14b
-       cmp      r11d, 1
+       ; GC ptr vars -{V08}
+       movzx    rbx, r14b
+       cmp      ebx, 1
        jne      SHORT G_M8976_IG19
-                       ;; size=10 bbWeight=0.50 PerfScore 0.75
+                       ;; size=9 bbWeight=0.50 PerfScore 0.75
 G_M8976_IG18:        ; bbWeight=0.50, gcrefRegs=3000 {r12 r13}, byrefRegs=0000 {}, byref
        cmp      edx, r10d
        jae      G_M8976_IG35
@@ -246,9 +249,9 @@ G_M8976_IG18:        ; bbWeight=0.50, gcrefRegs=3000 {r12 r13}, byrefRegs=0000 {
        jmp      G_M8976_IG33
                        ;; size=33 bbWeight=0.50 PerfScore 3.12
 G_M8976_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       cmp      r11d, 2
+       cmp      ebx, 2
        je       G_M8976_IG37
-                       ;; size=10 bbWeight=0.50 PerfScore 0.62
+                       ;; size=9 bbWeight=0.50 PerfScore 0.62
 G_M8976_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
@@ -262,10 +265,9 @@ G_M8976_IG21:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M8976_IG22:        ; bbWeight=4, gcVars=0000000000000800 {V05}, gcrefRegs=3208 {rbx r9 r12 r13}, byrefRegs=0001 {rax}, gcvars, byref, isz
+G_M8976_IG22:        ; bbWeight=4, gcVars=0000000000040800 {V05 V08}, gcrefRegs=3208 {rbx r9 r12 r13}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx r9 r12-r13]
-       ; byrRegs +[rax]
-       ; GC ptr vars +{V05 V11}
+       ; GC ptr vars +{V05 V08 V11}
        mov      r10d, dword ptr [r12+0x08]
        mov      dword ptr [rbp-0x50], r10d
        cmp      r10d, edx
@@ -278,60 +280,51 @@ G_M8976_IG22:        ; bbWeight=4, gcVars=0000000000000800 {V05}, gcrefRegs=3208
        cmp      dword ptr [r12+8*r11+0x10], ecx
        jne      SHORT G_M8976_IG24
                        ;; size=37 bbWeight=4 PerfScore 48.00
-G_M8976_IG23:        ; bbWeight=2, gcrefRegs=3208 {rbx r9 r12 r13}, byrefRegs=0001 {rax}, byref, isz
-       mov      bword ptr [rbp-0x60], rax
-       ; GC ptr vars +{V08}
+G_M8976_IG23:        ; bbWeight=2, gcrefRegs=3208 {rbx r9 r12 r13}, byrefRegs=0000 {}, byref, isz
        mov      esi, dword ptr [r12+8*r11+0x18]
        mov      rdi, r9
        ; gcrRegs +[rdi]
        mov      edx, r15d
        mov      r11, 0xD1FFAB1E      ; code for <unknown method>
-       ; GC ptr vars -{V11}
        call     [r11]<unknown method>
        ; gcrRegs -[rdi r9]
-       ; byrRegs -[rax]
        ; gcr arg pop 0
        test     eax, eax
-       mov      rax, bword ptr [rbp-0x60]
-       ; byrRegs +[rax]
        mov      r9, gword ptr [rbp-0x58]
        ; gcrRegs +[r9]
        mov      r11, qword ptr [rbp-0x48]
        jne      SHORT G_M8976_IG26
-                       ;; size=44 bbWeight=2 PerfScore 22.00
-G_M8976_IG24:        ; bbWeight=4, gcVars=0000000000000800 {V05}, gcrefRegs=3208 {rbx r9 r12 r13}, byrefRegs=0001 {rax}, gcvars, byref, isz
-       ; GC ptr vars -{V08}
+                       ;; size=36 bbWeight=2 PerfScore 18.00
+G_M8976_IG24:        ; bbWeight=4, gcrefRegs=3208 {rbx r9 r12 r13}, byrefRegs=0000 {}, byref, isz
        mov      edx, dword ptr [r12+8*r11+0x14]
-       mov      edi, edx
        mov      r8d, dword ptr [rbp-0x30]
        inc      r8d
        cmp      dword ptr [rbp-0x50], r8d
-       mov      dword ptr [rbp-0x30], r8d
-       mov      edx, edi
        jb       G_M8976_IG36
+       mov      dword ptr [rbp-0x30], r8d
        jmp      SHORT G_M8976_IG22
-                       ;; size=32 bbWeight=4 PerfScore 39.00
-G_M8976_IG25:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0001 {rax}, gcvars, byref, isz
+                       ;; size=28 bbWeight=4 PerfScore 37.00
+G_M8976_IG25:        ; bbWeight=2, gcVars=0000000000040000 {V08}, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[r9]
-       ; GC ptr vars -{V05}
+       ; GC ptr vars -{V05 V11}
        mov      r10d, dword ptr [rbp-0x50]
        jmp      SHORT G_M8976_IG27
                        ;; size=6 bbWeight=2 PerfScore 6.00
-G_M8976_IG26:        ; bbWeight=0.50, gcrefRegs=3000 {r12 r13}, byrefRegs=0000 {}, byref
+G_M8976_IG26:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=3000 {r12 r13}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rbx]
-       ; byrRegs -[rax]
-       movzx    r11, r14b
-       cmp      r11d, 1
+       ; GC ptr vars -{V08}
+       movzx    rbx, r14b
+       cmp      ebx, 1
        mov      edx, dword ptr [rbp-0x34]
        mov      r10d, dword ptr [rbp-0x50]
        je       G_M8976_IG18
-       cmp      r11d, 2
+       cmp      ebx, 2
        je       G_M8976_IG37
        jmp      G_M8976_IG20
-                       ;; size=36 bbWeight=0.50 PerfScore 3.38
-G_M8976_IG27:        ; bbWeight=0.50, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0001 {rax}, byref, isz
+                       ;; size=34 bbWeight=0.50 PerfScore 3.38
+G_M8976_IG27:        ; bbWeight=0.50, gcVars=0000000000040000 {V08}, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx]
-       ; byrRegs +[rax]
+       ; GC ptr vars +{V08}
        cmp      dword ptr [rbx+0x40], 0
        jle      SHORT G_M8976_IG29
        mov      edi, dword ptr [rbx+0x3C]
@@ -345,21 +338,15 @@ G_M8976_IG27:        ; bbWeight=0.50, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=00
        add      edi, -3
        cmp      edi, -1
        jge      SHORT G_M8976_IG28
-       mov      bword ptr [rbp-0x60], rax
-       ; GC ptr vars +{V08}
        mov      rdi, 0xD1FFAB1E
        ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
-       ; byrRegs -[rax]
        ; gcr arg pop 0
-       mov      rax, bword ptr [rbp-0x60]
-       ; byrRegs +[rax]
-                       ;; size=78 bbWeight=0.50 PerfScore 9.12
-G_M8976_IG28:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0001 {rax}, gcvars, byref
-       ; GC ptr vars -{V08}
+                       ;; size=70 bbWeight=0.50 PerfScore 8.12
+G_M8976_IG28:        ; bbWeight=0.50, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, byref
        mov      edi, dword ptr [rbx+0x3C]
        cmp      edi, dword ptr [rbp-0x50]
        jae      G_M8976_IG35
@@ -372,14 +359,14 @@ G_M8976_IG28:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=3008
        dec      dword ptr [rbx+0x40]
        jmp      G_M8976_IG32
                        ;; size=40 bbWeight=0.50 PerfScore 7.12
-G_M8976_IG29:        ; bbWeight=0.50, gcrefRegs=2008 {rbx r13}, byrefRegs=0001 {rax}, byref, isz
+G_M8976_IG29:        ; bbWeight=0.50, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[r12]
        mov      edi, dword ptr [rbx+0x38]
        mov      r14d, edi
        cmp      r10d, r14d
        jne      G_M8976_IG31
+       ; GC ptr vars -{V08}
        call     [System.Collections.HashHelpers:ExpandPrime(int):int]
-       ; byrRegs -[rax]
        ; gcr arg pop 0
        mov      esi, eax
        mov      rdi, rbx
@@ -426,16 +413,17 @@ G_M8976_IG30:        ; bbWeight=0.50, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=00
        mov      r12, rax
        ; gcrRegs -[r12]
        ; byrRegs +[r12]
-       mov      rax, r12
-                       ;; size=24 bbWeight=0.50 PerfScore 2.88
-G_M8976_IG31:        ; bbWeight=0.50, gcrefRegs=2008 {rbx r13}, byrefRegs=0001 {rax}, byref
-       ; byrRegs -[r12]
+       mov      bword ptr [rbp-0x60], r12
+       ; GC ptr vars +{V08}
+                       ;; size=25 bbWeight=0.50 PerfScore 3.25
+G_M8976_IG31:        ; bbWeight=0.50, gcVars=0000000000040000 {V08}, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, gcvars, byref
+       ; byrRegs -[rax r12]
        lea      edi, [r14+0x01]
        mov      dword ptr [rbx+0x38], edi
        mov      r12, gword ptr [rbx+0x10]
        ; gcrRegs +[r12]
                        ;; size=11 bbWeight=0.50 PerfScore 1.75
-G_M8976_IG32:        ; bbWeight=0.50, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0001 {rax}, byref, isz
+G_M8976_IG32:        ; bbWeight=0.50, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, byref, isz
        cmp      r14d, dword ptr [r12+0x08]
        jae      SHORT G_M8976_IG35
        mov      edi, r14d
@@ -444,8 +432,8 @@ G_M8976_IG32:        ; bbWeight=0.50, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=00
        ; byrRegs +[rdi]
        mov      ecx, dword ptr [rbp-0x2C]
        mov      dword ptr [rdi], ecx
-       mov      bword ptr [rbp-0x60], rax
-       ; GC ptr vars +{V08}
+       mov      rax, bword ptr [rbp-0x60]
+       ; byrRegs +[rax]
        mov      esi, dword ptr [rax]
        dec      esi
        mov      dword ptr [rdi+0x04], esi
@@ -494,7 +482,7 @@ G_M8976_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=10 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 945, prolog size 31, PerfScore 340.38, instruction count 258, allocated bytes for code 945 (MethodHash=fe23dcef) for method System.Collections.Generic.Dictionary`2[System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle]]:TryInsert(System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle],ubyte):ubyte:this (Tier1)
+; Total bytes of code 926, prolog size 31, PerfScore 334.75, instruction count 253, allocated bytes for code 926 (MethodHash=fe23dcef) for method System.Collections.Generic.Dictionary`2[System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle]]:TryInsert(System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle],ubyte):ubyte:this (Tier1)
 ; ============================================================
 
...

+15 (+3.11%) : 4470.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (Tier1)

@@ -10,21 +10,21 @@
 ;
 ;  V00 this         [V00,T07] ( 11,  7   )     ref  ->  r15         this class-hnd single-def <System.Collections.Generic.Dictionary`2[int,System.__Canon]>
 ;  V01 arg1         [V01,T06] (  6,  9   )     int  ->  rbx         ld-addr-op single-def
-;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  r13        
-;  V03 loc1         [V03,T19] (  3,  2   )   byref  ->  r13        
+;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  registers  
+;  V03 loc1         [V03,T19] (  3,  2   )   byref  ->  r15        
 ;  V04 loc2         [V04,T13] (  4,  3.50)     ref  ->  r14         class-hnd single-def <<unknown class>>
-;  V05 loc3         [V05,T14] (  4,  3.50)     int  ->  r14        
-;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->  rdi        
-;  V07 loc5         [V07,T11] (  3,  5   )     ref  ->  rsi         class-hnd exact single-def <<unknown class>>
-;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->  r11        
-;  V09 loc7         [V09,T10] (  4,  5.50)     int  ->  r12        
-;  V10 loc8         [V10,T02] (  6, 13.50)     int  ->  r13        
+;  V05 loc3         [V05,T14] (  4,  3.50)     int  ->  r13        
+;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->  r14        
+;  V07 loc5         [V07,T11] (  3,  5   )     ref  ->  r12         class-hnd exact single-def <<unknown class>>
+;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->  rdi        
+;  V09 loc7         [V09,T10] (  4,  5.50)     int  ->  r13        
+;  V10 loc8         [V10,T02] (  6, 13.50)     int  ->  r12        
 ;  V11 loc9         [V11,T08] (  3,  8.50)     ref  ->  r15         class-hnd exact single-def <<unknown class>>
 ;  V12 loc10        [V12,T04] (  4, 12.50)     int  ->  [rbp-0x2C] 
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp2         [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V16 tmp3         [V16,T22] (  3,  1.50)     ref  ->  r13         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V16 tmp3         [V16,T22] (  3,  1.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V17 tmp4         [V17,T15] (  3,  3   )     int  ->  rdi         "Inlining Arg"
 ;  V18 tmp5         [V18,T20] (  2,  2   )    long  ->  rcx         "Inlining Arg"
 ;  V19 tmp6         [V19,T17] (  4,  2   )     int  ->  [rbp-0x30]  spill-single-def "Inline stloc first use temp"
@@ -36,7 +36,7 @@
 ;* V25 tmp12        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp13        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V27 tmp14        [V27    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V28 tmp15        [V28,T23] (  3,  1.50)     ref  ->  r13         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V28 tmp15        [V28,T23] (  3,  1.50)     ref  ->  r12         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V29 tmp16        [V29,T16] (  3,  3   )     int  ->  rdi         "Inlining Arg"
 ;  V30 tmp17        [V30,T21] (  2,  2   )    long  ->   r8         "Inlining Arg"
 ;  V31 tmp18        [V31,T18] (  4,  2   )     int  ->  [rbp-0x34]  spill-single-def "Inline stloc first use temp"
@@ -66,7 +66,7 @@ G_M7866_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=24 bbWeight=1 PerfScore 7.25
 G_M7866_IG02:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
        cmp      gword ptr [r15+0x08], 0
-       je       G_M7866_IG17
+       je       G_M7866_IG18
                        ;; size=11 bbWeight=1 PerfScore 4.00
 G_M7866_IG03:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
        cmp      gword ptr [r15+0x10], 0
@@ -84,14 +84,12 @@ G_M7866_IG04:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, b
        ; gcrRegs +[r14]
        test     r14, r14
        jne      G_M7866_IG09
-       mov      r14d, ebx
-       ; gcrRegs -[r14]
-       mov      r13, gword ptr [r15+0x08]
-       ; gcrRegs +[r13]
-       mov      r12d, dword ptr [r13+0x08]
+       mov      r13d, ebx
+       mov      r14, gword ptr [r15+0x08]
+       mov      r12d, dword ptr [r14+0x08]
        mov      edi, r12d
        mov      rcx, qword ptr [r15+0x30]
-       mov      r8d, r14d
+       mov      r8d, r13d
        imul     rcx, r8
        shr      rcx, 32
        inc      rcx
@@ -99,7 +97,7 @@ G_M7866_IG04:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, b
        imul     rcx, r8
        shr      rcx, 32
        mov      dword ptr [rbp-0x30], ecx
-       mov      eax, r14d
+       mov      eax, r13d
        xor      edx, edx
        div      edx:eax, edi
        cmp      edx, ecx
@@ -112,43 +110,44 @@ G_M7866_IG04:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, b
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
                        ;; size=89 bbWeight=0.50 PerfScore 23.38
-G_M7866_IG05:        ; bbWeight=0.50, gcrefRegs=A000 {r13 r15}, byrefRegs=0000 {}, byref
+G_M7866_IG05:        ; bbWeight=0.50, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref
        mov      ecx, dword ptr [rbp-0x30]
        cmp      ecx, r12d
-       jae      G_M7866_IG18
+       jae      G_M7866_IG19
        mov      edi, ecx
-       mov      edi, dword ptr [r13+4*rdi+0x10]
-       mov      rsi, gword ptr [r15+0x10]
-       ; gcrRegs +[rsi]
-       xor      r11d, r11d
-       dec      edi
-       mov      eax, dword ptr [rsi+0x08]
-                       ;; size=31 bbWeight=0.50 PerfScore 4.50
-G_M7866_IG06:        ; bbWeight=4, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r13 r15]
-       cmp      eax, edi
-       jbe      G_M7866_IG17
-       mov      edi, edi
-       lea      rdi, [rdi+2*rdi]
-       lea      r13, bword ptr [rsi+8*rdi+0x10]
-       ; byrRegs +[r13]
-       cmp      dword ptr [r13+0x08], ebx
+       mov      r14d, dword ptr [r14+4*rdi+0x10]
+       ; gcrRegs -[r14]
+       mov      r12, gword ptr [r15+0x10]
+       ; gcrRegs +[r12]
+       xor      edi, edi
+       dec      r14d
+       mov      eax, dword ptr [r12+0x08]
+                       ;; size=33 bbWeight=0.50 PerfScore 4.50
+G_M7866_IG06:        ; bbWeight=4, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[r15]
+       cmp      eax, r14d
+       jbe      G_M7866_IG18
+       mov      esi, r14d
+       lea      rsi, [rsi+2*rsi]
+       lea      r15, bword ptr [r12+8*rsi+0x10]
+       ; byrRegs +[r15]
+       cmp      dword ptr [r15+0x08], ebx
        jne      SHORT G_M7866_IG08
-                       ;; size=25 bbWeight=4 PerfScore 28.00
-G_M7866_IG07:        ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=2000 {r13}, byref
-       cmp      dword ptr [r13+0x10], r14d
-       je       G_M7866_IG14
+                       ;; size=27 bbWeight=4 PerfScore 28.00
+G_M7866_IG07:        ; bbWeight=2, gcrefRegs=1000 {r12}, byrefRegs=8000 {r15}, byref
+       cmp      dword ptr [r15+0x10], r13d
+       je       G_M7866_IG15
                        ;; size=10 bbWeight=2 PerfScore 8.00
-G_M7866_IG08:        ; bbWeight=4, gcrefRegs=0040 {rsi}, byrefRegs=2000 {r13}, byref, isz
-       mov      edi, dword ptr [r13+0x0C]
-       inc      r11d
-       cmp      eax, r11d
-       jb       G_M7866_IG19
+G_M7866_IG08:        ; bbWeight=4, gcrefRegs=1000 {r12}, byrefRegs=8000 {r15}, byref, isz
+       mov      r14d, dword ptr [r15+0x0C]
+       inc      edi
+       cmp      eax, edi
+       jb       G_M7866_IG20
        jmp      SHORT G_M7866_IG06
-                       ;; size=18 bbWeight=4 PerfScore 22.00
+                       ;; size=16 bbWeight=4 PerfScore 22.00
 G_M7866_IG09:        ; bbWeight=0.50, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rsi] +[r14-r15]
-       ; byrRegs -[r13]
+       ; gcrRegs -[r12] +[r14-r15]
+       ; byrRegs -[r15]
        mov      rdi, r14
        ; gcrRegs +[rdi]
        mov      esi, ebx
@@ -156,14 +155,14 @@ G_M7866_IG09:        ; bbWeight=0.50, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {
        call     [r11]<unknown method>
        ; gcrRegs -[rdi]
        ; gcr arg pop 0
-       mov      r12d, eax
-       mov      r13, gword ptr [r15+0x08]
-       ; gcrRegs +[r13]
-       mov      ecx, dword ptr [r13+0x08]
+       mov      r13d, eax
+       mov      r12, gword ptr [r15+0x08]
+       ; gcrRegs +[r12]
+       mov      ecx, dword ptr [r12+0x08]
        mov      dword ptr [rbp-0x38], ecx
        mov      edi, ecx
        mov      r8, qword ptr [r15+0x30]
-       mov      r9d, r12d
+       mov      r9d, r13d
        imul     r8, r9
        shr      r8, 32
        inc      r8
@@ -171,7 +170,7 @@ G_M7866_IG09:        ; bbWeight=0.50, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {
        imul     r8, r9
        shr      r8, 32
        mov      dword ptr [rbp-0x34], r8d
-       mov      eax, r12d
+       mov      eax, r13d
        xor      edx, edx
        div      edx:eax, edi
        cmp      edx, r8d
@@ -183,33 +182,36 @@ G_M7866_IG09:        ; bbWeight=0.50, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
-                       ;; size=98 bbWeight=0.50 PerfScore 24.12
-G_M7866_IG10:        ; bbWeight=0.50, gcrefRegs=E000 {r13 r14 r15}, byrefRegs=0000 {}, byref, isz
+                       ;; size=99 bbWeight=0.50 PerfScore 24.12
+G_M7866_IG10:        ; bbWeight=0.50, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=0000 {}, byref
        mov      r8d, dword ptr [rbp-0x34]
        cmp      r8d, dword ptr [rbp-0x38]
-       jae      SHORT G_M7866_IG18
+       jae      G_M7866_IG19
        mov      esi, r8d
-       mov      r13d, dword ptr [r13+4*rsi+0x10]
-       ; gcrRegs -[r13]
+       mov      r12d, dword ptr [r12+4*rsi+0x10]
+       ; gcrRegs -[r12]
        mov      r15, gword ptr [r15+0x10]
        xor      eax, eax
        mov      dword ptr [rbp-0x2C], eax
-       dec      r13d
-                       ;; size=30 bbWeight=0.50 PerfScore 4.88
+       dec      r12d
+                       ;; size=34 bbWeight=0.50 PerfScore 4.88
 G_M7866_IG11:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      ecx, dword ptr [r15+0x08]
        mov      dword ptr [rbp-0x3C], ecx
-       cmp      ecx, r13d
-       jbe      SHORT G_M7866_IG17
-       mov      esi, r13d
+       cmp      ecx, r12d
+       jbe      SHORT G_M7866_IG18
+       mov      esi, r12d
        lea      rsi, [rsi+2*rsi]
-       lea      r13, bword ptr [r15+8*rsi+0x10]
-       ; byrRegs +[r13]
-       cmp      dword ptr [r13+0x08], r12d
+       lea      rsi, bword ptr [r15+8*rsi+0x10]
+       ; byrRegs +[rsi]
+       mov      r12, rsi
+       ; byrRegs +[r12]
+       cmp      dword ptr [r12+0x08], r13d
        jne      SHORT G_M7866_IG13
-                       ;; size=30 bbWeight=4 PerfScore 40.00
-G_M7866_IG12:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2000 {r13}, byref, isz
-       mov      esi, dword ptr [r13+0x10]
+                       ;; size=34 bbWeight=4 PerfScore 41.00
+G_M7866_IG12:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=1000 {r12}, byref, isz
+       ; byrRegs -[rsi]
+       mov      esi, dword ptr [r12+0x10]
        mov      rdi, r14
        ; gcrRegs +[rdi]
        mov      edx, ebx
@@ -219,27 +221,32 @@ G_M7866_IG12:        ; bbWeight=2, gcrefRegs=C000 {r14 r15}, byrefRegs=2000 {r13
        ; gcr arg pop 0
        test     eax, eax
        jne      SHORT G_M7866_IG14
-                       ;; size=26 bbWeight=2 PerfScore 14.00
-G_M7866_IG13:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=2000 {r13}, byref, isz
-       mov      r13d, dword ptr [r13+0x0C]
-       ; byrRegs -[r13]
+                       ;; size=27 bbWeight=2 PerfScore 14.00
+G_M7866_IG13:        ; bbWeight=4, gcrefRegs=C000 {r14 r15}, byrefRegs=1000 {r12}, byref, isz
+       mov      r12d, dword ptr [r12+0x0C]
+       ; byrRegs -[r12]
        mov      eax, dword ptr [rbp-0x2C]
        inc      eax
        cmp      dword ptr [rbp-0x3C], eax
+       jb       SHORT G_M7866_IG20
...

+36 (+6.11%) : 54083.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)

@@ -10,46 +10,46 @@
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <LinqBenchmarks>
-;  V01 loc0         [V01,T35] (  2,  4   )     ref  ->  r13         class-hnd <System.Collections.Generic.List`1[Product]>
-;  V02 loc1         [V02,T22] (  3, 17   )     int  ->  r14        
-;  V03 loc2         [V03,T19] (  3, 24   )     int  ->  r15        
-;  V04 loc3         [V04,T07] (  9, 66   )     ref  ->  rbx         class-hnd exact <System.Collections.Generic.List`1[Product]>
-;  V05 loc4         [V05,T37] (  4,  1.03)  struct (24) [rbp+0x70]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
-;  V06 loc5         [V06,T08] (  7, 56   )     ref  ->  [rbp+0x68]  class-hnd tier0-frame <Product>
-;  V07 loc6         [V07,T38] (  1,  1   )  struct (24) [rbp+0x50]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+;  V01 loc0         [V01,T36] (  2,  4   )     ref  ->  r13         class-hnd <System.Collections.Generic.List`1[Product]>
+;  V02 loc1         [V02,T23] (  3, 17   )     int  ->  r14        
+;  V03 loc2         [V03,T20] (  3, 24   )     int  ->  r15        
+;  V04 loc3         [V04,T08] (  9, 66   )     ref  ->  rbx         class-hnd exact <System.Collections.Generic.List`1[Product]>
+;  V05 loc4         [V05,T38] (  4,  1.03)  struct (24) [rbp+0x70]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+;  V06 loc5         [V06,T09] (  7, 56   )     ref  ->  r12         class-hnd <Product>
+;  V07 loc6         [V07,T39] (  1,  1   )  struct (24) [rbp+0x50]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
 ;* V08 loc7         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Product>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T29] (  3, 12   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[Product]>
+;  V10 tmp1         [V10,T30] (  3, 12   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[Product]>
 ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Decimal>
 ;* V12 tmp3         [V12    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Decimal>
-;* V13 tmp4         [V13    ] (  0,  0   )     int  ->  zero-ref    "OSR entry state var"
+;  V13 tmp4         [V13,T06] (  3, 72.01)     int  ->  r12         "OSR entry state var"
 ;* V14 tmp5         [V14    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
-;* V15 tmp6         [V15,T28] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V16 tmp7         [V16,T30] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
+;* V15 tmp6         [V15,T29] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
+;* V16 tmp7         [V16,T31] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V17 tmp8         [V17    ] ( 10,160   )  struct (16) [rbp-0x38]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
 ;  V18 tmp9         [V18    ] (  8,128   )  struct (16) [rbp-0x48]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
-;  V19 tmp10        [V19,T10] (  5, 40   )     int  ->  rdx         "Inline return value spill temp"
-;  V20 tmp11        [V20,T14] (  2, 32   )    long  ->  rsi         "impAppendStmt"
-;  V21 tmp12        [V21,T15] (  2, 32   )    long  ->  rdx         "impAppendStmt"
-;  V22 tmp13        [V22,T20] (  3, 24   )     int  ->  rdx         "Inline stloc first use temp"
-;  V23 tmp14        [V23,T16] (  2, 32   )    long  ->  rsi         "impAppendStmt"
-;  V24 tmp15        [V24,T17] (  3, 24   )     ref  ->  rdx         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V25 tmp16        [V25,T12] (  4, 32   )     int  ->  rsi         "Inline stloc first use temp"
+;  V19 tmp10        [V19,T11] (  5, 40   )     int  ->  rdx         "Inline return value spill temp"
+;  V20 tmp11        [V20,T15] (  2, 32   )    long  ->  rsi         "impAppendStmt"
+;  V21 tmp12        [V21,T16] (  2, 32   )    long  ->  rdx         "impAppendStmt"
+;  V22 tmp13        [V22,T21] (  3, 24   )     int  ->  rdx         "Inline stloc first use temp"
+;  V23 tmp14        [V23,T17] (  2, 32   )    long  ->  rsi         "impAppendStmt"
+;  V24 tmp15        [V24,T18] (  3, 24   )     ref  ->  rdx         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V25 tmp16        [V25,T13] (  4, 32   )     int  ->  rsi         "Inline stloc first use temp"
 ;  V26 tmp17        [V26,T04] (  3, 80   )   ubyte  ->  rsi         "Inline return value spill temp"
 ;* V27 tmp18        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
 ;* V28 tmp19        [V28    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
 ;  V29 tmp20        [V29,T05] (  3, 80   )   ubyte  ->  rax         "Inline return value spill temp"
 ;* V30 tmp21        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
-;* V31 tmp22        [V31,T31] (  0,  0   )     int  ->  zero-ref    "field V11._flags (fldOffset=0x0)" P-INDEP
-;* V32 tmp23        [V32,T32] (  0,  0   )     int  ->  zero-ref    "field V11._hi32 (fldOffset=0x4)" P-INDEP
-;* V33 tmp24        [V33,T33] (  0,  0   )    long  ->  zero-ref    "field V11._lo64 (fldOffset=0x8)" P-INDEP
-;  V34 tmp25        [V34,T23] (  2, 16   )     int  ->  rsi         "field V12._flags (fldOffset=0x0)" P-INDEP
-;  V35 tmp26        [V35,T24] (  2, 16   )     int  ->  rdx         "field V12._hi32 (fldOffset=0x4)" P-INDEP
-;  V36 tmp27        [V36,T25] (  2, 16   )    long  ->   r8         "field V12._lo64 (fldOffset=0x8)" P-INDEP
+;* V31 tmp22        [V31,T32] (  0,  0   )     int  ->  zero-ref    "field V11._flags (fldOffset=0x0)" P-INDEP
+;* V32 tmp23        [V32,T33] (  0,  0   )     int  ->  zero-ref    "field V11._hi32 (fldOffset=0x4)" P-INDEP
+;* V33 tmp24        [V33,T34] (  0,  0   )    long  ->  zero-ref    "field V11._lo64 (fldOffset=0x8)" P-INDEP
+;  V34 tmp25        [V34,T24] (  2, 16   )     int  ->  rsi         "field V12._flags (fldOffset=0x0)" P-INDEP
+;  V35 tmp26        [V35,T25] (  2, 16   )     int  ->  rdx         "field V12._hi32 (fldOffset=0x4)" P-INDEP
+;  V36 tmp27        [V36,T26] (  2, 16   )    long  ->   r8         "field V12._lo64 (fldOffset=0x8)" P-INDEP
 ;* V37 tmp28        [V37    ] (  0,  0   )     ref  ->  zero-ref    "field V14._list (fldOffset=0x0)" P-INDEP
 ;* V38 tmp29        [V38    ] (  0,  0   )     ref  ->  zero-ref    "field V14._current (fldOffset=0x8)" P-INDEP
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref    "field V14._index (fldOffset=0x10)" P-INDEP
-;  V40 tmp31        [V40,T36] (  2,  4   )     int  ->  rax         "field V14._version (fldOffset=0x14)" P-INDEP
+;  V40 tmp31        [V40,T37] (  2,  4   )     int  ->  rcx         "field V14._version (fldOffset=0x14)" P-INDEP
 ;  V41 tmp32        [V41    ] (  4, 40   )     int  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed "field V17._flags (fldOffset=0x0)" P-DEP
 ;  V42 tmp33        [V42    ] (  4, 40   )     int  ->  [rbp-0x34]  do-not-enreg[X] addr-exposed "field V17._hi32 (fldOffset=0x4)" P-DEP
 ;  V43 tmp34        [V43    ] (  4, 40   )    long  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed "field V17._lo64 (fldOffset=0x8)" P-DEP
@@ -59,34 +59,34 @@
 ;* V47 tmp38        [V47    ] (  0,  0   )     ref  ->  zero-ref    "field V28._list (fldOffset=0x0)" P-INDEP
 ;* V48 tmp39        [V48    ] (  0,  0   )     ref  ->  zero-ref    "field V28._current (fldOffset=0x8)" P-INDEP
 ;* V49 tmp40        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V28._index (fldOffset=0x10)" P-INDEP
-;* V50 tmp41        [V50,T26] (  0,  0   )     int  ->  zero-ref    "field V28._version (fldOffset=0x14)" P-INDEP
-;  V51 tmp42        [V51,T02] (  5, 82.01)     ref  ->  r12         "V05.[000..008)"
-;  V52 tmp43        [V52,T18] (  3, 24   )     ref  ->  rcx         "V05.[008..016)"
-;  V53 tmp44        [V53,T09] (  8, 50.01)     int  ->  [rbp-0x4C]  "V05.[016..020)"
-;  V54 tmp45        [V54,T06] (  3, 66.01)     int  ->  [rbp-0x50]  "V05.[020..024)"
+;* V50 tmp41        [V50,T27] (  0,  0   )     int  ->  zero-ref    "field V28._version (fldOffset=0x14)" P-INDEP
+;  V51 tmp42        [V51,T02] (  5, 82.01)     ref  ->  [rbp-0x58]  "V05.[000..008)"
+;  V52 tmp43        [V52,T19] (  3, 24   )     ref  ->  rdx         "V05.[008..016)"
+;  V53 tmp44        [V53,T10] (  8, 50.01)     int  ->  [rbp-0x4C]  "V05.[016..020)"
+;  V54 tmp45        [V54,T07] (  3, 66.01)     int  ->  [rbp-0x50]  "V05.[020..024)"
 ;  V55 tmp46        [V55,T03] (  3, 80   )     ref  ->  rbx         "V07.[000..008)"
 ;* V56 tmp47        [V56    ] (  0,  0   )     ref  ->  zero-ref    "V07.[008..016)"
 ;  V57 tmp48        [V57,T01] (  6,104   )     int  ->  rdi         "V07.[016..020)"
-;* V58 tmp49        [V58,T34] (  0,  0   )     int  ->  zero-ref    "V07.[020..024)"
-;  V59 tmp50        [V59,T11] (  3, 48   )     ref  ->  rsi         "arr expr"
+;* V58 tmp49        [V58,T35] (  0,  0   )     int  ->  zero-ref    "V07.[020..024)"
+;  V59 tmp50        [V59,T12] (  3, 48   )     ref  ->  rsi         "arr expr"
 ;* V60 tmp51        [V60    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V61 tmp52        [V61,T13] (  2, 32   )     ref  ->  rax         "arr expr"
-;* V62 cse0         [V62,T27] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
-;  V63 cse1         [V63,T21] (  3, 24   )     int  ->  rsi         "CSE - moderate"
+;  V61 tmp52        [V61,T14] (  2, 32   )     ref  ->  rax         "arr expr"
+;* V62 cse0         [V62,T28] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
+;  V63 cse1         [V63,T22] (  3, 24   )     int  ->  rsi         "CSE - moderate"
 ;  V64 cse2         [V64,T00] (  3,136   )     int  ->  rax         "CSE - moderate"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 56
 
 G_M51465_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        mov      rax, qword ptr [rbp]
        push     rax
-       sub      rsp, 80
-       mov      qword ptr [rsp+0x118], r15
-       mov      qword ptr [rsp+0x110], r14
-       mov      qword ptr [rsp+0x108], r13
-       mov      qword ptr [rsp+0x100], r12
-       mov      qword ptr [rsp+0xF8], rbx
-       lea      rbp, [rsp+0x50]
+       sub      rsp, 96
+       mov      qword ptr [rsp+0x128], r15
+       mov      qword ptr [rsp+0x120], r14
+       mov      qword ptr [rsp+0x118], r13
+       mov      qword ptr [rsp+0x110], r12
+       mov      qword ptr [rsp+0x108], rbx
+       lea      rbp, [rsp+0x60]
        mov      r13, gword ptr [rbp+0x98]
        ; gcrRegs +[r13]
        mov      r14d, dword ptr [rbp+0x94]
@@ -94,15 +94,16 @@ G_M51465_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        mov      rbx, gword ptr [rbp+0x88]
        ; gcrRegs +[rbx]
                        ;; size=82 bbWeight=0.01 PerfScore 0.17
-G_M51465_IG02:        ; bbWeight=0.01, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
-       mov      r12, gword ptr [rbp+0x70]
-       ; gcrRegs +[r12]
+G_M51465_IG02:        ; bbWeight=0.01, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
+       xor      r12d, r12d
+       mov      rax, gword ptr [rbp+0x70]
+       ; gcrRegs +[rax]
        mov      edi, dword ptr [rbp+0x80]
-       mov      eax, dword ptr [rbp+0x84]
-       jmp      G_M51465_IG10
+       mov      ecx, dword ptr [rbp+0x84]
+       jmp      SHORT G_M51465_IG04
                        ;; size=21 bbWeight=0.01 PerfScore 0.05
 G_M51465_IG03:        ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx r12]
+       ; gcrRegs -[rax rbx]
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List`1[Product]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -111,21 +112,29 @@ G_M51465_IG03:        ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rbx]
        mov      rax, 0xD1FFAB1E
        mov      gword ptr [rbx+0x08], rax
-       mov      eax, dword ptr [r13+0x14]
-       ; gcrRegs -[rax]
-       mov      r12, r13
-       ; gcrRegs +[r12]
+       mov      ecx, dword ptr [r13+0x14]
+       mov      rax, r13
        xor      edi, edi
-       jmp      G_M51465_IG10
-                       ;; size=46 bbWeight=2 PerfScore 14.50
-G_M51465_IG04:        ; bbWeight=8, gcrefRegs=300A {rcx rbx r12 r13}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rcx]
-       cmp      dword ptr [rcx+0x1C], 0
-       mov      eax, dword ptr [rbp-0x50]
-       jle      G_M51465_IG10
-       mov      esi, dword ptr [rcx+0x20]
-       mov      edx, dword ptr [rcx+0x24]
-       mov      r8, qword ptr [rcx+0x28]
+                       ;; size=41 bbWeight=2 PerfScore 10.50
+G_M51465_IG04:        ; bbWeight=8, gcrefRegs=2009 {rax rbx r13}, byrefRegs=0000 {}, byref
+       test     r12d, r12d
+       je       G_M51465_IG11
+       jmp      G_M51465_IG11
+                       ;; size=14 bbWeight=8 PerfScore 26.00
+G_M51465_IG05:        ; bbWeight=8, gcVars=0000000000000004 {V51}, gcrefRegs=200C {rdx rbx r13}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax] +[rdx]
+       ; GC ptr vars +{V02 V51}
+       mov      r12, rdx
+       ; gcrRegs +[r12]
+       cmp      dword ptr [r12+0x1C], 0
+       mov      rax, gword ptr [rbp-0x58]
+       ; gcrRegs +[rax]
+       mov      ecx, dword ptr [rbp-0x50]
+       jle      G_M51465_IG11
+       mov      esi, dword ptr [r12+0x20]
+       mov      edx, dword ptr [r12+0x24]
+       ; gcrRegs -[rdx]
+       mov      r8, qword ptr [r12+0x28]
        mov      dword ptr [rbp-0x38], esi
        mov      dword ptr [rbp-0x34], edx
        mov      qword ptr [rbp-0x30], r8
@@ -136,181 +145,191 @@ G_M51465_IG04:        ; bbWeight=8, gcrefRegs=300A {rcx rbx r12 r13}, byrefRegs=
        mov      rsi, qword ptr [rbp-0x40]
        mov      edx, dword ptr [rbp-0x44]
        or       rsi, rdx
-       jne      SHORT G_M51465_IG05
+       jne      SHORT G_M51465_IG06
        mov      rsi, qword ptr [rbp-0x30]
        mov      edx, dword ptr [rbp-0x34]
        or       rsi, rdx
-       mov      gword ptr [rbp+0x68], rcx
-       ; GC ptr vars +{V06}
-       je       G_M51465_IG10
+       je       G_M51465_IG11
        mov      edx, dword ptr [rbp-0x38]
        sar      edx, 31
        or       edx, 1
-       jmp      SHORT G_M51465_IG08
-                       ;; size=96 bbWeight=8 PerfScore 228.00
-G_M51465_IG05:        ; bbWeight=8, gcrefRegs=300A {rcx rbx r12 r13}, byrefRegs=0000 {}, byref, isz
-       ; GC ptr vars -{V06}
+       jmp      SHORT G_M51465_IG09
+                       ;; size=106 bbWeight=8 PerfScore 230.00
+G_M51465_IG06:        ; bbWeight=8, gcVars=0000000000000000 {}, gcrefRegs=3009 {rax rbx r12 r13}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; GC ptr vars -{V02 V51}
        mov      rdx, qword ptr [rbp-0x30]
        mov      esi, dword ptr [rbp-0x34]
        or       rsi, rdx
-       jne      SHORT G_M51465_IG06
+       jne      SHORT G_M51465_IG07
        mov      esi, dword ptr [rbp-0x48]
        sar      esi, 31
        or       esi, 1
        mov      edx, esi
        neg      edx
-       mov      gword ptr [rbp+0x68], rcx
-       ; GC ptr vars +{V06}
-       jmp      SHORT G_M51465_IG08
-                       ;; size=31 bbWeight=8 PerfScore 68.00
-G_M51465_IG06:        ; bbWeight=8, gcrefRegs=300A {rcx rbx r12 r13}, byrefRegs=0000 {}, byref, isz
-       ; GC ptr vars -{V06}
+       jmp      SHORT G_M51465_IG09
+                       ;; size=27 bbWeight=8 PerfScore 60.00
+G_M51465_IG07:        ; bbWeight=8, gcrefRegs=3009 {rax rbx r12 r13}, byrefRegs=0000 {}, byref, isz
        mov      edx, dword ptr [rbp-0x38]
        sar      edx, 31
        mov      esi, dword ptr [rbp-0x48]
        sar      esi, 31
        sub      edx, esi
-       je       SHORT G_M51465_IG07
-       mov      gword ptr [rbp+0x68], rcx
-       ; GC ptr vars +{V06}
-       jmp      SHORT G_M51465_IG08
-                       ;; size=22 bbWeight=8 PerfScore 58.00
-G_M51465_IG07:        ; bbWeight=8, gcrefRegs=300A {rcx rbx r12 r13}, byrefRegs=0000 {}, byref
-       ; GC ptr vars -{V06}
-       mov      dword ptr [rbp-0x50], eax
-       mov      gword ptr [rbp+0x68], rcx
-       ; GC ptr vars +{V06}
...

+36 (+9.30%) : 52915.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)

@@ -10,20 +10,20 @@
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <LinqBenchmarks>
-;  V01 loc0         [V01,T20] (  2,  4   )     ref  ->  r13         class-hnd <System.Collections.Generic.List`1[Product]>
-;  V02 loc1         [V02,T16] (  3, 17   )     int  ->  r14        
-;  V03 loc2         [V03,T14] (  3, 24   )     int  ->  r15        
-;  V04 loc3         [V04,T06] (  9, 66   )     ref  ->  rbx         class-hnd exact <System.Collections.Generic.List`1[Product]>
-;  V05 loc4         [V05,T22] (  4,  1.03)  struct (24) [rbp+0x50]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+;  V01 loc0         [V01,T21] (  2,  4   )     ref  ->  r13         class-hnd <System.Collections.Generic.List`1[Product]>
+;  V02 loc1         [V02,T17] (  3, 17   )     int  ->  r14        
+;  V03 loc2         [V03,T15] (  3, 24   )     int  ->  r15        
+;  V04 loc3         [V04,T07] (  9, 66   )     ref  ->  rbx         class-hnd exact <System.Collections.Generic.List`1[Product]>
+;  V05 loc4         [V05,T23] (  4,  1.03)  struct (24) [rbp+0x50]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
 ;* V06 loc5         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Product>
-;  V07 loc6         [V07,T23] (  1,  1   )  struct (24) [rbp+0x30]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+;  V07 loc6         [V07,T24] (  1,  1   )  struct (24) [rbp+0x30]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
 ;* V08 loc7         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Product>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T18] (  3, 12   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[Product]>
-;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    "OSR entry state var"
+;  V10 tmp1         [V10,T19] (  3, 12   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[Product]>
+;  V11 tmp2         [V11,T05] (  3, 72.01)     int  ->  r12         "OSR entry state var"
 ;* V12 tmp3         [V12    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
-;  V13 tmp4         [V13,T13] (  3, 24   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V14 tmp5         [V14,T10] (  4, 32   )     int  ->  rcx         "Inline stloc first use temp"
+;  V13 tmp4         [V13,T14] (  3, 24   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V14 tmp5         [V14,T11] (  4, 32   )     int  ->   r8         "Inline stloc first use temp"
 ;  V15 tmp6         [V15,T03] (  3, 80   )   ubyte  ->  rdi         "Inline return value spill temp"
 ;* V16 tmp7         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
 ;* V17 tmp8         [V17    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
@@ -32,36 +32,36 @@
 ;* V20 tmp11        [V20    ] (  0,  0   )     ref  ->  zero-ref    "field V12._list (fldOffset=0x0)" P-INDEP
 ;* V21 tmp12        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V12._current (fldOffset=0x8)" P-INDEP
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V12._index (fldOffset=0x10)" P-INDEP
-;  V23 tmp14        [V23,T21] (  2,  4   )     int  ->  rax         "field V12._version (fldOffset=0x14)" P-INDEP
+;  V23 tmp14        [V23,T22] (  2,  4   )     int  ->  rcx         "field V12._version (fldOffset=0x14)" P-INDEP
 ;* V24 tmp15        [V24    ] (  0,  0   )     ref  ->  zero-ref    "field V17._list (fldOffset=0x0)" P-INDEP
 ;* V25 tmp16        [V25    ] (  0,  0   )     ref  ->  zero-ref    "field V17._current (fldOffset=0x8)" P-INDEP
 ;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V17._index (fldOffset=0x10)" P-INDEP
-;* V27 tmp18        [V27,T17] (  0,  0   )     int  ->  zero-ref    "field V17._version (fldOffset=0x14)" P-INDEP
-;  V28 tmp19        [V28,T02] (  5, 82.01)     ref  ->  r12         "V05.[000..008)"
-;  V29 tmp20        [V29,T09] (  5, 40   )     ref  ->  rdx         "V05.[008..016)"
-;  V30 tmp21        [V30,T07] (  8, 50.01)     int  ->  [rbp-0x2C]  "V05.[016..020)"
-;  V31 tmp22        [V31,T05] (  3, 66.01)     int  ->  [rbp-0x30]  "V05.[020..024)"
+;* V27 tmp18        [V27,T18] (  0,  0   )     int  ->  zero-ref    "field V17._version (fldOffset=0x14)" P-INDEP
+;  V28 tmp19        [V28,T02] (  5, 82.01)     ref  ->  [rbp-0x38]  "V05.[000..008)"
+;  V29 tmp20        [V29,T10] (  5, 40   )     ref  ->  rdx         "V05.[008..016)"
+;  V30 tmp21        [V30,T08] (  8, 50.01)     int  ->  [rbp-0x2C]  "V05.[016..020)"
+;  V31 tmp22        [V31,T06] (  3, 66.01)     int  ->  [rbp-0x30]  "V05.[020..024)"
 ;  V32 tmp23        [V32,T01] (  4, 88   )     ref  ->  rbx         "V07.[000..008)"
 ;* V33 tmp24        [V33    ] (  0,  0   )     ref  ->  zero-ref    "V07.[008..016)"
 ;  V34 tmp25        [V34,T00] (  6,104   )     int  ->  rdi         "V07.[016..020)"
-;* V35 tmp26        [V35,T19] (  0,  0   )     int  ->  zero-ref    "V07.[020..024)"
-;  V36 tmp27        [V36,T08] (  3, 48   )     ref  ->  rdi         "arr expr"
-;  V37 tmp28        [V37,T12] (  2, 32   )     ref  ->  rax         "arr expr"
-;  V38 cse0         [V38,T11] (  2, 16   )     int  ->  rdi         multi-def "CSE - aggressive"
-;  V39 cse1         [V39,T15] (  3, 24   )     int  ->  rdi         "CSE - moderate"
+;* V35 tmp26        [V35,T20] (  0,  0   )     int  ->  zero-ref    "V07.[020..024)"
+;  V36 tmp27        [V36,T09] (  3, 48   )     ref  ->  rdi         "arr expr"
+;  V37 tmp28        [V37,T13] (  2, 32   )     ref  ->  rax         "arr expr"
+;  V38 cse0         [V38,T12] (  2, 16   )     int  ->  rdi         multi-def "CSE - aggressive"
+;  V39 cse1         [V39,T16] (  3, 24   )     int  ->  rdi         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 24
 
 G_M25128_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        mov      rax, qword ptr [rbp]
        push     rax
-       sub      rsp, 48
-       mov      qword ptr [rsp+0xD8], r15
-       mov      qword ptr [rsp+0xD0], r14
-       mov      qword ptr [rsp+0xC8], r13
-       mov      qword ptr [rsp+0xC0], r12
-       mov      qword ptr [rsp+0xB8], rbx
-       lea      rbp, [rsp+0x30]
+       sub      rsp, 64
+       mov      qword ptr [rsp+0xE8], r15
+       mov      qword ptr [rsp+0xE0], r14
+       mov      qword ptr [rsp+0xD8], r13
+       mov      qword ptr [rsp+0xD0], r12
+       mov      qword ptr [rsp+0xC8], rbx
+       lea      rbp, [rsp+0x40]
        mov      r13, gword ptr [rbp+0x78]
        ; gcrRegs +[r13]
        mov      r14d, dword ptr [rbp+0x74]
@@ -69,15 +69,16 @@ G_M25128_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        mov      rbx, gword ptr [rbp+0x68]
        ; gcrRegs +[rbx]
                        ;; size=70 bbWeight=0.01 PerfScore 0.17
-G_M25128_IG02:        ; bbWeight=0.01, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
-       mov      r12, gword ptr [rbp+0x50]
-       ; gcrRegs +[r12]
+G_M25128_IG02:        ; bbWeight=0.01, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
+       xor      r12d, r12d
+       mov      rax, gword ptr [rbp+0x50]
+       ; gcrRegs +[rax]
        mov      esi, dword ptr [rbp+0x60]
-       mov      eax, dword ptr [rbp+0x64]
-       jmp      G_M25128_IG06
+       mov      ecx, dword ptr [rbp+0x64]
+       jmp      SHORT G_M25128_IG04
                        ;; size=15 bbWeight=0.01 PerfScore 0.05
-G_M25128_IG03:        ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx r12]
+G_M25128_IG03:        ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax rbx]
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List`1[Product]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -86,132 +87,154 @@ G_M25128_IG03:        ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rbx]
        mov      rax, 0xD1FFAB1E
        mov      gword ptr [rbx+0x08], rax
-       mov      eax, dword ptr [r13+0x14]
-       ; gcrRegs -[rax]
-       mov      r12, r13
-       ; gcrRegs +[r12]
+       mov      ecx, dword ptr [r13+0x14]
+       mov      rax, r13
        xor      esi, esi
-       jmp      SHORT G_M25128_IG06
-                       ;; size=43 bbWeight=2 PerfScore 14.50
-G_M25128_IG04:        ; bbWeight=8, gcrefRegs=300C {rdx rbx r12 r13}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rdx]
+                       ;; size=41 bbWeight=2 PerfScore 10.50
+G_M25128_IG04:        ; bbWeight=8, gcrefRegs=2009 {rax rbx r13}, byrefRegs=0000 {}, byref, isz
+       test     r12d, r12d
+       je       SHORT G_M25128_IG07
+       jmp      SHORT G_M25128_IG07
+                       ;; size=7 bbWeight=8 PerfScore 26.00
+G_M25128_IG05:        ; bbWeight=8, gcVars=0000000000000004 {V28}, gcrefRegs=200C {rdx rbx r13}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax] +[rdx]
+       ; GC ptr vars +{V02 V28}
        cmp      dword ptr [rdx+0x1C], 0
-       mov      eax, dword ptr [rbp-0x30]
-       jne      SHORT G_M25128_IG06
+       mov      rax, gword ptr [rbp-0x38]
+       ; gcrRegs +[rax]
+       mov      ecx, dword ptr [rbp-0x30]
+       jne      SHORT G_M25128_IG07
        mov      edi, dword ptr [rbx+0x14]
        inc      edi
        mov      dword ptr [rbx+0x14], edi
        mov      rdi, gword ptr [rbx+0x08]
        ; gcrRegs +[rdi]
-       mov      ecx, dword ptr [rbx+0x10]
-       cmp      dword ptr [rdi+0x08], ecx
-       jbe      SHORT G_M25128_IG05
-       mov      dword ptr [rbp-0x30], eax
+       mov      r8d, dword ptr [rbx+0x10]
+       cmp      dword ptr [rdi+0x08], r8d
+       jbe      SHORT G_M25128_IG06
+       mov      gword ptr [rbp-0x38], rax
+       mov      dword ptr [rbp-0x30], ecx
        mov      dword ptr [rbp-0x2C], esi
-       lea      r8d, [rcx+0x01]
-       mov      dword ptr [rbx+0x10], r8d
-       movsxd   rsi, ecx
+       lea      r9d, [r8+0x01]
+       mov      dword ptr [rbx+0x10], r9d
+       movsxd   rsi, r8d
        call     CORINFO_HELP_ARRADDR_ST
-       ; gcrRegs -[rdx rdi]
+       ; gcrRegs -[rax rdx rdi]
        ; gcr arg pop 0
-       mov      eax, dword ptr [rbp-0x30]
+       mov      rax, gword ptr [rbp-0x38]
+       ; gcrRegs +[rax]
+       mov      ecx, dword ptr [rbp-0x30]
        mov      esi, dword ptr [rbp-0x2C]
-       jmp      SHORT G_M25128_IG06
-                       ;; size=59 bbWeight=8 PerfScore 200.00
-G_M25128_IG05:        ; bbWeight=8, gcrefRegs=300C {rdx rbx r12 r13}, byrefRegs=0000 {}, byref
+       jmp      SHORT G_M25128_IG07
+                       ;; size=73 bbWeight=8 PerfScore 224.00
+G_M25128_IG06:        ; bbWeight=8, gcVars=0000000000000000 {}, gcrefRegs=200D {rax rdx rbx r13}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rdx]
-       mov      dword ptr [rbp-0x30], eax
+       ; GC ptr vars -{V02 V28}
+       mov      gword ptr [rbp-0x38], rax
+       ; GC ptr vars +{V28}
+       mov      dword ptr [rbp-0x30], ecx
        mov      dword ptr [rbp-0x2C], esi
        mov      rdi, rbx
        ; gcrRegs +[rdi]
        mov      rsi, rdx
        ; gcrRegs +[rsi]
        call     [<unknown method>]
-       ; gcrRegs -[rdx rsi rdi]
+       ; gcrRegs -[rax rdx rsi rdi]
        ; gcr arg pop 0
-       mov      eax, dword ptr [rbp-0x30]
+       mov      rax, gword ptr [rbp-0x38]
+       ; gcrRegs +[rax]
+       mov      ecx, dword ptr [rbp-0x30]
        mov      esi, dword ptr [rbp-0x2C]
-                       ;; size=24 bbWeight=8 PerfScore 60.00
-G_M25128_IG06:        ; bbWeight=64, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, byref
-       mov      dword ptr [rbp-0x30], eax
-       cmp      eax, dword ptr [r12+0x14]
-       jne      G_M25128_IG20
-                       ;; size=14 bbWeight=64 PerfScore 320.00
-G_M25128_IG07:        ; bbWeight=8, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, byref, isz
-       mov      edi, dword ptr [r12+0x10]
+                       ;; size=32 bbWeight=8 PerfScore 76.00
+G_M25128_IG07:        ; bbWeight=64, gcVars=0000000000000000 {}, gcrefRegs=2009 {rax rbx r13}, byrefRegs=0000 {}, gcvars, byref
+       ; GC ptr vars -{V28}
+       mov      r12d, 1
+       mov      dword ptr [rbp-0x30], ecx
+       cmp      ecx, dword ptr [rax+0x14]
+       jne      G_M25128_IG21
+                       ;; size=18 bbWeight=64 PerfScore 336.00
+G_M25128_IG08:        ; bbWeight=8, gcrefRegs=2009 {rax rbx r13}, byrefRegs=0000 {}, byref, isz
+       mov      edi, dword ptr [rax+0x10]
        cmp      esi, edi
-       jae      SHORT G_M25128_IG08
-       mov      rdi, gword ptr [r12+0x08]
+       jae      SHORT G_M25128_IG09
+       mov      gword ptr [rbp-0x38], rax
+       ; GC ptr vars +{V28}
+       mov      rdi, gword ptr [rax+0x08]
        ; gcrRegs +[rdi]
        cmp      esi, dword ptr [rdi+0x08]
-       jae      G_M25128_IG19
+       jae      G_M25128_IG20
        mov      edx, esi
        mov      rdx, gword ptr [rdi+8*rdx+0x10]
        ; gcrRegs +[rdx]
        inc      esi
        mov      edi, 1
        ; gcrRegs -[rdi]
-       jmp      SHORT G_M25128_IG09
-                       ;; size=39 bbWeight=8 PerfScore 112.00
-G_M25128_IG08:        ; bbWeight=8, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, byref
+       jmp      SHORT G_M25128_IG10
+                       ;; size=40 bbWeight=8 PerfScore 120.00
+G_M25128_IG09:        ; bbWeight=8, gcrefRegs=2009 {rax rbx r13}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
+       ; GC ptr vars -{V28}
        lea      esi, [rdi+0x01]
        mov      dword ptr [rbp-0x2C], esi
        xor      rdx, rdx
        ; gcrRegs +[rdx]
        xor      edi, edi
+       mov      gword ptr [rbp-0x38], rax
+       ; GC ptr vars +{V28}
        mov      esi, dword ptr [rbp-0x2C]
-                       ;; size=13 bbWeight=8 PerfScore 24.00
...

coreclr_tests.run.linux.x64.checked.mch

-12 (-14.46%) : 591929.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)

@@ -36,69 +36,49 @@
 ;
 ; Lcl frame size = 0
 
-G_M34829_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M34829_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        mov      rbp, rsp
                        ;; size=4 bbWeight=1 PerfScore 1.25
 G_M34829_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        movzx    rdi, di
        cmp      edi, 256
-       jb       SHORT G_M34829_IG05
+       jae      SHORT G_M34829_IG09
                        ;; size=11 bbWeight=1 PerfScore 1.50
-G_M34829_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategory(int):int]
-                       ;; size=6 bbWeight=0 PerfScore 0.00
-G_M34829_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       add      eax, -8
-       cmp      eax, 16
-       ja       SHORT G_M34829_IG08
-       lea      rdi, [reloc @RWD00]
-       mov      edi, dword ptr [rdi+4*rax]
-       lea      rcx, G_M34829_IG02
-       add      rdi, rcx
-       jmp      rdi
-                       ;; size=30 bbWeight=1 PerfScore 7.25
-G_M34829_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M34829_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      eax, edi
        mov      rdi, 0xD1FFAB1E      ; static handle
        movzx    rax, byte  ptr [rax+rdi]
        and      eax, 31
-       jmp      SHORT G_M34829_IG04
-                       ;; size=21 bbWeight=0.50 PerfScore 2.38
-G_M34829_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+                       ;; size=19 bbWeight=0.50 PerfScore 1.38
+G_M34829_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       add      eax, -8
+       cmp      eax, 16
+       ja       SHORT G_M34829_IG07
+       mov      edi, 0x1FC7D
+       bt       edi, eax
+       jae      SHORT G_M34829_IG07
+                       ;; size=18 bbWeight=1 PerfScore 3.25
+G_M34829_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M34829_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M34829_IG06:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=2 bbWeight=0.50 PerfScore 0.75
-G_M34829_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M34829_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        mov      eax, 1
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M34829_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+G_M34829_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=2 bbWeight=0.50 PerfScore 0.75
-RWD00      dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
+G_M34829_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategory(int):int]
+       jmp      SHORT G_M34829_IG04
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-
-; Total bytes of code 83, prolog size 4, PerfScore 14.12, instruction count 25, allocated bytes for code 83 (MethodHash=b88877f2) for method System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
+; Total bytes of code 71, prolog size 4, PerfScore 9.12, instruction count 23, allocated bytes for code 71 (MethodHash=b88877f2) for method System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:

-29 (-9.67%) : 234293.dasm - System.Reflection.Internal.MemoryBlock:Utf8NullTerminatedFastCompare(int,System.String,int,byref,ushort,ubyte):int:this (Tier1)

@@ -21,12 +21,12 @@
 ;  V09 loc2         [V09,T02] (  8, 14.17)    long  ->  rsi        
 ;  V10 loc3         [V10,T19] (  2,  1.00)     int  ->  r10        
 ;  V11 loc4         [V11,T00] (  9, 18.39)     int  ->  rcx        
-;  V12 loc5         [V12,T17] (  3,  1.00)   ubyte  ->  r14        
+;  V12 loc5         [V12,T17] (  3,  1.00)   ubyte  ->  rbx        
 ;* V13 loc6         [V13    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;  V14 loc7         [V14,T01] (  6, 16.42)   ubyte  ->  rax        
 ;  V15 loc8         [V15,T05] (  5,  7.28)  ushort  ->  r15        
 ;# V16 OutArgs      [V16    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V17 tmp1         [V17,T18] (  3,  1.00)     int  ->  rcx        
+;  V17 tmp1         [V17,T18] (  3,  1.00)     int  ->  rdx        
 ;  V18 tmp2         [V18,T16] (  2,  2.00)     int  ->  r10         "Inline return value spill temp"
 ;  V19 tmp3         [V19,T12] (  2,  0   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V20 tmp4         [V20,T21] (  2,  0   )     int  ->  rax         "Single return block return value"
@@ -34,35 +34,24 @@
 ;  V22 cse1         [V22,T03] (  4,  8.43)     int  ->  rbx         hoist "CSE - aggressive"
 ;  V23 cse2         [V23,T14] (  3,  3.00)    long  ->  rdi         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M12553_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
-       push     r14
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x20]
+       lea      rbp, [rsp+0x10]
        mov      eax, dword ptr [rbp+0x10]
-                       ;; size=15 bbWeight=1 PerfScore 6.50
-G_M12553_IG02:        ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0180 {rdi r8}, byref, isz
+                       ;; size=12 bbWeight=1 PerfScore 4.50
+G_M12553_IG02:        ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0180 {rdi r8}, byref
        ; gcrRegs +[rdx]
        ; byrRegs +[rdi r8]
        mov      r10d, esi
        movsxd   r11, dword ptr [rdi+0x08]
        cmp      r10, r11
-       jbe      SHORT G_M12553_IG04
-                       ;; size=12 bbWeight=1 PerfScore 5.50
-G_M12553_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdx]
-       ; byrRegs -[rdi r8]
-       call     [System.Reflection.Throw:OutOfBounds()]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M12553_IG04:        ; bbWeight=1.00, gcrefRegs=0004 {rdx}, byrefRegs=0180 {rdi r8}, byref, isz
-       ; gcrRegs +[rdx]
-       ; byrRegs +[rdi r8]
+       ja       G_M12553_IG16
+                       ;; size=16 bbWeight=1 PerfScore 5.50
+G_M12553_IG03:        ; bbWeight=1.00, gcrefRegs=0004 {rdx}, byrefRegs=0180 {rdi r8}, byref, isz
        mov      rdi, qword ptr [rdi]
        ; byrRegs -[rdi]
        movsxd   rsi, esi
@@ -73,73 +62,64 @@ G_M12553_IG04:        ; bbWeight=1.00, gcrefRegs=0004 {rdx}, byrefRegs=0180 {rdi
        test     al, al
        cmove    r10d, r11d
        mov      ebx, dword ptr [rdx+0x08]
-       jmp      SHORT G_M12553_IG09
+       jmp      SHORT G_M12553_IG06
                        ;; size=35 bbWeight=1.00 PerfScore 7.75
-G_M12553_IG05:        ; bbWeight=3.22, gcrefRegs=0004 {rdx}, byrefRegs=0100 {r8}, byref, isz
+G_M12553_IG04:        ; bbWeight=3.22, gcrefRegs=0004 {rdx}, byrefRegs=0100 {r8}, byref, isz
        movzx    rax, byte  ptr [rsi]
        test     eax, eax
-       je       SHORT G_M12553_IG11
+       je       SHORT G_M12553_IG08
        movzx    r11, r9w
        cmp      eax, r11d
-       je       SHORT G_M12553_IG11
+       je       SHORT G_M12553_IG08
        cmp      ecx, ebx
-       jae      G_M12553_IG21
+       jae      SHORT G_M12553_IG15
        mov      r11d, ecx
        movzx    r15, word  ptr [rdx+2*r11+0x0C]
        test     al, 128
-       jne      SHORT G_M12553_IG13
+       jne      SHORT G_M12553_IG12
        cmp      r15d, eax
-       je       SHORT G_M12553_IG08
-                       ;; size=42 bbWeight=3.22 PerfScore 34.56
-G_M12553_IG06:        ; bbWeight=0.35, gcrefRegs=0004 {rdx}, byrefRegs=0100 {r8}, byref, isz
-       mov      r11d, r15d
-       or       r11d, 32
-       or       eax, 32
-       cmp      r11d, eax
-       jne      SHORT G_M12553_IG13
-                       ;; size=15 bbWeight=0.35 PerfScore 0.69
-G_M12553_IG07:        ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0100 {r8}, byref
-       mov      eax, r15d
-       or       eax, r10d
-       add      eax, -97
-       cmp      eax, 25
-       setbe    al
-       movzx    rax, al
-       jmp      G_M12553_IG22
-                       ;; size=23 bbWeight=0 PerfScore 0.00
-G_M12553_IG08:        ; bbWeight=2.87, gcrefRegs=0004 {rdx}, byrefRegs=0100 {r8}, byref
+       jne      SHORT G_M12553_IG14
+                       ;; size=38 bbWeight=3.22 PerfScore 34.56
+G_M12553_IG05:        ; bbWeight=2.87, gcrefRegs=0004 {rdx}, byrefRegs=0100 {r8}, byref
        inc      ecx
        inc      rsi
                        ;; size=5 bbWeight=2.87 PerfScore 1.43
-G_M12553_IG09:        ; bbWeight=3.72, gcrefRegs=0004 {rdx}, byrefRegs=0100 {r8}, byref, isz
+G_M12553_IG06:        ; bbWeight=3.72, gcrefRegs=0004 {rdx}, byrefRegs=0100 {r8}, byref, isz
        cmp      ebx, ecx
-       jle      SHORT G_M12553_IG11
+       jle      SHORT G_M12553_IG08
                        ;; size=4 bbWeight=3.72 PerfScore 4.65
-G_M12553_IG10:        ; bbWeight=3.22, gcrefRegs=0004 {rdx}, byrefRegs=0100 {r8}, byref, isz
+G_M12553_IG07:        ; bbWeight=3.22, gcrefRegs=0004 {rdx}, byrefRegs=0100 {r8}, byref, isz
        cmp      rsi, rdi
-       jne      SHORT G_M12553_IG05
+       jne      SHORT G_M12553_IG04
                        ;; size=5 bbWeight=3.22 PerfScore 4.02
-G_M12553_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0100 {r8}, byref, isz
+G_M12553_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0100 {r8}, byref, isz
        ; gcrRegs -[rdx]
        mov      dword ptr [r8], ecx
-       xor      r14d, r14d
        cmp      ebx, ecx
-       sete     r14b
+       sete     bl
+       movzx    rbx, bl
        cmp      rsi, rdi
-       je       SHORT G_M12553_IG15
+       je       SHORT G_M12553_IG09
        cmp      byte  ptr [rsi], 0
-       je       SHORT G_M12553_IG15
-                       ;; size=22 bbWeight=0.50 PerfScore 3.89
-G_M12553_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       jne      SHORT G_M12553_IG18
+                       ;; size=21 bbWeight=0.50 PerfScore 3.89
+G_M12553_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[r8]
-       movzx    rax, byte  ptr [rsi]
-       movzx    rcx, r9w
-       cmp      eax, ecx
-       sete     cl
-       movzx    rcx, cl
-       jmp      SHORT G_M12553_IG16
-                       ;; size=17 bbWeight=0 PerfScore 0.00
-G_M12553_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0100 {r8}, byref
+       mov      edx, 1
+                       ;; size=5 bbWeight=0.50 PerfScore 0.13
+G_M12553_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       movzx    rax, dl
+       test     ebx, eax
+       je       SHORT G_M12553_IG20
+       xor      eax, eax
+                       ;; size=9 bbWeight=0.50 PerfScore 0.88
+G_M12553_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      rbx
+       pop      r15
+       pop      rbp
+       ret      
+                       ;; size=5 bbWeight=0.50 PerfScore 1.26
+G_M12553_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0100 {r8}, gcvars, byref
        ; byrRegs +[r8]
        mov      dword ptr [r8], ecx
        mov      eax, 4
@@ -147,61 +127,76 @@ G_M12553_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0100 {r8}, b
        cmp      r15d, 127
        cmovle   eax, ecx
                        ;; size=20 bbWeight=0.50 PerfScore 1.00
-G_M12553_IG14:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
+G_M12553_IG13:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M12553_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=5 bbWeight=0.50 PerfScore 1.24
+G_M12553_IG14:        ; bbWeight=0.35, gcVars=0000000000000000 {}, gcrefRegs=0004 {rdx}, byrefRegs=0100 {r8}, gcvars, byref, isz
+       ; gcrRegs +[rdx]
+       mov      r11d, r15d
+       or       r11d, 32
+       or       eax, 32
+       cmp      r11d, eax
+       je       SHORT G_M12553_IG19
+       jmp      SHORT G_M12553_IG12
+                       ;; size=17 bbWeight=0.35 PerfScore 1.39
+G_M12553_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rdx]
        ; byrRegs -[r8]
-       mov      ecx, 1
-                       ;; size=5 bbWeight=0.50 PerfScore 0.13
-G_M12553_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       movzx    rax, cl
-       test     r14d, eax
-       jne      SHORT G_M12553_IG19
-                       ;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M12553_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      eax, 1
-       mov      ecx, 2
-       test     r14d, r14d
-       cmove    eax, ecx
-                       ;; size=16 bbWeight=0 PerfScore 0.00
-G_M12553_IG18:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-                       ;; size=11 bbWeight=0 PerfScore 0.00
-G_M12553_IG19:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       xor      eax, eax
-                       ;; size=2 bbWeight=0.50 PerfScore 0.13
-G_M12553_IG20:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-                       ;; size=11 bbWeight=0.50 PerfScore 1.63
-G_M12553_IG21:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M12553_IG22:        ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0100 {r8}, byref, isz
+G_M12553_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       call     [System.Reflection.Throw:OutOfBounds()]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=7 bbWeight=0 PerfScore 0.00
+G_M12553_IG17:        ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0100 {r8}, byref, isz
        ; gcrRegs +[rdx]
        ; byrRegs +[r8]
        test     eax, eax
-       je       SHORT G_M12553_IG13
-       jmp      G_M12553_IG08
-                       ;; size=9 bbWeight=0 PerfScore 0.00
+       je       SHORT G_M12553_IG12
+       jmp      SHORT G_M12553_IG05
+                       ;; size=6 bbWeight=0 PerfScore 0.00
+G_M12553_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rdx]
+       ; byrRegs -[r8]
+       movzx    rax, byte  ptr [rsi]
...

-10 (-8.13%) : 297586.dasm - System.Reflection.Metadata.PathUtilities:IndexOfFileName(System.String):int (Tier1)

@@ -10,98 +10,94 @@
 ;
 ;  V00 arg0         [V00,T03] (  6, 15.17)     ref  ->  rdi         class-hnd single-def <System.String>
 ;  V01 loc0         [V01,T01] ( 13, 48.78)     int  ->  rcx        
-;  V02 loc1         [V02,T02] (  4, 22.33)  ushort  ->  registers  
+;  V02 loc1         [V02,T02] (  6, 22.55)  ushort  ->  registers  
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 cse0         [V04,T04] (  4,  3.11)     int  ->  rax         "CSE - aggressive"
 ;  V05 rat0         [V05,T00] (  3, 66.33)     int  ->  rax         "ReplaceWithLclVar is creating a new local variable"
-;  V06 rat1         [V06,T05] (  3,  0.67)     int  ->  rdx         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 0
 
-G_M54762_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M54762_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rbp
        mov      rbp, rsp
                        ;; size=4 bbWeight=1 PerfScore 1.25
 G_M54762_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rdi]
        test     rdi, rdi
-       jne      SHORT G_M54762_IG05
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M54762_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdi]
-       mov      eax, -1
-                       ;; size=5 bbWeight=0 PerfScore 0.00
-G_M54762_IG04:        ; bbWeight=0, epilog, nogc, extend
-       pop      rbp
-       ret      
-                       ;; size=2 bbWeight=0 PerfScore 0.00
-G_M54762_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rdi]
+       je       SHORT G_M54762_IG12
        mov      eax, dword ptr [rdi+0x08]
        lea      ecx, [rax-0x01]
        test     ecx, ecx
-       jge      SHORT G_M54762_IG08
-                       ;; size=10 bbWeight=1 PerfScore 3.75
-G_M54762_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdi]
-       xor      eax, eax
-                       ;; size=2 bbWeight=0 PerfScore 0.00
-G_M54762_IG07:        ; bbWeight=0, epilog, nogc, extend
-       pop      rbp
-       ret      
-                       ;; size=2 bbWeight=0 PerfScore 0.00
-G_M54762_IG08:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rdi]
+       jl       SHORT G_M54762_IG14
        cmp      eax, ecx
-       jle      SHORT G_M54762_IG11
-                       ;; size=4 bbWeight=1 PerfScore 1.25
-G_M54762_IG09:        ; bbWeight=11.05, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+       jle      SHORT G_M54762_IG05
+                       ;; size=19 bbWeight=1 PerfScore 6.25
+G_M54762_IG03:        ; bbWeight=11.05, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
        mov      eax, ecx
        movzx    rax, word  ptr [rdi+2*rax+0x0C]
        sub      eax, 47
        cmp      eax, 45
-       ja       SHORT G_M54762_IG10
+       ja       SHORT G_M54762_IG04
        mov      rdx, 0xD1FFAB1E
        bt       rdx, rax
-       jb       SHORT G_M54762_IG13
+       jb       SHORT G_M54762_IG06
                        ;; size=31 bbWeight=11.05 PerfScore 60.80
-G_M54762_IG10:        ; bbWeight=11.05, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+G_M54762_IG04:        ; bbWeight=11.05, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
        dec      ecx
-       js       SHORT G_M54762_IG06
-       jmp      SHORT G_M54762_IG09
+       js       SHORT G_M54762_IG14
+       jmp      SHORT G_M54762_IG03
                        ;; size=6 bbWeight=11.05 PerfScore 35.93
-G_M54762_IG11:        ; bbWeight=0.11, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+G_M54762_IG05:        ; bbWeight=0.11, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
        cmp      ecx, eax
-       jae      SHORT G_M54762_IG15
+       jae      SHORT G_M54762_IG11
        mov      edx, ecx
        movzx    rdx, word  ptr [rdi+2*rdx+0x0C]
-       sub      edx, 47
-       cmp      edx, 45
-       ja       SHORT G_M54762_IG12
-       mov      rsi, 0xD1FFAB1E
-       bt       rsi, rdx
-       jb       SHORT G_M54762_IG13
-                       ;; size=35 bbWeight=0.11 PerfScore 0.75
-G_M54762_IG12:        ; bbWeight=0.11, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       dec      ecx
-       jns      SHORT G_M54762_IG11
-       jmp      SHORT G_M54762_IG06
-                       ;; size=6 bbWeight=0.11 PerfScore 0.36
-G_M54762_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       cmp      edx, 92
+       jne      SHORT G_M54762_IG08
+                       ;; size=16 bbWeight=0.11 PerfScore 0.53
+G_M54762_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdi]
        lea      eax, [rcx+0x01]
                        ;; size=3 bbWeight=1 PerfScore 0.50
-G_M54762_IG14:        ; bbWeight=1, epilog, nogc, extend
+G_M54762_IG07:        ; bbWeight=1, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=2 bbWeight=1 PerfScore 1.50
-G_M54762_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M54762_IG08:        ; bbWeight=0.11, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs +[rdi]
+       cmp      edx, 47
+       je       SHORT G_M54762_IG06
+                       ;; size=5 bbWeight=0.11 PerfScore 0.14
+G_M54762_IG09:        ; bbWeight=0.10, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+       cmp      edx, 58
+       je       SHORT G_M54762_IG06
+                       ;; size=5 bbWeight=0.10 PerfScore 0.13
+G_M54762_IG10:        ; bbWeight=0.11, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+       dec      ecx
+       js       SHORT G_M54762_IG14
+       jmp      SHORT G_M54762_IG05
+                       ;; size=6 bbWeight=0.11 PerfScore 0.36
+G_M54762_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rdi]
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
-       int3     
-                       ;; size=6 bbWeight=0 PerfScore 0.00
+                       ;; size=5 bbWeight=0 PerfScore 0.00
+G_M54762_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      eax, -1
+                       ;; size=5 bbWeight=0 PerfScore 0.00
+G_M54762_IG13:        ; bbWeight=0, epilog, nogc, extend
+       pop      rbp
+       ret      
+                       ;; size=2 bbWeight=0 PerfScore 0.00
+G_M54762_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       xor      eax, eax
+                       ;; size=2 bbWeight=0 PerfScore 0.00
+G_M54762_IG15:        ; bbWeight=0, epilog, nogc, extend
+       pop      rbp
+       ret      
+                       ;; size=2 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 123, prolog size 4, PerfScore 107.35, instruction count 45, allocated bytes for code 123 (MethodHash=f3232a15) for method System.Reflection.Metadata.PathUtilities:IndexOfFileName(System.String):int (Tier1)
+; Total bytes of code 113, prolog size 4, PerfScore 107.39, instruction count 44, allocated bytes for code 113 (MethodHash=f3232a15) for method System.Reflection.Metadata.PathUtilities:IndexOfFileName(System.String):int (Tier1)
 ; ============================================================
 
 Unwind Info:

+23 (+143.75%) : 624085.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)

@@ -2,32 +2,43 @@
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rsp based frame
+; rbp based frame
 ; partially interruptible
 ; No matching PGO data
 ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )   float  ->  zero-ref   
+;  V00 loc0         [V00,T00] (  4,  3.50)   float  ->  mm0         single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V02 cse0         [V02,T01] (  3,  2.50)   float  ->  mm1         "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M53663_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     rax
+       push     rbp
        vzeroupper 
-                       ;; size=4 bbWeight=1 PerfScore 2.00
-G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      rbp, rsp
+                       ;; size=7 bbWeight=1 PerfScore 2.25
+G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        call     [Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float]
-       ; gcr arg pop 0
-       nop      
-                       ;; size=7 bbWeight=1 PerfScore 3.25
-G_M53663_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 8
+       vmovss   xmm1, dword ptr [reloc @RWD00]
+       vucomiss xmm1, xmm0
+       jbe      SHORT G_M53663_IG04
+                       ;; size=20 bbWeight=1 PerfScore 9.00
+G_M53663_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+       pop      rbp
        ret      
-                       ;; size=5 bbWeight=1 PerfScore 1.25
+                       ;; size=2 bbWeight=1 PerfScore 1.50
+G_M53663_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       vucomiss xmm0, xmm1
+       jp       SHORT G_M53663_IG03
+       jne      SHORT G_M53663_IG03
+       jmp      SHORT G_M53663_IG03
+                       ;; size=10 bbWeight=0.50 PerfScore 3.00
+RWD00      dd  41200000h       ;        10
 
-; Total bytes of code 16, prolog size 4, PerfScore 6.50, instruction count 6, allocated bytes for code 16 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+
+; Total bytes of code 39, prolog size 7, PerfScore 15.75, instruction count 13, allocated bytes for code 39 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -40,4 +51,4 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+29 (+181.25%) : 619944.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)

@@ -2,35 +2,47 @@
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rsp based frame
+; rbp based frame
 ; partially interruptible
 ; No matching PGO data
 ; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T00] (  2,  2   )   float  ->  mm0         single-def
+;  V00 loc0         [V00,T00] (  5,  4   )   float  ->  mm0         single-def
 ;* V01 loc1         [V01    ] (  0,  0   )   float  ->  zero-ref   
 ;* V02 loc2         [V02    ] (  0,  0   )   float  ->  zero-ref   
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 cse0         [V04,T01] (  0,  0   )   float  ->  zero-ref    "CSE - aggressive"
+;  V04 cse0         [V04,T01] (  4,  3   )   float  ->  mm1         "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M53663_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     rax
+       push     rbp
        vzeroupper 
-                       ;; size=4 bbWeight=1 PerfScore 2.00
-G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      rbp, rsp
+                       ;; size=7 bbWeight=1 PerfScore 2.25
+G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        call     [Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float]
-       ; gcr arg pop 0
-       nop      
-                       ;; size=7 bbWeight=1 PerfScore 3.25
-G_M53663_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 8
+       vmovss   xmm1, dword ptr [reloc @RWD00]
+       vucomiss xmm1, xmm0
+       jbe      SHORT G_M53663_IG04
+                       ;; size=20 bbWeight=1 PerfScore 9.00
+G_M53663_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+       pop      rbp
        ret      
-                       ;; size=5 bbWeight=1 PerfScore 1.25
+                       ;; size=2 bbWeight=1 PerfScore 1.50
+G_M53663_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       vucomiss xmm0, xmm1
+       jp       SHORT G_M53663_IG03
+       jne      SHORT G_M53663_IG03
+       vucomiss xmm0, xmm1
+       jbe      SHORT G_M53663_IG03
+       jmp      SHORT G_M53663_IG03
+                       ;; size=16 bbWeight=0.50 PerfScore 4.50
+RWD00      dd  41200000h       ;        10
 
-; Total bytes of code 16, prolog size 4, PerfScore 6.50, instruction count 6, allocated bytes for code 16 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+
+; Total bytes of code 45, prolog size 7, PerfScore 17.25, instruction count 15, allocated bytes for code 45 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -43,4 +55,4 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+37 (+231.25%) : 624145.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_1():float (FullOpts)

@@ -2,33 +2,51 @@
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rsp based frame
+; rbp based frame
 ; partially interruptible
 ; No matching PGO data
 ; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )   float  ->  zero-ref   
+;  V00 loc0         [V00,T00] (  6,  4.50)   float  ->  mm0         single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T00] (  2,  4   )   float  ->  mm0         "Single return block return value"
+;  V02 tmp1         [V02,T01] (  2,  4   )   float  ->  mm0         "Single return block return value"
+;  V03 cse0         [V03,T02] (  5,  3.50)   float  ->  mm1         "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M53791_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     rax
+       push     rbp
        vzeroupper 
-                       ;; size=4 bbWeight=1 PerfScore 2.00
-G_M53791_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      rbp, rsp
+                       ;; size=7 bbWeight=1 PerfScore 2.25
+G_M53791_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        call     [Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float]
-       ; gcr arg pop 0
-       nop      
-                       ;; size=7 bbWeight=1 PerfScore 3.25
-G_M53791_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 8
+       vmovss   xmm1, dword ptr [reloc @RWD00]
+       vucomiss xmm0, xmm1
+       jbe      SHORT G_M53791_IG04
+                       ;; size=20 bbWeight=1 PerfScore 9.00
+G_M53791_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M53791_IG05
+                       ;; size=2 bbWeight=1 PerfScore 2.00
+G_M53791_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       vucomiss xmm1, xmm0
+       ja       SHORT G_M53791_IG03
+       vucomiss xmm0, xmm1
+       jp       SHORT G_M53791_IG03
+       jne      SHORT G_M53791_IG03
+       vucomiss xmm1, xmm0
+       jbe      SHORT G_M53791_IG03
+       jmp      SHORT G_M53791_IG03
+                       ;; size=22 bbWeight=0.50 PerfScore 6.00
+G_M53791_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+       pop      rbp
        ret      
-                       ;; size=5 bbWeight=1 PerfScore 1.25
+                       ;; size=2 bbWeight=1 PerfScore 1.50
+RWD00      dd  41200000h       ;        10
 
-; Total bytes of code 16, prolog size 4, PerfScore 6.50, instruction count 6, allocated bytes for code 16 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+
+; Total bytes of code 53, prolog size 7, PerfScore 20.75, instruction count 18, allocated bytes for code 53 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -41,4 +59,4 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

libraries.crossgen2.linux.x64.checked.mch

-6 (-3.45%) : 149199.dasm - Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)

@@ -32,13 +32,13 @@ G_M62762_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; byrRegs +[rbx]
        mov      r15, rsi
                        ;; size=27 bbWeight=1 PerfScore 7.25
-G_M62762_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M62762_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        mov      edi, dword ptr [rbx+0x10]
        mov      rax, gword ptr [rbx]
        ; gcrRegs +[rax]
        cmp      edi, dword ptr [rax+0x24]
-       jne      G_M62762_IG09
-                       ;; size=15 bbWeight=1 PerfScore 8.00
+       jne      SHORT G_M62762_IG09
+                       ;; size=11 bbWeight=1 PerfScore 8.00
 G_M62762_IG03:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        ; gcrRegs -[rax]
        mov      edi, dword ptr [rbx+0x14]
@@ -90,9 +90,8 @@ G_M62762_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        call     [Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Entry[System.__Canon]]:get_Item(int):byref:this]
        ; byrRegs -[rdi r14] +[rax]
        cmp      dword ptr [rax+0x0C], -1
-       jge      SHORT G_M62762_IG07
-       jmp      SHORT G_M62762_IG03
-                       ;; size=53 bbWeight=2 PerfScore 43.50
+       jl       SHORT G_M62762_IG03
+                       ;; size=51 bbWeight=2 PerfScore 39.50
 G_M62762_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0009 {rax rbx}, byref
        mov      rsi, gword ptr [rax]
        ; gcrRegs +[rsi]
@@ -117,7 +116,7 @@ G_M62762_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 174, prolog size 21, PerfScore 132.62, instruction count 59, allocated bytes for code 174 (MethodHash=ac130ad5) for method Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 168, prolog size 21, PerfScore 128.62, instruction count 58, allocated bytes for code 168 (MethodHash=ac130ad5) for method Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-6 (-3.45%) : 191447.dasm - Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)

@@ -32,13 +32,13 @@ G_M62762_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; byrRegs +[rbx]
        mov      r15, rsi
                        ;; size=27 bbWeight=1 PerfScore 7.25
-G_M62762_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M62762_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        mov      edi, dword ptr [rbx+0x10]
        mov      rax, gword ptr [rbx]
        ; gcrRegs +[rax]
        cmp      edi, dword ptr [rax+0x24]
-       jne      G_M62762_IG09
-                       ;; size=15 bbWeight=1 PerfScore 8.00
+       jne      SHORT G_M62762_IG09
+                       ;; size=11 bbWeight=1 PerfScore 8.00
 G_M62762_IG03:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        ; gcrRegs -[rax]
        mov      edi, dword ptr [rbx+0x14]
@@ -90,9 +90,8 @@ G_M62762_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        call     [Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Entry[System.__Canon]]:get_Item(int):byref:this]
        ; byrRegs -[rdi r14] +[rax]
        cmp      dword ptr [rax+0x0C], -1
-       jge      SHORT G_M62762_IG07
-       jmp      SHORT G_M62762_IG03
-                       ;; size=53 bbWeight=2 PerfScore 43.50
+       jl       SHORT G_M62762_IG03
+                       ;; size=51 bbWeight=2 PerfScore 39.50
 G_M62762_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0009 {rax rbx}, byref
        mov      rsi, gword ptr [rax]
        ; gcrRegs +[rsi]
@@ -117,7 +116,7 @@ G_M62762_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 174, prolog size 21, PerfScore 132.62, instruction count 59, allocated bytes for code 174 (MethodHash=ac130ad5) for method Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 168, prolog size 21, PerfScore 128.62, instruction count 58, allocated bytes for code 168 (MethodHash=ac130ad5) for method Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-6 (-3.45%) : 192203.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.Canon,System.Canon]:MoveNext():ubyte:this (FullOpts)

@@ -32,13 +32,13 @@ G_M30401_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; byrRegs +[rbx]
        mov      r15, rsi
                        ;; size=27 bbWeight=1 PerfScore 7.25
-G_M30401_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M30401_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        mov      edi, dword ptr [rbx+0x14]
        mov      rax, gword ptr [rbx]
        ; gcrRegs +[rax]
        cmp      edi, dword ptr [rax+0x34]
-       jne      G_M30401_IG09
-                       ;; size=15 bbWeight=1 PerfScore 8.00
+       jne      SHORT G_M30401_IG09
+                       ;; size=11 bbWeight=1 PerfScore 8.00
 G_M30401_IG03:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        ; gcrRegs -[rax]
        mov      edi, dword ptr [rbx+0x10]
@@ -90,9 +90,8 @@ G_M30401_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        call     [Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[System.__Canon,System.__Canon]]:get_Item(int):byref:this]
        ; byrRegs -[rdi r14] +[rax]
        cmp      dword ptr [rax+0x14], -1
-       jge      SHORT G_M30401_IG07
-       jmp      SHORT G_M30401_IG03
-                       ;; size=53 bbWeight=2 PerfScore 43.50
+       jl       SHORT G_M30401_IG03
+                       ;; size=51 bbWeight=2 PerfScore 39.50
 G_M30401_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0009 {rax rbx}, byref
        mov      rsi, gword ptr [rax]
        ; gcrRegs +[rsi]
@@ -117,7 +116,7 @@ G_M30401_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 174, prolog size 21, PerfScore 132.62, instruction count 59, allocated bytes for code 174 (MethodHash=480f893e) for method Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 168, prolog size 21, PerfScore 128.62, instruction count 58, allocated bytes for code 168 (MethodHash=480f893e) for method Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+22 (+14.67%) : 81251.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:g_makeReplacement|171(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)

@@ -9,7 +9,7 @@
 ; 0 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  4,  3.50)     ref  ->  rbx         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
+;  V00 arg0         [V00,T00] (  5,  4   )     ref  ->  rbx         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
 ;  V01 arg1         [V01,T01] (  4,  3   )     ref  ->  r15         class-hnd single-def <System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]>
 ;  V02 loc0         [V02,T03] (  4,  2   )     ref  ->  rax         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDagFieldEvaluation>
 ;  V03 loc1         [V03,T05] (  3,  1.50)     ref  ->  r13         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol>
@@ -42,21 +42,33 @@ G_M26195_IG02:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
        mov      r14, rax
        ; gcrRegs +[r14]
        test     r14, r14
-       je       SHORT G_M26195_IG05
+       jne      SHORT G_M26195_IG04
                        ;; size=17 bbWeight=1 PerfScore 4.75
-G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
+G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rax r14]
+       mov      rdi, rbx
+       ; gcrRegs +[rdi]
+       mov      rax, (reloc)
+       call     [rax]CORINFO_HELP_READYTORUN_ISINSTANCEOF
+       ; gcrRegs -[rdi] +[rax]
+       ; gcr arg pop 0
+       test     rax, rax
+       jne      SHORT G_M26195_IG06
+       jmp      SHORT G_M26195_IG06
+                       ;; size=22 bbWeight=0.50 PerfScore 3.38
+G_M26195_IG04:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rax] +[r14]
        mov      rdi, gword ptr [r14+0x18]
        ; gcrRegs +[rdi]
        call     [CORINFO_HELP_READYTORUN_ISINSTANCEOF]
        ; gcrRegs -[rdi] +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M26195_IG05
+       je       SHORT G_M26195_IG06
        mov      rdi, gword ptr [rax+0x18]
        ; gcrRegs +[rdi]
        cmp      gword ptr [rdi+0x20], 0
-       jne      SHORT G_M26195_IG05
+       jne      SHORT G_M26195_IG06
        mov      r13, gword ptr [rax+0x20]
        ; gcrRegs +[r13]
        mov      rdi, r13
@@ -66,7 +78,7 @@ G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
        ; gcrRegs -[rdi]
        ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M26195_IG05
+       je       SHORT G_M26195_IG06
        mov      rdi, r13
        ; gcrRegs +[rdi]
        lea      r11, [(reloc)]      ; function address
@@ -80,7 +92,7 @@ G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
        lea      r11, [(reloc)]      ; function address
        cmp      dword ptr [rdi], edi
                        ;; size=79 bbWeight=0.50 PerfScore 15.88
-G_M26195_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG05:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
        pop      r13
        pop      r14
@@ -88,7 +100,7 @@ G_M26195_IG04:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        tail.jmp [r11]<unknown method>
                        ;; size=11 bbWeight=0.50 PerfScore 2.25
-G_M26195_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref
+G_M26195_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rsi rdi r14] +[rbx]
        mov      rsi, r15
        ; gcrRegs +[rsi]
@@ -96,7 +108,7 @@ G_M26195_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
        ; gcrRegs +[rdi]
        lea      rax, [(reloc)]      ; function address
                        ;; size=13 bbWeight=0.50 PerfScore 0.50
-G_M26195_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG07:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
        pop      r13
        pop      r14
@@ -105,7 +117,7 @@ G_M26195_IG06:        ; bbWeight=0.50, epilog, nogc, extend
        tail.jmp [rax]<unknown method>
                        ;; size=11 bbWeight=0.50 PerfScore 2.25
 
-; Total bytes of code 150, prolog size 19, PerfScore 31.62, instruction count 49, allocated bytes for code 150 (MethodHash=af9999ac) for method Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
+; Total bytes of code 172, prolog size 19, PerfScore 35.00, instruction count 55, allocated bytes for code 172 (MethodHash=af9999ac) for method Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
 ; ============================================================
 
 Unwind Info:

+20 (+16.53%) : 207322.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)

@@ -8,7 +8,7 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  5,  3   )     int  ->  rbx         single-def
+;  V00 arg0         [V00,T00] (  7,  3   )     int  ->  rbx         single-def
 ;  V01 arg1         [V01,T01] (  4,  2   )     ref  ->  r15         class-hnd single-def <System.String>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -30,7 +30,7 @@ G_M8758_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=17 bbWeight=1 PerfScore 6.00
 G_M8758_IG02:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
        cmp      ebx, 250
-       jne      SHORT G_M8758_IG04
+       jne      SHORT G_M8758_IG06
                        ;; size=8 bbWeight=1 PerfScore 1.25
 G_M8758_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 8
@@ -79,10 +79,18 @@ G_M8758_IG05:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byre
        ; gcrRegs +[rdi]
        call     [CORINFO_HELP_THROW]
        ; gcrRegs -[rdi r14]
-       int3     
-                       ;; size=38 bbWeight=0 PerfScore 0.00
+                       ;; size=37 bbWeight=0 PerfScore 0.00
+G_M8758_IG06:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[r15]
+       lea      eax, [rbx-0x1C3]
+       cmp      eax, 1
+       jbe      SHORT G_M8758_IG04
+       cmp      ebx, 552
+       je       SHORT G_M8758_IG04
+       jmp      SHORT G_M8758_IG04
+                       ;; size=21 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 121, prolog size 12, PerfScore 10.50, instruction count 37, allocated bytes for code 121 (MethodHash=cf4bddc9) for method System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 141, prolog size 12, PerfScore 10.50, instruction count 42, allocated bytes for code 141 (MethodHash=cf4bddc9) for method System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
 ; ============================================================
 
 Unwind Info:

+30 (+23.26%) : 207486.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)

@@ -8,7 +8,7 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6,  4   )     int  ->  rbx         single-def
+;  V00 arg0         [V00,T00] (  9,  4   )     int  ->  rbx         single-def
 ;  V01 arg1         [V01,T01] (  4,  2   )     ref  ->  r15         class-hnd single-def <System.String>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -30,9 +30,9 @@ G_M20631_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=17 bbWeight=1 PerfScore 6.00
 G_M20631_IG02:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
        cmp      ebx, 452
-       jg       SHORT G_M20631_IG04
+       jg       SHORT G_M20631_IG07
        cmp      ebx, 250
-       jne      SHORT G_M20631_IG04
+       jne      SHORT G_M20631_IG06
                        ;; size=16 bbWeight=1 PerfScore 2.50
 G_M20631_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 8
@@ -81,10 +81,23 @@ G_M20631_IG05:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rdi]
        call     [CORINFO_HELP_THROW]
        ; gcrRegs -[rdi r14]
-       int3     
-                       ;; size=38 bbWeight=0 PerfScore 0.00
+                       ;; size=37 bbWeight=0 PerfScore 0.00
+G_M20631_IG06:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[r15]
+       lea      eax, [rbx-0x1C3]
+       cmp      eax, 1
+       jbe      SHORT G_M20631_IG04
+       jmp      SHORT G_M20631_IG04
+                       ;; size=13 bbWeight=0 PerfScore 0.00
+G_M20631_IG07:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+       cmp      ebx, 552
+       je       SHORT G_M20631_IG04
+       cmp      ebx, 554
+       je       SHORT G_M20631_IG04
+       jmp      SHORT G_M20631_IG04
+                       ;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 129, prolog size 12, PerfScore 11.75, instruction count 39, allocated bytes for code 129 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 159, prolog size 12, PerfScore 11.75, instruction count 47, allocated bytes for code 159 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
 ; ============================================================
 
 Unwind Info:

libraries.pmi.linux.x64.checked.mch

-19 (-29.23%) : 269796.dasm - System.IO.Packaging.OrderedDictionary2[int,System.Nullable1[int]]:TryGetValue(int,byref):ubyte:this (FullOpts)

@@ -2,7 +2,7 @@
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rbp based frame
+; rsp based frame
 ; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
@@ -11,23 +11,20 @@
 ;  V00 this         [V00,T02] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <System.IO.Packaging.OrderedDictionary`2[int,System.Nullable`1[int]]>
 ;  V01 arg1         [V01,T03] (  3,  3   )     int  ->  rsi         single-def
 ;  V02 arg2         [V02,T01] (  4,  3   )   byref  ->  rbx         single-def
-;  V03 loc0         [V03,T05] (  2,  0.66)     ref  ->  rcx         ld-addr-op class-hnd <System.Collections.Generic.LinkedListNode`1[System.Nullable`1[int]]>
+;  V03 loc0         [V03,T05] (  2,  1   )     ref  ->  rax         ld-addr-op class-hnd <System.Collections.Generic.LinkedListNode`1[System.Nullable`1[int]]>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V06 tmp2         [V06,T00] (  3,  6   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V07 tmp3         [V07,T04] (  3,  2.16)   byref  ->  rax         single-def "Inline stloc first use temp"
+;  V07 tmp3         [V07,T04] (  3,  2.50)   byref  ->  rax         single-def "Inline stloc first use temp"
 ;* V08 tmp4         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Nullable`1[int]]>
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
-G_M14175_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-       push     rbp
+G_M14175_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x10]
        mov      rbx, rdx
        ; byrRegs +[rbx]
-                       ;; size=11 bbWeight=1 PerfScore 3.75
+                       ;; size=4 bbWeight=1 PerfScore 1.25
 G_M14175_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
        ; gcrRegs +[rdi]
        mov      rdi, gword ptr [rdi+0x08]
@@ -35,42 +32,34 @@ G_M14175_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx},
        call     [<unknown method>]
        ; gcrRegs -[rdi]
        ; byrRegs +[rax]
+       ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M14175_IG04
+       je       SHORT G_M14175_IG05
                        ;; size=18 bbWeight=1 PerfScore 9.25
-G_M14175_IG03:        ; bbWeight=0.16, gcrefRegs=0000 {}, byrefRegs=0009 {rax rbx}, byref, isz
-       mov      rcx, gword ptr [rax]
-       ; gcrRegs +[rcx]
-       jmp      SHORT G_M14175_IG06
-                       ;; size=5 bbWeight=0.16 PerfScore 0.66
-G_M14175_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
-       ; gcrRegs -[rcx]
+G_M14175_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0009 {rax rbx}, byref
+       mov      rax, gword ptr [rax]
+       ; gcrRegs +[rax]
        ; byrRegs -[rax]
+       mov      rax, qword ptr [rax+0x20]
+       ; gcrRegs -[rax]
+       mov      qword ptr [rbx], rax
+       mov      eax, 1
+                       ;; size=15 bbWeight=0.50 PerfScore 2.62
+G_M14175_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      rbx
+       ret      
+                       ;; size=2 bbWeight=0.50 PerfScore 0.75
+G_M14175_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
        xor      eax, eax
        mov      qword ptr [rbx], rax
                        ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M14175_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M14175_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        ; byrRegs -[rbx]
-       add      rsp, 8
        pop      rbx
-       pop      rbp
        ret      
-                       ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M14175_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0008 {rbx}, gcvars, byref
-       ; gcrRegs +[rcx]
-       ; byrRegs +[rbx]
-       mov      rax, qword ptr [rcx+0x20]
-       mov      qword ptr [rbx], rax
-       mov      eax, 1
-                       ;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M14175_IG07:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      rbp
-       ret      
-                       ;; size=7 bbWeight=0.50 PerfScore 1.12
+                       ;; size=2 bbWeight=0.50 PerfScore 0.75
 
-; Total bytes of code 65, prolog size 8, PerfScore 18.16, instruction count 25, allocated bytes for code 65 (MethodHash=2d9bc8a0) for method System.IO.Packaging.OrderedDictionary`2[int,System.Nullable`1[int]]:TryGetValue(int,byref):ubyte:this (FullOpts)
+; Total bytes of code 46, prolog size 1, PerfScore 15.25, instruction count 17, allocated bytes for code 46 (MethodHash=2d9bc8a0) for method System.IO.Packaging.OrderedDictionary`2[int,System.Nullable`1[int]]:TryGetValue(int,byref):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -78,11 +67,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x03
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x01
+  CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)

-19 (-29.23%) : 269808.dasm - System.IO.Packaging.OrderedDictionary2[long,System.Nullable1[int]]:TryGetValue(long,byref):ubyte:this (FullOpts)

@@ -2,7 +2,7 @@
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rbp based frame
+; rsp based frame
 ; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
@@ -11,23 +11,20 @@
 ;  V00 this         [V00,T02] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <System.IO.Packaging.OrderedDictionary`2[long,System.Nullable`1[int]]>
 ;  V01 arg1         [V01,T03] (  3,  3   )    long  ->  rsi         single-def
 ;  V02 arg2         [V02,T01] (  4,  3   )   byref  ->  rbx         single-def
-;  V03 loc0         [V03,T05] (  2,  0.61)     ref  ->  rcx         ld-addr-op class-hnd <System.Collections.Generic.LinkedListNode`1[System.Nullable`1[int]]>
+;  V03 loc0         [V03,T05] (  2,  1   )     ref  ->  rax         ld-addr-op class-hnd <System.Collections.Generic.LinkedListNode`1[System.Nullable`1[int]]>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V06 tmp2         [V06,T00] (  3,  6   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V07 tmp3         [V07,T04] (  3,  2.11)   byref  ->  rax         single-def "Inline stloc first use temp"
+;  V07 tmp3         [V07,T04] (  3,  2.50)   byref  ->  rax         single-def "Inline stloc first use temp"
 ;* V08 tmp4         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Nullable`1[int]]>
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
-G_M63935_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-       push     rbp
+G_M63935_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x10]
        mov      rbx, rdx
        ; byrRegs +[rbx]
-                       ;; size=11 bbWeight=1 PerfScore 3.75
+                       ;; size=4 bbWeight=1 PerfScore 1.25
 G_M63935_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
        ; gcrRegs +[rdi]
        mov      rdi, gword ptr [rdi+0x08]
@@ -35,42 +32,34 @@ G_M63935_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx},
        call     [<unknown method>]
        ; gcrRegs -[rdi]
        ; byrRegs +[rax]
+       ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M63935_IG04
+       je       SHORT G_M63935_IG05
                        ;; size=18 bbWeight=1 PerfScore 9.25
-G_M63935_IG03:        ; bbWeight=0.11, gcrefRegs=0000 {}, byrefRegs=0009 {rax rbx}, byref, isz
-       mov      rcx, gword ptr [rax]
-       ; gcrRegs +[rcx]
-       jmp      SHORT G_M63935_IG06
-                       ;; size=5 bbWeight=0.11 PerfScore 0.43
-G_M63935_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
-       ; gcrRegs -[rcx]
+G_M63935_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0009 {rax rbx}, byref
+       mov      rax, gword ptr [rax]
+       ; gcrRegs +[rax]
        ; byrRegs -[rax]
+       mov      rax, qword ptr [rax+0x20]
+       ; gcrRegs -[rax]
+       mov      qword ptr [rbx], rax
+       mov      eax, 1
+                       ;; size=15 bbWeight=0.50 PerfScore 2.62
+G_M63935_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      rbx
+       ret      
+                       ;; size=2 bbWeight=0.50 PerfScore 0.75
+G_M63935_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
        xor      eax, eax
        mov      qword ptr [rbx], rax
                        ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M63935_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M63935_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        ; byrRegs -[rbx]
-       add      rsp, 8
        pop      rbx
-       pop      rbp
        ret      
-                       ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M63935_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0008 {rbx}, gcvars, byref
-       ; gcrRegs +[rcx]
-       ; byrRegs +[rbx]
-       mov      rax, qword ptr [rcx+0x20]
-       mov      qword ptr [rbx], rax
-       mov      eax, 1
-                       ;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M63935_IG07:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      rbp
-       ret      
-                       ;; size=7 bbWeight=0.50 PerfScore 1.12
+                       ;; size=2 bbWeight=0.50 PerfScore 0.75
 
-; Total bytes of code 65, prolog size 8, PerfScore 17.93, instruction count 25, allocated bytes for code 65 (MethodHash=0a220640) for method System.IO.Packaging.OrderedDictionary`2[long,System.Nullable`1[int]]:TryGetValue(long,byref):ubyte:this (FullOpts)
+; Total bytes of code 46, prolog size 1, PerfScore 15.25, instruction count 17, allocated bytes for code 46 (MethodHash=0a220640) for method System.IO.Packaging.OrderedDictionary`2[long,System.Nullable`1[int]]:TryGetValue(long,byref):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -78,11 +67,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x03
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x01
+  CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)

-19 (-27.54%) : 269784.dasm - System.IO.Packaging.OrderedDictionary2[ubyte,System.Nullable1[int]]:TryGetValue(ubyte,byref):ubyte:this (FullOpts)

@@ -2,7 +2,7 @@
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rbp based frame
+; rsp based frame
 ; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
@@ -11,23 +11,20 @@
 ;  V00 this         [V00,T02] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <System.IO.Packaging.OrderedDictionary`2[ubyte,System.Nullable`1[int]]>
 ;  V01 arg1         [V01,T03] (  3,  3   )   ubyte  ->  rsi         single-def
 ;  V02 arg2         [V02,T01] (  4,  3   )   byref  ->  rbx         single-def
-;  V03 loc0         [V03,T05] (  2,  0.66)     ref  ->  rcx         ld-addr-op class-hnd <System.Collections.Generic.LinkedListNode`1[System.Nullable`1[int]]>
+;  V03 loc0         [V03,T05] (  2,  1   )     ref  ->  rax         ld-addr-op class-hnd <System.Collections.Generic.LinkedListNode`1[System.Nullable`1[int]]>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V06 tmp2         [V06,T00] (  3,  6.00)     ref  ->  rdi         class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V07 tmp3         [V07,T04] (  3,  2.16)   byref  ->  rax         single-def "Inline stloc first use temp"
+;  V07 tmp3         [V07,T04] (  3,  2.50)   byref  ->  rax         single-def "Inline stloc first use temp"
 ;* V08 tmp4         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Nullable`1[int]]>
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
-G_M35423_IG01:        ; bbWeight=1.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-       push     rbp
+G_M35423_IG01:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x10]
        mov      rbx, rdx
        ; byrRegs +[rbx]
-                       ;; size=11 bbWeight=1.00 PerfScore 3.75
+                       ;; size=4 bbWeight=1.00 PerfScore 1.25
 G_M35423_IG02:        ; bbWeight=1.00, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
        ; gcrRegs +[rdi]
        mov      rdi, gword ptr [rdi+0x08]
@@ -36,42 +33,34 @@ G_M35423_IG02:        ; bbWeight=1.00, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx
        call     [<unknown method>]
        ; gcrRegs -[rdi]
        ; byrRegs +[rax]
+       ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M35423_IG04
+       je       SHORT G_M35423_IG05
                        ;; size=22 bbWeight=1.00 PerfScore 9.50
-G_M35423_IG03:        ; bbWeight=0.16, gcrefRegs=0000 {}, byrefRegs=0009 {rax rbx}, byref, isz
-       mov      rcx, gword ptr [rax]
-       ; gcrRegs +[rcx]
-       jmp      SHORT G_M35423_IG06
-                       ;; size=5 bbWeight=0.16 PerfScore 0.66
-G_M35423_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
-       ; gcrRegs -[rcx]
+G_M35423_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0009 {rax rbx}, byref
+       mov      rax, gword ptr [rax]
+       ; gcrRegs +[rax]
        ; byrRegs -[rax]
+       mov      rax, qword ptr [rax+0x20]
+       ; gcrRegs -[rax]
+       mov      qword ptr [rbx], rax
+       mov      eax, 1
+                       ;; size=15 bbWeight=0.50 PerfScore 2.62
+G_M35423_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      rbx
+       ret      
+                       ;; size=2 bbWeight=0.50 PerfScore 0.75
+G_M35423_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
        xor      eax, eax
        mov      qword ptr [rbx], rax
                        ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M35423_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M35423_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        ; byrRegs -[rbx]
-       add      rsp, 8
        pop      rbx
-       pop      rbp
        ret      
-                       ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M35423_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0008 {rbx}, gcvars, byref
-       ; gcrRegs +[rcx]
-       ; byrRegs +[rbx]
-       mov      rax, qword ptr [rcx+0x20]
-       mov      qword ptr [rbx], rax
-       mov      eax, 1
-                       ;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M35423_IG07:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      rbp
-       ret      
-                       ;; size=7 bbWeight=0.50 PerfScore 1.12
+                       ;; size=2 bbWeight=0.50 PerfScore 0.75
 
-; Total bytes of code 69, prolog size 8, PerfScore 18.41, instruction count 26, allocated bytes for code 69 (MethodHash=6e7c75a0) for method System.IO.Packaging.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:TryGetValue(ubyte,byref):ubyte:this (FullOpts)
+; Total bytes of code 50, prolog size 1, PerfScore 15.50, instruction count 18, allocated bytes for code 50 (MethodHash=6e7c75a0) for method System.IO.Packaging.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:TryGetValue(ubyte,byref):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -79,11 +68,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x03
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x01
+  CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)

+4 (+25.00%) : 283919.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)

@@ -2,7 +2,7 @@
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rsp based frame
+; rbp based frame
 ; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
@@ -13,11 +13,12 @@
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M40773_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     rax
-                       ;; size=1 bbWeight=1 PerfScore 1.00
+       push     rbp
+       mov      rbp, rsp
+                       ;; size=4 bbWeight=1 PerfScore 1.25
 G_M40773_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rdi]
        test     sil, sil
@@ -25,16 +26,17 @@ G_M40773_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
                        ;; size=5 bbWeight=1 PerfScore 1.25
 G_M40773_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        ; gcrRegs -[rdi]
-       add      rsp, 8
+       pop      rbp
        ret      
-                       ;; size=5 bbWeight=1 PerfScore 1.25
+                       ;; size=2 bbWeight=1 PerfScore 1.50
 G_M40773_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rdi]
-       mov      eax, dword ptr [rdi+0x10]
+       cmp      gword ptr [rdi+0x10], 0
+       je       SHORT G_M40773_IG03
        jmp      SHORT G_M40773_IG03
-                       ;; size=5 bbWeight=0.50 PerfScore 2.00
+                       ;; size=9 bbWeight=0.50 PerfScore 3.00
 
-; Total bytes of code 16, prolog size 1, PerfScore 5.50, instruction count 7, allocated bytes for code 16 (MethodHash=8a3760ba) for method System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
+; Total bytes of code 20, prolog size 4, PerfScore 7.00, instruction count 9, allocated bytes for code 20 (MethodHash=8a3760ba) for method System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -47,4 +49,4 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+16 (+26.67%) : 180993.dasm - System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)

@@ -11,16 +11,16 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Net.Sockets.UdpReceiveResult>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Net.Sockets.UdpReceiveResult>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T04] (  3,  2   )   ubyte  ->  rax         "Inline return value spill temp"
+;  V03 tmp1         [V03,T04] (  3,  2   )   ubyte  ->  rdx         "Inline return value spill temp"
 ;* V04 tmp2         [V04,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V05 tmp3         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V06 tmp4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V07 tmp5         [V07,T05] (  4,  1   )   ubyte  ->  rax         "Inline return value spill temp"
+;  V07 tmp5         [V07,T05] (  4,  1   )   ubyte  ->  registers   "Inline return value spill temp"
 ;* V08 tmp6         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.Net.IPEndPoint>
 ;* V09 tmp7         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.Net.IPEndPoint>
-;  V10 tmp8         [V10,T00] (  2,  2   )     ref  ->  rdi         single-def "field V00._buffer (fldOffset=0x0)" P-INDEP
+;  V10 tmp8         [V10,T00] (  3,  2.42)     ref  ->  rdi         single-def "field V00._buffer (fldOffset=0x0)" P-INDEP
 ;  V11 tmp9         [V11,T02] (  5,  2.11)     ref  ->  rax         single-def "field V00._remoteEndPoint (fldOffset=0x8)" P-INDEP
-;  V12 tmp10        [V12,T01] (  2,  2   )     ref  ->  rdx         single-def "field V01._buffer (fldOffset=0x0)" P-INDEP
+;  V12 tmp10        [V12,T01] (  3,  2.42)     ref  ->  rdx         single-def "field V01._buffer (fldOffset=0x0)" P-INDEP
 ;  V13 tmp11        [V13,T03] (  4,  2.01)     ref  ->  rcx         single-def "field V01._remoteEndPoint (fldOffset=0x8)" P-INDEP
 ;
 ; Lcl frame size = 0
@@ -34,33 +34,41 @@ G_M22145_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M22145_IG02:        ; bbWeight=1, gcrefRegs=0087 {rax rcx rdx rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx rdx rdi]
        cmp      rdi, rdx
-       jne      SHORT G_M22145_IG10
+       je       SHORT G_M22145_IG06
                        ;; size=5 bbWeight=1 PerfScore 1.25
-G_M22145_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rdx rdi]
-       cmp      rax, rcx
-       jne      SHORT G_M22145_IG05
-                       ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M22145_IG04:        ; bbWeight=0.08, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M22145_IG03:        ; bbWeight=0.42, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax rcx]
-       mov      eax, 1
-       jmp      SHORT G_M22145_IG09
-                       ;; size=7 bbWeight=0.08 PerfScore 0.18
-G_M22145_IG05:        ; bbWeight=0.42, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
+       test     rdi, rdi
+       je       SHORT G_M22145_IG13
+                       ;; size=5 bbWeight=0.42 PerfScore 0.52
+G_M22145_IG04:        ; bbWeight=0.42, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rdi]
+       test     rdx, rdx
+       jne      SHORT G_M22145_IG13
+                       ;; size=5 bbWeight=0.42 PerfScore 0.52
+G_M22145_IG05:        ; bbWeight=0.33, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rdx]
+       jmp      SHORT G_M22145_IG13
+                       ;; size=2 bbWeight=0.33 PerfScore 0.65
+G_M22145_IG06:        ; bbWeight=0.50, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rax rcx]
+       cmp      rax, rcx
+       je       SHORT G_M22145_IG12
+                       ;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M22145_IG07:        ; bbWeight=0.42, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
        test     rax, rax
-       je       SHORT G_M22145_IG07
+       je       SHORT G_M22145_IG09
                        ;; size=5 bbWeight=0.42 PerfScore 0.52
-G_M22145_IG06:        ; bbWeight=0.42, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
+G_M22145_IG08:        ; bbWeight=0.42, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
        test     rcx, rcx
-       jne      SHORT G_M22145_IG08
+       jne      SHORT G_M22145_IG10
                        ;; size=5 bbWeight=0.42 PerfScore 0.52
-G_M22145_IG07:        ; bbWeight=0.33, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M22145_IG09:        ; bbWeight=0.33, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax rcx]
-       xor      eax, eax
-       jmp      SHORT G_M22145_IG09
+       xor      edx, edx
+       jmp      SHORT G_M22145_IG11
                        ;; size=4 bbWeight=0.33 PerfScore 0.73
-G_M22145_IG08:        ; bbWeight=0.09, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref
+G_M22145_IG10:        ; bbWeight=0.09, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rax rcx]
        mov      rdi, rax
        ; gcrRegs +[rdi]
@@ -71,19 +79,27 @@ G_M22145_IG08:        ; bbWeight=0.09, gcrefRegs=0003 {rax rcx}, byrefRegs=0000
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x10]System.Object:Equals(System.Object):ubyte:this
        ; gcrRegs -[rcx rsi rdi]
-                       ;; size=16 bbWeight=0.09 PerfScore 0.70
-G_M22145_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M22145_IG11
+       mov      edx, eax
+                       ;; size=18 bbWeight=0.09 PerfScore 0.72
+G_M22145_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M22145_IG14
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M22145_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       xor      eax, eax
+G_M22145_IG12:        ; bbWeight=0.08, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       mov      edx, 1
+       jmp      SHORT G_M22145_IG11
+                       ;; size=7 bbWeight=0.08 PerfScore 0.18
+G_M22145_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       xor      edx, edx
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M22145_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M22145_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      eax, edx
+                       ;; size=2 bbWeight=1 PerfScore 0.25
+G_M22145_IG15:        ; bbWeight=1, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=2 bbWeight=1 PerfScore 1.50
 
-; Total bytes of code 60, prolog size 4, PerfScore 8.66, instruction count 24, allocated bytes for code 60 (MethodHash=a75ea97e) for method System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
+; Total bytes of code 76, prolog size 4, PerfScore 10.63, instruction count 31, allocated bytes for code 76 (MethodHash=a75ea97e) for method System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:

+41 (+28.28%) : 131954.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)

@@ -7,7 +7,7 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6,  4   )     int  ->  rbx         single-def
+;  V00 arg0         [V00,T00] (  9,  4   )     int  ->  rbx         single-def
 ;  V01 arg1         [V01,T01] (  4,  2   )     ref  ->  r15         class-hnd single-def <System.String>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -29,10 +29,10 @@ G_M20631_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=17 bbWeight=1 PerfScore 6.00
 G_M20631_IG02:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
        cmp      ebx, 452
-       jg       SHORT G_M20631_IG04
+       jg       G_M20631_IG07
        cmp      ebx, 250
-       jne      SHORT G_M20631_IG04
-                       ;; size=16 bbWeight=1 PerfScore 2.50
+       jne      SHORT G_M20631_IG06
+                       ;; size=20 bbWeight=1 PerfScore 2.50
 G_M20631_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
@@ -82,10 +82,23 @@ G_M20631_IG05:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rdi]
        call     CORINFO_HELP_THROW
        ; gcrRegs -[rdi r14]
-       int3     
-                       ;; size=46 bbWeight=0 PerfScore 0.00
+                       ;; size=45 bbWeight=0 PerfScore 0.00
+G_M20631_IG06:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[r15]
+       lea      edi, [rbx-0x1C3]
+       cmp      edi, 1
+       jbe      SHORT G_M20631_IG04
+       jmp      SHORT G_M20631_IG04
+                       ;; size=13 bbWeight=0 PerfScore 0.00
+G_M20631_IG07:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+       cmp      ebx, 552
+       je       SHORT G_M20631_IG04
+       cmp      ebx, 554
+       je       G_M20631_IG04
+       jmp      G_M20631_IG04
+                       ;; size=25 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 145, prolog size 12, PerfScore 11.75, instruction count 41, allocated bytes for code 145 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 186, prolog size 12, PerfScore 11.75, instruction count 49, allocated bytes for code 186 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
 ; ============================================================
 
 Unwind Info:

libraries_tests.run.linux.x64.Release.mch

-19 (-30.16%) : 87121.dasm - Roslyn.Utilities.MultiDictionary2[System.__Canon,System.__Canon]:get_Item(System.__Canon):Roslyn.Utilities.MultiDictionary2+ValueSet[System.Canon,System.Canon]:this (Tier1)

@@ -3,7 +3,7 @@
 ; Tier1 code
 ; optimized code
 ; optimized using Dynamic PGO
-; rbp based frame
+; rsp based frame
 ; partially interruptible
 ; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 11353
 ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
@@ -16,22 +16,19 @@
 ;* V04 tmp1         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-ret "Return value temp for multireg return" <Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.__Canon]>
 ;* V05 tmp2         [V05,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V06 tmp3         [V06,T01] (  3,  6   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.__Canon,Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.__Canon]]>
-;  V07 tmp4         [V07,T03] (  4,  2.17)   byref  ->  rax         single-def "Inline stloc first use temp"
-;  V08 tmp5         [V08,T06] (  2,  0.18)     ref  ->  rcx         "field V02._value (fldOffset=0x0)" P-INDEP
-;  V09 tmp6         [V09,T07] (  2,  0.18)     ref  ->  rdx         "field V02._equalityComparer (fldOffset=0x8)" P-INDEP
+;  V07 tmp4         [V07,T03] (  4,  2.20)   byref  ->  rax         single-def "Inline stloc first use temp"
+;  V08 tmp5         [V08,T06] (  2,  0.20)     ref  ->  rcx         "field V02._value (fldOffset=0x0)" P-INDEP
+;  V09 tmp6         [V09,T07] (  2,  0.20)     ref  ->  rdx         "field V02._equalityComparer (fldOffset=0x8)" P-INDEP
 ;  V10 tmp7         [V10,T04] (  2,  2   )     ref  ->  rax         single-def "field V04._value (fldOffset=0x0)" P-INDEP
 ;  V11 tmp8         [V11,T05] (  2,  2   )     ref  ->  rdx         single-def "field V04._equalityComparer (fldOffset=0x8)" P-INDEP
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M44287_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-       push     rbp
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x10]
        mov      rbx, rdi
        ; gcrRegs +[rbx]
-                       ;; size=11 bbWeight=1 PerfScore 3.75
+                       ;; size=4 bbWeight=1 PerfScore 1.25
 G_M44287_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi]
        mov      rdi, gword ptr [rbx+0x08]
@@ -40,44 +37,36 @@ G_M44287_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        call     [System.Collections.Generic.Dictionary`2[System.__Canon,Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.__Canon]]:FindValue(System.__Canon):byref:this]
        ; gcrRegs -[rsi rdi]
        ; byrRegs +[rax]
+       ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M44287_IG04
-                       ;; size=18 bbWeight=1 PerfScore 9.25
-G_M44287_IG03:        ; bbWeight=0.09, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
-       ; gcrRegs -[rbx]
+       jne      SHORT G_M44287_IG04
+       mov      rax, gword ptr [rbx+0x18]
+       ; gcrRegs +[rax]
+       ; byrRegs -[rax]
+       mov      rdx, gword ptr [rbx+0x20]
+       ; gcrRegs +[rdx]
+                       ;; size=26 bbWeight=1 PerfScore 13.25
+G_M44287_IG03:        ; bbWeight=1, epilog, nogc, extend
+       pop      rbx
+       ret      
+                       ;; size=2 bbWeight=1 PerfScore 1.50
+G_M44287_IG04:        ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, gcvars, byref
+       ; gcrRegs -[rax rdx rbx]
+       ; byrRegs +[rax]
        mov      rcx, gword ptr [rax]
        ; gcrRegs +[rcx]
        mov      rdx, gword ptr [rax+0x08]
        ; gcrRegs +[rdx]
-       jmp      SHORT G_M44287_IG06
-                       ;; size=9 bbWeight=0.09 PerfScore 0.52
-G_M44287_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rcx rdx] +[rbx]
-       ; byrRegs -[rax]
-       mov      rax, gword ptr [rbx+0x18]
-       ; gcrRegs +[rax]
-       mov      rdx, gword ptr [rbx+0x20]
-       ; gcrRegs +[rdx]
-                       ;; size=8 bbWeight=1 PerfScore 4.00
-G_M44287_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      rbp
-       ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
-G_M44287_IG06:        ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax rbx] +[rcx]
        mov      rax, rcx
        ; gcrRegs +[rax]
-                       ;; size=3 bbWeight=0.10 PerfScore 0.02
-G_M44287_IG07:        ; bbWeight=0.10, epilog, nogc, extend
-       add      rsp, 8
+       ; byrRegs -[rax]
+                       ;; size=10 bbWeight=0.10 PerfScore 0.42
+G_M44287_IG05:        ; bbWeight=0.10, epilog, nogc, extend
        pop      rbx
-       pop      rbp
        ret      
-                       ;; size=7 bbWeight=0.10 PerfScore 0.22
+                       ;; size=2 bbWeight=0.10 PerfScore 0.15
 
-; Total bytes of code 63, prolog size 8, PerfScore 20.01, instruction count 24, allocated bytes for code 63 (MethodHash=5b165300) for method Roslyn.Utilities.MultiDictionary`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.__Canon]:this (Tier1)
+; Total bytes of code 44, prolog size 1, PerfScore 16.56, instruction count 16, allocated bytes for code 44 (MethodHash=5b165300) for method Roslyn.Utilities.MultiDictionary`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.__Canon]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -85,11 +74,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x03
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x01
+  CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)

-19 (-30.16%) : 693809.dasm - Roslyn.Utilities.MultiDictionary2[System.__Canon,System.__Canon]:get_Item(System.__Canon):Roslyn.Utilities.MultiDictionary2+ValueSet[System.Canon,System.Canon]:this (Tier1)

@@ -3,7 +3,7 @@
 ; Tier1 code
 ; optimized code
 ; optimized using Dynamic PGO
-; rbp based frame
+; rsp based frame
 ; partially interruptible
 ; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 8602
 ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
@@ -16,22 +16,19 @@
 ;* V04 tmp1         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-ret "Return value temp for multireg return" <Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.__Canon]>
 ;* V05 tmp2         [V05,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V06 tmp3         [V06,T01] (  3,  6   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.__Canon,Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.__Canon]]>
-;  V07 tmp4         [V07,T03] (  4,  2.42)   byref  ->  rax         single-def "Inline stloc first use temp"
-;  V08 tmp5         [V08,T06] (  2,  0.44)     ref  ->  rcx         "field V02._value (fldOffset=0x0)" P-INDEP
-;  V09 tmp6         [V09,T07] (  2,  0.44)     ref  ->  rdx         "field V02._equalityComparer (fldOffset=0x8)" P-INDEP
+;  V07 tmp4         [V07,T03] (  4,  2.46)   byref  ->  rax         single-def "Inline stloc first use temp"
+;  V08 tmp5         [V08,T06] (  2,  0.46)     ref  ->  rcx         "field V02._value (fldOffset=0x0)" P-INDEP
+;  V09 tmp6         [V09,T07] (  2,  0.46)     ref  ->  rdx         "field V02._equalityComparer (fldOffset=0x8)" P-INDEP
 ;  V10 tmp7         [V10,T04] (  2,  2   )     ref  ->  rax         single-def "field V04._value (fldOffset=0x0)" P-INDEP
 ;  V11 tmp8         [V11,T05] (  2,  2   )     ref  ->  rdx         single-def "field V04._equalityComparer (fldOffset=0x8)" P-INDEP
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M44287_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-       push     rbp
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x10]
        mov      rbx, rdi
        ; gcrRegs +[rbx]
-                       ;; size=11 bbWeight=1 PerfScore 3.75
+                       ;; size=4 bbWeight=1 PerfScore 1.25
 G_M44287_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi]
        mov      rdi, gword ptr [rbx+0x08]
@@ -40,44 +37,36 @@ G_M44287_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        call     [System.Collections.Generic.Dictionary`2[System.__Canon,Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.__Canon]]:FindValue(System.__Canon):byref:this]
        ; gcrRegs -[rsi rdi]
        ; byrRegs +[rax]
+       ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M44287_IG04
-                       ;; size=18 bbWeight=1 PerfScore 9.25
-G_M44287_IG03:        ; bbWeight=0.21, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
-       ; gcrRegs -[rbx]
+       jne      SHORT G_M44287_IG04
+       mov      rax, gword ptr [rbx+0x18]
+       ; gcrRegs +[rax]
+       ; byrRegs -[rax]
+       mov      rdx, gword ptr [rbx+0x20]
+       ; gcrRegs +[rdx]
+                       ;; size=26 bbWeight=1 PerfScore 13.25
+G_M44287_IG03:        ; bbWeight=1, epilog, nogc, extend
+       pop      rbx
+       ret      
+                       ;; size=2 bbWeight=1 PerfScore 1.50
+G_M44287_IG04:        ; bbWeight=0.23, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, gcvars, byref
+       ; gcrRegs -[rax rdx rbx]
+       ; byrRegs +[rax]
        mov      rcx, gword ptr [rax]
        ; gcrRegs +[rcx]
        mov      rdx, gword ptr [rax+0x08]
        ; gcrRegs +[rdx]
-       jmp      SHORT G_M44287_IG06
-                       ;; size=9 bbWeight=0.21 PerfScore 1.26
-G_M44287_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rcx rdx] +[rbx]
-       ; byrRegs -[rax]
-       mov      rax, gword ptr [rbx+0x18]
-       ; gcrRegs +[rax]
-       mov      rdx, gword ptr [rbx+0x20]
-       ; gcrRegs +[rdx]
-                       ;; size=8 bbWeight=1 PerfScore 4.00
-G_M44287_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      rbp
-       ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
-G_M44287_IG06:        ; bbWeight=0.23, gcVars=0000000000000000 {}, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax rbx] +[rcx]
        mov      rax, rcx
        ; gcrRegs +[rax]
-                       ;; size=3 bbWeight=0.23 PerfScore 0.06
-G_M44287_IG07:        ; bbWeight=0.23, epilog, nogc, extend
-       add      rsp, 8
+       ; byrRegs -[rax]
+                       ;; size=10 bbWeight=0.23 PerfScore 0.98
+G_M44287_IG05:        ; bbWeight=0.23, epilog, nogc, extend
        pop      rbx
-       pop      rbp
        ret      
-                       ;; size=7 bbWeight=0.23 PerfScore 0.52
+                       ;; size=2 bbWeight=0.23 PerfScore 0.35
 
-; Total bytes of code 63, prolog size 8, PerfScore 21.09, instruction count 24, allocated bytes for code 63 (MethodHash=5b165300) for method Roslyn.Utilities.MultiDictionary`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.__Canon]:this (Tier1)
+; Total bytes of code 44, prolog size 1, PerfScore 17.33, instruction count 16, allocated bytes for code 44 (MethodHash=5b165300) for method Roslyn.Utilities.MultiDictionary`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.__Canon]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -85,11 +74,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x03
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x01
+  CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)

-19 (-30.16%) : 117390.dasm - Roslyn.Utilities.MultiDictionary2[System.__Canon,System.ValueTuple2[System.Canon,int]]:get_Item(System.Canon):Roslyn.Utilities.MultiDictionary2+ValueSet[System.__Canon,System.ValueTuple2[System.__Canon,int]]:this (Tier1)

@@ -3,7 +3,7 @@
 ; Tier1 code
 ; optimized code
 ; optimized using Dynamic PGO
-; rbp based frame
+; rsp based frame
 ; partially interruptible
 ; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 11544
 ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
@@ -16,22 +16,19 @@
 ;* V04 tmp1         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-ret "Return value temp for multireg return" <Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.ValueTuple`2[System.__Canon,int]]>
 ;* V05 tmp2         [V05,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V06 tmp3         [V06,T01] (  3,  6   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.__Canon,Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.ValueTuple`2[System.__Canon,int]]]>
-;  V07 tmp4         [V07,T03] (  4,  2.28)   byref  ->  rax         single-def "Inline stloc first use temp"
+;  V07 tmp4         [V07,T03] (  4,  2.29)   byref  ->  rax         single-def "Inline stloc first use temp"
 ;  V08 tmp5         [V08,T06] (  2,  0.29)     ref  ->  rcx         "field V02._value (fldOffset=0x0)" P-INDEP
 ;  V09 tmp6         [V09,T07] (  2,  0.29)     ref  ->  rdx         "field V02._equalityComparer (fldOffset=0x8)" P-INDEP
 ;  V10 tmp7         [V10,T04] (  2,  2   )     ref  ->  rax         single-def "field V04._value (fldOffset=0x0)" P-INDEP
 ;  V11 tmp8         [V11,T05] (  2,  2   )     ref  ->  rdx         single-def "field V04._equalityComparer (fldOffset=0x8)" P-INDEP
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M37695_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-       push     rbp
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x10]
        mov      rbx, rdi
        ; gcrRegs +[rbx]
-                       ;; size=11 bbWeight=1 PerfScore 3.75
+                       ;; size=4 bbWeight=1 PerfScore 1.25
 G_M37695_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi]
        mov      rdi, gword ptr [rbx+0x08]
@@ -40,44 +37,36 @@ G_M37695_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        call     [System.Collections.Generic.Dictionary`2[System.__Canon,Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.ValueTuple`2[System.__Canon,int]]]:FindValue(System.__Canon):byref:this]
        ; gcrRegs -[rsi rdi]
        ; byrRegs +[rax]
+       ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M37695_IG04
-                       ;; size=18 bbWeight=1 PerfScore 9.25
-G_M37695_IG03:        ; bbWeight=0.14, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
-       ; gcrRegs -[rbx]
+       jne      SHORT G_M37695_IG04
+       mov      rax, gword ptr [rbx+0x18]
+       ; gcrRegs +[rax]
+       ; byrRegs -[rax]
+       mov      rdx, gword ptr [rbx+0x20]
+       ; gcrRegs +[rdx]
+                       ;; size=26 bbWeight=1 PerfScore 13.25
+G_M37695_IG03:        ; bbWeight=1, epilog, nogc, extend
+       pop      rbx
+       ret      
+                       ;; size=2 bbWeight=1 PerfScore 1.50
+G_M37695_IG04:        ; bbWeight=0.15, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, gcvars, byref
+       ; gcrRegs -[rax rdx rbx]
+       ; byrRegs +[rax]
        mov      rcx, gword ptr [rax]
        ; gcrRegs +[rcx]
        mov      rdx, gword ptr [rax+0x08]
        ; gcrRegs +[rdx]
-       jmp      SHORT G_M37695_IG06
-                       ;; size=9 bbWeight=0.14 PerfScore 0.83
-G_M37695_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rcx rdx] +[rbx]
-       ; byrRegs -[rax]
-       mov      rax, gword ptr [rbx+0x18]
-       ; gcrRegs +[rax]
-       mov      rdx, gword ptr [rbx+0x20]
-       ; gcrRegs +[rdx]
-                       ;; size=8 bbWeight=1 PerfScore 4.00
-G_M37695_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      rbp
-       ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
-G_M37695_IG06:        ; bbWeight=0.15, gcVars=0000000000000000 {}, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax rbx] +[rcx]
        mov      rax, rcx
        ; gcrRegs +[rax]
-                       ;; size=3 bbWeight=0.15 PerfScore 0.04
-G_M37695_IG07:        ; bbWeight=0.15, epilog, nogc, extend
-       add      rsp, 8
+       ; byrRegs -[rax]
+                       ;; size=10 bbWeight=0.15 PerfScore 0.62
+G_M37695_IG05:        ; bbWeight=0.15, epilog, nogc, extend
        pop      rbx
-       pop      rbp
        ret      
-                       ;; size=7 bbWeight=0.15 PerfScore 0.33
+                       ;; size=2 bbWeight=0.15 PerfScore 0.22
 
-; Total bytes of code 63, prolog size 8, PerfScore 20.45, instruction count 24, allocated bytes for code 63 (MethodHash=05ba6cc0) for method Roslyn.Utilities.MultiDictionary`2[System.__Canon,System.ValueTuple`2[System.__Canon,int]]:get_Item(System.__Canon):Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.ValueTuple`2[System.__Canon,int]]:this (Tier1)
+; Total bytes of code 44, prolog size 1, PerfScore 16.84, instruction count 16, allocated bytes for code 44 (MethodHash=05ba6cc0) for method Roslyn.Utilities.MultiDictionary`2[System.__Canon,System.ValueTuple`2[System.__Canon,int]]:get_Item(System.__Canon):Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.ValueTuple`2[System.__Canon,int]]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -85,11 +74,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x03
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x01
+  CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)

+34 (+70.83%) : 336943.dasm - System.Reflection.Internal.ObjectPool`1[System.Canon]:Free(System.Canon):this (Tier1)

@@ -10,55 +10,71 @@
 ;
 ;  V00 this         [V00,T01] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <System.Reflection.Internal.ObjectPool`1[System.__Canon]>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  rsi         class-hnd single-def <System.__Canon>
-;  V02 loc0         [V02,T03] (  4,  4   )     ref  ->  rdi         class-hnd exact single-def <<unknown class>>
-;  V03 loc1         [V03,T00] (  5,  5   )     int  ->  rax        
+;  V02 loc0         [V02,T03] (  4,  4   )     ref  ->  rbx         class-hnd exact single-def <<unknown class>>
+;  V03 loc1         [V03,T00] (  5,  5   )     int  ->  r15        
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 cse0         [V05,T04] (  3,  3   )     int  ->  rcx         "CSE - aggressive"
-;  V06 cse1         [V06,T05] (  3,  3   )    long  ->  rdx         "CSE - aggressive"
+;  V05 cse0         [V05,T04] (  3,  3   )     int  ->  r14         "CSE - aggressive"
+;  V06 cse1         [V06,T05] (  3,  3   )    long  ->  rdi         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M19580_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       mov      rbp, rsp
-                       ;; size=4 bbWeight=1 PerfScore 1.25
+       push     r15
+       push     r14
+       push     rbx
+       push     rax
+       lea      rbp, [rsp+0x20]
+                       ;; size=12 bbWeight=1 PerfScore 5.50
 G_M19580_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi rdi]
-       mov      rdi, gword ptr [rdi+0x08]
-       xor      eax, eax
-       mov      ecx, dword ptr [rdi+0x08]
-       test     ecx, ecx
-       jle      SHORT G_M19580_IG06
-                       ;; size=13 bbWeight=1 PerfScore 5.50
-G_M19580_IG03:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
-       mov      edx, eax
-       cmp      gword ptr [rdi+8*rdx+0x10], 0
-       jne      SHORT G_M19580_IG05
-       lea      rdi, bword ptr [rdi+8*rdx+0x10]
+       mov      rbx, gword ptr [rdi+0x08]
+       ; gcrRegs +[rbx]
+       xor      r15d, r15d
+       mov      r14d, dword ptr [rbx+0x08]
+       test     r14d, r14d
+       jle      SHORT G_M19580_IG07
+                       ;; size=16 bbWeight=1 PerfScore 5.50
+G_M19580_IG03:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdi]
+       mov      edi, r15d
+       cmp      gword ptr [rbx+8*rdi+0x10], 0
+       jne      SHORT G_M19580_IG05
+       lea      rdi, bword ptr [rbx+8*rdi+0x10]
        ; byrRegs +[rdi]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rsi]
+       ; gcrRegs -[rbx rsi]
        ; byrRegs -[rdi]
        nop      
-                       ;; size=21 bbWeight=1 PerfScore 6.50
+                       ;; size=22 bbWeight=1 PerfScore 6.50
 G_M19580_IG04:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 8
+       pop      rbx
+       pop      r14
+       pop      r15
        pop      rbp
        ret      
-                       ;; size=2 bbWeight=1 PerfScore 1.50
-G_M19580_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rsi rdi]
-       inc      eax
-       cmp      ecx, eax
-       jg       SHORT G_M19580_IG03
-                       ;; size=6 bbWeight=1 PerfScore 1.50
-G_M19580_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-       ; gcrRegs -[rsi rdi]
+                       ;; size=11 bbWeight=1 PerfScore 3.25
+G_M19580_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs +[rbx rsi]
+       inc      r15d
+       cmp      r14d, r15d
+       jle      SHORT G_M19580_IG07
+                       ;; size=8 bbWeight=1 PerfScore 1.50
+G_M19580_IG06:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M19580_IG03
+                       ;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M19580_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+       ; gcrRegs -[rbx rsi]
+       add      rsp, 8
+       pop      rbx
+       pop      r14
+       pop      r15
        pop      rbp
        ret      
-                       ;; size=2 bbWeight=0 PerfScore 0.00
+                       ;; size=11 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 48, prolog size 4, PerfScore 16.25, instruction count 20, allocated bytes for code 48 (MethodHash=881eb383) for method System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
+; Total bytes of code 82, prolog size 12, PerfScore 23.25, instruction count 33, allocated bytes for code 82 (MethodHash=881eb383) for method System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -66,9 +82,13 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x01
-  CountOfUnwindCodes: 1
+  SizeOfProlog      : 0x07
+  CountOfUnwindCodes: 5
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+34 (+70.83%) : 548519.dasm - System.Reflection.Internal.ObjectPool`1[System.Canon]:Free(System.Canon):this (Tier1)

@@ -10,55 +10,71 @@
 ;
 ;  V00 this         [V00,T01] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <System.Reflection.Internal.ObjectPool`1[System.__Canon]>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  rsi         class-hnd single-def <System.__Canon>
-;  V02 loc0         [V02,T03] (  4,  4   )     ref  ->  rdi         class-hnd exact single-def <<unknown class>>
-;  V03 loc1         [V03,T00] (  5,  5   )     int  ->  rax        
+;  V02 loc0         [V02,T03] (  4,  4   )     ref  ->  rbx         class-hnd exact single-def <<unknown class>>
+;  V03 loc1         [V03,T00] (  5,  5   )     int  ->  r15        
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 cse0         [V05,T04] (  3,  3   )     int  ->  rcx         "CSE - aggressive"
-;  V06 cse1         [V06,T05] (  3,  3   )    long  ->  rdx         "CSE - aggressive"
+;  V05 cse0         [V05,T04] (  3,  3   )     int  ->  r14         "CSE - aggressive"
+;  V06 cse1         [V06,T05] (  3,  3   )    long  ->  rdi         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M19580_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       mov      rbp, rsp
-                       ;; size=4 bbWeight=1 PerfScore 1.25
+       push     r15
+       push     r14
+       push     rbx
+       push     rax
+       lea      rbp, [rsp+0x20]
+                       ;; size=12 bbWeight=1 PerfScore 5.50
 G_M19580_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi rdi]
-       mov      rdi, gword ptr [rdi+0x08]
-       xor      eax, eax
-       mov      ecx, dword ptr [rdi+0x08]
-       test     ecx, ecx
-       jle      SHORT G_M19580_IG06
-                       ;; size=13 bbWeight=1 PerfScore 5.50
-G_M19580_IG03:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
-       mov      edx, eax
-       cmp      gword ptr [rdi+8*rdx+0x10], 0
-       jne      SHORT G_M19580_IG05
-       lea      rdi, bword ptr [rdi+8*rdx+0x10]
+       mov      rbx, gword ptr [rdi+0x08]
+       ; gcrRegs +[rbx]
+       xor      r15d, r15d
+       mov      r14d, dword ptr [rbx+0x08]
+       test     r14d, r14d
+       jle      SHORT G_M19580_IG07
+                       ;; size=16 bbWeight=1 PerfScore 5.50
+G_M19580_IG03:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdi]
+       mov      edi, r15d
+       cmp      gword ptr [rbx+8*rdi+0x10], 0
+       jne      SHORT G_M19580_IG05
+       lea      rdi, bword ptr [rbx+8*rdi+0x10]
        ; byrRegs +[rdi]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rsi]
+       ; gcrRegs -[rbx rsi]
        ; byrRegs -[rdi]
        nop      
-                       ;; size=21 bbWeight=1 PerfScore 6.50
+                       ;; size=22 bbWeight=1 PerfScore 6.50
 G_M19580_IG04:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 8
+       pop      rbx
+       pop      r14
+       pop      r15
        pop      rbp
        ret      
-                       ;; size=2 bbWeight=1 PerfScore 1.50
-G_M19580_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rsi rdi]
-       inc      eax
-       cmp      ecx, eax
-       jg       SHORT G_M19580_IG03
-                       ;; size=6 bbWeight=1 PerfScore 1.50
-G_M19580_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-       ; gcrRegs -[rsi rdi]
+                       ;; size=11 bbWeight=1 PerfScore 3.25
+G_M19580_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs +[rbx rsi]
+       inc      r15d
+       cmp      r14d, r15d
+       jle      SHORT G_M19580_IG07
+                       ;; size=8 bbWeight=1 PerfScore 1.50
+G_M19580_IG06:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M19580_IG03
+                       ;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M19580_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+       ; gcrRegs -[rbx rsi]
+       add      rsp, 8
+       pop      rbx
+       pop      r14
+       pop      r15
        pop      rbp
        ret      
-                       ;; size=2 bbWeight=0 PerfScore 0.00
+                       ;; size=11 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 48, prolog size 4, PerfScore 16.25, instruction count 20, allocated bytes for code 48 (MethodHash=881eb383) for method System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
+; Total bytes of code 82, prolog size 12, PerfScore 23.25, instruction count 33, allocated bytes for code 82 (MethodHash=881eb383) for method System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -66,9 +82,13 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x01
-  CountOfUnwindCodes: 1
+  SizeOfProlog      : 0x07
+  CountOfUnwindCodes: 5
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+34 (+70.83%) : 566352.dasm - System.Reflection.Internal.ObjectPool`1[System.Canon]:Free(System.Canon):this (Tier1)

@@ -10,55 +10,71 @@
 ;
 ;  V00 this         [V00,T01] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <System.Reflection.Internal.ObjectPool`1[System.__Canon]>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  rsi         class-hnd single-def <System.__Canon>
-;  V02 loc0         [V02,T03] (  4,  4   )     ref  ->  rdi         class-hnd exact single-def <<unknown class>>
-;  V03 loc1         [V03,T00] (  5,  5   )     int  ->  rax        
+;  V02 loc0         [V02,T03] (  4,  4   )     ref  ->  rbx         class-hnd exact single-def <<unknown class>>
+;  V03 loc1         [V03,T00] (  5,  5   )     int  ->  r15        
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 cse0         [V05,T04] (  3,  3   )     int  ->  rcx         "CSE - aggressive"
-;  V06 cse1         [V06,T05] (  3,  3   )    long  ->  rdx         "CSE - aggressive"
+;  V05 cse0         [V05,T04] (  3,  3   )     int  ->  r14         "CSE - aggressive"
+;  V06 cse1         [V06,T05] (  3,  3   )    long  ->  rdi         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M19580_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       mov      rbp, rsp
-                       ;; size=4 bbWeight=1 PerfScore 1.25
+       push     r15
+       push     r14
+       push     rbx
+       push     rax
+       lea      rbp, [rsp+0x20]
+                       ;; size=12 bbWeight=1 PerfScore 5.50
 G_M19580_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi rdi]
-       mov      rdi, gword ptr [rdi+0x08]
-       xor      eax, eax
-       mov      ecx, dword ptr [rdi+0x08]
-       test     ecx, ecx
-       jle      SHORT G_M19580_IG06
-                       ;; size=13 bbWeight=1 PerfScore 5.50
-G_M19580_IG03:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
-       mov      edx, eax
-       cmp      gword ptr [rdi+8*rdx+0x10], 0
-       jne      SHORT G_M19580_IG05
-       lea      rdi, bword ptr [rdi+8*rdx+0x10]
+       mov      rbx, gword ptr [rdi+0x08]
+       ; gcrRegs +[rbx]
+       xor      r15d, r15d
+       mov      r14d, dword ptr [rbx+0x08]
+       test     r14d, r14d
+       jle      SHORT G_M19580_IG07
+                       ;; size=16 bbWeight=1 PerfScore 5.50
+G_M19580_IG03:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdi]
+       mov      edi, r15d
+       cmp      gword ptr [rbx+8*rdi+0x10], 0
+       jne      SHORT G_M19580_IG05
+       lea      rdi, bword ptr [rbx+8*rdi+0x10]
        ; byrRegs +[rdi]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rsi]
+       ; gcrRegs -[rbx rsi]
        ; byrRegs -[rdi]
        nop      
-                       ;; size=21 bbWeight=1 PerfScore 6.50
+                       ;; size=22 bbWeight=1 PerfScore 6.50
 G_M19580_IG04:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 8
+       pop      rbx
+       pop      r14
+       pop      r15
        pop      rbp
        ret      
-                       ;; size=2 bbWeight=1 PerfScore 1.50
-G_M19580_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rsi rdi]
-       inc      eax
-       cmp      ecx, eax
-       jg       SHORT G_M19580_IG03
-                       ;; size=6 bbWeight=1 PerfScore 1.50
-G_M19580_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-       ; gcrRegs -[rsi rdi]
+                       ;; size=11 bbWeight=1 PerfScore 3.25
+G_M19580_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs +[rbx rsi]
+       inc      r15d
+       cmp      r14d, r15d
+       jle      SHORT G_M19580_IG07
+                       ;; size=8 bbWeight=1 PerfScore 1.50
+G_M19580_IG06:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M19580_IG03
+                       ;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M19580_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+       ; gcrRegs -[rbx rsi]
+       add      rsp, 8
+       pop      rbx
+       pop      r14
+       pop      r15
        pop      rbp
        ret      
-                       ;; size=2 bbWeight=0 PerfScore 0.00
+                       ;; size=11 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 48, prolog size 4, PerfScore 16.25, instruction count 20, allocated bytes for code 48 (MethodHash=881eb383) for method System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
+; Total bytes of code 82, prolog size 12, PerfScore 23.25, instruction count 33, allocated bytes for code 82 (MethodHash=881eb383) for method System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -66,9 +82,13 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x01
-  CountOfUnwindCodes: 1
+  SizeOfProlog      : 0x07
+  CountOfUnwindCodes: 5
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

librariestestsnotieredcompilation.run.linux.x64.Release.mch

-19 (-22.35%) : 158219.dasm - System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)

@@ -10,75 +10,66 @@
 ;
 ;  V00 this         [V00,T01] (  3,  2.50)     ref  ->  rdi         this class-hnd single-def <System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op single-def <System.Threading.CancellationToken>
-;  V02 loc0         [V02,T02] (  3,  1.50)     ref  ->  rbx         class-hnd exact single-def <<unknown class>>
+;  V02 loc0         [V02,T02] (  3,  1.50)     ref  ->  rdi         class-hnd exact single-def <<unknown class>>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V05 tmp2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;  V06 tmp3         [V06,T00] (  5,  3.17)     ref  ->  rsi         single-def "field V01._source (fldOffset=0x0)" P-INDEP
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M3467_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rbp
-       push     rbx
-       push     rax
-       lea      rbp, [rsp+0x10]
-                       ;; size=8 bbWeight=1 PerfScore 3.50
+       mov      rbp, rsp
+                       ;; size=4 bbWeight=1 PerfScore 1.25
 G_M3467_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi rdi]
        test     rsi, rsi
-       je       SHORT G_M3467_IG04
+       je       SHORT G_M3467_IG06
                        ;; size=5 bbWeight=1 PerfScore 1.25
 G_M3467_IG03:        ; bbWeight=0.17, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [rsi+0x20], 0
-       jne      SHORT G_M3467_IG06
+       je       SHORT G_M3467_IG06
                        ;; size=6 bbWeight=0.17 PerfScore 0.68
-G_M3467_IG04:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
-       mov      rbx, gword ptr [rdi+0x10]
-       ; gcrRegs +[rbx]
-       test     rbx, rbx
-       jne      SHORT G_M3467_IG08
-       mov      rax, 0xD1FFAB1E      ; const ptr
-       mov      rax, gword ptr [rax]
-       ; gcrRegs +[rax]
-                       ;; size=22 bbWeight=0.50 PerfScore 2.75
-G_M3467_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      rbp
-       ret      
-                       ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M3467_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax rbx rdi]
+G_M3467_IG04:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rdi]
        mov      rdi, rsi
        ; gcrRegs +[rdi]
        call     [System.Threading.Tasks.Task:FromCanceled(System.Threading.CancellationToken):System.Threading.Tasks.Task]
        ; gcrRegs -[rsi rdi] +[rax]
        nop      
                        ;; size=10 bbWeight=0.50 PerfScore 1.75
-G_M3467_IG07:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
+G_M3467_IG05:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
-                       ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M3467_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax] +[rbx rsi]
-       mov      rdi, gword ptr [rbx+0x08]
-       ; gcrRegs +[rdi]
+                       ;; size=2 bbWeight=0.50 PerfScore 0.75
+G_M3467_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax] +[rsi rdi]
+       mov      rdi, gword ptr [rdi+0x10]
+       test     rdi, rdi
+       jne      SHORT G_M3467_IG08
+       mov      rax, 0xD1FFAB1E      ; const ptr
+       mov      rax, gword ptr [rax]
+       ; gcrRegs +[rax]
+                       ;; size=22 bbWeight=0.50 PerfScore 2.75
+G_M3467_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      rbp
+       ret      
+                       ;; size=2 bbWeight=0.50 PerfScore 0.75
+G_M3467_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax]
+       mov      rdi, gword ptr [rdi+0x08]
        cmp      dword ptr [rdi], edi
        call     [System.Net.Http.Http2Connection:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this]
-       ; gcrRegs -[rbx rsi rdi] +[rax]
+       ; gcrRegs -[rsi rdi] +[rax]
        nop      
                        ;; size=13 bbWeight=0.50 PerfScore 4.12
 G_M3467_IG09:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
        pop      rbp
        ret      
-                       ;; size=7 bbWeight=0.50 PerfScore 1.12
+                       ;; size=2 bbWeight=0.50 PerfScore 0.75
 
-; Total bytes of code 85, prolog size 8, PerfScore 17.43, instruction count 32, allocated bytes for code 85 (MethodHash=6a07f274) for method System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 66, prolog size 4, PerfScore 14.06, instruction count 24, allocated bytes for code 66 (MethodHash=6a07f274) for method System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -86,11 +77,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x03
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x01
+  CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-12 (-14.46%) : 5441.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)

@@ -36,69 +36,49 @@
 ;
 ; Lcl frame size = 0
 
-G_M34829_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M34829_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        mov      rbp, rsp
                        ;; size=4 bbWeight=1 PerfScore 1.25
 G_M34829_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        movzx    rdi, di
        cmp      edi, 256
-       jb       SHORT G_M34829_IG05
+       jae      SHORT G_M34829_IG09
                        ;; size=11 bbWeight=1 PerfScore 1.50
-G_M34829_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategory(int):int]
-                       ;; size=6 bbWeight=0 PerfScore 0.00
-G_M34829_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       add      eax, -8
-       cmp      eax, 16
-       ja       SHORT G_M34829_IG08
-       lea      rdi, [reloc @RWD00]
-       mov      edi, dword ptr [rdi+4*rax]
-       lea      rcx, G_M34829_IG02
-       add      rdi, rcx
-       jmp      rdi
-                       ;; size=30 bbWeight=1 PerfScore 7.25
-G_M34829_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M34829_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      eax, edi
        mov      rdi, 0xD1FFAB1E      ; static handle
        movzx    rax, byte  ptr [rax+rdi]
        and      eax, 31
-       jmp      SHORT G_M34829_IG04
-                       ;; size=21 bbWeight=0.50 PerfScore 2.38
-G_M34829_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+                       ;; size=19 bbWeight=0.50 PerfScore 1.38
+G_M34829_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       add      eax, -8
+       cmp      eax, 16
+       ja       SHORT G_M34829_IG07
+       mov      edi, 0x1FC7D
+       bt       edi, eax
+       jae      SHORT G_M34829_IG07
+                       ;; size=18 bbWeight=1 PerfScore 3.25
+G_M34829_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M34829_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M34829_IG06:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=2 bbWeight=0.50 PerfScore 0.75
-G_M34829_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M34829_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        mov      eax, 1
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M34829_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+G_M34829_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=2 bbWeight=0.50 PerfScore 0.75
-RWD00      dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
+G_M34829_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategory(int):int]
+       jmp      SHORT G_M34829_IG04
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-
-; Total bytes of code 83, prolog size 4, PerfScore 14.12, instruction count 25, allocated bytes for code 83 (MethodHash=b88877f2) for method System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
+; Total bytes of code 71, prolog size 4, PerfScore 9.12, instruction count 23, allocated bytes for code 71 (MethodHash=b88877f2) for method System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:

-12 (-14.46%) : 267193.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)

@@ -36,69 +36,49 @@
 ;
 ; Lcl frame size = 0
 
-G_M34829_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M34829_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        mov      rbp, rsp
                        ;; size=4 bbWeight=1 PerfScore 1.25
 G_M34829_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        movzx    rdi, di
        cmp      edi, 256
-       jb       SHORT G_M34829_IG05
+       jae      SHORT G_M34829_IG09
                        ;; size=11 bbWeight=1 PerfScore 1.50
-G_M34829_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategory(int):int]
-                       ;; size=6 bbWeight=0 PerfScore 0.00
-G_M34829_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       add      eax, -8
-       cmp      eax, 16
-       ja       SHORT G_M34829_IG08
-       lea      rdi, [reloc @RWD00]
-       mov      edi, dword ptr [rdi+4*rax]
-       lea      rcx, G_M34829_IG02
-       add      rdi, rcx
-       jmp      rdi
-                       ;; size=30 bbWeight=1 PerfScore 7.25
-G_M34829_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M34829_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      eax, edi
        mov      rdi, 0xD1FFAB1E      ; static handle
        movzx    rax, byte  ptr [rax+rdi]
        and      eax, 31
-       jmp      SHORT G_M34829_IG04
-                       ;; size=21 bbWeight=0.50 PerfScore 2.38
-G_M34829_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+                       ;; size=19 bbWeight=0.50 PerfScore 1.38
+G_M34829_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       add      eax, -8
+       cmp      eax, 16
+       ja       SHORT G_M34829_IG07
+       mov      edi, 0x1FC7D
+       bt       edi, eax
+       jae      SHORT G_M34829_IG07
+                       ;; size=18 bbWeight=1 PerfScore 3.25
+G_M34829_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M34829_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M34829_IG06:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=2 bbWeight=0.50 PerfScore 0.75
-G_M34829_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M34829_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        mov      eax, 1
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M34829_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+G_M34829_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=2 bbWeight=0.50 PerfScore 0.75
-RWD00      dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
+G_M34829_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategory(int):int]
+       jmp      SHORT G_M34829_IG04
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-
-; Total bytes of code 83, prolog size 4, PerfScore 14.12, instruction count 25, allocated bytes for code 83 (MethodHash=b88877f2) for method System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
+; Total bytes of code 71, prolog size 4, PerfScore 9.12, instruction count 23, allocated bytes for code 71 (MethodHash=b88877f2) for method System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:

+26 (+35.14%) : 5197.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)

@@ -8,7 +8,7 @@
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  3.50)     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+;  V00 this         [V00,T00] (  5,  4   )     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  rsi         class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
 ;  V02 loc0         [V02,T06] (  3,  1.50)     int  ->  rcx         ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
 ;  V09 tmp4         [V09,T04] (  3,  2.50)   byref  ->  rax         single-def "Inline stloc first use temp"
 ;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V11 tmp6         [V11,T07] (  3,  1.50)     ref  ->  rdx         single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V12 rat0         [V12,T05] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V12 rat0         [V12,T05] (  2,  2   )    long  ->  rax         "Spilling to split statement for tree"
 ;* V13 rat1         [V13,T09] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V14 rat2         [V14,T03] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V14 rat2         [V14,T03] (  2,  2   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -31,9 +31,10 @@ G_M43979_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rbx
        push     rax
        lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x10], rdi
        mov      rbx, rdi
        ; gcrRegs +[rbx]
-                       ;; size=11 bbWeight=1 PerfScore 3.75
+                       ;; size=15 bbWeight=1 PerfScore 4.75
 G_M43979_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi]
        mov      rdi, gword ptr [rbx+0x20]
@@ -43,47 +44,55 @@ G_M43979_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        ; gcrRegs -[rsi rdi]
        ; byrRegs +[rax]
        test     rax, rax
-       je       SHORT G_M43979_IG04
+       je       SHORT G_M43979_IG05
                        ;; size=18 bbWeight=1 PerfScore 9.25
 G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0001 {rax}, byref, isz
        mov      ecx, dword ptr [rax]
        mov      rdx, gword ptr [rbx+0x80]
        ; gcrRegs +[rdx]
-       jmp      SHORT G_M43979_IG06
-                       ;; size=11 bbWeight=0.50 PerfScore 3.00
-G_M43979_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdx]
+       mov      rax, qword ptr [rbx]
        ; byrRegs -[rax]
+       mov      rax, qword ptr [rax+0x38]
+       mov      rax, qword ptr [rax]
+       mov      rax, qword ptr [rax+0x108]
+       test     rax, rax
+       jne      SHORT G_M43979_IG07
+                       ;; size=31 bbWeight=0.50 PerfScore 6.62
+G_M43979_IG04:        ; bbWeight=0.10, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M43979_IG07
+                       ;; size=2 bbWeight=0.10 PerfScore 0.20
+G_M43979_IG05:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rdx]
        xor      rax, rax
        ; gcrRegs +[rax]
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M43979_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG06:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
        pop      rbp
        ret      
                        ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M43979_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rdx]
        cmp      ecx, dword ptr [rdx+0x08]
-       jae      SHORT G_M43979_IG08
+       jae      SHORT G_M43979_IG09
        mov      eax, ecx
        mov      rax, gword ptr [rdx+8*rax+0x10]
        ; gcrRegs +[rax]
                        ;; size=12 bbWeight=0.50 PerfScore 3.12
-G_M43979_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
        pop      rbp
        ret      
                        ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M43979_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax rdx]
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 74, prolog size 8, PerfScore 21.50, instruction count 28, allocated bytes for code 74 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 100, prolog size 12, PerfScore 26.32, instruction count 35, allocated bytes for code 100 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+26 (+35.14%) : 43369.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)

@@ -8,7 +8,7 @@
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  3.50)     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+;  V00 this         [V00,T00] (  5,  4   )     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  rsi         class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
 ;  V02 loc0         [V02,T06] (  3,  1.50)     int  ->  rcx         ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
 ;  V09 tmp4         [V09,T04] (  3,  2.50)   byref  ->  rax         single-def "Inline stloc first use temp"
 ;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V11 tmp6         [V11,T07] (  3,  1.50)     ref  ->  rdx         single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V12 rat0         [V12,T05] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V12 rat0         [V12,T05] (  2,  2   )    long  ->  rax         "Spilling to split statement for tree"
 ;* V13 rat1         [V13,T09] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V14 rat2         [V14,T03] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V14 rat2         [V14,T03] (  2,  2   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -31,9 +31,10 @@ G_M43979_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rbx
        push     rax
        lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x10], rdi
        mov      rbx, rdi
        ; gcrRegs +[rbx]
-                       ;; size=11 bbWeight=1 PerfScore 3.75
+                       ;; size=15 bbWeight=1 PerfScore 4.75
 G_M43979_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi]
        mov      rdi, gword ptr [rbx+0x20]
@@ -43,47 +44,55 @@ G_M43979_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        ; gcrRegs -[rsi rdi]
        ; byrRegs +[rax]
        test     rax, rax
-       je       SHORT G_M43979_IG04
+       je       SHORT G_M43979_IG05
                        ;; size=18 bbWeight=1 PerfScore 9.25
 G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0001 {rax}, byref, isz
        mov      ecx, dword ptr [rax]
        mov      rdx, gword ptr [rbx+0x80]
        ; gcrRegs +[rdx]
-       jmp      SHORT G_M43979_IG06
-                       ;; size=11 bbWeight=0.50 PerfScore 3.00
-G_M43979_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdx]
+       mov      rax, qword ptr [rbx]
        ; byrRegs -[rax]
+       mov      rax, qword ptr [rax+0x38]
+       mov      rax, qword ptr [rax]
+       mov      rax, qword ptr [rax+0xC0]
+       test     rax, rax
+       jne      SHORT G_M43979_IG07
+                       ;; size=31 bbWeight=0.50 PerfScore 6.62
+G_M43979_IG04:        ; bbWeight=0.10, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M43979_IG07
+                       ;; size=2 bbWeight=0.10 PerfScore 0.20
+G_M43979_IG05:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rdx]
        xor      rax, rax
        ; gcrRegs +[rax]
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M43979_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG06:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
        pop      rbp
        ret      
                        ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M43979_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rdx]
        cmp      ecx, dword ptr [rdx+0x08]
-       jae      SHORT G_M43979_IG08
+       jae      SHORT G_M43979_IG09
        mov      eax, ecx
        mov      rax, gword ptr [rdx+8*rax+0x10]
        ; gcrRegs +[rax]
                        ;; size=12 bbWeight=0.50 PerfScore 3.12
-G_M43979_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
        pop      rbp
        ret      
                        ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M43979_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax rdx]
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 74, prolog size 8, PerfScore 21.50, instruction count 28, allocated bytes for code 74 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 100, prolog size 12, PerfScore 26.32, instruction count 35, allocated bytes for code 100 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+26 (+35.14%) : 49094.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)

@@ -8,7 +8,7 @@
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  3.50)     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+;  V00 this         [V00,T00] (  5,  4   )     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  rsi         class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
 ;  V02 loc0         [V02,T06] (  3,  1.50)     int  ->  rcx         ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
 ;  V09 tmp4         [V09,T04] (  3,  2.50)   byref  ->  rax         single-def "Inline stloc first use temp"
 ;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V11 tmp6         [V11,T07] (  3,  1.50)     ref  ->  rdx         single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V12 rat0         [V12,T05] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V12 rat0         [V12,T05] (  2,  2   )    long  ->  rax         "Spilling to split statement for tree"
 ;* V13 rat1         [V13,T09] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V14 rat2         [V14,T03] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V14 rat2         [V14,T03] (  2,  2   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -31,9 +31,10 @@ G_M43979_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rbx
        push     rax
        lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x10], rdi
        mov      rbx, rdi
        ; gcrRegs +[rbx]
-                       ;; size=11 bbWeight=1 PerfScore 3.75
+                       ;; size=15 bbWeight=1 PerfScore 4.75
 G_M43979_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi]
        mov      rdi, gword ptr [rbx+0x20]
@@ -43,47 +44,55 @@ G_M43979_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        ; gcrRegs -[rsi rdi]
        ; byrRegs +[rax]
        test     rax, rax
-       je       SHORT G_M43979_IG04
+       je       SHORT G_M43979_IG05
                        ;; size=18 bbWeight=1 PerfScore 9.25
 G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0001 {rax}, byref, isz
        mov      ecx, dword ptr [rax]
        mov      rdx, gword ptr [rbx+0x80]
        ; gcrRegs +[rdx]
-       jmp      SHORT G_M43979_IG06
-                       ;; size=11 bbWeight=0.50 PerfScore 3.00
-G_M43979_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdx]
+       mov      rax, qword ptr [rbx]
        ; byrRegs -[rax]
+       mov      rax, qword ptr [rax+0x38]
+       mov      rax, qword ptr [rax]
+       mov      rax, qword ptr [rax+0xC0]
+       test     rax, rax
+       jne      SHORT G_M43979_IG07
+                       ;; size=31 bbWeight=0.50 PerfScore 6.62
+G_M43979_IG04:        ; bbWeight=0.10, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M43979_IG07
+                       ;; size=2 bbWeight=0.10 PerfScore 0.20
+G_M43979_IG05:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rdx]
        xor      rax, rax
        ; gcrRegs +[rax]
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M43979_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG06:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
        pop      rbp
        ret      
                        ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M43979_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rdx]
        cmp      ecx, dword ptr [rdx+0x08]
-       jae      SHORT G_M43979_IG08
+       jae      SHORT G_M43979_IG09
        mov      eax, ecx
        mov      rax, gword ptr [rdx+8*rax+0x10]
        ; gcrRegs +[rax]
                        ;; size=12 bbWeight=0.50 PerfScore 3.12
-G_M43979_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
        pop      rbp
        ret      
                        ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M43979_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax rdx]
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 74, prolog size 8, PerfScore 21.50, instruction count 28, allocated bytes for code 74 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 100, prolog size 12, PerfScore 26.32, instruction count 35, allocated bytes for code 100 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

realworld.run.linux.x64.checked.mch

-6 (-2.99%) : 11392.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)

@@ -32,13 +32,13 @@ G_M7049_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rbx, rdi
        ; gcrRegs +[rbx]
                        ;; size=16 bbWeight=1 PerfScore 5.75
-G_M7049_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M7049_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      eax, dword ptr [rbx+0x24]
        mov      rdi, gword ptr [rbx+0x08]
        ; gcrRegs +[rdi]
        cmp      eax, dword ptr [rdi+0x38]
-       jne      G_M7049_IG10
-                       ;; size=16 bbWeight=1 PerfScore 8.00
+       jne      SHORT G_M7049_IG10
+                       ;; size=12 bbWeight=1 PerfScore 8.00
 G_M7049_IG03:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdi]
        cmp      dword ptr [rbx+0x20], 0
@@ -74,9 +74,8 @@ G_M7049_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0008 {r
        test     rsi, rsi
        je       SHORT G_M7049_IG03
        cmp      rsi, r14
-       jne      SHORT G_M7049_IG07
-       jmp      SHORT G_M7049_IG03
-                       ;; size=51 bbWeight=2 PerfScore 37.50
+       je       SHORT G_M7049_IG03
+                       ;; size=49 bbWeight=2 PerfScore 33.50
 G_M7049_IG07:        ; bbWeight=0.50, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        lea      rdi, bword ptr [rbx+0x10]
@@ -133,7 +132,7 @@ G_M7049_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=45 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 201, prolog size 16, PerfScore 92.50, instruction count 63, allocated bytes for code 201 (MethodHash=9cafe476) for method System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 195, prolog size 16, PerfScore 88.50, instruction count 62, allocated bytes for code 195 (MethodHash=9cafe476) for method System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-19 (-2.02%) : 207.dasm - System.Collections.Generic.Dictionary`2[int,System.Canon]:TryInsert(int,System.Canon,ubyte):ubyte:this (FullOpts)

@@ -60,7 +60,7 @@
 ;  V49 cse4         [V49,T32] (  3,  1.50)     int  ->  rdi         "CSE - moderate"
 ;  V50 cse5         [V50,T02] ( 10, 23   )     int  ->  [rbp-0x44]  hoist multi-def "CSE - aggressive"
 ;  V51 cse6         [V51,T09] ( 13,  6.50)     ref  ->  rsi         multi-def "CSE - aggressive"
-;  V52 cse7         [V52,T19] (  6,  3   )     int  ->  r11         multi-def "CSE - moderate"
+;  V52 cse7         [V52,T19] (  6,  3   )     int  ->  rbx         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 72
 
@@ -187,15 +187,18 @@ G_M272_IG13:        ; bbWeight=1, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0000 {
        mov      edi, r10d
        lea      rax, bword ptr [r9+4*rdi+0x10]
        ; byrRegs +[rax]
+       mov      bword ptr [rbp-0x58], rax
+       ; GC ptr vars +{V08}
        mov      edx, dword ptr [rax]
        dec      edx
        mov      r9, gword ptr [rbp-0x50]
        test     r9, r9
        jne      G_M272_IG22
        mov      r10d, dword ptr [r12+0x08]
-                       ;; size=48 bbWeight=1 PerfScore 13.75
-G_M272_IG14:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0001 {rax}, gcvars, byref, isz
+                       ;; size=52 bbWeight=1 PerfScore 14.75
+G_M272_IG14:        ; bbWeight=4, gcVars=0000000000020000 {V08}, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[r9]
+       ; byrRegs -[rax]
        ; GC ptr vars -{V05 V22}
        cmp      r10d, edx
        jbe      G_M272_IG27
@@ -207,26 +210,27 @@ G_M272_IG14:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=5008 {rb
        cmp      dword ptr [rdi+0x08], ecx
        jne      SHORT G_M272_IG16
                        ;; size=28 bbWeight=4 PerfScore 32.00
-G_M272_IG15:        ; bbWeight=2, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0081 {rax rdi}, byref, isz
+G_M272_IG15:        ; bbWeight=2, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0080 {rdi}, byref, isz
        cmp      dword ptr [rdi+0x10], r15d
        je       SHORT G_M272_IG17
                        ;; size=6 bbWeight=2 PerfScore 8.00
-G_M272_IG16:        ; bbWeight=4, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0081 {rax rdi}, byref, isz
+G_M272_IG16:        ; bbWeight=4, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0080 {rdi}, byref, isz
        mov      edx, dword ptr [rdi+0x0C]
        mov      r8d, dword ptr [rbp-0x30]
        inc      r8d
-       cmp      r10d, r8d
        mov      dword ptr [rbp-0x30], r8d
+       cmp      r10d, r8d
        jb       G_M272_IG36
        jmp      SHORT G_M272_IG14
                        ;; size=25 bbWeight=4 PerfScore 30.00
-G_M272_IG17:        ; bbWeight=0.50, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {}, byref, isz
+G_M272_IG17:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rbx]
-       ; byrRegs -[rax rdi]
-       movzx    r11, r13b
-       cmp      r11d, 1
+       ; byrRegs -[rdi]
+       ; GC ptr vars -{V08}
+       movzx    rbx, r13b
+       cmp      ebx, 1
        jne      SHORT G_M272_IG19
-                       ;; size=10 bbWeight=0.50 PerfScore 0.75
+                       ;; size=9 bbWeight=0.50 PerfScore 0.75
 G_M272_IG18:        ; bbWeight=0.50, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {}, byref
        cmp      edx, r10d
        jae      G_M272_IG35
@@ -242,9 +246,9 @@ G_M272_IG18:        ; bbWeight=0.50, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {}
        jmp      G_M272_IG33
                        ;; size=33 bbWeight=0.50 PerfScore 3.12
 G_M272_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       cmp      r11d, 2
+       cmp      ebx, 2
        je       G_M272_IG37
-                       ;; size=10 bbWeight=0.50 PerfScore 0.62
+                       ;; size=9 bbWeight=0.50 PerfScore 0.62
 G_M272_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
@@ -258,10 +262,9 @@ G_M272_IG21:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M272_IG22:        ; bbWeight=4, gcVars=0000000000000800 {V05}, gcrefRegs=5208 {rbx r9 r12 r14}, byrefRegs=0001 {rax}, gcvars, byref, isz
+G_M272_IG22:        ; bbWeight=4, gcVars=0000000000020800 {V05 V08}, gcrefRegs=5208 {rbx r9 r12 r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx r9 r12 r14]
-       ; byrRegs +[rax]
-       ; GC ptr vars +{V05 V11}
+       ; GC ptr vars +{V05 V08 V11}
        mov      r10d, dword ptr [r12+0x08]
        mov      dword ptr [rbp-0x44], r10d
        cmp      r10d, edx
@@ -277,10 +280,8 @@ G_M272_IG22:        ; bbWeight=4, gcVars=0000000000000800 {V05}, gcrefRegs=5208
        cmp      dword ptr [r11+0x08], ecx
        jne      SHORT G_M272_IG24
                        ;; size=41 bbWeight=4 PerfScore 52.00
-G_M272_IG23:        ; bbWeight=2, gcVars=0000000000000840 {V05 V46}, gcrefRegs=5208 {rbx r9 r12 r14}, byrefRegs=0801 {rax r11}, gcvars, byref, isz
+G_M272_IG23:        ; bbWeight=2, gcVars=0000000000020840 {V05 V08 V46}, gcrefRegs=5208 {rbx r9 r12 r14}, byrefRegs=0800 {r11}, gcvars, byref, isz
        ; GC ptr vars -{V11}
-       mov      bword ptr [rbp-0x58], rax
-       ; GC ptr vars +{V08}
        mov      esi, dword ptr [r11+0x10]
        mov      rdi, r9
        ; gcrRegs +[rdi]
@@ -289,51 +290,45 @@ G_M272_IG23:        ; bbWeight=2, gcVars=0000000000000840 {V05 V46}, gcrefRegs=5
        ; byrRegs -[r11]
        call     [r11]<unknown method>
        ; gcrRegs -[rdi r9]
-       ; byrRegs -[rax]
        ; gcr arg pop 0
        test     eax, eax
-       mov      rax, bword ptr [rbp-0x58]
-       ; byrRegs +[rax]
        mov      r9, gword ptr [rbp-0x50]
        ; gcrRegs +[r9]
        mov      r11, bword ptr [rbp-0x68]
        ; byrRegs +[r11]
        jne      SHORT G_M272_IG26
-                       ;; size=43 bbWeight=2 PerfScore 22.00
-G_M272_IG24:        ; bbWeight=4, gcVars=0000000000000840 {V05 V46}, gcrefRegs=5208 {rbx r9 r12 r14}, byrefRegs=0801 {rax r11}, gcvars, byref, isz
-       ; GC ptr vars -{V08}
+                       ;; size=35 bbWeight=2 PerfScore 18.00
+G_M272_IG24:        ; bbWeight=4, gcrefRegs=5208 {rbx r9 r12 r14}, byrefRegs=0800 {r11}, byref, isz
        mov      edx, dword ptr [r11+0x0C]
-       mov      edi, edx
        mov      r8d, dword ptr [rbp-0x30]
        inc      r8d
        cmp      dword ptr [rbp-0x44], r8d
-       mov      dword ptr [rbp-0x30], r8d
-       mov      edx, edi
        jb       G_M272_IG36
+       mov      dword ptr [rbp-0x30], r8d
        jmp      SHORT G_M272_IG22
-                       ;; size=31 bbWeight=4 PerfScore 39.00
-G_M272_IG25:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0001 {rax}, gcvars, byref, isz
+                       ;; size=27 bbWeight=4 PerfScore 37.00
+G_M272_IG25:        ; bbWeight=2, gcVars=0000000000020000 {V08}, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[r9]
        ; byrRegs -[r11]
        ; GC ptr vars -{V05 V46}
        mov      r10d, dword ptr [rbp-0x44]
        jmp      SHORT G_M272_IG27
                        ;; size=6 bbWeight=2 PerfScore 6.00
-G_M272_IG26:        ; bbWeight=0.50, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {}, byref
+G_M272_IG26:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rbx]
-       ; byrRegs -[rax]
-       movzx    r11, r13b
-       cmp      r11d, 1
+       ; GC ptr vars -{V08}
+       movzx    rbx, r13b
+       cmp      ebx, 1
        mov      edx, dword ptr [rbp-0x34]
        mov      r10d, dword ptr [rbp-0x44]
        je       G_M272_IG18
-       cmp      r11d, 2
+       cmp      ebx, 2
        je       G_M272_IG37
        jmp      G_M272_IG20
-                       ;; size=36 bbWeight=0.50 PerfScore 3.38
-G_M272_IG27:        ; bbWeight=0.50, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0001 {rax}, byref, isz
+                       ;; size=34 bbWeight=0.50 PerfScore 3.38
+G_M272_IG27:        ; bbWeight=0.50, gcVars=0000000000020000 {V08}, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx]
-       ; byrRegs +[rax]
+       ; GC ptr vars +{V08}
        cmp      dword ptr [rbx+0x40], 0
        jle      SHORT G_M272_IG29
        mov      edi, dword ptr [rbx+0x3C]
@@ -347,21 +342,15 @@ G_M272_IG27:        ; bbWeight=0.50, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=000
        add      edi, -3
        cmp      edi, -1
        jge      SHORT G_M272_IG28
-       mov      bword ptr [rbp-0x58], rax
-       ; GC ptr vars +{V08}
        mov      rdi, 0xD1FFAB1E
        ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
-       ; byrRegs -[rax]
        ; gcr arg pop 0
-       mov      rax, bword ptr [rbp-0x58]
-       ; byrRegs +[rax]
-                       ;; size=78 bbWeight=0.50 PerfScore 9.12
-G_M272_IG28:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0001 {rax}, gcvars, byref
-       ; GC ptr vars -{V08}
+                       ;; size=70 bbWeight=0.50 PerfScore 8.12
+G_M272_IG28:        ; bbWeight=0.50, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0000 {}, byref
        mov      edi, dword ptr [rbx+0x3C]
        cmp      edi, dword ptr [rbp-0x44]
        jae      G_M272_IG35
@@ -374,14 +363,14 @@ G_M272_IG28:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=5008
        dec      dword ptr [rbx+0x40]
        jmp      G_M272_IG32
                        ;; size=40 bbWeight=0.50 PerfScore 7.12
-G_M272_IG29:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0001 {rax}, byref, isz
+G_M272_IG29:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[r12]
        mov      edi, dword ptr [rbx+0x38]
        mov      r13d, edi
        cmp      r10d, r13d
        jne      G_M272_IG31
+       ; GC ptr vars -{V08}
        call     [System.Collections.HashHelpers:ExpandPrime(int):int]
-       ; byrRegs -[rax]
        ; gcr arg pop 0
        mov      esi, eax
        mov      rdi, rbx
@@ -428,16 +417,17 @@ G_M272_IG30:        ; bbWeight=0.50, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=000
        mov      r12, rax
        ; gcrRegs -[r12]
        ; byrRegs +[r12]
-       mov      rax, r12
-                       ;; size=24 bbWeight=0.50 PerfScore 2.88
-G_M272_IG31:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0001 {rax}, byref
-       ; byrRegs -[r12]
+       mov      bword ptr [rbp-0x58], r12
+       ; GC ptr vars +{V08}
+                       ;; size=25 bbWeight=0.50 PerfScore 3.25
+G_M272_IG31:        ; bbWeight=0.50, gcVars=0000000000020000 {V08}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
+       ; byrRegs -[rax r12]
        lea      edi, [r13+0x01]
        mov      dword ptr [rbx+0x38], edi
        mov      r12, gword ptr [rbx+0x10]
        ; gcrRegs +[r12]
                        ;; size=11 bbWeight=0.50 PerfScore 1.75
-G_M272_IG32:        ; bbWeight=0.50, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0001 {rax}, byref, isz
+G_M272_IG32:        ; bbWeight=0.50, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0000 {}, byref, isz
        cmp      r13d, dword ptr [r12+0x08]
        jae      SHORT G_M272_IG35
        mov      edi, r13d
@@ -446,8 +436,8 @@ G_M272_IG32:        ; bbWeight=0.50, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=000
        ; byrRegs +[rdi]
        mov      ecx, dword ptr [rbp-0x2C]
        mov      dword ptr [rdi+0x08], ecx
-       mov      bword ptr [rbp-0x58], rax
-       ; GC ptr vars +{V08}
+       mov      rax, bword ptr [rbp-0x58]
+       ; byrRegs +[rax]
        mov      esi, dword ptr [rax]
        dec      esi
        mov      dword ptr [rdi+0x0C], esi
@@ -495,7 +485,7 @@ G_M272_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=10 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 941, prolog size 31, PerfScore 349.62, instruction count 258, allocated bytes for code 941 (MethodHash=2f3dfeef) for method System.Collections.Generic.Dictionary`2[int,System.__Canon]:TryInsert(int,System.__Canon,ubyte):ubyte:this (FullOpts)
+; Total bytes of code 922, prolog size 31, PerfScore 344.00, instruction count 253, allocated bytes for code 922 (MethodHash=2f3dfeef) for method System.Collections.Generic.Dictionary`2[int,System.__Canon]:TryInsert(int,System.__Canon,ubyte):ubyte:this (FullOpts)
 ; ============================================================
...

-2 (-1.75%) : 13087.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)

@@ -71,9 +71,8 @@ G_M20310_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        lea      rcx, bword ptr [rax+rcx+0x10]
        ; byrRegs +[rcx]
        cmp      dword ptr [rcx+0x04], -1
-       jge      SHORT G_M20310_IG07
-       jmp      SHORT G_M20310_IG03
-                       ;; size=38 bbWeight=2 PerfScore 38.00
+       jl       SHORT G_M20310_IG03
+                       ;; size=36 bbWeight=2 PerfScore 34.00
 G_M20310_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0082 {rcx rdi}, byref
        ; gcrRegs -[rax]
        mov      eax, dword ptr [rcx+0x08]
@@ -98,7 +97,7 @@ G_M20310_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 114, prolog size 4, PerfScore 119.12, instruction count 40, allocated bytes for code 114 (MethodHash=5c1ab0a9) for method System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 112, prolog size 4, PerfScore 115.12, instruction count 39, allocated bytes for code 112 (MethodHash=5c1ab0a9) for method System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+37 (+12.13%) : 27026.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)

@@ -8,12 +8,12 @@
 ; 0 inlinees with PGO data; 8 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  6,  4   )     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator>
+;  V00 this         [V00,T02] (  6,  4   )     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator>
 ;  V01 arg1         [V01,T00] (  6,  5   )     ref  ->  rsi         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator>
-;  V02 arg2         [V02,T02] (  6,  4   )   ubyte  ->  r15         single-def
+;  V02 arg2         [V02,T03] (  6,  4   )   ubyte  ->  r15         single-def
 ;  V03 loc0         [V03,T06] (  4,  2   )     ref  ->  rdi         class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V04 loc1         [V04    ] (  0,  0   )    byte  ->  zero-ref   
-;  V05 loc2         [V05,T03] (  7,  4.50)     int  ->  rdi         single-def
+;  V05 loc2         [V05,T01] ( 10,  6   )     int  ->  rdi         single-def
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V08 tmp2         [V08    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
@@ -45,37 +45,48 @@ G_M22690_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
                        ;; size=23 bbWeight=1 PerfScore 5.75
 G_M22690_IG03:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        cmp      edi, 0x1115
-       je       SHORT G_M22690_IG05
-       cmp      edi, 0x1116
        je       SHORT G_M22690_IG06
+       cmp      edi, 0x1116
+       je       SHORT G_M22690_IG07
        add      edi, -0x1214
        cmp      edi, 1
-       jbe      SHORT G_M22690_IG05
-       jmp      G_M22690_IG16
+       jbe      SHORT G_M22690_IG06
+       jmp      G_M22690_IG17
                        ;; size=32 bbWeight=0.50 PerfScore 3.00
 G_M22690_IG04:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        cmp      edi, 0x1D14
-       jg       G_M22690_IG16
+       jg       SHORT G_M22690_IG05
        cmp      edi, 0x1216
-       je       SHORT G_M22690_IG06
-       jmp      G_M22690_IG16
-                       ;; size=25 bbWeight=0.50 PerfScore 2.25
-G_M22690_IG05:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+       je       SHORT G_M22690_IG07
+       cmp      edi, 0x1D14
+       je       G_M22690_IG17
+       jmp      G_M22690_IG17
+                       ;; size=33 bbWeight=0.50 PerfScore 2.88
+G_M22690_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx rsi]
+       cmp      edi, 0x1E14
+       je       G_M22690_IG17
+       cmp      edi, 0x1F14
+       je       G_M22690_IG17
+       jmp      G_M22690_IG17
+                       ;; size=29 bbWeight=0.50 PerfScore 2.25
+G_M22690_IG06:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[rbx rsi]
        mov      rsi, gword ptr [rsi+0x20]
        mov      rdi, gword ptr [rsi+0x18]
        ; gcrRegs +[rdi]
-       jmp      SHORT G_M22690_IG07
+       jmp      SHORT G_M22690_IG08
                        ;; size=10 bbWeight=0.50 PerfScore 3.00
-G_M22690_IG06:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M22690_IG07:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdi]
        mov      rdi, gword ptr [rsi+0x28]
        ; gcrRegs +[rdi]
        mov      rdi, gword ptr [rdi+0x18]
                        ;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M22690_IG07:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+G_M22690_IG08:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi]
        test     rdi, rdi
-       je       G_M22690_IG16
+       je       G_M22690_IG17
        call     [Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:GetEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]
        ; gcrRegs -[rdi] +[rax]
        mov      rdi, rax
@@ -87,7 +98,7 @@ G_M22690_IG07:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
        ; gcrRegs -[rdi]
        add      eax, -9
        cmp      eax, 3
-       ja       G_M22690_IG16
+       ja       G_M22690_IG17
        mov      edi, eax
        lea      rcx, [reloc @RWD00]
        mov      ecx, dword ptr [rcx+4*rdi]
@@ -95,7 +106,7 @@ G_M22690_IG07:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
        add      rcx, rsi
        jmp      rcx
                        ;; size=67 bbWeight=0.50 PerfScore 9.50
-G_M22690_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M22690_IG09:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rdi, gword ptr [rbx+0x20]
        ; gcrRegs +[rdi]
        movzx    rcx, r15b
@@ -103,13 +114,13 @@ G_M22690_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        mov      edx, 12
        cmp      dword ptr [rdi], edi
                        ;; size=20 bbWeight=0.50 PerfScore 2.88
-G_M22690_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+G_M22690_IG10:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
        pop      r15
        pop      rbp
        tail.jmp [<unknown method>]
                        ;; size=10 bbWeight=0.50 PerfScore 1.75
-G_M22690_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M22690_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rdi]
        mov      rdi, gword ptr [rbx+0x20]
        ; gcrRegs +[rdi]
@@ -118,13 +129,13 @@ G_M22690_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        mov      edx, 2
        cmp      dword ptr [rdi], edi
                        ;; size=20 bbWeight=0.50 PerfScore 2.88
-G_M22690_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+G_M22690_IG12:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
        pop      r15
        pop      rbp
        tail.jmp [<unknown method>]
                        ;; size=10 bbWeight=0.50 PerfScore 1.75
-G_M22690_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M22690_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rdi]
        mov      rdi, gword ptr [rbx+0x20]
        ; gcrRegs +[rdi]
@@ -133,13 +144,13 @@ G_M22690_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        mov      edx, 5
        cmp      dword ptr [rdi], edi
                        ;; size=20 bbWeight=0.50 PerfScore 2.88
-G_M22690_IG13:        ; bbWeight=0.50, epilog, nogc, extend
+G_M22690_IG14:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
        pop      r15
        pop      rbp
        tail.jmp [<unknown method>]
                        ;; size=10 bbWeight=0.50 PerfScore 1.75
-G_M22690_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M22690_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rdi]
        mov      rdi, gword ptr [rbx+0x20]
        ; gcrRegs +[rdi]
@@ -148,26 +159,26 @@ G_M22690_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        mov      edx, 13
        cmp      dword ptr [rdi], edi
                        ;; size=20 bbWeight=0.50 PerfScore 2.88
-G_M22690_IG15:        ; bbWeight=0.50, epilog, nogc, extend
+G_M22690_IG16:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
        pop      r15
        pop      rbp
        tail.jmp [<unknown method>]
                        ;; size=10 bbWeight=0.50 PerfScore 1.75
-G_M22690_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M22690_IG17:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        ; gcrRegs -[rbx rdi]
        pop      rbx
        pop      r15
        pop      rbp
        ret      
                        ;; size=5 bbWeight=0.50 PerfScore 1.25
-RWD00      dd  G_M22690_IG10 - G_M22690_IG02
-           dd  G_M22690_IG08 - G_M22690_IG02
-           dd  G_M22690_IG12 - G_M22690_IG02
-           dd  G_M22690_IG14 - G_M22690_IG02
+RWD00      dd  G_M22690_IG11 - G_M22690_IG02
+           dd  G_M22690_IG09 - G_M22690_IG02
+           dd  G_M22690_IG13 - G_M22690_IG02
+           dd  G_M22690_IG15 - G_M22690_IG02
 
 
-; Total bytes of code 305, prolog size 9, PerfScore 49.25, instruction count 86, allocated bytes for code 305 (MethodHash=a8a6a75d) for method Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
+; Total bytes of code 342, prolog size 9, PerfScore 52.12, instruction count 93, allocated bytes for code 342 (MethodHash=a8a6a75d) for method Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+19 (+12.50%) : 24686.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)

@@ -27,10 +27,10 @@
 ;* V16 tmp10        [V16,T07] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
 ;* V17 tmp11        [V17,T08] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V18 cse0         [V18,T14] (  0,  0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;  V19 cse1         [V19,T10] (  2,  2.50)    long  ->  [rbp-0x38]  spill-single-def hoist "CSE - moderate"
-;* V20 rat0         [V20,T12] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V19 cse1         [V19,T10] (  3,  3   )    long  ->  [rbp-0x38]  spill-single-def hoist "CSE - moderate"
+;  V20 rat0         [V20,T12] (  2,  2   )    long  ->  rdi         "Spilling to split statement for tree"
 ;* V21 rat1         [V21,T13] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V22 rat2         [V22,T11] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V22 rat2         [V22,T11] (  2,  2   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 24
 
@@ -75,8 +75,14 @@ G_M9562_IG03:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=8000 {
        mov      rax, qword ptr [rbx]
        ; gcrRegs -[rax]
        mov      qword ptr [rbp-0x38], rax
+       mov      rdi, rax
+       mov      rdi, qword ptr [rdi+0x38]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x40]
+       test     rdi, rdi
+       jne      SHORT G_M9562_IG05
        jmp      SHORT G_M9562_IG05
-                       ;; size=24 bbWeight=0.50 PerfScore 4.38
+                       ;; size=43 bbWeight=0.50 PerfScore 8.12
 G_M9562_IG04:        ; bbWeight=2, gcrefRegs=6008 {rbx r13 r14}, byrefRegs=8000 {r15}, byref
        mov      rdi, r13
        ; gcrRegs +[rdi]
@@ -126,7 +132,7 @@ G_M9562_IG08:        ; bbWeight=1, epilog, nogc, extend
        ret      
                        ;; size=15 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 152, prolog size 23, PerfScore 80.50, instruction count 50, allocated bytes for code 152 (MethodHash=57bfdaa5) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
+; Total bytes of code 171, prolog size 23, PerfScore 84.25, instruction count 56, allocated bytes for code 171 (MethodHash=57bfdaa5) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+25 (+31.65%) : 11178.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)

@@ -8,8 +8,8 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  6,  4.50)     ref  ->  rbx         this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
-;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <FSharp.Compiler.Infos+PropInfo>
+;  V00 this         [V00,T00] (  7,  5   )     ref  ->  rbx         this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <<unknown class>>
 ;  V03 loc2         [V03,T04] (  2,  1   )     ref  ->  rdi         class-hnd exact single-def <<unknown class>>
 ;* V04 loc3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <FSharp.Compiler.TypedTree+ValRef>
@@ -37,39 +37,51 @@ G_M3270_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byre
        ; gcrRegs -[rsi] +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M3270_IG05
+       jne      SHORT G_M3270_IG04
                        ;; size=23 bbWeight=1 PerfScore 2.75
 G_M3270_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
+       mov      rsi, rbx
+       ; gcrRegs +[rsi]
+       mov      rdi, 0xD1FFAB1E      ; <unknown class>
+       call     CORINFO_HELP_ISINSTANCEOFCLASS
+       ; gcrRegs -[rbx rsi] +[rax]
+       ; gcr arg pop 0
+       test     rax, rax
+       jne      SHORT G_M3270_IG06
+       jmp      SHORT G_M3270_IG06
+                       ;; size=25 bbWeight=0.50 PerfScore 2.38
+G_M3270_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rax] +[rbx]
        mov      rdi, gword ptr [rbx+0x18]
        ; gcrRegs +[rdi]
        test     rdi, rdi
-       je       SHORT G_M3270_IG05
+       je       SHORT G_M3270_IG06
        cmp      gword ptr [rbx+0x20], 0
-       jne      SHORT G_M3270_IG05
+       jne      SHORT G_M3270_IG06
        mov      rdi, gword ptr [rdi+0x08]
        mov      rsi, gword ptr [rbx+0x08]
        ; gcrRegs +[rsi]
                        ;; size=24 bbWeight=0.50 PerfScore 5.62
-G_M3270_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG05:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
        pop      rbp
        tail.jmp [FSharp.Compiler.Infos:ValRef.IsFSharpEventProperty(FSharp.Compiler.TypedTree+ValRef,FSharp.Compiler.TcGlobals+TcGlobals):ubyte]
        ; gcr arg pop 0
                        ;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M3270_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M3270_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rbx rsi rdi]
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M3270_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG07:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
        pop      rbp
        ret      
                        ;; size=7 bbWeight=0.50 PerfScore 1.12
 
-; Total bytes of code 79, prolog size 11, PerfScore 15.00, instruction count 26, allocated bytes for code 79 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
+; Total bytes of code 104, prolog size 11, PerfScore 17.38, instruction count 32, allocated bytes for code 104 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

smoke_tests.nativeaot.linux.x64.checked.mch

-6 (-3.08%) : 5723.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)

@@ -31,13 +31,13 @@ G_M7049_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rbx, rdi
        ; gcrRegs +[rbx]
                        ;; size=16 bbWeight=1 PerfScore 5.75
-G_M7049_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M7049_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      eax, dword ptr [rbx+0x24]
        mov      rdi, gword ptr [rbx+0x08]
        ; gcrRegs +[rdi]
        cmp      eax, dword ptr [rdi+0x38]
-       jne      G_M7049_IG10
-                       ;; size=16 bbWeight=1 PerfScore 8.00
+       jne      SHORT G_M7049_IG10
+                       ;; size=12 bbWeight=1 PerfScore 8.00
 G_M7049_IG03:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdi]
        cmp      dword ptr [rbx+0x20], 0
@@ -73,9 +73,8 @@ G_M7049_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0008 {r
        test     rsi, rsi
        je       SHORT G_M7049_IG03
        cmp      rsi, r14
-       jne      SHORT G_M7049_IG07
-       jmp      SHORT G_M7049_IG03
-                       ;; size=51 bbWeight=2 PerfScore 37.50
+       je       SHORT G_M7049_IG03
+                       ;; size=49 bbWeight=2 PerfScore 33.50
 G_M7049_IG07:        ; bbWeight=0.50, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        lea      rdi, bword ptr [rbx+0x10]
@@ -130,7 +129,7 @@ G_M7049_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=39 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 195, prolog size 16, PerfScore 92.50, instruction count 62, allocated bytes for code 195 (MethodHash=9cafe476) for method System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 189, prolog size 16, PerfScore 88.50, instruction count 61, allocated bytes for code 189 (MethodHash=9cafe476) for method System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Cfi Info:

-6 (-3.06%) : 23351.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)

@@ -32,13 +32,13 @@ G_M7049_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rbx, rdi
        ; gcrRegs +[rbx]
                        ;; size=16 bbWeight=1 PerfScore 5.75
-G_M7049_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M7049_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      eax, dword ptr [rbx+0x24]
        mov      rdi, gword ptr [rbx+0x08]
        ; gcrRegs +[rdi]
        cmp      eax, dword ptr [rdi+0x38]
-       jne      G_M7049_IG10
-                       ;; size=16 bbWeight=1 PerfScore 8.00
+       jne      SHORT G_M7049_IG10
+                       ;; size=12 bbWeight=1 PerfScore 8.00
 G_M7049_IG03:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdi]
        cmp      dword ptr [rbx+0x20], 0
@@ -74,9 +74,8 @@ G_M7049_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0008 {r
        test     rsi, rsi
        je       SHORT G_M7049_IG03
        cmp      rsi, r14
-       jne      SHORT G_M7049_IG07
-       jmp      SHORT G_M7049_IG03
-                       ;; size=51 bbWeight=2 PerfScore 37.50
+       je       SHORT G_M7049_IG03
+                       ;; size=49 bbWeight=2 PerfScore 33.50
 G_M7049_IG07:        ; bbWeight=0.50, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        lea      rdi, bword ptr [rbx+0x10]
@@ -133,7 +132,7 @@ G_M7049_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=40 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 196, prolog size 16, PerfScore 92.50, instruction count 63, allocated bytes for code 196 (MethodHash=9cafe476) for method System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 190, prolog size 16, PerfScore 88.50, instruction count 62, allocated bytes for code 190 (MethodHash=9cafe476) for method System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Cfi Info:

-2 (-2.22%) : 23622.dasm - System.Globalization.CompareInfo:IndexOf(System.ReadOnlySpan1[ushort],System.ReadOnlySpan1[ushort],int):int:this (FullOpts)

@@ -89,7 +89,7 @@ G_M8857_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0081 {rax rdi
        ; byrRegs +[rdx]
        call     <unknown method>
        ; byrRegs -[rax rdx rdi]
-       jmp      SHORT G_M8857_IG08
+       jmp      SHORT G_M8857_IG07
                        ;; size=10 bbWeight=0.50 PerfScore 1.62
 G_M8857_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0081 {rax rdi}, byref, isz
        ; byrRegs +[rax rdi]
@@ -97,32 +97,29 @@ G_M8857_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0081 {rax rdi
        ; byrRegs +[rdx]
        call     <unknown method>
        ; byrRegs -[rax rdx rdi]
-       jmp      SHORT G_M8857_IG08
+       jmp      SHORT G_M8857_IG07
                        ;; size=10 bbWeight=0.50 PerfScore 1.62
 G_M8857_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0081 {rax rdi}, byref, isz
        ; byrRegs +[rax rdi]
        cmp      r9d, 0xD1FFAB1E
-       jne      SHORT G_M8857_IG07
-       jmp      SHORT G_M8857_IG04
-                       ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M8857_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0081 {rax rdi}, byref, isz
+       je       SHORT G_M8857_IG04
        cmp      r9d, 0xD1FFAB1E
-       jne      SHORT G_M8857_IG09
+       jne      SHORT G_M8857_IG08
        jmp      SHORT G_M8857_IG05
-                       ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M8857_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+                       ;; size=20 bbWeight=0.50 PerfScore 2.25
+G_M8857_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        ; byrRegs -[rax rdi]
        pop      rbp
        ret      
                        ;; size=2 bbWeight=1 PerfScore 1.50
-G_M8857_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M8857_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        mov      edi, 69
        mov      esi, 85
        call     System.ThrowHelper:ThrowArgumentException(int,int)
        int3     
                        ;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 90, prolog size 4, PerfScore 12.12, instruction count 28, allocated bytes for code 90 (MethodHash=5574dd66) for method System.Globalization.CompareInfo:IndexOf(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
+; Total bytes of code 88, prolog size 4, PerfScore 11.12, instruction count 27, allocated bytes for code 88 (MethodHash=5574dd66) for method System.Globalization.CompareInfo:IndexOf(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
 ; ============================================================
 
 Cfi Info:

+20 (+4.93%) : 7665.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)

@@ -13,7 +13,7 @@
 ;  V03 loc0         [V03,T18] (  3,  6   )     int  ->  r14         single-def
 ;  V04 loc1         [V04,T14] (  6,  9   )     int  ->  r13         single-def
 ;* V05 loc2         [V05    ] (  0,  0   )     int  ->  zero-ref   
-;  V06 loc3         [V06,T00] ( 13, 35   )     int  ->  r12        
+;  V06 loc3         [V06,T00] ( 15, 35   )     int  ->  r12        
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V08 tmp1         [V08,T26] (  2,  1   )     int  ->  rdi        
 ;  V09 tmp2         [V09,T19] (  2,  4   )     int  ->  rdi        
@@ -24,19 +24,19 @@
 ;* V14 tmp7         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp8         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp9         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
-;  V17 tmp10        [V17,T01] (  5, 32   )     int  ->  rdi         "Inlining Arg"
+;  V17 tmp10        [V17,T01] (  6, 32   )     int  ->  rdi         "Inlining Arg"
 ;* V18 tmp11        [V18    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V19 tmp12        [V19,T07] (  3, 16   )     int  ->  rax         "Inlining Arg"
+;  V19 tmp12        [V19,T07] (  4, 16   )     int  ->  rax         "Inlining Arg"
 ;* V20 tmp13        [V20,T20] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V21 tmp14        [V21,T11] (  3, 12   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
 ;* V22 tmp15        [V22    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V23 tmp16        [V23,T15] (  3,  8   )     int  ->  rax         "Inlining Arg"
+;  V23 tmp16        [V23,T15] (  4,  8   )     int  ->  rax         "Inlining Arg"
 ;* V24 tmp17        [V24,T24] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V25 tmp18        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp19        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V27 tmp20        [V27,T02] (  3, 24   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
 ;* V28 tmp21        [V28    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V29 tmp22        [V29,T08] (  3, 16   )     int  ->  rax         "Inlining Arg"
+;  V29 tmp22        [V29,T08] (  4, 16   )     int  ->  rax         "Inlining Arg"
 ;* V30 tmp23        [V30,T21] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V31 tmp24        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
 ;  V32 tmp25        [V32,T23] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
@@ -200,7 +200,22 @@ G_M29651_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        int3     
                        ;; size=17 bbWeight=0 PerfScore 0.00
-G_M29651_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       cmp      edi, eax
+       jbe      SHORT G_M29651_IG14
+       jmp      SHORT G_M29651_IG14
+                       ;; size=6 bbWeight=0 PerfScore 0.00
+G_M29651_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       cmp      r12d, eax
+       jbe      SHORT G_M29651_IG15
+       jmp      SHORT G_M29651_IG15
+                       ;; size=7 bbWeight=0 PerfScore 0.00
+G_M29651_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       cmp      r12d, eax
+       jbe      SHORT G_M29651_IG16
+       jmp      SHORT G_M29651_IG16
+                       ;; size=7 bbWeight=0 PerfScore 0.00
+G_M29651_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      esi, eax
        lea      rdx, gword ptr [(reloc)]
        ; gcrRegs +[rdx]
@@ -208,7 +223,7 @@ G_M29651_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        int3     
                        ;; size=15 bbWeight=0 PerfScore 0.00
-G_M29651_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      edi, r12d
        mov      esi, eax
        lea      rdx, gword ptr [(reloc)]
@@ -217,7 +232,7 @@ G_M29651_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        int3     
                        ;; size=18 bbWeight=0 PerfScore 0.00
-G_M29651_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      edi, r12d
        mov      esi, eax
        lea      rdx, gword ptr [(reloc)]
@@ -227,7 +242,7 @@ G_M29651_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 406, prolog size 16, PerfScore 225.62, instruction count 117, allocated bytes for code 406 (MethodHash=0e6f8c2c) for method Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
+; Total bytes of code 426, prolog size 16, PerfScore 225.62, instruction count 126, allocated bytes for code 426 (MethodHash=0e6f8c2c) for method Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
 ; ============================================================
 
 Cfi Info:

+18 (+12.86%) : 23413.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)

@@ -8,76 +8,80 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T04] (  4,  4   )     ref  ->  rbx         this class-hnd exact single-def <System.Globalization.GregorianCalendarHelper>
-;  V01 arg1         [V01    ] (  5,  5   )  struct ( 8) [rbp-0x18]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.DateTime>
+;  V01 arg1         [V01    ] (  5,  5   )  struct ( 8) [rbp-0x30]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.DateTime>
 ;  V02 loc0         [V02,T03] (  3, 10   )    long  ->  r15        
-;  V03 loc1         [V03,T02] (  3, 10   )     ref  ->  rdi         class-hnd exact single-def <<unknown class>>
-;  V04 loc2         [V04,T00] (  5, 21   )     int  ->  rax        
-;  V05 loc3         [V05,T01] (  3, 17   )     ref  ->  rbx         class-hnd exact <<unknown class>>
+;  V03 loc1         [V03,T02] (  3, 10   )     ref  ->  rbx         class-hnd exact single-def <<unknown class>>
+;  V04 loc2         [V04,T00] (  5, 21   )     int  ->  r14        
+;  V05 loc3         [V05,T01] (  3, 17   )     ref  ->  r12         class-hnd exact <<unknown class>>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V07 tmp1         [V07,T06] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V08 tmp2         [V08    ] (  5,  5   )    long  ->  [rbp-0x18]  do-not-enreg[X] addr-exposed single-def "field V01._dateData (fldOffset=0x0)" P-DEP
+;  V08 tmp2         [V08    ] (  5,  5   )    long  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed single-def "field V01._dateData (fldOffset=0x0)" P-DEP
 ;  V09 tmp3         [V09,T07] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V10 cse0         [V10,T05] (  3,  6   )     int  ->  rcx         "CSE - aggressive"
+;  V10 cse0         [V10,T05] (  3,  6   )     int  ->  r13         "CSE - aggressive"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 8
 
 G_M5119_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
+       push     r14
+       push     r13
+       push     r12
        push     rbx
-       sub      rsp, 16
-       lea      rbp, [rsp+0x20]
-       mov      qword ptr [rbp-0x18], rsi
+       push     rax
+       lea      rbp, [rsp+0x30]
+       mov      qword ptr [rbp-0x30], rsi
        mov      rbx, rdi
        ; gcrRegs +[rbx]
-                       ;; size=20 bbWeight=1 PerfScore 5.00
+                       ;; size=23 bbWeight=1 PerfScore 8.75
 G_M5119_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      r15, 0xD1FFAB1E
-       and      r15, qword ptr [rbp-0x18]
+       and      r15, qword ptr [rbp-0x30]
        mov      rdi, rbx
        ; gcrRegs +[rdi]
        mov      rsi, r15
        call     <unknown method>
        ; gcrRegs -[rdi]
        ; gcr arg pop 0
-       mov      rdi, gword ptr [rbx+0x10]
-       ; gcrRegs +[rdi]
-       xor      eax, eax
-       mov      ecx, dword ptr [rdi+0x08]
-       test     ecx, ecx
+       mov      rbx, gword ptr [rbx+0x10]
+       xor      r14d, r14d
+       mov      r13d, dword ptr [rbx+0x08]
+       test     r13d, r13d
        jle      SHORT G_M5119_IG07
-                       ;; size=38 bbWeight=1 PerfScore 9.25
-G_M5119_IG03:        ; bbWeight=8, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx]
-       mov      edx, eax
-       mov      rbx, gword ptr [rdi+8*rdx+0x10]
-       ; gcrRegs +[rbx]
-       cmp      r15, qword ptr [rbx+0x20]
+                       ;; size=41 bbWeight=1 PerfScore 9.25
+G_M5119_IG03:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       mov      edi, r14d
+       mov      r12, gword ptr [rbx+8*rdi+0x10]
+       ; gcrRegs +[r12]
+       cmp      r15, qword ptr [r12+0x20]
        jge      SHORT G_M5119_IG05
-                       ;; size=13 bbWeight=8 PerfScore 50.00
-G_M5119_IG04:        ; bbWeight=4, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx]
-       inc      eax
-       cmp      ecx, eax
+                       ;; size=15 bbWeight=8 PerfScore 50.00
+G_M5119_IG04:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[r12]
+       inc      r14d
+       cmp      r13d, r14d
        jle      SHORT G_M5119_IG07
        jmp      SHORT G_M5119_IG03
-                       ;; size=8 bbWeight=4 PerfScore 14.00
-G_M5119_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdi] +[rbx]
-       lea      rdi, [rbp-0x18]
+                       ;; size=10 bbWeight=4 PerfScore 14.00
+G_M5119_IG05:        ; bbWeight=1, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx] +[r12]
+       lea      rdi, [rbp-0x30]
        call     System.DateTime:get_Year():int:this
        ; gcr arg pop 0
-       sub      eax, dword ptr [rbx+0x2C]
-                       ;; size=12 bbWeight=1 PerfScore 4.50
+       sub      eax, dword ptr [r12+0x2C]
+                       ;; size=14 bbWeight=1 PerfScore 4.50
 G_M5119_IG06:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 16
+       add      rsp, 8
        pop      rbx
+       pop      r12
+       pop      r13
+       pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=1 PerfScore 2.75
+                       ;; size=15 bbWeight=1 PerfScore 4.25
 G_M5119_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rbx]
+       ; gcrRegs -[r12]
        lea      rdi, [(reloc)]      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -101,7 +105,7 @@ G_M5119_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
        int3     
                        ;; size=40 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 140, prolog size 20, PerfScore 85.50, instruction count 43, allocated bytes for code 140 (MethodHash=c429ec00) for method System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
+; Total bytes of code 158, prolog size 23, PerfScore 90.75, instruction count 49, allocated bytes for code 158 (MethodHash=c429ec00) for method System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
 ; ============================================================
 
 Cfi Info:
@@ -111,6 +115,12 @@ Cfi Info:
     CodeOffset: 0x01 Op: RelOffset DwarfReg:0x6 Offset:0x0
     CodeOffset: 0x03 Op: AdjustCfaOffset Offset:0x8
     CodeOffset: 0x03 Op: RelOffset DwarfReg:0xf Offset:0x0
-    CodeOffset: 0x04 Op: AdjustCfaOffset Offset:0x8
-    CodeOffset: 0x04 Op: RelOffset DwarfReg:0x3 Offset:0x0
-    CodeOffset: 0x08 Op: AdjustCfaOffset Offset:0x10
+    CodeOffset: 0x05 Op: AdjustCfaOffset Offset:0x8
+    CodeOffset: 0x05 Op: RelOffset DwarfReg:0xe Offset:0x0
+    CodeOffset: 0x07 Op: AdjustCfaOffset Offset:0x8
+    CodeOffset: 0x07 Op: RelOffset DwarfReg:0xd Offset:0x0
+    CodeOffset: 0x09 Op: AdjustCfaOffset Offset:0x8
+    CodeOffset: 0x09 Op: RelOffset DwarfReg:0xc Offset:0x0
+    CodeOffset: 0x0A Op: AdjustCfaOffset Offset:0x8
+    CodeOffset: 0x0A Op: RelOffset DwarfReg:0x3 Offset:0x0
+    CodeOffset: 0x0B Op: AdjustCfaOffset Offset:0x8

+18 (+12.95%) : 7023.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)

@@ -8,75 +8,79 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T04] (  4,  4   )     ref  ->  rbx         this class-hnd exact single-def <System.Globalization.GregorianCalendarHelper>
-;  V01 arg1         [V01    ] (  5,  5   )  struct ( 8) [rbp-0x18]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.DateTime>
+;  V01 arg1         [V01    ] (  5,  5   )  struct ( 8) [rbp-0x30]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.DateTime>
 ;  V02 loc0         [V02,T03] (  3, 10   )    long  ->  r15        
-;  V03 loc1         [V03,T02] (  3, 10   )     ref  ->  rdi         class-hnd exact single-def <<unknown class>>
-;  V04 loc2         [V04,T00] (  5, 21   )     int  ->  rax        
-;  V05 loc3         [V05,T01] (  3, 17   )     ref  ->  rbx         class-hnd exact <<unknown class>>
+;  V03 loc1         [V03,T02] (  3, 10   )     ref  ->  rbx         class-hnd exact single-def <<unknown class>>
+;  V04 loc2         [V04,T00] (  5, 21   )     int  ->  r14        
+;  V05 loc3         [V05,T01] (  3, 17   )     ref  ->  r12         class-hnd exact <<unknown class>>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V07 tmp1         [V07,T06] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V08 tmp2         [V08    ] (  5,  5   )    long  ->  [rbp-0x18]  do-not-enreg[X] addr-exposed single-def "field V01._dateData (fldOffset=0x0)" P-DEP
-;  V09 cse0         [V09,T05] (  3,  6   )     int  ->  rcx         "CSE - aggressive"
+;  V08 tmp2         [V08    ] (  5,  5   )    long  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed single-def "field V01._dateData (fldOffset=0x0)" P-DEP
+;  V09 cse0         [V09,T05] (  3,  6   )     int  ->  r13         "CSE - aggressive"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 8
 
 G_M5119_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
+       push     r14
+       push     r13
+       push     r12
        push     rbx
-       sub      rsp, 16
-       lea      rbp, [rsp+0x20]
-       mov      qword ptr [rbp-0x18], rsi
+       push     rax
+       lea      rbp, [rsp+0x30]
+       mov      qword ptr [rbp-0x30], rsi
        mov      rbx, rdi
        ; gcrRegs +[rbx]
-                       ;; size=20 bbWeight=1 PerfScore 5.00
+                       ;; size=23 bbWeight=1 PerfScore 8.75
 G_M5119_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      r15, 0xD1FFAB1E
-       and      r15, qword ptr [rbp-0x18]
+       and      r15, qword ptr [rbp-0x30]
        mov      rdi, rbx
        ; gcrRegs +[rdi]
        mov      rsi, r15
        call     <unknown method>
        ; gcrRegs -[rdi]
        ; gcr arg pop 0
-       mov      rdi, gword ptr [rbx+0x10]
-       ; gcrRegs +[rdi]
-       xor      eax, eax
-       mov      ecx, dword ptr [rdi+0x08]
-       test     ecx, ecx
+       mov      rbx, gword ptr [rbx+0x10]
+       xor      r14d, r14d
+       mov      r13d, dword ptr [rbx+0x08]
+       test     r13d, r13d
        jle      SHORT G_M5119_IG07
-                       ;; size=38 bbWeight=1 PerfScore 9.25
-G_M5119_IG03:        ; bbWeight=8, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx]
-       mov      edx, eax
-       mov      rbx, gword ptr [rdi+8*rdx+0x10]
-       ; gcrRegs +[rbx]
-       cmp      r15, qword ptr [rbx+0x20]
+                       ;; size=41 bbWeight=1 PerfScore 9.25
+G_M5119_IG03:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       mov      edi, r14d
+       mov      r12, gword ptr [rbx+8*rdi+0x10]
+       ; gcrRegs +[r12]
+       cmp      r15, qword ptr [r12+0x20]
        jge      SHORT G_M5119_IG05
-                       ;; size=13 bbWeight=8 PerfScore 50.00
-G_M5119_IG04:        ; bbWeight=4, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx]
-       inc      eax
-       cmp      ecx, eax
+                       ;; size=15 bbWeight=8 PerfScore 50.00
+G_M5119_IG04:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[r12]
+       inc      r14d
+       cmp      r13d, r14d
        jle      SHORT G_M5119_IG07
        jmp      SHORT G_M5119_IG03
-                       ;; size=8 bbWeight=4 PerfScore 14.00
-G_M5119_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdi] +[rbx]
-       lea      rdi, [rbp-0x18]
+                       ;; size=10 bbWeight=4 PerfScore 14.00
+G_M5119_IG05:        ; bbWeight=1, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx] +[r12]
+       lea      rdi, [rbp-0x30]
        call     System.DateTime:get_Year():int:this
        ; gcr arg pop 0
-       sub      eax, dword ptr [rbx+0x2C]
-                       ;; size=12 bbWeight=1 PerfScore 4.50
+       sub      eax, dword ptr [r12+0x2C]
+                       ;; size=14 bbWeight=1 PerfScore 4.50
 G_M5119_IG06:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 16
+       add      rsp, 8
        pop      rbx
+       pop      r12
+       pop      r13
+       pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=1 PerfScore 2.75
+                       ;; size=15 bbWeight=1 PerfScore 4.25
 G_M5119_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rbx]
+       ; gcrRegs -[r12]
        lea      rdi, [(reloc)]      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -98,7 +102,7 @@ G_M5119_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
        int3     
                        ;; size=39 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 139, prolog size 20, PerfScore 85.50, instruction count 42, allocated bytes for code 139 (MethodHash=c429ec00) for method System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
+; Total bytes of code 157, prolog size 23, PerfScore 90.75, instruction count 48, allocated bytes for code 157 (MethodHash=c429ec00) for method System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
 ; ============================================================
 
 Cfi Info:
@@ -108,6 +112,12 @@ Cfi Info:
     CodeOffset: 0x01 Op: RelOffset DwarfReg:0x6 Offset:0x0
     CodeOffset: 0x03 Op: AdjustCfaOffset Offset:0x8
     CodeOffset: 0x03 Op: RelOffset DwarfReg:0xf Offset:0x0
-    CodeOffset: 0x04 Op: AdjustCfaOffset Offset:0x8
-    CodeOffset: 0x04 Op: RelOffset DwarfReg:0x3 Offset:0x0
-    CodeOffset: 0x08 Op: AdjustCfaOffset Offset:0x10
+    CodeOffset: 0x05 Op: AdjustCfaOffset Offset:0x8
+    CodeOffset: 0x05 Op: RelOffset DwarfReg:0xe Offset:0x0
+    CodeOffset: 0x07 Op: AdjustCfaOffset Offset:0x8
+    CodeOffset: 0x07 Op: RelOffset DwarfReg:0xd Offset:0x0
+    CodeOffset: 0x09 Op: AdjustCfaOffset Offset:0x8
+    CodeOffset: 0x09 Op: RelOffset DwarfReg:0xc Offset:0x0
+    CodeOffset: 0x0A Op: AdjustCfaOffset Offset:0x8
+    CodeOffset: 0x0A Op: RelOffset DwarfReg:0x3 Offset:0x0
+    CodeOffset: 0x0B Op: AdjustCfaOffset Offset:0x8

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.x64.checked.mch 484 174 86 224 -703 +833
benchmarks.run_pgo.linux.x64.checked.mch 71,314 8,869 60,324 2,121 -55,546 +1,891,473
benchmarks.run_tiered.linux.x64.checked.mch 150 58 28 64 -342 +429
coreclr_tests.run.linux.x64.checked.mch 65,512 4,456 39,091 21,965 -25,184 +669,687
libraries.crossgen2.linux.x64.checked.mch 1,121 150 201 770 -595 +2,357
libraries.pmi.linux.x64.checked.mch 29,506 3,633 17,406 8,467 -17,214 +192,206
libraries_tests.run.linux.x64.Release.mch 117,599 20,076 82,798 14,725 -132,482 +2,895,663
librariestestsnotieredcompilation.run.linux.x64.Release.mch 66,202 9,617 46,919 9,666 -51,119 +521,940
realworld.run.linux.x64.checked.mch 381 76 115 190 -389 +1,587
smoke_tests.nativeaot.linux.x64.checked.mch 184 38 45 101 -180 +542
352,453 47,147 247,013 58,293 -283,754 +6,176,717

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.x64.checked.mch 34,995 3,164 31,831 0 (0.00%) 4 (0.01%)
benchmarks.run_pgo.linux.x64.checked.mch 155,969 58,399 97,570 149 (0.10%) 151 (0.10%)
benchmarks.run_tiered.linux.x64.checked.mch 58,888 44,312 14,576 0 (0.00%) 2 (0.00%)
coreclr_tests.run.linux.x64.checked.mch 694,084 429,241 264,843 325 (0.05%) 329 (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,414 6 295,408 1 (0.00%) 8 (0.00%)
libraries_tests.run.linux.x64.Release.mch 756,822 495,271 261,551 3,118 (0.41%) 3,121 (0.41%)
librariestestsnotieredcompilation.run.linux.x64.Release.mch 304,605 21,873 282,732 6 (0.00%) 10 (0.00%)
realworld.run.linux.x64.checked.mch 33,164 39 33,125 0 (0.00%) 3 (0.01%)
smoke_tests.nativeaot.linux.x64.checked.mch 27,440 9 27,431 0 (0.00%) 0 (0.00%)
2,595,007 1,052,329 1,542,678 3,599 (0.14%) 3,628 (0.14%)

jit-analyze output

benchmarks.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: 13734994 (overridden on cmd)
Total bytes of diff: 13735124 (overridden on cmd)
Total bytes of delta: 130 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          51 : 21829.dasm (0.89 % of base)
          41 : 20579.dasm (1.46 % of base)
          34 : 13007.dasm (0.28 % of base)
          31 : 27309.dasm (30.39 % of base)
          31 : 2563.dasm (1.45 % of base)
          30 : 19408.dasm (3.03 % of base)
          23 : 16509.dasm (0.74 % of base)
          23 : 4927.dasm (3.97 % of base)
          20 : 7315.dasm (1.48 % of base)
          20 : 2485.dasm (2.37 % of base)
          20 : 4332.dasm (0.83 % of base)
          19 : 29150.dasm (6.76 % of base)
          18 : 20545.dasm (1.83 % of base)
          17 : 24625.dasm (0.69 % of base)
          17 : 9706.dasm (8.21 % of base)
          17 : 14668.dasm (5.18 % of base)
          16 : 3210.dasm (3.19 % of base)
          16 : 12883.dasm (3.18 % of base)
          16 : 15445.dasm (3.83 % of base)
          15 : 218.dasm (3.11 % of base)

Top file improvements (bytes):
         -33 : 8971.dasm (-0.30 % of base)
         -26 : 4375.dasm (-1.47 % of base)
         -25 : 4395.dasm (-1.87 % of base)
         -19 : 4455.dasm (-2.00 % of base)
         -19 : 1724.dasm (-2.00 % of base)
         -19 : 13124.dasm (-2.02 % of base)
         -19 : 207.dasm (-2.02 % of base)
         -18 : 11310.dasm (-0.98 % of base)
         -18 : 20808.dasm (-1.54 % of base)
         -15 : 16448.dasm (-1.15 % of base)
         -15 : 33608.dasm (-1.14 % of base)
         -15 : 37.dasm (-1.52 % of base)
         -14 : 11308.dasm (-0.23 % of base)
         -12 : 8463.dasm (-0.74 % of base)
         -12 : 11689.dasm (-1.74 % of base)
         -12 : 5759.dasm (-1.19 % of base)
         -11 : 23618.dasm (-1.16 % of base)
         -11 : 3209.dasm (-1.18 % of base)
         -10 : 29949.dasm (-0.31 % of base)
         -10 : 6657.dasm (-2.51 % of base)

63 total files with Code Size differences (34 improved, 29 regressed), 20 unchanged.

Top method regressions (bytes):
          51 (0.89 % of base) : 21829.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          41 (1.46 % of base) : 20579.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
          34 (0.28 % of base) : 13007.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
          31 (30.39 % of base) : 27309.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
          31 (1.45 % of base) : 2563.dasm - System.Security.Cryptography.PasswordBasedEncryption:OpenPbkdf2(System.ReadOnlySpan`1[ubyte],System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],byref):System.Security.Cryptography.Rfc2898DeriveBytes (FullOpts)
          30 (3.03 % of base) : 19408.dasm - LUDecomp:Run():double:this (FullOpts)
          23 (3.97 % of base) : 4927.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
          23 (0.74 % of base) : 16509.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
          20 (2.37 % of base) : 2485.dasm - System.Security.Cryptography.X509Certificates.OpenSslPkcs12Reader:LoadKey(System.ReadOnlyMemory`1[ubyte]):System.Security.Cryptography.AsymmetricAlgorithm:this (FullOpts)
          20 (0.83 % of base) : 4332.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (FullOpts)
          20 (1.48 % of base) : 7315.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
          19 (6.76 % of base) : 29150.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
          18 (1.83 % of base) : 20545.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
          17 (0.69 % of base) : 24625.dasm - Microsoft.CodeAnalysis.CSharp.WithPrimaryConstructorParametersBinder:LookupSymbolsInSingleBinder(Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],int,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,byref):this (FullOpts)
          17 (5.18 % of base) : 14668.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (FullOpts)
          17 (8.21 % of base) : 9706.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
          16 (3.19 % of base) : 3210.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (FullOpts)
          16 (3.18 % of base) : 12883.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
          16 (3.83 % of base) : 15445.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
          15 (3.11 % of base) : 218.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)

Top method improvements (bytes):
         -33 (-0.30 % of base) : 8971.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (FullOpts)
         -26 (-1.47 % of base) : 4375.dasm - System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]:TryInsert(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon,ubyte):ubyte:this (FullOpts)
         -25 (-1.87 % of base) : 4395.dasm - System.Collections.Generic.Dictionary`2+CollectionsMarshalHelper[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon]:GetValueRefOrAddDefault(System.Collections.Generic.Dictionary`2[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon],System.ValueTuple`3[int,System.__Canon,System.__Canon],byref):byref (FullOpts)
         -19 (-2.02 % of base) : 207.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:TryInsert(int,System.__Canon,ubyte):ubyte:this (FullOpts)
         -19 (-2.00 % of base) : 1724.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (FullOpts)
         -19 (-2.02 % of base) : 13124.dasm - System.Collections.Generic.Dictionary`2[uint,System.__Canon]:TryInsert(uint,System.__Canon,ubyte):ubyte:this (FullOpts)
         -19 (-2.00 % of base) : 4455.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:TryInsert(ulong,System.__Canon,ubyte):ubyte:this (FullOpts)
         -18 (-1.54 % of base) : 20808.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:TryInsert(System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon],ubyte):ubyte:this (FullOpts)
         -18 (-0.98 % of base) : 11310.dasm - System.Xml.XmlTextReaderImpl:ParseElement():this (FullOpts)
         -15 (-1.52 % of base) : 37.dasm - System.Collections.Generic.Dictionary`2[ushort,System.__Canon]:TryInsert(ushort,System.__Canon,ubyte):ubyte:this (FullOpts)
         -15 (-1.15 % of base) : 16448.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<SyncReadAsyncWithCancellationToken>d__9:MoveNext():this (FullOpts)
         -15 (-1.14 % of base) : 33608.dasm - System.Net.Sockets.Socket:ReceiveFrom(System.Span`1[ubyte],int,byref):int:this (FullOpts)
         -14 (-0.23 % of base) : 11308.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (FullOpts)
         -12 (-0.74 % of base) : 8463.dasm - ProtoBuf.Internal.Serializers.TypeSerializer`1[System.__Canon]:Init(int[],ProtoBuf.Internal.Serializers.IRuntimeProtoSerializerNode[],System.Reflection.MethodInfo[],ubyte,ubyte,ubyte,ProtoBuf.Meta.CallbackSet,System.Type,System.Reflection.MethodInfo,int):this (FullOpts)
         -12 (-1.19 % of base) : 5759.dasm - System.Collections.Generic.Dictionary`2[int,System.ValueTuple`2[System.__Canon,int]]:TryInsert(int,System.ValueTuple`2[System.__Canon,int],ubyte):ubyte:this (FullOpts)
         -12 (-1.74 % of base) : 11689.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this (FullOpts)
         -11 (-1.18 % of base) : 3209.dasm - System.Collections.Generic.Dictionary`2[int,int]:TryInsert(int,int,ubyte):ubyte:this (FullOpts)
         -11 (-1.16 % of base) : 23618.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.__Canon]]):this (FullOpts)
         -10 (-0.31 % of base) : 29949.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_Task>d__13:MoveNext():this (FullOpts)
         -10 (-2.51 % of base) : 6657.dasm - System.Reflection.Emit.RuntimeTypeBuilder:DefineFieldCore(System.String,System.Type,System.Type[],System.Type[],int):System.Reflection.Emit.FieldBuilder:this (FullOpts)

Top method regressions (percentages):
          31 (30.39 % of base) : 27309.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
          17 (8.21 % of base) : 9706.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
          19 (6.76 % of base) : 29150.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
           7 (6.09 % of base) : 16917.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
          17 (5.18 % of base) : 14668.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (FullOpts)
          11 (4.76 % of base) : 7618.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
          23 (3.97 % of base) : 4927.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
          16 (3.83 % of base) : 15445.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
          15 (3.30 % of base) : 3802.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
          11 (3.19 % of base) : 12395.dasm - BenchmarkDotNet.Portability.Cpu.HardwareIntrinsics+<<GetFullInfo>g__GetCurrentProcessInstructionSets|2_0>d:MoveNext():ubyte:this (FullOpts)
          16 (3.19 % of base) : 3210.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (FullOpts)
          16 (3.18 % of base) : 12883.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
          15 (3.11 % of base) : 218.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
          15 (3.11 % of base) : 13121.dasm - System.Collections.Generic.Dictionary`2[uint,System.__Canon]:FindValue(uint):byref:this (FullOpts)
           7 (3.08 % of base) : 21265.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
          15 (3.04 % of base) : 1718.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
          15 (3.04 % of base) : 17633.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (FullOpts)
          30 (3.03 % of base) : 19408.dasm - LUDecomp:Run():double:this (FullOpts)
          20 (2.37 % of base) : 2485.dasm - System.Security.Cryptography.X509Certificates.OpenSslPkcs12Reader:LoadKey(System.ReadOnlyMemory`1[ubyte]):System.Security.Cryptography.AsymmetricAlgorithm:this (FullOpts)
           8 (2.16 % of base) : 10082.dasm - System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (FullOpts)

Top method improvements (percentages):
          -6 (-2.99 % of base) : 8205.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
         -10 (-2.51 % of base) : 6657.dasm - System.Reflection.Emit.RuntimeTypeBuilder:DefineFieldCore(System.String,System.Type,System.Type[],System.Type[],int):System.Reflection.Emit.FieldBuilder:this (FullOpts)
          -2 (-2.47 % of base) : 4585.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-2.47 % of base) : 14077.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-2.47 % of base) : 14722.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-2.47 % of base) : 26607.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-2.47 % of base) : 5170.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-2.47 % of base) : 9262.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-2.47 % of base) : 12014.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-2.47 % of base) : 9991.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -8 (-2.20 % of base) : 19696.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
         -19 (-2.02 % of base) : 207.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:TryInsert(int,System.__Canon,ubyte):ubyte:this (FullOpts)
         -19 (-2.02 % of base) : 13124.dasm - System.Collections.Generic.Dictionary`2[uint,System.__Canon]:TryInsert(uint,System.__Canon,ubyte):ubyte:this (FullOpts)
         -19 (-2.00 % of base) : 1724.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (FullOpts)
         -19 (-2.00 % of base) : 4455.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:TryInsert(ulong,System.__Canon,ubyte):ubyte:this (FullOpts)
         -25 (-1.87 % of base) : 4395.dasm - System.Collections.Generic.Dictionary`2+CollectionsMarshalHelper[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon]:GetValueRefOrAddDefault(System.Collections.Generic.Dictionary`2[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon],System.ValueTuple`3[int,System.__Canon,System.__Canon],byref):byref (FullOpts)
          -2 (-1.87 % of base) : 8754.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.75 % of base) : 112.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.75 % of base) : 1762.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.75 % of base) : 2896.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)


benchmarks.run_pgo.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: 66799129 (overridden on cmd)
Total bytes of diff: 68635056 (overridden on cmd)
Total bytes of delta: 1835927 (2.75 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1202 : 147143.dasm (27.42 % of base)
        1007 : 145965.dasm (35.62 % of base)
         995 : 145943.dasm (34.46 % of base)
         987 : 145922.dasm (33.46 % of base)
         985 : 141502.dasm (31.02 % of base)
         983 : 145925.dasm (32.73 % of base)
         966 : 141512.dasm (34.38 % of base)
         827 : 99696.dasm (5.12 % of base)
         767 : 141515.dasm (32.75 % of base)
         767 : 145963.dasm (32.75 % of base)
         750 : 145899.dasm (48.99 % of base)
         744 : 114286.dasm (48.03 % of base)
         744 : 145913.dasm (48.03 % of base)
         703 : 117256.dasm (45.65 % of base)
         699 : 124337.dasm (45.10 % of base)
         699 : 107723.dasm (45.10 % of base)
         698 : 145924.dasm (46.32 % of base)
         655 : 72258.dasm (13.88 % of base)
         589 : 137064.dasm (47.42 % of base)
         589 : 139717.dasm (47.42 % of base)

Top file improvements (bytes):
         -96 : 150934.dasm (-6.77 % of base)
         -94 : 140597.dasm (-2.70 % of base)
         -93 : 155532.dasm (-6.94 % of base)
         -92 : 74984.dasm (-2.86 % of base)
         -78 : 100744.dasm (-5.36 % of base)
         -77 : 150394.dasm (-2.41 % of base)
         -73 : 155501.dasm (-2.28 % of base)
         -71 : 73674.dasm (-10.79 % of base)
         -71 : 73704.dasm (-10.79 % of base)
         -70 : 128405.dasm (-2.17 % of base)
         -70 : 33662.dasm (-2.19 % of base)
         -70 : 76748.dasm (-2.20 % of base)
         -69 : 120187.dasm (-2.18 % of base)
         -69 : 11031.dasm (-2.18 % of base)
         -68 : 109411.dasm (-2.15 % of base)
         -68 : 154077.dasm (-5.14 % of base)
         -68 : 154078.dasm (-5.10 % of base)
         -68 : 123297.dasm (-2.17 % of base)
         -68 : 124589.dasm (-2.13 % of base)
         -68 : 138530.dasm (-5.14 % of base)

81 total files with Code Size differences (37 improved, 44 regressed), 20 unchanged.

Top method regressions (bytes):
        1202 (27.42 % of base) : 147143.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]:IndexOf(byref,int):int:this (Tier1)
        1007 (35.62 % of base) : 145965.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         995 (34.46 % of base) : 145943.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1)
         987 (33.46 % of base) : 145922.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1)
         985 (31.02 % of base) : 141502.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         983 (32.73 % of base) : 145925.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1)
         966 (34.38 % of base) : 141512.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         827 (5.12 % of base) : 99696.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:IntroSort(System.Span`1[System.__Canon],int,System.Comparison`1[System.__Canon]) (Tier1)
         767 (32.75 % of base) : 141515.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         767 (32.75 % of base) : 145963.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         750 (48.99 % of base) : 145899.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         744 (48.03 % of base) : 114286.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         744 (48.03 % of base) : 145913.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         703 (45.65 % of base) : 117256.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         699 (45.10 % of base) : 124337.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         699 (45.10 % of base) : 107723.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         698 (46.32 % of base) : 145924.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         655 (13.88 % of base) : 72258.dasm - BenchmarkDotNet.Extensions.ValuesGenerator:GenerateRandomString(System.Random,int,int):System.String (Tier1)
         589 (47.42 % of base) : 137064.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
         589 (47.42 % of base) : 139717.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)

Top method improvements (bytes):
         -96 (-6.77 % of base) : 150934.dasm - System.Threading.LowLevelLock:WaitAndAcquire():this (Tier1)
         -94 (-2.70 % of base) : 140597.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -93 (-6.94 % of base) : 155532.dasm - System.Threading.LowLevelLock:WaitAndAcquire():this (Tier1)
         -92 (-2.86 % of base) : 74984.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -78 (-5.36 % of base) : 100744.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1-OSR)
         -77 (-2.41 % of base) : 150394.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -73 (-2.28 % of base) : 155501.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -71 (-10.79 % of base) : 73674.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -71 (-10.79 % of base) : 73704.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -70 (-2.17 % of base) : 128405.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -70 (-2.19 % of base) : 33662.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -70 (-2.20 % of base) : 76748.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -69 (-2.18 % of base) : 120187.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -69 (-2.18 % of base) : 11031.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -68 (-5.14 % of base) : 154077.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
         -68 (-5.10 % of base) : 154078.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
         -68 (-5.14 % of base) : 138530.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
         -68 (-2.15 % of base) : 109411.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -68 (-2.17 % of base) : 123297.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -68 (-2.13 % of base) : 124589.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)

Top method regressions (percentages):
         189 (60.38 % of base) : 92527.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:GetEmbeddedTypes(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (Tier1)
         750 (48.99 % of base) : 145899.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         744 (48.03 % of base) : 114286.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         744 (48.03 % of base) : 145913.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         589 (47.42 % of base) : 137064.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
         589 (47.42 % of base) : 139717.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
         585 (47.14 % of base) : 141461.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
         585 (47.14 % of base) : 141506.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
         698 (46.32 % of base) : 145924.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         703 (45.65 % of base) : 117256.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         699 (45.10 % of base) : 124337.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         699 (45.10 % of base) : 107723.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         210 (37.30 % of base) : 145946.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:TryMatch(byref,int,byref,uint,byref):ubyte:this (Tier1)
         214 (36.46 % of base) : 145936.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:TryMatch(byref,int,byref,uint,byref):ubyte:this (Tier1)
          25 (36.23 % of base) : 91437.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
        1007 (35.62 % of base) : 145965.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         995 (34.46 % of base) : 145943.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1)
         966 (34.38 % of base) : 141512.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
          78 (34.21 % of base) : 4596.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Enumerator[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier1)
          25 (33.78 % of base) : 91430.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)

Top method improvements (percentages):
          -4 (-12.12 % of base) : 91899.dasm - Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
         -71 (-10.79 % of base) : 73674.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -71 (-10.79 % of base) : 73704.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -51 (-9.31 % of base) : 19699.dasm - System.SpanHelpers:IndexOf(byref,int,byref,int):int (Tier1-OSR)
         -51 (-9.31 % of base) : 120601.dasm - System.SpanHelpers:IndexOf(byref,int,byref,int):int (Tier1-OSR)
         -21 (-7.45 % of base) : 46283.dasm - EMFloatClass:StickyShiftRightMant(EMFloatClass+InternalFPF,int) (Tier1)
         -61 (-7.24 % of base) : 45618.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindEndPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+InitialStateFindOptimizationsHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],int,int,byref,byref,byref,byref,byref,byref):ubyte:this (Tier1-OSR)
          -4 (-7.14 % of base) : 93386.dasm - Microsoft.CodeAnalysis.Emit.PEModuleBuilder`9+<GetTopLevelTypeDefinitions>d__23[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:System.IDisposable.Dispose():this (Tier1)
          -2 (-7.14 % of base) : 26478.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-7.14 % of base) : 39125.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-7.14 % of base) : 6664.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
         -93 (-6.94 % of base) : 155532.dasm - System.Threading.LowLevelLock:WaitAndAcquire():this (Tier1)
         -96 (-6.77 % of base) : 150934.dasm - System.Threading.LowLevelLock:WaitAndAcquire():this (Tier1)
         -20 (-6.64 % of base) : 78352.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):System.__Canon:this (Tier1)
          -2 (-6.45 % of base) : 93128.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:IsSpecialEndHandlerBlock(Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock):ubyte (Tier1)
         -13 (-6.25 % of base) : 93136.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:ComputeOffsets():this (Tier1)
         -23 (-6.23 % of base) : 138527.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):System.__Canon:this (Tier1)
         -13 (-6.10 % of base) : 91562.dasm - Microsoft.CodeAnalysis.GreenNode:GetFirstTerminal():Microsoft.CodeAnalysis.GreenNode:this (Tier1)
         -13 (-5.78 % of base) : 35445.dasm - Benchstone.BenchI.CSieve:Test():ubyte:this (Tier1-OSR)
          -3 (-5.77 % of base) : 93635.dasm - System.Reflection.Metadata.BlobWriter:WriteByte(ubyte):this (Tier1)


benchmarks.run_tiered.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: 17373065 (overridden on cmd)
Total bytes of diff: 17373152 (overridden on cmd)
Total bytes of delta: 87 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          62 : 52109.dasm (7.65 % of base)
          51 : 51171.dasm (0.89 % of base)
          36 : 52915.dasm (9.30 % of base)
          36 : 54083.dasm (6.11 % of base)
          34 : 28096.dasm (0.28 % of base)
          31 : 32411.dasm (1.45 % of base)
          30 : 37840.dasm (3.03 % of base)
          20 : 55001.dasm (0.83 % of base)
          20 : 32333.dasm (2.37 % of base)
          15 : 9868.dasm (3.04 % of base)
          15 : 4470.dasm (3.11 % of base)
          13 : 47624.dasm (2.67 % of base)
           9 : 19210.dasm (0.53 % of base)
           9 : 32426.dasm (0.51 % of base)
           8 : 17452.dasm (0.62 % of base)
           8 : 52068.dasm (0.23 % of base)
           6 : 50658.dasm (0.28 % of base)
           6 : 7456.dasm (0.12 % of base)
           4 : 53550.dasm (2.07 % of base)
           3 : 34834.dasm (2.21 % of base)

Top file improvements (bytes):
         -28 : 30391.dasm (-2.32 % of base)
         -26 : 28052.dasm (-1.47 % of base)
         -25 : 28049.dasm (-1.87 % of base)
         -24 : 33914.dasm (-1.22 % of base)
         -19 : 5470.dasm (-2.02 % of base)
         -19 : 5536.dasm (-2.00 % of base)
         -19 : 58463.dasm (-2.00 % of base)
         -19 : 51111.dasm (-2.01 % of base)
         -18 : 47216.dasm (-1.54 % of base)
         -15 : 22309.dasm (-1.52 % of base)
          -7 : 53098.dasm (-1.81 % of base)
          -7 : 48752.dasm (-0.80 % of base)
          -7 : 51555.dasm (-1.81 % of base)
          -7 : 52070.dasm (-1.81 % of base)
          -7 : 53279.dasm (-1.81 % of base)
          -7 : 58468.dasm (-0.80 % of base)
          -6 : 22294.dasm (-0.72 % of base)
          -4 : 32604.dasm (-0.90 % of base)
          -4 : 50538.dasm (-0.28 % of base)
          -4 : 58602.dasm (-0.28 % of base)

47 total files with Code Size differences (25 improved, 22 regressed), 20 unchanged.

Top method regressions (bytes):
          62 (7.65 % of base) : 52109.dasm - JetStream.Hands:playHands(System.Collections.Generic.List`1[JetStream.Player]) (Tier1-OSR)
          51 (0.89 % of base) : 51171.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier1)
          36 (9.30 % of base) : 52915.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
          36 (6.11 % of base) : 54083.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)
          34 (0.28 % of base) : 28096.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
          31 (1.45 % of base) : 32411.dasm - System.Security.Cryptography.PasswordBasedEncryption:OpenPbkdf2(System.ReadOnlySpan`1[ubyte],System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],byref):System.Security.Cryptography.Rfc2898DeriveBytes (Tier1)
          30 (3.03 % of base) : 37840.dasm - LUDecomp:Run():double:this (Tier1)
          20 (2.37 % of base) : 32333.dasm - System.Security.Cryptography.X509Certificates.OpenSslPkcs12Reader:LoadKey(System.ReadOnlyMemory`1[ubyte]):System.Security.Cryptography.AsymmetricAlgorithm:this (Tier1)
          20 (0.83 % of base) : 55001.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (Tier1)
          15 (3.11 % of base) : 4470.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (Tier1)
          15 (3.04 % of base) : 9868.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (Tier1)
          13 (2.67 % of base) : 47624.dasm - System.Collections.Generic.Dictionary`2[System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle]]:FindValue(System.Reflection.Metadata.TypeDefinitionHandle):byref:this (Tier1)
           9 (0.53 % of base) : 19210.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:VerifyMac(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte]):ubyte:this (Tier1)
           9 (0.51 % of base) : 32426.dasm - System.Security.Cryptography.PasswordBasedEncryption:OpenCipher(System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn,System.Nullable`1[int],byref):System.Security.Cryptography.SymmetricAlgorithm (Tier1)
           8 (0.23 % of base) : 52068.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<ReadAsyncSlowPath>d__37:MoveNext():this (Tier1)
           8 (0.62 % of base) : 17452.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:FindChainViaAia(byref):Interop+Crypto+X509VerifyStatusCode:this (Tier0-FullOpts)
           6 (0.28 % of base) : 50658.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (Tier1)
           6 (0.12 % of base) : 7456.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (Tier0-FullOpts)
           4 (2.07 % of base) : 53550.dasm - System.Linq.Enumerable:Count[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon]):int (Tier1-OSR)
           3 (2.00 % of base) : 6338.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)

Top method improvements (bytes):
         -28 (-2.32 % of base) : 30391.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<SyncReadAsyncWithCancellationToken>d__9:MoveNext():this (Tier1-OSR)
         -26 (-1.47 % of base) : 28052.dasm - System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]:TryInsert(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon,ubyte):ubyte:this (Tier1)
         -25 (-1.87 % of base) : 28049.dasm - System.Collections.Generic.Dictionary`2+CollectionsMarshalHelper[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon]:GetValueRefOrAddDefault(System.Collections.Generic.Dictionary`2[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon],System.ValueTuple`3[int,System.__Canon,System.__Canon],byref):byref (Tier1)
         -24 (-1.22 % of base) : 33914.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<ReadAsyncWithCancellationToken>d__11:MoveNext():this (Tier1-OSR)
         -19 (-2.02 % of base) : 5470.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:TryInsert(int,System.__Canon,ubyte):ubyte:this (Tier1)
         -19 (-2.00 % of base) : 5536.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (Tier1)
         -19 (-2.01 % of base) : 51111.dasm - System.Collections.Generic.Dictionary`2[System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle]]:TryInsert(System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle],ubyte):ubyte:this (Tier1)
         -19 (-2.00 % of base) : 58463.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:TryInsert(ulong,System.__Canon,ubyte):ubyte:this (Tier1)
         -18 (-1.54 % of base) : 47216.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:TryInsert(System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon],ubyte):ubyte:this (Tier1)
         -15 (-1.52 % of base) : 22309.dasm - System.Collections.Generic.Dictionary`2[ushort,System.__Canon]:TryInsert(ushort,System.__Canon,ubyte):ubyte:this (Tier1)
          -7 (-1.81 % of base) : 52070.dasm - LinqBenchmarks:Where00LinqMethodX():ubyte:this (Tier1-OSR)
          -7 (-1.81 % of base) : 51555.dasm - LinqBenchmarks:Where00LinqQueryX():ubyte:this (Tier1-OSR)
          -7 (-1.81 % of base) : 53279.dasm - LinqBenchmarks:Where01LinqMethodX():ubyte:this (Tier1-OSR)
          -7 (-1.81 % of base) : 53098.dasm - LinqBenchmarks:Where01LinqQueryX():ubyte:this (Tier1-OSR)
          -7 (-0.80 % of base) : 48752.dasm - System.Collections.Generic.Dictionary`2+CollectionsMarshalHelper[int,System.Collections.Generic.KeyValuePair`2[System.Collections.Immutable.ImmutableArray`1[ubyte],System.Reflection.Metadata.BlobHandle]]:GetValueRefOrAddDefault(System.Collections.Generic.Dictionary`2[int,System.Collections.Generic.KeyValuePair`2[System.Collections.Immutable.ImmutableArray`1[ubyte],System.Reflection.Metadata.BlobHandle]],int,byref):byref (Tier1)
          -7 (-0.80 % of base) : 58468.dasm - System.Collections.Generic.Dictionary`2+CollectionsMarshalHelper[ulong,System.__Canon]:GetValueRefOrAddDefault(System.Collections.Generic.Dictionary`2[ulong,System.__Canon],ulong,byref):byref (Tier1)
          -6 (-0.72 % of base) : 22294.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this (Tier1)
          -4 (-0.28 % of base) : 50538.dasm - System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon],int]:TryInsert(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon],int,ubyte):ubyte:this (Tier1)
          -4 (-0.28 % of base) : 58602.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`2[System.__Canon,System.__Canon],ubyte]:TryInsert(System.ValueTuple`2[System.__Canon,System.__Canon],ubyte,ubyte):ubyte:this (Tier1)
          -4 (-0.90 % of base) : 32604.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:FindNextEntry(ulong,int):this (Tier1)

Top method regressions (percentages):
          36 (9.30 % of base) : 52915.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
          62 (7.65 % of base) : 52109.dasm - JetStream.Hands:playHands(System.Collections.Generic.List`1[JetStream.Player]) (Tier1-OSR)
          36 (6.11 % of base) : 54083.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)
          15 (3.11 % of base) : 4470.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (Tier1)
          15 (3.04 % of base) : 9868.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (Tier1)
          30 (3.03 % of base) : 37840.dasm - LUDecomp:Run():double:this (Tier1)
          13 (2.67 % of base) : 47624.dasm - System.Collections.Generic.Dictionary`2[System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle]]:FindValue(System.Reflection.Metadata.TypeDefinitionHandle):byref:this (Tier1)
          20 (2.37 % of base) : 32333.dasm - System.Security.Cryptography.X509Certificates.OpenSslPkcs12Reader:LoadKey(System.ReadOnlyMemory`1[ubyte]):System.Security.Cryptography.AsymmetricAlgorithm:this (Tier1)
           3 (2.21 % of base) : 34834.dasm - PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
           4 (2.07 % of base) : 53550.dasm - System.Linq.Enumerable:Count[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon]):int (Tier1-OSR)
           3 (2.00 % of base) : 6338.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
          31 (1.45 % of base) : 32411.dasm - System.Security.Cryptography.PasswordBasedEncryption:OpenPbkdf2(System.ReadOnlySpan`1[ubyte],System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],byref):System.Security.Cryptography.Rfc2898DeriveBytes (Tier1)
          51 (0.89 % of base) : 51171.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier1)
           2 (0.87 % of base) : 9536.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,ubyte]):int (Tier1-OSR)
          20 (0.83 % of base) : 55001.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (Tier1)
           8 (0.62 % of base) : 17452.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:FindChainViaAia(byref):Interop+Crypto+X509VerifyStatusCode:this (Tier0-FullOpts)
           9 (0.53 % of base) : 19210.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:VerifyMac(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte]):ubyte:this (Tier1)
           9 (0.51 % of base) : 32426.dasm - System.Security.Cryptography.PasswordBasedEncryption:OpenCipher(System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn,System.Nullable`1[int],byref):System.Security.Cryptography.SymmetricAlgorithm (Tier1)
          34 (0.28 % of base) : 28096.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
           6 (0.28 % of base) : 50658.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (Tier1)

Top method improvements (percentages):
         -28 (-2.32 % of base) : 30391.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<SyncReadAsyncWithCancellationToken>d__9:MoveNext():this (Tier1-OSR)
         -19 (-2.02 % of base) : 5470.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:TryInsert(int,System.__Canon,ubyte):ubyte:this (Tier1)
         -19 (-2.01 % of base) : 51111.dasm - System.Collections.Generic.Dictionary`2[System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle]]:TryInsert(System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle],ubyte):ubyte:this (Tier1)
         -19 (-2.00 % of base) : 5536.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (Tier1)
         -19 (-2.00 % of base) : 58463.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:TryInsert(ulong,System.__Canon,ubyte):ubyte:this (Tier1)
         -25 (-1.87 % of base) : 28049.dasm - System.Collections.Generic.Dictionary`2+CollectionsMarshalHelper[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon]:GetValueRefOrAddDefault(System.Collections.Generic.Dictionary`2[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon],System.ValueTuple`3[int,System.__Canon,System.__Canon],byref):byref (Tier1)
          -2 (-1.87 % of base) : 51453.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier1)
          -7 (-1.81 % of base) : 52070.dasm - LinqBenchmarks:Where00LinqMethodX():ubyte:this (Tier1-OSR)
          -7 (-1.81 % of base) : 51555.dasm - LinqBenchmarks:Where00LinqQueryX():ubyte:this (Tier1-OSR)
          -7 (-1.81 % of base) : 53279.dasm - LinqBenchmarks:Where01LinqMethodX():ubyte:this (Tier1-OSR)
          -7 (-1.81 % of base) : 53098.dasm - LinqBenchmarks:Where01LinqQueryX():ubyte:this (Tier1-OSR)
          -2 (-1.75 % of base) : 1451.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)
          -2 (-1.75 % of base) : 13697.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier1)
          -2 (-1.75 % of base) : 48221.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
         -18 (-1.54 % of base) : 47216.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:TryInsert(System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon],ubyte):ubyte:this (Tier1)
         -15 (-1.52 % of base) : 22309.dasm - System.Collections.Generic.Dictionary`2[ushort,System.__Canon]:TryInsert(ushort,System.__Canon,ubyte):ubyte:this (Tier1)
         -26 (-1.47 % of base) : 28052.dasm - System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]:TryInsert(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon,ubyte):ubyte:this (Tier1)
          -2 (-1.35 % of base) : 3933.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier1)
         -24 (-1.22 % of base) : 33914.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<ReadAsyncWithCancellationToken>d__11:MoveNext():this (Tier1-OSR)
          -4 (-0.90 % of base) : 32604.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:FindNextEntry(ulong,int):this (Tier1)


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: 458906575 (overridden on cmd)
Total bytes of diff: 459551078 (overridden on cmd)
Total bytes of delta: 644503 (0.14 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1074 : 33472.dasm (109.26 % of base)
        1010 : 416641.dasm (19.82 % of base)
         983 : 420747.dasm (19.30 % of base)
         683 : 416643.dasm (16.47 % of base)
         683 : 421148.dasm (16.47 % of base)
         650 : 421781.dasm (5.88 % of base)
         642 : 419636.dasm (4.17 % of base)
         624 : 419635.dasm (5.64 % of base)
         407 : 88187.dasm (8.21 % of base)
         390 : 417292.dasm (3.55 % of base)
         374 : 416073.dasm (4.42 % of base)
         371 : 677837.dasm (4.05 % of base)
         366 : 630486.dasm (4.46 % of base)
         350 : 243543.dasm (5.72 % of base)
         348 : 420892.dasm (7.79 % of base)
         324 : 382103.dasm (8.24 % of base)
         312 : 637858.dasm (5.28 % of base)
         292 : 568010.dasm (9.80 % of base)
         285 : 412915.dasm (4.44 % of base)
         277 : 630516.dasm (6.28 % of base)

Top file improvements (bytes):
        -358 : 245843.dasm (-5.06 % of base)
        -218 : 420517.dasm (-2.40 % of base)
        -103 : 421120.dasm (-1.54 % of base)
        -101 : 419249.dasm (-1.38 % of base)
        -100 : 257524.dasm (-1.80 % of base)
         -88 : 541420.dasm (-0.67 % of base)
         -88 : 555309.dasm (-0.67 % of base)
         -88 : 419094.dasm (-6.41 % of base)
         -88 : 555312.dasm (-0.67 % of base)
         -88 : 541417.dasm (-0.67 % of base)
         -76 : 209636.dasm (-1.99 % of base)
         -72 : 637543.dasm (-1.71 % of base)
         -71 : 237135.dasm (-10.79 % of base)
         -71 : 237148.dasm (-10.79 % of base)
         -55 : 692925.dasm (-0.69 % of base)
         -53 : 420546.dasm (-1.56 % of base)
         -50 : 236964.dasm (-2.76 % of base)
         -48 : 691738.dasm (-7.15 % of base)
         -47 : 247335.dasm (-5.63 % of base)
         -47 : 425339.dasm (-1.79 % of base)

91 total files with Code Size differences (37 improved, 54 regressed), 20 unchanged.

Top method regressions (bytes):
        1074 (109.26 % of base) : 33472.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Tier1-OSR)
        1010 (19.82 % of base) : 416641.dasm - Internal.JitInterface.InstructionSetFlags:ExpandInstructionSetByImplicationHelper(int,Internal.JitInterface.InstructionSetFlags):Internal.JitInterface.InstructionSetFlags (Tier1)
         983 (19.30 % of base) : 420747.dasm - Internal.JitInterface.InstructionSetFlags:ExpandInstructionSetByImplicationHelper(int,Internal.JitInterface.InstructionSetFlags):Internal.JitInterface.InstructionSetFlags (Tier1)
         683 (16.47 % of base) : 416643.dasm - Internal.JitInterface.InstructionSetFlags:ExpandInstructionSetByReverseImplicationHelper(int,Internal.JitInterface.InstructionSetFlags):Internal.JitInterface.InstructionSetFlags (Tier1)
         683 (16.47 % of base) : 421148.dasm - Internal.JitInterface.InstructionSetFlags:ExpandInstructionSetByReverseImplicationHelper(int,Internal.JitInterface.InstructionSetFlags):Internal.JitInterface.InstructionSetFlags (Tier1)
         650 (5.88 % of base) : 421781.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugInfoTableNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
         642 (4.17 % of base) : 419636.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         624 (5.64 % of base) : 419635.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugInfoTableNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
         407 (8.21 % of base) : 88187.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Tier1)
         390 (3.55 % of base) : 417292.dasm - Internal.TypeSystem.RuntimeDeterminedTypeUtilities:ConvertInstantiationToSharedRuntimeForm(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation,byref):Internal.TypeSystem.Instantiation (Tier1)
         374 (4.42 % of base) : 416073.dasm - Internal.JitInterface.CorInfoImpl:ceeInfoGetCallInfo(byref,ulong,ulong,int,ulong,byref,byref,byref,byref,byref,byref,byref,byref):this (Tier1)
         371 (4.05 % of base) : 677837.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
         366 (4.46 % of base) : 630486.dasm - Runtime_34587:TestEntryPoint():int (FullOpts)
         350 (5.72 % of base) : 243543.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper:EnsureMethodsImported():this (Tier1)
         348 (7.79 % of base) : 420892.dasm - ILCompiler.DependencyAnalysis.NodeFactory:CreateMethodEntrypoint(ILCompiler.DependencyAnalysis.TypeAndMethod):ILCompiler.DependencyAnalysis.IMethodNode:this (Tier1)
         324 (8.24 % of base) : 382103.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
         312 (5.28 % of base) : 637858.dasm - TestShufflingThunk.Test16833:TestEntryPoint():int (FullOpts)
         292 (9.80 % of base) : 568010.dasm - JIT.HardwareIntrinsics.X86._Sse41.handwritten.SimpleBinaryOpTest__MultipleSumAbsoluteDifferences:ValidateResult(ubyte[],ubyte[],ubyte,ushort[],System.String):this (FullOpts)
         285 (4.44 % of base) : 412915.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CalculateTypeLayout(Internal.TypeSystem.DefType,Internal.TypeSystem.Ecma.EcmaModule,byref):Internal.TypeSystem.FieldAndOffset[]:this (Tier1)
         277 (6.28 % of base) : 630516.dasm - Runtime_34587:ValidateX86():ubyte (FullOpts)

Top method improvements (bytes):
        -358 (-5.06 % of base) : 245843.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
        -218 (-2.40 % of base) : 420517.dasm - Internal.TypeSystem.MetadataVirtualMethodAlgorithm:ResolveInterfaceMethodToDefaultImplementationOnType(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.MetadataType,byref):int (Tier1)
        -103 (-1.54 % of base) : 421120.dasm - Internal.JitInterface.CorInfoImpl:resolveVirtualMethod(ulong):ubyte:this (Tier1)
        -101 (-1.38 % of base) : 419249.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.AttributePresenceFilterNode:GetCustomAttributeEntries():System.Collections.Generic.List`1[ILCompiler.DependencyAnalysis.ReadyToRun.AttributePresenceFilterNode+CustomAttributeEntry]:this (Tier1-OSR)
        -100 (-1.80 % of base) : 257524.dasm - System.Diagnostics.Tracing.EventPipePayloadDecoder:DecodePayload(byref,System.ReadOnlySpan`1[ubyte]):System.Object[] (Tier1)
         -88 (-6.41 % of base) : 419094.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.RuntimeFunctionsTableNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
         -88 (-0.67 % of base) : 555309.dasm - IntelHardwareIntrinsicTest._Avx2.Program:ShiftLeftLogicalVariable() (FullOpts)
         -88 (-0.67 % of base) : 541417.dasm - IntelHardwareIntrinsicTest._Avx2.Program:ShiftLeftLogicalVariable() (FullOpts)
         -88 (-0.67 % of base) : 541420.dasm - IntelHardwareIntrinsicTest._Avx2.Program:ShiftRightLogicalVariable() (FullOpts)
         -88 (-0.67 % of base) : 555312.dasm - IntelHardwareIntrinsicTest._Avx2.Program:ShiftRightLogicalVariable() (FullOpts)
         -76 (-1.99 % of base) : 209636.dasm - System.Diagnostics.StackTrace:ToString(int,System.Text.StringBuilder):this (Instrumented Tier1)
         -72 (-1.71 % of base) : 637543.dasm - Test7685:TestEntryPoint():int (FullOpts)
         -71 (-10.79 % of base) : 237135.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -71 (-10.79 % of base) : 237148.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -55 (-0.69 % of base) : 692925.dasm - Test_13662_b:TestEntryPoint():int (FullOpts)
         -53 (-1.56 % of base) : 420546.dasm - ILCompiler.ReadyToRunCodegenCompilation:ComputeDependencyNodeDependencies(System.Collections.Generic.List`1[ILCompiler.DependencyAnalysisFramework.DependencyNodeCore`1[ILCompiler.DependencyAnalysis.NodeFactory]]):this (Tier1-OSR)
         -50 (-2.76 % of base) : 236964.dasm - IDEAEncryption:Run():double:this (Tier1)
         -48 (-7.15 % of base) : 691738.dasm - Microsoft.Build.Evaluation.ToolsetReader:ReadEachToolset(System.Collections.Generic.Dictionary`2[System.String,Microsoft.Build.Evaluation.Toolset],Microsoft.Build.Collections.PropertyDictionary`1[Microsoft.Build.Execution.ProjectPropertyInstance],Microsoft.Build.Collections.PropertyDictionary`1[Microsoft.Build.Execution.ProjectPropertyInstance],ubyte):this (FullOpts)
         -47 (-5.63 % of base) : 247335.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.SymbolStore:InsertChildNoGrow(Microsoft.CSharp.RuntimeBinder.Semantics.Symbol) (Tier1)
         -47 (-1.79 % of base) : 425339.dasm - System.Text.Unicode.Utf8Utility:TranscodeToUtf16(ulong,int,ulong,int,byref,byref):int (Tier1)

Top method regressions (percentages):
          37 (231.25 % of base) : 624145.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
          29 (181.25 % of base) : 619944.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
          23 (143.75 % of base) : 624085.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
        1074 (109.26 % of base) : 33472.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Tier1-OSR)
          34 (70.83 % of base) : 416830.dasm - System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
          33 (45.83 % of base) : 447215.dasm - filter1:f4() (FullOpts)
          33 (38.82 % of base) : 636474.dasm - Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
          26 (38.81 % of base) : 619985.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
          36 (37.50 % of base) : 619472.dasm - Test_10w5d.testout1:Func_0_2_6_2_2():double (FullOpts)
          46 (30.87 % of base) : 37873.dasm - TestLibrary.Generator:GetUInt16():ushort (Tier1)
          46 (30.87 % of base) : 151557.dasm - TestLibrary.Generator:GetUInt16():ushort (Tier1)
          11 (28.95 % of base) : 448730.dasm - try1:f4() (FullOpts)
          35 (20.96 % of base) : 26314.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Instrumented Tier1)
          35 (20.96 % of base) : 5041.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Instrumented Tier1)
          76 (20.05 % of base) : 627874.dasm - Test_Finalize+CreateObj:RunTest():System.Runtime.InteropServices.GCHandle:this (FullOpts)
        1010 (19.82 % of base) : 416641.dasm - Internal.JitInterface.InstructionSetFlags:ExpandInstructionSetByImplicationHelper(int,Internal.JitInterface.InstructionSetFlags):Internal.JitInterface.InstructionSetFlags (Tier1)
         983 (19.30 % of base) : 420747.dasm - Internal.JitInterface.InstructionSetFlags:ExpandInstructionSetByImplicationHelper(int,Internal.JitInterface.InstructionSetFlags):Internal.JitInterface.InstructionSetFlags (Tier1)
          20 (17.86 % of base) : 312598.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          20 (17.54 % of base) : 256988.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          20 (17.54 % of base) : 407647.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)

Top method improvements (percentages):
         -12 (-14.46 % of base) : 591929.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
         -71 (-10.79 % of base) : 237135.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -71 (-10.79 % of base) : 237148.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -29 (-9.67 % of base) : 234293.dasm - System.Reflection.Internal.MemoryBlock:Utf8NullTerminatedFastCompare(int,System.String,int,byref,ushort,ubyte):int:this (Tier1)
         -10 (-8.13 % of base) : 297586.dasm - System.Reflection.Metadata.PathUtilities:IndexOfFileName(System.String):int (Tier1)
         -13 (-8.07 % of base) : 266570.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCast_Helper(ulong,System.Object):System.Object (Tier1)
         -46 (-7.46 % of base) : 244620.dasm - System.Text.RegularExpressions.Regex:ScanInternal(int,ubyte,System.String,int,System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort],ubyte):System.Text.RegularExpressions.Match (Tier1)
         -21 (-7.45 % of base) : 236841.dasm - EMFloatClass:StickyShiftRightMant(EMFloatClass+InternalFPF,int) (Tier1)
         -48 (-7.15 % of base) : 691738.dasm - Microsoft.Build.Evaluation.ToolsetReader:ReadEachToolset(System.Collections.Generic.Dictionary`2[System.String,Microsoft.Build.Evaluation.Toolset],Microsoft.Build.Collections.PropertyDictionary`1[Microsoft.Build.Execution.ProjectPropertyInstance],Microsoft.Build.Collections.PropertyDictionary`1[Microsoft.Build.Execution.ProjectPropertyInstance],ubyte):this (FullOpts)
          -2 (-7.14 % of base) : 245497.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-7.14 % of base) : 251869.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-7.14 % of base) : 270.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-7.14 % of base) : 303434.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-7.14 % of base) : 32746.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-7.14 % of base) : 3293.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-7.14 % of base) : 34195.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-7.14 % of base) : 373993.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-7.14 % of base) : 400134.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-7.14 % of base) : 224857.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-7.14 % of base) : 426234.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (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: 38668470 (overridden on cmd)
Total bytes of diff: 38670232 (overridden on cmd)
Total bytes of delta: 1762 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         659 : 200374.dasm (1,198.18 % of base)
         103 : 125832.dasm (0.40 % of base)
          72 : 89138.dasm (5.25 % of base)
          72 : 93717.dasm (21.18 % of base)
          53 : 64753.dasm (4.60 % of base)
          51 : 51556.dasm (1.45 % of base)
          50 : 22522.dasm (2.09 % of base)
          41 : 122507.dasm (3.66 % of base)
          39 : 222550.dasm (2.49 % of base)
          37 : 79963.dasm (11.56 % of base)
          35 : 10766.dasm (1.66 % of base)
          34 : 126619.dasm (4.01 % of base)
          30 : 52620.dasm (1.87 % of base)
          30 : 207486.dasm (23.26 % of base)
          25 : 53488.dasm (5.81 % of base)
          24 : 154542.dasm (1.94 % of base)
          24 : 123661.dasm (1.96 % of base)
          23 : 121411.dasm (0.49 % of base)
          22 : 81251.dasm (14.67 % of base)
          20 : 207322.dasm (16.53 % of base)

Top file improvements (bytes):
         -22 : 31491.dasm (-2.95 % of base)
         -18 : 161845.dasm (-0.88 % of base)
         -17 : 193873.dasm (-3.24 % of base)
         -16 : 181532.dasm (-0.27 % of base)
         -15 : 157988.dasm (-1.26 % of base)
         -15 : 157993.dasm (-1.58 % of base)
         -14 : 42530.dasm (-1.73 % of base)
         -14 : 121131.dasm (-0.86 % of base)
         -13 : 146695.dasm (-0.73 % of base)
         -13 : 188907.dasm (-0.73 % of base)
         -12 : 196335.dasm (-2.11 % of base)
         -12 : 196337.dasm (-2.11 % of base)
         -11 : 193490.dasm (-1.89 % of base)
         -11 : 226856.dasm (-1.46 % of base)
         -11 : 226855.dasm (-1.43 % of base)
         -10 : 217472.dasm (-1.03 % of base)
         -10 : 23223.dasm (-2.67 % of base)
          -9 : 21307.dasm (-0.95 % of base)
          -8 : 18182.dasm (-0.81 % of base)
          -8 : 22190.dasm (-0.83 % of base)

66 total files with Code Size differences (32 improved, 34 regressed), 20 unchanged.

Top method regressions (bytes):
         659 (1,198.18 % of base) : 200374.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
         103 (0.40 % of base) : 125832.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          72 (21.18 % of base) : 93717.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
          72 (5.25 % of base) : 89138.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          53 (4.60 % of base) : 64753.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.CSharpPragmaWarningStateMap:CreatePragmaWarningStateEntries(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.DirectiveTriviaSyntax]):Microsoft.CodeAnalysis.Syntax.AbstractWarningStateMap`1+WarningStateMapEntry[ubyte][] (FullOpts)
          51 (1.45 % of base) : 51556.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          50 (2.09 % of base) : 22522.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (FullOpts)
          41 (3.66 % of base) : 122507.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
          39 (2.49 % of base) : 222550.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
          37 (11.56 % of base) : 79963.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          35 (1.66 % of base) : 10766.dasm - System.IO.BufferedStream+<CopyToAsyncCore>d__68:MoveNext():this (FullOpts)
          34 (4.01 % of base) : 126619.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
          30 (1.87 % of base) : 52620.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
          30 (23.26 % of base) : 207486.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          25 (5.81 % of base) : 53488.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          24 (1.96 % of base) : 123661.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.TypeBind:CheckSingleConstraint(Microsoft.CSharp.RuntimeBinder.Semantics.Symbol,Microsoft.CSharp.RuntimeBinder.Semantics.TypeParameterType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,int):ubyte (FullOpts)
          24 (1.94 % of base) : 154542.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
          23 (0.49 % of base) : 121411.dasm - System.Data.DataTableReader:GetSchemaTableFromDataTable(System.Data.DataTable):System.Data.DataTable (FullOpts)
          22 (14.67 % of base) : 81251.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
          20 (1.67 % of base) : 212395.dasm - System.IO.Packaging.InternalRelationshipCollection:ParseRelationshipPart(System.IO.Packaging.PackagePart):this (FullOpts)

Top method improvements (bytes):
         -22 (-2.95 % of base) : 31491.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase:GetFilesCore(Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFileReference]:this (FullOpts)
         -18 (-0.88 % of base) : 161845.dasm - System.Transactions.TransactionScope:Dispose():this (FullOpts)
         -17 (-3.24 % of base) : 193873.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[int,Microsoft.CodeAnalysis.Emit.EncClosureMapValue]:FindValue(int):byref:this (FullOpts)
         -16 (-0.27 % of base) : 181532.dasm - Microsoft.CodeAnalysis.CommonCompiler:CompileAndEmit(Microsoft.CodeAnalysis.TouchedFileLogger,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISourceGenerator],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText],Microsoft.CodeAnalysis.AnalyzerConfigSet,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AnalyzerConfigOptionsResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.EmbeddedText],Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.ErrorLogger,System.Threading.CancellationToken,byref,byref,byref):this (FullOpts)
         -15 (-1.58 % of base) : 157993.dasm - System.Net.Sockets.Socket:ReceiveFrom(System.Span`1[ubyte],int,byref):int:this (FullOpts)
         -15 (-1.26 % of base) : 157988.dasm - System.Net.Sockets.Socket:ReceiveFrom(ubyte[],int,int,int,byref):int:this (FullOpts)
         -14 (-1.73 % of base) : 42530.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:AddExpression(Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.BinaryExpressionSyntax (FullOpts)
         -14 (-0.86 % of base) : 121131.dasm - System.Data.DataColumnCollection:CanRemove(System.Data.DataColumn,ubyte):ubyte:this (FullOpts)
         -13 (-0.73 % of base) : 146695.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (FullOpts)
         -13 (-0.73 % of base) : 188907.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__176:MoveNext():ubyte:this (FullOpts)
         -12 (-2.11 % of base) : 196335.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
         -12 (-2.11 % of base) : 196337.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
         -11 (-1.89 % of base) : 193490.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue]:FindValue(Microsoft.CodeAnalysis.Emit.AnonymousTypeKey):byref:this (FullOpts)
         -11 (-1.46 % of base) : 226856.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.__Canon],System.__Canon):this (FullOpts)
         -11 (-1.43 % of base) : 226855.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.__Canon]]):this (FullOpts)
         -10 (-2.67 % of base) : 23223.dasm - Microsoft.CodeAnalysis.VisualBasic.DefinitelyAssignedWalker:ProcessState(System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState,System.Nullable`1[Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState]):this (FullOpts)
         -10 (-1.03 % of base) : 217472.dasm - System.IO.Compression.DeflateStream+<<ReadAsyncMemory>g__Core|51_0>d:MoveNext():this (FullOpts)
          -9 (-0.95 % of base) : 21307.dasm - System.Collections.Generic.Dictionary`2[ulong,ushort]:TryInsert(ulong,ushort,ubyte):ubyte:this (FullOpts)
          -8 (-0.83 % of base) : 22190.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:TryInsert(ulong,System.__Canon,ubyte):ubyte:this (FullOpts)
          -8 (-0.81 % of base) : 18182.dasm - System.Collections.Generic.Dictionary`2[ushort,System.__Canon]:TryInsert(ushort,System.__Canon,ubyte):ubyte:this (FullOpts)

Top method regressions (percentages):
         659 (1,198.18 % of base) : 200374.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
          30 (23.26 % of base) : 207486.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          72 (21.18 % of base) : 93717.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
          20 (16.53 % of base) : 207322.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
          22 (14.67 % of base) : 81251.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
          17 (14.05 % of base) : 207412.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
          18 (12.95 % of base) : 16211.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
          37 (11.56 % of base) : 79963.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          18 (10.23 % of base) : 23140.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
          13 (8.13 % of base) : 228455.dasm - Microsoft.Diagnostics.Tools.RuntimeClient.EventPipeClient:StopTracing(int,ulong):ulong (FullOpts)
          19 (8.09 % of base) : 37313.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SingleLineLambdaContext:ProcessStatementTerminator(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext:this (FullOpts)
           9 (7.44 % of base) : 207467.dasm - System.Net.Mail.StartTlsCommand:CheckResponse(int,System.String) (FullOpts)
          25 (5.81 % of base) : 53488.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          11 (5.79 % of base) : 169887.dasm - System.Data.Odbc.OdbcHandle:ReleaseHandle():ubyte:this (FullOpts)
          11 (5.37 % of base) : 193986.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
           7 (5.26 % of base) : 126807.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:IsMemberPublic(System.Reflection.MemberInfo):ubyte (FullOpts)
          72 (5.25 % of base) : 89138.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          53 (4.60 % of base) : 64753.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.CSharpPragmaWarningStateMap:CreatePragmaWarningStateEntries(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.DirectiveTriviaSyntax]):Microsoft.CodeAnalysis.Syntax.AbstractWarningStateMap`1+WarningStateMapEntry[ubyte][] (FullOpts)
          11 (4.38 % of base) : 175607.dasm - System.Text.Json.Utf8JsonWriter:ValidateEnd(ubyte):this (FullOpts)
          19 (4.29 % of base) : 222710.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)

Top method improvements (percentages):
          -6 (-3.45 % of base) : 213756.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -6 (-3.45 % of base) : 192203.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -6 (-3.45 % of base) : 149968.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -6 (-3.45 % of base) : 191447.dasm - Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -6 (-3.45 % of base) : 149199.dasm - Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -17 (-3.24 % of base) : 193873.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[int,Microsoft.CodeAnalysis.Emit.EncClosureMapValue]:FindValue(int):byref:this (FullOpts)
         -22 (-2.95 % of base) : 31491.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase:GetFilesCore(Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFileReference]:this (FullOpts)
         -10 (-2.67 % of base) : 23223.dasm - Microsoft.CodeAnalysis.VisualBasic.DefinitelyAssignedWalker:ProcessState(System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState,System.Nullable`1[Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState]):this (FullOpts)
          -2 (-2.50 % of base) : 169927.dasm - System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
         -12 (-2.11 % of base) : 196335.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
         -12 (-2.11 % of base) : 196337.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
         -11 (-1.89 % of base) : 193490.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue]:FindValue(Microsoft.CodeAnalysis.Emit.AnonymousTypeKey):byref:this (FullOpts)
          -2 (-1.85 % of base) : 22589.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.82 % of base) : 22594.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
         -14 (-1.73 % of base) : 42530.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:AddExpression(Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.BinaryExpressionSyntax (FullOpts)
          -2 (-1.72 % of base) : 22108.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.72 % of base) : 13911.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.72 % of base) : 13604.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.71 % of base) : 13927.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -15 (-1.58 % of base) : 157993.dasm - System.Net.Sockets.Socket:ReceiveFrom(System.Span`1[ubyte],int,byref):int:this (FullOpts)


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: 59969140 (overridden on cmd)
Total bytes of diff: 60144132 (overridden on cmd)
Total bytes of delta: 174992 (0.29 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         659 : 261596.dasm (1,198.18 % of base)
         446 : 43645.dasm (8.55 % of base)
         305 : 184782.dasm (2.61 % of base)
         273 : 213989.dasm (12.11 % of base)
         266 : 72848.dasm (2.03 % of base)
         256 : 231545.dasm (11.34 % of base)
         248 : 171517.dasm (0.88 % of base)
         245 : 142396.dasm (23.72 % of base)
         229 : 213985.dasm (12.84 % of base)
         227 : 231541.dasm (12.70 % of base)
         198 : 82271.dasm (4.52 % of base)
         191 : 254525.dasm (6.90 % of base)
         191 : 253864.dasm (6.90 % of base)
         188 : 51936.dasm (3.40 % of base)
         182 : 252127.dasm (6.62 % of base)
         182 : 179628.dasm (2.86 % of base)
         164 : 16709.dasm (1.88 % of base)
         157 : 51969.dasm (3.55 % of base)
         148 : 34016.dasm (2.62 % of base)
         148 : 275579.dasm (1.48 % of base)

Top file improvements (bytes):
        -137 : 185520.dasm (-2.20 % of base)
        -116 : 184693.dasm (-5.07 % of base)
         -91 : 58625.dasm (-1.68 % of base)
         -77 : 21153.dasm (-0.69 % of base)
         -76 : 91012.dasm (-9.50 % of base)
         -55 : 14549.dasm (-0.64 % of base)
         -54 : 256084.dasm (-1.17 % of base)
         -53 : 240255.dasm (-4.12 % of base)
         -48 : 102757.dasm (-7.15 % of base)
         -48 : 154321.dasm (-1.31 % of base)
         -47 : 185360.dasm (-1.33 % of base)
         -47 : 252876.dasm (-11.55 % of base)
         -47 : 195495.dasm (-2.13 % of base)
         -45 : 13818.dasm (-0.64 % of base)
         -40 : 201868.dasm (-2.96 % of base)
         -40 : 202090.dasm (-0.56 % of base)
         -40 : 219482.dasm (-2.96 % of base)
         -37 : 261697.dasm (-0.72 % of base)
         -37 : 119.dasm (-2.05 % of base)
         -36 : 257147.dasm (-2.06 % of base)

84 total files with Code Size differences (38 improved, 46 regressed), 20 unchanged.

Top method regressions (bytes):
         659 (1,198.18 % of base) : 261596.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
         446 (8.55 % of base) : 43645.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
         305 (2.61 % of base) : 184782.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
         273 (12.11 % of base) : 213989.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[ubyte]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)
         266 (2.03 % of base) : 72848.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         256 (11.34 % of base) : 231545.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[ubyte]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)
         248 (0.88 % of base) : 171517.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         245 (23.72 % of base) : 142396.dasm - Internal.Cryptography.Helpers:AreSamePublicECParameters(System.Security.Cryptography.ECParameters,System.Security.Cryptography.ECParameters):ubyte (FullOpts)
         229 (12.84 % of base) : 213985.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[System.__Canon]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)
         227 (12.70 % of base) : 231541.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[System.__Canon]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)
         198 (4.52 % of base) : 82271.dasm - ILCompiler.CallChainProfile:ReadCallChainAnalysisData(System.String):System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.Dictionary`2[System.String,int]]:this (FullOpts)
         191 (6.90 % of base) : 253864.dasm - System.Xml.Schema.Compiler:CalculateEffectiveTotalRange(System.Xml.Schema.XmlSchemaParticle,byref,byref) (FullOpts)
         191 (6.90 % of base) : 254525.dasm - System.Xml.Schema.SchemaCollectionCompiler:CalculateEffectiveTotalRange(System.Xml.Schema.XmlSchemaParticle,byref,byref) (FullOpts)
         188 (3.40 % of base) : 51936.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeDecimalLiteral(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ConstantValue):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
         182 (2.86 % of base) : 179628.dasm - Newtonsoft.Json.JsonTextReader+<ParseValueAsync>d__8:MoveNext():this (FullOpts)
         182 (6.62 % of base) : 252127.dasm - System.Xml.XmlWellFormedWriter+AttributeValueCache+<ReplayAsync>d__24:MoveNext():this (FullOpts)
         164 (1.88 % of base) : 16709.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ConstraintsHelper:RemoveDirectConstraintConflicts(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterConstraint],Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol],int,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterDiagnosticInfo]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterConstraint] (FullOpts)
         157 (3.55 % of base) : 51969.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:EvaluateSideEffectingArgumentsToTemps(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]:this (FullOpts)
         148 (2.62 % of base) : 34016.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:RewriteTrivia(Microsoft.CodeAnalysis.SyntaxTriviaList,int,ubyte,ubyte,ubyte,int,int):Microsoft.CodeAnalysis.SyntaxTriviaList:this (FullOpts)
         148 (1.48 % of base) : 275579.dasm - R2RTest.BuildFolderSet:WriteBuildStatistics(System.IO.StreamWriter):this (FullOpts)

Top method improvements (bytes):
        -137 (-2.20 % of base) : 185520.dasm - System.Net.Http.SocksHelper+<EstablishSocks5TunnelAsync>d__14:MoveNext():this (FullOpts)
        -116 (-5.07 % of base) : 184693.dasm - System.Net.Http.HttpConnection+ChunkedEncodingWriteStream+<<WriteAsync>g__WriteChunkAsync|4_0>d:MoveNext():this (FullOpts)
         -91 (-1.68 % of base) : 58625.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.SyntaxNormalizer:RewriteTrivia(Microsoft.CodeAnalysis.SyntaxTriviaList,int,ubyte,ubyte,ubyte,int):Microsoft.CodeAnalysis.SyntaxTriviaList:this (FullOpts)
         -77 (-0.69 % of base) : 21153.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:ParseConditionalCompilationSymbols(System.String,byref,System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]):System.Collections.Generic.IReadOnlyDictionary`2[System.String,System.Object] (FullOpts)
         -76 (-9.50 % of base) : 91012.dasm - Microsoft.FSharp.Quotations.DerivedPatternsModule:DecimalPattern(Microsoft.FSharp.Quotations.FSharpExpr):Microsoft.FSharp.Core.FSharpOption`1[System.Decimal] (FullOpts)
         -55 (-0.64 % of base) : 14549.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SynthesizedPropertyAccessorHelper:GetBoundMethodBody(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.FieldSymbol,byref):Microsoft.CodeAnalysis.VisualBasic.BoundBlock (FullOpts)
         -54 (-1.17 % of base) : 256084.dasm - System.Xml.Schema.XmlSchemaInference:FindMatchingElement(ubyte,System.Xml.XmlReader,System.Xml.Schema.XmlSchemaComplexType,byref,System.Xml.Schema.XmlSchema,ubyte):System.Xml.Schema.XmlSchemaElement:this (FullOpts)
         -53 (-4.12 % of base) : 240255.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:TryDecode(System.ReadOnlyMemory`1[ubyte],ubyte,byref,byref,byref):ubyte (FullOpts)
         -48 (-7.15 % of base) : 102757.dasm - Microsoft.Build.Evaluation.ToolsetReader:ReadEachToolset(System.Collections.Generic.Dictionary`2[System.String,Microsoft.Build.Evaluation.Toolset],Microsoft.Build.Collections.PropertyDictionary`1[Microsoft.Build.Execution.ProjectPropertyInstance],Microsoft.Build.Collections.PropertyDictionary`1[Microsoft.Build.Execution.ProjectPropertyInstance],ubyte):this (FullOpts)
         -48 (-1.31 % of base) : 154321.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
         -47 (-2.13 % of base) : 195495.dasm - System.Data.DataTable:ParseSortString(System.String):System.Data.IndexField[]:this (FullOpts)
         -47 (-1.33 % of base) : 185360.dasm - System.Net.Http.HttpConnectionPool+<GetHttp3ConnectionAsync>d__86:MoveNext():this (FullOpts)
         -47 (-11.55 % of base) : 252876.dasm - System.Xml.XmlAttributeCollection:FindNodeOffsetNS(System.Xml.XmlAttribute):int:this (FullOpts)
         -45 (-0.64 % of base) : 13818.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Syntax.ModifiedIdentifierSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.AsClauseSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.EqualsValueSyntax,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.VisualBasic.BoundLocalDeclaration:this (FullOpts)
         -40 (-0.56 % of base) : 202090.dasm - Microsoft.CodeAnalysis.CommonCompiler:CompileAndEmit(Microsoft.CodeAnalysis.TouchedFileLogger,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISourceGenerator],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText],Microsoft.CodeAnalysis.AnalyzerConfigSet,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AnalyzerConfigOptionsResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.EmbeddedText],Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.ErrorLogger,System.Threading.CancellationToken,byref,byref,byref):this (FullOpts)
         -40 (-2.96 % of base) : 201868.dasm - Microsoft.CodeAnalysis.TopologicalSort:TryIterativeSort[ubyte](System.Collections.Generic.IEnumerable`1[ubyte],Microsoft.CodeAnalysis.TopologicalSortAddSuccessors`1[ubyte],byref):ubyte (FullOpts)
         -40 (-2.96 % of base) : 219482.dasm - Microsoft.CodeAnalysis.TopologicalSort:TryIterativeSort[ubyte](System.Collections.Generic.IEnumerable`1[ubyte],Microsoft.CodeAnalysis.TopologicalSortAddSuccessors`1[ubyte],byref):ubyte (FullOpts)
         -37 (-2.05 % of base) : 119.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Text.RegularExpressions.RegexCache+Key,System.__Canon]:TryAddInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[System.Text.RegularExpressions.RegexCache+Key,System.__Canon],System.Text.RegularExpressions.RegexCache+Key,System.Nullable`1[int],System.__Canon,ubyte,ubyte,byref):ubyte:this (FullOpts)
         -37 (-0.72 % of base) : 261697.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
         -36 (-2.06 % of base) : 257147.dasm - System.Xml.Xsl.Xslt.XsltLoader:LoadInstructions(System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.XslNode],int):System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.XslNode]:this (FullOpts)

Top method regressions (percentages):
         659 (1,198.18 % of base) : 261596.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
          41 (28.28 % of base) : 131954.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          16 (26.67 % of base) : 180993.dasm - System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
           4 (25.00 % of base) : 283919.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
         245 (23.72 % of base) : 142396.dasm - Internal.Cryptography.Helpers:AreSamePublicECParameters(System.Security.Cryptography.ECParameters,System.Security.Cryptography.ECParameters):ubyte (FullOpts)
          12 (19.67 % of base) : 180992.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Net.Sockets.UdpReceiveResult):ubyte:this (FullOpts)
          24 (19.05 % of base) : 261276.dasm - System.Xml.Serialization.XmlReflectionImporter:ReconcileLocalAccessor(System.Xml.Serialization.ElementAccessor,System.String):System.Xml.Serialization.ElementAccessor:this (FullOpts)
         100 (17.09 % of base) : 220.dasm - Interop+Sys:AllocNullTerminatedArray(System.String[],byref) (FullOpts)
          27 (16.88 % of base) : 258954.dasm - System.Xml.Xsl.Runtime.XsltLibrary:FunctionAvailableHelper(System.Xml.XmlQualifiedName):ubyte:this (FullOpts)
          12 (15.38 % of base) : 180994.dasm - System.Net.Sockets.UdpReceiveResult:op_Inequality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
          20 (14.60 % of base) : 131973.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
          29 (14.57 % of base) : 230975.dasm - Microsoft.CodeAnalysis.CommonCompiler+SuppressionDiagnostic:Equals(Microsoft.CodeAnalysis.Diagnostic):ubyte:this (FullOpts)
          29 (14.57 % of base) : 213403.dasm - Microsoft.CodeAnalysis.CommonCompiler+SuppressionDiagnostic:Equals(Microsoft.CodeAnalysis.Diagnostic):ubyte:this (FullOpts)
          21 (14.00 % of base) : 253150.dasm - System.Xml.XmlElement:GetXPAttribute(System.String,System.String):System.String:this (FullOpts)
          20 (13.79 % of base) : 104742.dasm - Microsoft.Build.BackEnd.PropertyGroupIntrinsicTask:GetBatchableValuesFromProperty(System.Collections.Generic.List`1[System.String],Microsoft.Build.Execution.ProjectPropertyGroupTaskPropertyInstance):this (FullOpts)
           7 (13.21 % of base) : 2971.dasm - System.SpanHelpers:IndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
          15 (13.16 % of base) : 129927.dasm - System.Net.Security.SslStream+SslBuffer:get_DecryptedSpan():System.Span`1[ubyte]:this (FullOpts)
          24 (13.04 % of base) : 278145.dasm - ILCompiler.DependencyAnalysisFramework.FullGraphLogStrategy`1+MarkData[System.__Canon]:Equals(ILCompiler.DependencyAnalysisFramework.FullGraphLogStrategy`1+MarkData[System.__Canon]):ubyte:this (FullOpts)
          24 (13.04 % of base) : 278153.dasm - ILCompiler.DependencyAnalysisFramework.FullGraphLogStrategy`1+MarkData[ubyte]:Equals(ILCompiler.DependencyAnalysisFramework.FullGraphLogStrategy`1+MarkData[ubyte]):ubyte:this (FullOpts)
          12 (12.90 % of base) : 180991.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Object):ubyte:this (FullOpts)

Top method improvements (percentages):
         -19 (-29.23 % of base) : 269796.dasm - System.IO.Packaging.OrderedDictionary`2[int,System.Nullable`1[int]]:TryGetValue(int,byref):ubyte:this (FullOpts)
         -19 (-29.23 % of base) : 269808.dasm - System.IO.Packaging.OrderedDictionary`2[long,System.Nullable`1[int]]:TryGetValue(long,byref):ubyte:this (FullOpts)
         -19 (-27.54 % of base) : 269784.dasm - System.IO.Packaging.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:TryGetValue(ubyte,byref):ubyte:this (FullOpts)
         -19 (-22.35 % of base) : 185045.dasm - System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
         -12 (-14.46 % of base) : 188586.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
         -47 (-11.55 % of base) : 252876.dasm - System.Xml.XmlAttributeCollection:FindNodeOffsetNS(System.Xml.XmlAttribute):int:this (FullOpts)
         -20 (-9.52 % of base) : 271112.dasm - Microsoft.Extensions.Primitives.StringSegment:IndexOf(ushort,int,int):int:this (FullOpts)
         -76 (-9.50 % of base) : 91012.dasm - Microsoft.FSharp.Quotations.DerivedPatternsModule:DecimalPattern(Microsoft.FSharp.Quotations.FSharpExpr):Microsoft.FSharp.Core.FSharpOption`1[System.Decimal] (FullOpts)
         -30 (-9.43 % of base) : 249705.dasm - System.Xml.XmlNamedNodeMap:FindNodeOffset(System.String,System.String):int:this (FullOpts)
         -29 (-9.27 % of base) : 195186.dasm - System.Data.DataSet:set_Prefix(System.String):this (FullOpts)
         -33 (-9.07 % of base) : 252875.dasm - System.Xml.XmlAttributeCollection:get_ItemOf(System.String,System.String):System.Xml.XmlAttribute:this (FullOpts)
         -28 (-7.87 % of base) : 252752.dasm - System.Xml.DocumentXPathNavigator:MoveToChild(System.String,System.String):ubyte:this (FullOpts)
         -28 (-7.47 % of base) : 246364.dasm - System.Diagnostics.ActivityLink:op_Inequality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)
         -25 (-7.42 % of base) : 252756.dasm - System.Xml.DocumentXPathNavigator:MoveToNext(System.String,System.String):ubyte:this (FullOpts)
         -48 (-7.15 % of base) : 102757.dasm - Microsoft.Build.Evaluation.ToolsetReader:ReadEachToolset(System.Collections.Generic.Dictionary`2[System.String,Microsoft.Build.Evaluation.Toolset],Microsoft.Build.Collections.PropertyDictionary`1[Microsoft.Build.Execution.ProjectPropertyInstance],Microsoft.Build.Collections.PropertyDictionary`1[Microsoft.Build.Execution.ProjectPropertyInstance],ubyte):this (FullOpts)
          -4 (-7.14 % of base) : 994.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[double](double,double,System.String) (FullOpts)
         -21 (-7.07 % of base) : 246363.dasm - System.Diagnostics.ActivityLink:op_Equality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)
         -23 (-6.93 % of base) : 247465.dasm - MS.Internal.Xml.XPath.XPathAxisIterator:get_Matches():ubyte:this (FullOpts)
         -26 (-6.90 % of base) : 81702.dasm - Internal.TypeSystem.Interop.InteropTypes:IsCoreNamedType(Internal.TypeSystem.TypeSystemContext,Internal.TypeSystem.TypeDesc,System.String,System.String):ubyte (FullOpts)
          -3 (-6.82 % of base) : 247140.dasm - MS.Internal.Xml.XPath.ClonableStack`1[int]:Peek():int:this (FullOpts)


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: 330795748 (overridden on cmd)
Total bytes of diff: 333558929 (overridden on cmd)
Total bytes of delta: 2763181 (0.84 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        2104 : 299622.dasm (17.13 % of base)
        1897 : 82193.dasm (16.34 % of base)
        1629 : 94358.dasm (9.21 % of base)
        1226 : 117321.dasm (8.20 % of base)
        1226 : 183159.dasm (8.20 % of base)
        1181 : 689672.dasm (7.90 % of base)
        1146 : 656713.dasm (13.31 % of base)
        1131 : 674702.dasm (9.65 % of base)
        1080 : 63989.dasm (8.45 % of base)
        1051 : 186126.dasm (7.88 % of base)
        1041 : 87971.dasm (9.67 % of base)
        1031 : 59694.dasm (7.99 % of base)
         988 : 54171.dasm (4.86 % of base)
         946 : 184545.dasm (22.86 % of base)
         939 : 96282.dasm (6.53 % of base)
         931 : 698946.dasm (8.30 % of base)
         931 : 699921.dasm (7.95 % of base)
         930 : 667713.dasm (3.32 % of base)
         920 : 38696.dasm (9.79 % of base)
         816 : 693593.dasm (4.64 % of base)

Top file improvements (bytes):
        -435 : 650989.dasm (-4.13 % of base)
        -397 : 243860.dasm (-7.92 % of base)
        -377 : 455276.dasm (-3.58 % of base)
        -377 : 295851.dasm (-3.58 % of base)
        -377 : 426622.dasm (-3.58 % of base)
        -371 : 203069.dasm (-5.57 % of base)
        -349 : 59020.dasm (-3.78 % of base)
        -299 : 710105.dasm (-3.59 % of base)
        -234 : 405552.dasm (-1.84 % of base)
        -217 : 426632.dasm (-4.10 % of base)
        -216 : 58292.dasm (-2.82 % of base)
        -210 : 653102.dasm (-3.99 % of base)
        -186 : 456023.dasm (-3.53 % of base)
        -186 : 297260.dasm (-3.53 % of base)
        -182 : 189656.dasm (-2.64 % of base)
        -173 : 87414.dasm (-4.92 % of base)
        -146 : 569240.dasm (-1.19 % of base)
        -145 : 83827.dasm (-3.64 % of base)
        -135 : 285391.dasm (-2.25 % of base)
        -133 : 106773.dasm (-2.22 % of base)

98 total files with Code Size differences (58 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
        2104 (17.13 % of base) : 299622.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):ubyte:this (Tier1)
        1897 (16.34 % of base) : 82193.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
        1629 (9.21 % of base) : 94358.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
        1226 (8.20 % of base) : 117321.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
        1226 (8.20 % of base) : 183159.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
        1181 (7.90 % of base) : 689672.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
        1146 (13.31 % of base) : 656713.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (Tier1)
        1131 (9.65 % of base) : 674702.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):ubyte:this (Tier1)
        1080 (8.45 % of base) : 63989.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckValidNullableMethodOverride[System.ValueTuple`2[System.__Canon,ubyte]](Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Symbols.ReportMismatchInReturnType`1[System.ValueTuple`2[System.__Canon,ubyte]],Microsoft.CodeAnalysis.CSharp.Symbols.ReportMismatchInParameterType`1[System.ValueTuple`2[System.__Canon,ubyte]],System.ValueTuple`2[System.__Canon,ubyte],ubyte):ubyte (Tier1)
        1051 (7.88 % of base) : 186126.dasm - Microsoft.Extensions.Options.Generators.SymbolLoader:TryLoad(Microsoft.CodeAnalysis.Compilation,byref):ubyte (Tier1)
        1041 (9.67 % of base) : 87971.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:Equals(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):ubyte:this (Tier1)
        1031 (7.99 % of base) : 59694.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
         988 (4.86 % of base) : 54171.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
         946 (22.86 % of base) : 184545.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:GetAttributesToBind(Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeListSyntax]],short,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Func`2[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,ubyte],Microsoft.CodeAnalysis.CSharp.Binder,byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax]:this (Tier1)
         939 (6.53 % of base) : 96282.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckValidNullableMethodOverride[System.__Canon](Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Symbols.ReportMismatchInReturnType`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.Symbols.ReportMismatchInParameterType`1[System.__Canon],System.__Canon,ubyte):ubyte (Tier1)
         931 (7.95 % of base) : 699921.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:EmitRegexDerivedImplementation(System.CodeDom.Compiler.IndentedTextWriter,System.Text.RegularExpressions.Generator.RegexGenerator+RegexMethod,System.String,ubyte) (Tier1)
         931 (8.30 % of base) : 698946.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:EmitRegexDerivedTypeRunnerFactory(System.CodeDom.Compiler.IndentedTextWriter,System.Text.RegularExpressions.Generator.RegexGenerator+RegexMethod,System.Collections.Generic.Dictionary`2[System.String,System.String[]],ubyte) (Tier1)
         930 (3.32 % of base) : 667713.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetNumbersExpectedString(System.Text.Json.JsonWriterOptions,System.String,int[],uint[],long[],ulong[],float[],double[],System.Decimal[],ubyte):System.String (Tier1-OSR)
         920 (9.79 % of base) : 38696.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
         816 (4.64 % of base) : 693593.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)

Top method improvements (bytes):
        -435 (-4.13 % of base) : 650989.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -397 (-7.92 % of base) : 243860.dasm - System.Collections.Generic.SortedSet`1[int]:IntersectWith(System.Collections.Generic.IEnumerable`1[int]):this (Tier1)
        -377 (-3.58 % of base) : 455276.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -377 (-3.58 % of base) : 295851.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -377 (-3.58 % of base) : 426622.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -371 (-5.57 % of base) : 203069.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
        -349 (-3.78 % of base) : 59020.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseMemberDeclarationCore(ushort):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax:this (Tier1)
        -299 (-3.59 % of base) : 710105.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindForOrUsingOrFixedDeclarations(Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Tier1)
        -234 (-1.84 % of base) : 405552.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -217 (-4.10 % of base) : 426632.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -216 (-2.82 % of base) : 58292.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:CompileMethod(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,byref,Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields,Microsoft.CodeAnalysis.CSharp.TypeCompilationState):this (Tier1)
        -210 (-3.99 % of base) : 653102.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -186 (-3.53 % of base) : 456023.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -186 (-3.53 % of base) : 297260.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -182 (-2.64 % of base) : 189656.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.CSharp.Syntax.ObjectCreationExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.String,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
        -173 (-4.92 % of base) : 87414.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindDefaultArgumentsAndParamsArray(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.Nullable`1[System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Location]]],byref,byref,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Symbol):this (Tier1)
        -146 (-1.19 % of base) : 569240.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -145 (-3.64 % of base) : 83827.dasm - Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory+RuntimeExportProvider:GetExportedValue(Microsoft.VisualStudio.Composition.RuntimeComposition+RuntimeImport,Microsoft.VisualStudio.Composition.RuntimeComposition+RuntimeExport,Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory+RuntimeExportProvider+RuntimePartLifecycleTracker):Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory+RuntimeExportProvider+ExportedValueConstructor:this (Tier1)
        -135 (-2.25 % of base) : 285391.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -133 (-2.22 % of base) : 106773.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)

Top method regressions (percentages):
          34 (70.83 % of base) : 336943.dasm - System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
          34 (70.83 % of base) : 347678.dasm - System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
          34 (70.83 % of base) : 429657.dasm - System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
          34 (70.83 % of base) : 202927.dasm - System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
          34 (70.83 % of base) : 350937.dasm - System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
          34 (70.83 % of base) : 412233.dasm - System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
          34 (70.83 % of base) : 627342.dasm - System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
          34 (70.83 % of base) : 328763.dasm - System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
          34 (70.83 % of base) : 606862.dasm - System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
          34 (70.83 % of base) : 659885.dasm - System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
          34 (70.83 % of base) : 472957.dasm - System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
          34 (70.83 % of base) : 548519.dasm - System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
          34 (70.83 % of base) : 566352.dasm - System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
          34 (70.83 % of base) : 744730.dasm - System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
          35 (70.00 % of base) : 729344.dasm - Microsoft.CodeAnalysis.PooledObjects.ObjectPool`1[System.__Canon]:FreeSlow(System.__Canon):this (Tier1)
          35 (70.00 % of base) : 700863.dasm - System.Reflection.Internal.ObjectPool`1[System.__Canon]:Free(System.__Canon):this (Tier1)
          47 (54.02 % of base) : 56032.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
          47 (52.81 % of base) : 186058.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
          47 (52.81 % of base) : 92552.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
          47 (52.81 % of base) : 727715.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)

Top method improvements (percentages):
         -19 (-30.16 % of base) : 183940.dasm - Roslyn.Utilities.MultiDictionary`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.__Canon]:this (Tier1)
         -19 (-30.16 % of base) : 87121.dasm - Roslyn.Utilities.MultiDictionary`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.__Canon]:this (Tier1)
         -19 (-30.16 % of base) : 58212.dasm - Roslyn.Utilities.MultiDictionary`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.__Canon]:this (Tier1)
         -19 (-30.16 % of base) : 693809.dasm - Roslyn.Utilities.MultiDictionary`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.__Canon]:this (Tier1)
         -19 (-30.16 % of base) : 117390.dasm - Roslyn.Utilities.MultiDictionary`2[System.__Canon,System.ValueTuple`2[System.__Canon,int]]:get_Item(System.__Canon):Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.ValueTuple`2[System.__Canon,int]]:this (Tier1)
         -19 (-30.16 % of base) : 183218.dasm - Roslyn.Utilities.MultiDictionary`2[System.__Canon,System.ValueTuple`2[System.__Canon,int]]:get_Item(System.__Canon):Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.ValueTuple`2[System.__Canon,int]]:this (Tier1)
         -19 (-30.16 % of base) : 708739.dasm - Roslyn.Utilities.MultiDictionary`2[System.__Canon,System.ValueTuple`2[System.__Canon,int]]:get_Item(System.__Canon):Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.ValueTuple`2[System.__Canon,int]]:this (Tier1)
         -21 (-16.28 % of base) : 64632.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol+<>c:<.cctor>b__350_0(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte:this (Tier1)
         -48 (-15.09 % of base) : 87725.dasm - Roslyn.Utilities.UnicodeCharacterUtilities:IsValidIdentifier(System.String):ubyte (Tier1)
         -48 (-15.09 % of base) : 55284.dasm - Roslyn.Utilities.UnicodeCharacterUtilities:IsValidIdentifier(System.String):ubyte (Tier1)
         -48 (-15.05 % of base) : 184309.dasm - Roslyn.Utilities.UnicodeCharacterUtilities:IsValidIdentifier(System.String):ubyte (Tier1)
         -38 (-14.73 % of base) : 185088.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:get_IsOverride():ubyte:this (Tier1)
         -55 (-13.58 % of base) : 443615.dasm - System.Numerics.Tensors.TensorPrimitives:InvokeSpanSpanSpanIntoSpan[System.Runtime.InteropServices.NFloat,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[System.Runtime.InteropServices.NFloat]](System.ReadOnlySpan`1[System.Runtime.InteropServices.NFloat],System.ReadOnlySpan`1[System.Runtime.InteropServices.NFloat],System.ReadOnlySpan`1[System.Runtime.InteropServices.NFloat],System.Span`1[System.Runtime.InteropServices.NFloat]) (Tier1)
         -55 (-13.58 % of base) : 443612.dasm - System.Numerics.Tensors.TensorPrimitives:InvokeSpanSpanSpanIntoSpan[System.Runtime.InteropServices.NFloat,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[System.Runtime.InteropServices.NFloat]](System.ReadOnlySpan`1[System.Runtime.InteropServices.NFloat],System.ReadOnlySpan`1[System.Runtime.InteropServices.NFloat],System.ReadOnlySpan`1[System.Runtime.InteropServices.NFloat],System.Span`1[System.Runtime.InteropServices.NFloat]) (Tier1)
         -70 (-13.54 % of base) : 188210.dasm - System.Reflection.BlobUtilities:WriteUTF8(ubyte[],int,ulong,int,int,ubyte) (Tier1)
         -10 (-13.33 % of base) : 704090.dasm - System.Reflection.BlobUtilities:GetUserStringTrailingByte(System.String):ubyte (Tier1)
         -39 (-12.70 % of base) : 50682.dasm - System.Reflection.Internal.MemoryBlock:Utf8NullTerminatedFastCompare(int,System.String,int,byref,ushort,ubyte):int:this (Tier1)
         -40 (-12.54 % of base) : 698664.dasm - Roslyn.Utilities.UnicodeCharacterUtilities:IsValidIdentifier(System.String):ubyte (Tier1)
          -4 (-12.12 % of base) : 54250.dasm - Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
         -20 (-12.12 % of base) : 519671.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[float](float,float,System.String) (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: 129997542 (overridden on cmd)
Total bytes of diff: 130468363 (overridden on cmd)
Total bytes of delta: 470821 (0.36 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         456 : 235940.dasm (4.33 % of base)
         456 : 248495.dasm (4.39 % of base)
         446 : 46742.dasm (8.94 % of base)
         446 : 11194.dasm (8.94 % of base)
         446 : 51527.dasm (8.94 % of base)
         387 : 256790.dasm (3.00 % of base)
         380 : 239317.dasm (2.88 % of base)
         335 : 56355.dasm (3.64 % of base)
         325 : 298691.dasm (12.16 % of base)
         323 : 248512.dasm (4.42 % of base)
         323 : 235925.dasm (4.29 % of base)
         316 : 148391.dasm (11.09 % of base)
         312 : 230051.dasm (4.76 % of base)
         289 : 68027.dasm (10.68 % of base)
         272 : 130301.dasm (5.87 % of base)
         272 : 130279.dasm (5.88 % of base)
         272 : 252391.dasm (2.62 % of base)
         272 : 256528.dasm (2.62 % of base)
         271 : 201480.dasm (3.48 % of base)
         269 : 20490.dasm (2.40 % of base)

Top file improvements (bytes):
        -174 : 197463.dasm (-5.11 % of base)
        -116 : 149834.dasm (-5.09 % of base)
         -96 : 128537.dasm (-1.84 % of base)
         -96 : 150101.dasm (-0.64 % of base)
         -93 : 128757.dasm (-2.56 % of base)
         -91 : 9081.dasm (-1.77 % of base)
         -86 : 3280.dasm (-8.53 % of base)
         -85 : 128858.dasm (-2.14 % of base)
         -79 : 288815.dasm (-5.50 % of base)
         -75 : 290862.dasm (-4.43 % of base)
         -74 : 128553.dasm (-1.54 % of base)
         -73 : 254712.dasm (-1.11 % of base)
         -72 : 94912.dasm (-4.46 % of base)
         -71 : 210501.dasm (-6.51 % of base)
         -66 : 14921.dasm (-1.04 % of base)
         -61 : 274278.dasm (-2.39 % of base)
         -59 : 266335.dasm (-2.37 % of base)
         -58 : 175678.dasm (-0.56 % of base)
         -58 : 93023.dasm (-1.34 % of base)
         -56 : 11169.dasm (-0.99 % of base)

89 total files with Code Size differences (42 improved, 47 regressed), 20 unchanged.

Top method regressions (bytes):
         456 (4.33 % of base) : 235940.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:SimpleTestClassSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestClass):this (FullOpts)
         456 (4.39 % of base) : 248495.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:SimpleTestClassSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestClass):this (FullOpts)
         446 (8.94 % of base) : 46742.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
         446 (8.94 % of base) : 11194.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
         446 (8.94 % of base) : 51527.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
         387 (3.00 % of base) : 256790.dasm - System.Text.Json.Tests.JsonNumberTestData:.cctor() (FullOpts)
         380 (2.88 % of base) : 239317.dasm - System.Text.Json.Tests.JsonNumberTestData:.cctor() (FullOpts)
         335 (3.64 % of base) : 56355.dasm - Microsoft.Gen.OptionsValidation.Unit.Test.OptionsUsingGeneratedAttributesValidator:Validate(System.String,Microsoft.Gen.OptionsValidation.Unit.Test.OptionsUsingGeneratedAttributes):Microsoft.Extensions.Options.ValidateOptionsResult:this (FullOpts)
         325 (12.16 % of base) : 298691.dasm - System.Threading.Tasks.Tests.TaskFactoryTests:RunTaskFactoryFromAsyncExceptionTests() (FullOpts)
         323 (4.29 % of base) : 235925.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:SimpleTestStructSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestStruct):this (FullOpts)
         323 (4.42 % of base) : 248512.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:SimpleTestStructSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestStruct):this (FullOpts)
         316 (11.09 % of base) : 148391.dasm - System.Net.Http.Tests.HttpContentHeadersTest:InvalidHeaders_AddRequestAndResponseHeaders_Throw():this (FullOpts)
         312 (4.76 % of base) : 230051.dasm - System.Text.Tests.CaseConversionTests:MultipleValidCharacterConversion(System.String,System.String,System.String) (FullOpts)
         289 (10.68 % of base) : 68027.dasm - System.Collections.Concurrent.Tests.BlockingCollectionTests:Test4_Dispose() (FullOpts)
         272 (5.88 % of base) : 130279.dasm - System.IO.Tests.StringReaderTests+<ReadBlockMemoryAsync_Success>d__20:MoveNext():this (FullOpts)
         272 (5.87 % of base) : 130301.dasm - System.IO.Tests.StringReaderTests+<ReadMemoryAsync_Success>d__19:MoveNext():this (FullOpts)
         272 (2.62 % of base) : 252391.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<DictionaryOfString>d__29:MoveNext():this (FullOpts)
         272 (2.62 % of base) : 256528.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<DictionaryOfString>d__29:MoveNext():this (FullOpts)
         271 (3.48 % of base) : 201480.dasm - System.Tests.DecimalTests_GenericMath:IsIntegerTest() (FullOpts)
         269 (2.40 % of base) : 20490.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)

Top method improvements (bytes):
        -174 (-5.11 % of base) : 197463.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
        -116 (-5.09 % of base) : 149834.dasm - System.Net.Http.HttpConnection+ChunkedEncodingWriteStream+<<WriteAsync>g__WriteChunkAsync|4_0>d:MoveNext():this (FullOpts)
         -96 (-1.84 % of base) : 128537.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts+<ReaderShouldNotGetUnflushedBytesWhenOverflowingSegments>d__16:MoveNext():this (FullOpts)
         -96 (-0.64 % of base) : 150101.dasm - Systen.Net.Mail.Tests.LoopbackSmtpServer+<HandleConnectionAsync>d__62:MoveNext():this (FullOpts)
         -93 (-2.56 % of base) : 128757.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest+<BufferSegmentsPooledUpToThreshold>d__5:MoveNext():this (FullOpts)
         -91 (-1.77 % of base) : 9081.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.SyntaxNormalizer:RewriteTrivia(Microsoft.CodeAnalysis.SyntaxTriviaList,int,ubyte,ubyte,ubyte,int):Microsoft.CodeAnalysis.SyntaxTriviaList:this (FullOpts)
         -86 (-8.53 % of base) : 3280.dasm - Microsoft.CodeAnalysis.ProjectInfo+ProjectAttributes:With(System.Nullable`1[Microsoft.CodeAnalysis.VersionStamp],System.String,System.String,System.String,Microsoft.CodeAnalysis.Optional`1[System.String],Microsoft.CodeAnalysis.Optional`1[System.String],Microsoft.CodeAnalysis.Optional`1[System.String],Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CompilationOutputInfo],Microsoft.CodeAnalysis.Optional`1[System.String],Microsoft.CodeAnalysis.Optional`1[int],Microsoft.CodeAnalysis.Optional`1[ubyte],Microsoft.CodeAnalysis.Optional`1[ubyte],Microsoft.CodeAnalysis.Optional`1[ubyte],Microsoft.CodeAnalysis.Optional`1[System.Guid]):Microsoft.CodeAnalysis.ProjectInfo+ProjectAttributes:this (FullOpts)
         -85 (-2.14 % of base) : 128858.dasm - System.IO.Pipelines.Tests.ReadAsyncCancellationTests+<CancellingBeforeAdvance>d__1:MoveNext():this (FullOpts)
         -79 (-5.50 % of base) : 288815.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex6786_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -75 (-4.43 % of base) : 290862.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32789_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -74 (-1.54 % of base) : 128553.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts+<HelloWorldAcrossTwoBlocks>d__11:MoveNext():this (FullOpts)
         -73 (-1.11 % of base) : 254712.dasm - System.Text.Json.Serialization.Tests.ObjectWithObjectProperties:.ctor():this (FullOpts)
         -72 (-4.46 % of base) : 94912.dasm - System.Data.Tests.Common.DbConnectionStringBuilderTest:AssertValueTest(System.String[][],System.String[][],ubyte):this (FullOpts)
         -71 (-6.51 % of base) : 210501.dasm - System.Tests.GetCustomAttribute:PositiveTest8() (FullOpts)
         -66 (-1.04 % of base) : 14921.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:BetterFunctionMember[System.__Canon](Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],ubyte,byref):int:this (FullOpts)
         -61 (-2.39 % of base) : 274278.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1032_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -59 (-2.37 % of base) : 266335.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindSubcaptures[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong]](System.ReadOnlySpan`1[ushort],int,int,System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+PerThreadData[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+Registers[ulong]:this (FullOpts)
         -58 (-1.34 % of base) : 93023.dasm - System.Xml.Schema.XmlSchemaInference:FindMatchingElement(ubyte,System.Xml.XmlReader,System.Xml.Schema.XmlSchemaComplexType,byref,System.Xml.Schema.XmlSchema,ubyte):System.Xml.Schema.XmlSchemaElement:this (FullOpts)
         -58 (-0.56 % of base) : 175678.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess2():int:this (FullOpts)
         -56 (-0.99 % of base) : 11169.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindCatchBlock(Microsoft.CodeAnalysis.CSharp.Syntax.CatchClauseSyntax,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundCatchBlock],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundCatchBlock:this (FullOpts)

Top method regressions (percentages):
          26 (35.14 % of base) : 49094.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          26 (35.14 % of base) : 43369.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          26 (35.14 % of base) : 5197.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          41 (28.28 % of base) : 150213.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          69 (27.27 % of base) : 18930.dasm - NativeExports.Arrays:FillRange2D(ulong,int,ulong,int):ubyte (FullOpts)
         245 (23.72 % of base) : 217999.dasm - Internal.Cryptography.Helpers:AreSamePublicECParameters(System.Security.Cryptography.ECParameters,System.Security.Cryptography.ECParameters):ubyte (FullOpts)
          78 (19.45 % of base) : 199737.dasm - System.Runtime.Tests.DependentHandleTests:<DependentIsCollectedOnTargetNotReachable>g__Initialize|7_0(byref,byref):System.Runtime.DependentHandle (FullOpts)
          47 (19.34 % of base) : 142965.dasm - System.SpanTests.ReplaceTests`1+<>c__DisplayClass5_0[System.__Canon]:<ArgumentValidation_Copy>b__1():this (FullOpts)
          24 (19.05 % of base) : 61251.dasm - System.Xml.Serialization.XmlReflectionImporter:ReconcileLocalAccessor(System.Xml.Serialization.ElementAccessor,System.String):System.Xml.Serialization.ElementAccessor:this (FullOpts)
          78 (18.89 % of base) : 199752.dasm - System.Runtime.Tests.DependentHandleTests:<DependentIsCollectedOnTargetNotReachable_EvenWithReferenceCycles>g__Initialize|8_0(byref,byref):System.Runtime.DependentHandle (FullOpts)
         100 (17.09 % of base) : 17534.dasm - Interop+Sys:AllocNullTerminatedArray(System.String[],byref) (FullOpts)
           7 (17.07 % of base) : 143655.dasm - System.SpanTests.SpanTests+<>c__DisplayClass651_0:<SliceIntRangeChecksd>b__5():this (FullOpts)
          20 (16.81 % of base) : 34719.dasm - LightInject.ServiceRegistration:Equals(System.Object):ubyte:this (FullOpts)
           7 (15.56 % of base) : 143656.dasm - System.SpanTests.SpanTests+<>c__DisplayClass651_0:<SliceIntRangeChecksd>b__6():this (FullOpts)
          28 (15.47 % of base) : 199766.dasm - System.Runtime.Tests.DependentHandleTests:GetNullTarget():this (FullOpts)
          45 (15.46 % of base) : 199422.dasm - System.Tests.ArraySegment_Tests`1[System.__Canon]:Factory(int,int,int):System.ArraySegment`1[System.__Canon]:this (FullOpts)
          20 (14.60 % of base) : 150138.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
          21 (14.00 % of base) : 91071.dasm - System.Xml.XmlElement:GetXPAttribute(System.String,System.String):System.String:this (FullOpts)
          31 (13.60 % of base) : 185915.dasm - System.Tests.OperatingSystemTests+<>c__DisplayClass31_0:<TestIsOSVersionAtLeast>b__1(int,int,int,int):ubyte:this (FullOpts)
         224 (13.57 % of base) : 29831.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[System.__Canon]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)

Top method improvements (percentages):
         -19 (-22.35 % of base) : 158219.dasm - System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
         -12 (-14.46 % of base) : 267193.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
         -12 (-14.46 % of base) : 5441.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
         -14 (-10.14 % of base) : 266549.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:<EmitTryFindNextPossibleStartingPosition>g__IsValidInFieldName|24_7(System.String):ubyte (FullOpts)
         -12 (-9.52 % of base) : 293324.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
         -30 (-9.43 % of base) : 93213.dasm - System.Xml.XmlNamedNodeMap:FindNodeOffset(System.String,System.String):int:this (FullOpts)
         -29 (-9.27 % of base) : 92953.dasm - System.Data.DataSet:set_Prefix(System.String):this (FullOpts)
         -33 (-9.07 % of base) : 33965.dasm - System.Xml.XmlAttributeCollection:get_ItemOf(System.String,System.String):System.Xml.XmlAttribute:this (FullOpts)
         -86 (-8.53 % of base) : 3280.dasm - Microsoft.CodeAnalysis.ProjectInfo+ProjectAttributes:With(System.Nullable`1[Microsoft.CodeAnalysis.VersionStamp],System.String,System.String,System.String,Microsoft.CodeAnalysis.Optional`1[System.String],Microsoft.CodeAnalysis.Optional`1[System.String],Microsoft.CodeAnalysis.Optional`1[System.String],Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CompilationOutputInfo],Microsoft.CodeAnalysis.Optional`1[System.String],Microsoft.CodeAnalysis.Optional`1[int],Microsoft.CodeAnalysis.Optional`1[ubyte],Microsoft.CodeAnalysis.Optional`1[ubyte],Microsoft.CodeAnalysis.Optional`1[ubyte],Microsoft.CodeAnalysis.Optional`1[System.Guid]):Microsoft.CodeAnalysis.ProjectInfo+ProjectAttributes:this (FullOpts)
         -29 (-7.99 % of base) : 99123.dasm - System.Diagnostics.Tests.ActivitySourceTests+<>c__DisplayClass9_1:<TestActivityCreationProperties>b__7(System.Diagnostics.ActivityLink):ubyte:this (FullOpts)
         -49 (-7.41 % of base) : 207157.dasm - System.Tests.StringTests:Trim(System.String,ushort[],System.String) (FullOpts)
         -23 (-6.93 % of base) : 33978.dasm - MS.Internal.Xml.XPath.XPathAxisIterator:get_Matches():ubyte:this (FullOpts)
         -25 (-6.67 % of base) : 98723.dasm - System.Diagnostics.ActivityLink:Equals(System.Object):ubyte:this (FullOpts)
         -15 (-6.67 % of base) : 143865.dasm - System.MemoryTests.MemoryTests:MemoryReferencingSameMemoryAreEqualInEveryAspect(ubyte[],int,int) (FullOpts)
          -2 (-6.67 % of base) : 143677.dasm - System.SpanTests.SpanTests+<>c__DisplayClass104_0:<CtorArrayIntIntNegativeStart>b__0():this (FullOpts)
          -2 (-6.67 % of base) : 145109.dasm - System.SpanTests.SpanTests+<>c__DisplayClass105_0:<CtorArrayIntIntStartTooLarge>b__0():this (FullOpts)
          -2 (-6.67 % of base) : 145346.dasm - System.SpanTests.SpanTests+<>c__DisplayClass107_0:<CtorArrayIntIntStartAndLengthTooLarge>b__0():this (FullOpts)
          -2 (-6.67 % of base) : 145347.dasm - System.SpanTests.SpanTests+<>c__DisplayClass107_0:<CtorArrayIntIntStartAndLengthTooLarge>b__1():this (FullOpts)
          -2 (-6.67 % of base) : 145349.dasm - System.SpanTests.SpanTests+<>c__DisplayClass107_0:<CtorArrayIntIntStartAndLengthTooLarge>b__2():this (FullOpts)
          -2 (-6.67 % of base) : 145351.dasm - System.SpanTests.SpanTests+<>c__DisplayClass107_0:<CtorArrayIntIntStartAndLengthTooLarge>b__3():this (FullOpts)


realworld.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: 13193410 (overridden on cmd)
Total bytes of diff: 13194608 (overridden on cmd)
Total bytes of delta: 1198 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         118 : 4580.dasm (44.36 % of base)
          99 : 30119.dasm (1.37 % of base)
          81 : 5949.dasm (5.94 % of base)
          58 : 21719.dasm (1.51 % of base)
          51 : 19278.dasm (0.88 % of base)
          41 : 18436.dasm (1.46 % of base)
          37 : 27026.dasm (12.13 % of base)
          32 : 9409.dasm (1.66 % of base)
          31 : 25366.dasm (1.75 % of base)
          30 : 25270.dasm (3.99 % of base)
          28 : 21889.dasm (1.82 % of base)
          26 : 15532.dasm (1.51 % of base)
          26 : 887.dasm (3.64 % of base)
          25 : 11178.dasm (31.65 % of base)
          25 : 24327.dasm (6.44 % of base)
          23 : 24479.dasm (6.22 % of base)
          23 : 12886.dasm (0.54 % of base)
          22 : 14286.dasm (4.05 % of base)
          22 : 9176.dasm (1.44 % of base)
          22 : 7118.dasm (1.30 % of base)

Top file improvements (bytes):
         -25 : 15796.dasm (-0.62 % of base)
         -19 : 207.dasm (-2.02 % of base)
         -19 : 30673.dasm (-1.00 % of base)
         -18 : 1989.dasm (-0.95 % of base)
         -17 : 2270.dasm (-1.74 % of base)
         -17 : 29145.dasm (-1.69 % of base)
         -15 : 11609.dasm (-1.53 % of base)
         -15 : 9731.dasm (-1.61 % of base)
         -15 : 10955.dasm (-1.61 % of base)
         -15 : 37.dasm (-1.52 % of base)
         -14 : 1953.dasm (-0.23 % of base)
         -14 : 28117.dasm (-1.44 % of base)
         -11 : 2283.dasm (-1.18 % of base)
         -10 : 32691.dasm (-0.60 % of base)
          -7 : 12694.dasm (-0.76 % of base)
          -7 : 13641.dasm (-0.36 % of base)
          -7 : 13219.dasm (-0.72 % of base)
          -7 : 15618.dasm (-0.36 % of base)
          -7 : 15872.dasm (-0.49 % of base)
          -6 : 11392.dasm (-2.99 % of base)

60 total files with Code Size differences (29 improved, 31 regressed), 20 unchanged.

Top method regressions (bytes):
         118 (44.36 % of base) : 4580.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
          99 (1.37 % of base) : 30119.dasm - Microsoft.ApplicationInsights.Metrics.MetricIdentifier:EnsureDimensionNamesValid(byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,byref) (FullOpts)
          81 (5.94 % of base) : 5949.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          58 (1.51 % of base) : 21719.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
          51 (0.88 % of base) : 19278.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          41 (1.46 % of base) : 18436.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
          37 (12.13 % of base) : 27026.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          32 (1.66 % of base) : 9409.dasm - FSharp.Compiler.ConstraintSolver:consistent@1992(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+TyparConstraint,FSharp.Compiler.TypedTree+TyparConstraint):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
          31 (1.75 % of base) : 25366.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
          30 (3.99 % of base) : 25270.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:IndexOf(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],int,int,System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):int:this (FullOpts)
          28 (1.82 % of base) : 21889.dasm - Microsoft.CodeAnalysis.MarshalAsAttributeDecoder`4[System.__Canon,System.__Canon,System.__Canon,short]:DecodeMarshalAsArray(byref,Microsoft.CodeAnalysis.CommonMessageProvider,ubyte) (FullOpts)
          26 (3.64 % of base) : 887.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
          26 (1.51 % of base) : 15532.dasm - Microsoft.ML.Data.EvaluatorBase`1[System.__Canon]:ProcessData(Microsoft.ML.IDataView,Microsoft.ML.Data.RoleMappedSchema,System.Func`2[int,ubyte],System.__Canon,System.__Canon[]):System.Collections.Generic.Dictionary`2[System.String,Microsoft.ML.IDataView]:this (FullOpts)
          25 (31.65 % of base) : 11178.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
          25 (6.44 % of base) : 24327.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          23 (6.22 % of base) : 24479.dasm - Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:.ctor(Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (FullOpts)
          23 (0.54 % of base) : 12886.dasm - Microsoft.ML.Data.TextLoader+Bindings:.ctor(Microsoft.ML.Data.TextLoader,Microsoft.ML.Data.TextLoader+Column[],Microsoft.ML.Data.IMultiStreamSource,Microsoft.ML.Data.IMultiStreamSource):this (FullOpts)
          22 (1.30 % of base) : 7118.dasm - FSharp.Compiler.AbstractIL.ILBinaryReader:seekReadConstant(FSharp.Compiler.AbstractIL.ILBinaryReader+ILMetadataReader,FSharp.Compiler.AbstractIL.ILBinaryReader+TaggedIndex`1[FSharp.Compiler.AbstractIL.BinaryConstants+HasConstantTag]):FSharp.Compiler.AbstractIL.IL+ILFieldInit (FullOpts)
          22 (1.44 % of base) : 9176.dasm - FSharp.Compiler.CheckExpressions:TcTypeOrMeasure$cont@4330-1(Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+TyparKind],FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+ImplicitlyBoundTyparsAllowed,FSharp.Compiler.CheckExpressions+CheckConstraints,FSharp.Compiler.NameResolution+ItemOccurence,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident],ubyte,FSharp.Compiler.Text.Range,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynType],Microsoft.FSharp.Core.Unit):System.Tuple`2[FSharp.Compiler.TypedTree+TType,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv] (FullOpts)
          22 (4.05 % of base) : 14286.dasm - System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]:WaitWithCancellation(System.Threading.CancellationToken):System.__Canon:this (FullOpts)

Top method improvements (bytes):
         -25 (-0.62 % of base) : 15796.dasm - Microsoft.ML.Transforms.NormalizingTransformer:Train(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.IDataView,Microsoft.ML.Transforms.NormalizingEstimator+ColumnOptionsBase[]):Microsoft.ML.Transforms.NormalizingTransformer (FullOpts)
         -19 (-1.00 % of base) : 30673.dasm - Microsoft.PowerShell.Commands.FileSystemProvider:InitializeDefaultDrives():System.Collections.ObjectModel.Collection`1[System.Management.Automation.PSDriveInfo]:this (FullOpts)
         -19 (-2.02 % of base) : 207.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:TryInsert(int,System.__Canon,ubyte):ubyte:this (FullOpts)
         -18 (-0.95 % of base) : 1989.dasm - System.Xml.XmlTextReaderImpl:ParseElement():this (FullOpts)
         -17 (-1.74 % of base) : 2270.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (FullOpts)
         -17 (-1.69 % of base) : 29145.dasm - System.Collections.Generic.Dictionary`2[short,Microsoft.CodeAnalysis.Collections.OrderPreservingMultiDictionary`2+ValueSet[short,System.__Canon]]:TryInsert(short,Microsoft.CodeAnalysis.Collections.OrderPreservingMultiDictionary`2+ValueSet[short,System.__Canon],ubyte):ubyte:this (FullOpts)
         -15 (-1.61 % of base) : 10955.dasm - System.Collections.Generic.Dictionary`2[long,FSharp.Compiler.PostTypeCheckSemanticChecks+Limit]:TryInsert(long,FSharp.Compiler.PostTypeCheckSemanticChecks+Limit,ubyte):ubyte:this (FullOpts)
         -15 (-1.61 % of base) : 9731.dasm - System.Collections.Generic.Dictionary`2[long,int]:TryInsert(long,int,ubyte):ubyte:this (FullOpts)
         -15 (-1.53 % of base) : 11609.dasm - System.Collections.Generic.Dictionary`2[ubyte,System.__Canon]:TryInsert(ubyte,System.__Canon,ubyte):ubyte:this (FullOpts)
         -15 (-1.52 % of base) : 37.dasm - System.Collections.Generic.Dictionary`2[ushort,System.__Canon]:TryInsert(ushort,System.__Canon,ubyte):ubyte:this (FullOpts)
         -14 (-1.44 % of base) : 28117.dasm - System.Collections.Generic.Dictionary`2[ushort,int]:TryInsert(ushort,int,ubyte):ubyte:this (FullOpts)
         -14 (-0.23 % of base) : 1953.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (FullOpts)
         -11 (-1.18 % of base) : 2283.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:TryInsert(int,ubyte,ubyte):ubyte:this (FullOpts)
         -10 (-0.60 % of base) : 32691.dasm - System.Dynamic.DynamicMetaObjectBinder:Bind(System.Object[],System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.ParameterExpression],System.Linq.Expressions.LabelTarget):System.Linq.Expressions.Expression:this (FullOpts)
          -7 (-0.36 % of base) : 15618.dasm - Microsoft.ML.Data.MetricWriter:GetConfusionTableAsArray(Microsoft.ML.IDataView,int,int,int[],int,byref,byref):double[][] (FullOpts)
          -7 (-0.49 % of base) : 15872.dasm - Microsoft.ML.Trainers.KMeansLloydsYinYangTrain:Train(Microsoft.ML.Runtime.IHost,int,Microsoft.ML.Runtime.IChannel,Microsoft.ML.Trainers.FeatureFloatVectorCursor+Factory,long,int,int,int,long,float,Microsoft.ML.Data.VBuffer`1[float][]) (FullOpts)
          -7 (-0.36 % of base) : 13641.dasm - Microsoft.ML.Trainers.SdcaTrainerBase`3[System.__Canon,System.__Canon,System.__Canon]:CheckConvergence(Microsoft.ML.Runtime.IProgressChannel,int,Microsoft.ML.Trainers.FloatLabelCursor+Factory,Microsoft.ML.Trainers.SdcaTrainerBase`3+DualsTableBase[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Trainers.SdcaTrainerBase`3+IdToIdxLookup[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Data.VBuffer`1[float][],Microsoft.ML.Data.VBuffer`1[float][],float[],float[],float[],float[],long,double[],byref,byref):ubyte:this (FullOpts)
          -7 (-0.76 % of base) : 12694.dasm - System.Collections.Generic.Dictionary`2[int,int]:TryInsert(int,int,ubyte):ubyte:this (FullOpts)
          -7 (-0.72 % of base) : 13219.dasm - System.Collections.Generic.Dictionary`2[ushort,ushort]:TryInsert(ushort,ushort,ubyte):ubyte:this (FullOpts)
          -6 (-2.99 % of base) : 11392.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)

Top method regressions (percentages):
         118 (44.36 % of base) : 4580.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
          25 (31.65 % of base) : 11178.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
          19 (12.50 % of base) : 24686.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
          37 (12.13 % of base) : 27026.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          19 (12.10 % of base) : 23314.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
          19 (10.98 % of base) : 24662.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
          17 (8.21 % of base) : 4869.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
          25 (6.44 % of base) : 24327.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          23 (6.22 % of base) : 24479.dasm - Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:.ctor(Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (FullOpts)
          81 (5.94 % of base) : 5949.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          11 (4.76 % of base) : 14245.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
          22 (4.05 % of base) : 14286.dasm - System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]:WaitWithCancellation(System.Threading.CancellationToken):System.__Canon:this (FullOpts)
          30 (3.99 % of base) : 25270.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:IndexOf(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],int,int,System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):int:this (FullOpts)
           5 (3.85 % of base) : 21758.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AttributeDataExtensions:DecodeNotNullIfNotNullAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.String (FullOpts)
          26 (3.64 % of base) : 887.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
          18 (3.56 % of base) : 7117.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
          18 (3.36 % of base) : 11181.dasm - FSharp.Compiler.Infos+PropInfo:get_IsIndexer():ubyte:this (FullOpts)
          15 (3.33 % of base) : 26962.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetCorrespondingBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):int (FullOpts)
          13 (3.25 % of base) : 17719.dasm - System.Number:<NumberToBigInteger>g__ProcessChunk|12_4(System.ReadOnlySpan`1[ubyte],byref,byref,byref):ubyte (FullOpts)
          11 (3.19 % of base) : 11258.dasm - BenchmarkDotNet.Portability.Cpu.HardwareIntrinsics+<<GetFullInfo>g__GetCurrentProcessInstructionSets|2_0>d:MoveNext():ubyte:this (FullOpts)

Top method improvements (percentages):
          -6 (-2.99 % of base) : 11392.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
         -19 (-2.02 % of base) : 207.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:TryInsert(int,System.__Canon,ubyte):ubyte:this (FullOpts)
          -2 (-1.75 % of base) : 13087.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.75 % of base) : 112.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.75 % of base) : 14775.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.74 % of base) : 3158.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -17 (-1.74 % of base) : 2270.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (FullOpts)
         -17 (-1.69 % of base) : 29145.dasm - System.Collections.Generic.Dictionary`2[short,Microsoft.CodeAnalysis.Collections.OrderPreservingMultiDictionary`2+ValueSet[short,System.__Canon]]:TryInsert(short,Microsoft.CodeAnalysis.Collections.OrderPreservingMultiDictionary`2+ValueSet[short,System.__Canon],ubyte):ubyte:this (FullOpts)
          -2 (-1.67 % of base) : 4615.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
         -15 (-1.61 % of base) : 10955.dasm - System.Collections.Generic.Dictionary`2[long,FSharp.Compiler.PostTypeCheckSemanticChecks+Limit]:TryInsert(long,FSharp.Compiler.PostTypeCheckSemanticChecks+Limit,ubyte):ubyte:this (FullOpts)
         -15 (-1.61 % of base) : 9731.dasm - System.Collections.Generic.Dictionary`2[long,int]:TryInsert(long,int,ubyte):ubyte:this (FullOpts)
          -2 (-1.54 % of base) : 23782.dasm - System.Collections.Generic.HashSet`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:MoveNext():ubyte:this (FullOpts)
         -15 (-1.53 % of base) : 11609.dasm - System.Collections.Generic.Dictionary`2[ubyte,System.__Canon]:TryInsert(ubyte,System.__Canon,ubyte):ubyte:this (FullOpts)
         -15 (-1.52 % of base) : 37.dasm - System.Collections.Generic.Dictionary`2[ushort,System.__Canon]:TryInsert(ushort,System.__Canon,ubyte):ubyte:this (FullOpts)
         -14 (-1.44 % of base) : 28117.dasm - System.Collections.Generic.Dictionary`2[ushort,int]:TryInsert(ushort,int,ubyte):ubyte:this (FullOpts)
          -2 (-1.43 % of base) : 214.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -11 (-1.18 % of base) : 2283.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:TryInsert(int,ubyte,ubyte):ubyte:this (FullOpts)
          -2 (-1.03 % of base) : 24785.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:IsReceiverRefReadOnly(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
         -19 (-1.00 % of base) : 30673.dasm - Microsoft.PowerShell.Commands.FileSystemProvider:InitializeDefaultDrives():System.Collections.ObjectModel.Collection`1[System.Management.Automation.PSDriveInfo]:this (FullOpts)
         -18 (-0.95 % of base) : 1989.dasm - System.Xml.XmlTextReaderImpl:ParseElement():this (FullOpts)


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: 4197804 (overridden on cmd)
Total bytes of diff: 4198166 (overridden on cmd)
Total bytes of delta: 362 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          55 : 6386.dasm (3.08 % of base)
          43 : 5172.dasm (2.18 % of base)
          34 : 18675.dasm (1.59 % of base)
          34 : 21693.dasm (1.59 % of base)
          34 : 2923.dasm (1.59 % of base)
          34 : 25180.dasm (1.59 % of base)
          32 : 7102.dasm (2.12 % of base)
          20 : 7665.dasm (4.93 % of base)
          18 : 7023.dasm (12.95 % of base)
          18 : 23413.dasm (12.86 % of base)
          16 : 1979.dasm (1.32 % of base)
          15 : 7907.dasm (0.92 % of base)
          15 : 8785.dasm (3.76 % of base)
          14 : 8187.dasm (1.47 % of base)
          13 : 6162.dasm (1.67 % of base)
          13 : 7652.dasm (3.71 % of base)
          12 : 8059.dasm (0.75 % of base)
          12 : 16144.dasm (2.88 % of base)
          11 : 6864.dasm (2.74 % of base)
          10 : 17699.dasm (0.35 % of base)

Top file improvements (bytes):
         -25 : 19783.dasm (-1.16 % of base)
         -25 : 22781.dasm (-1.16 % of base)
         -25 : 26253.dasm (-1.16 % of base)
         -25 : 8098.dasm (-1.16 % of base)
          -8 : 8686.dasm (-0.98 % of base)
          -6 : 23351.dasm (-3.06 % of base)
          -6 : 5723.dasm (-3.08 % of base)
          -4 : 16142.dasm (-0.48 % of base)
          -4 : 6539.dasm (-0.20 % of base)
          -3 : 7741.dasm (-0.28 % of base)
          -2 : 26235.dasm (-0.90 % of base)
          -2 : 18949.dasm (-1.36 % of base)
          -2 : 21949.dasm (-1.36 % of base)
          -2 : 22759.dasm (-0.90 % of base)
          -2 : 23617.dasm (-1.56 % of base)
          -2 : 25452.dasm (-1.36 % of base)
          -2 : 3261.dasm (-0.79 % of base)
          -2 : 6861.dasm (-1.77 % of base)
          -2 : 19209.dasm (-0.79 % of base)
          -2 : 19761.dasm (-0.90 % of base)

46 total files with Code Size differences (25 improved, 21 regressed), 20 unchanged.

Top method regressions (bytes):
          55 (3.08 % of base) : 6386.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
          43 (2.18 % of base) : 5172.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
          34 (1.59 % of base) : 18675.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          34 (1.59 % of base) : 21693.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          34 (1.59 % of base) : 2923.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          34 (1.59 % of base) : 25180.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          32 (2.12 % of base) : 7102.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (FullOpts)
          20 (4.93 % of base) : 7665.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
          18 (12.95 % of base) : 7023.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
          18 (12.86 % of base) : 23413.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
          16 (1.32 % of base) : 1979.dasm - System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly:UncachedGetTypeCoreCaseSensitive(System.String):System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo:this (FullOpts)
          15 (3.76 % of base) : 8785.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
          15 (0.92 % of base) : 7907.dasm - System.IO.KeyParser:TryParseTerminalInputSequence(ushort[],System.TerminalFormatStrings,byref,byref,int):ubyte (FullOpts)
          14 (1.47 % of base) : 8187.dasm - System.TimeZoneInfo:EnumerateFilesRecursively(System.String,System.Predicate`1[System.String]) (FullOpts)
          13 (3.71 % of base) : 7652.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
          13 (1.67 % of base) : 6162.dasm - System.Collections.Generic.Dictionary`2[int,int]:TryInsert(int,int,ubyte):ubyte:this (FullOpts)
          12 (2.88 % of base) : 16144.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
          12 (0.75 % of base) : 8059.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:FindValue(System.ReadOnlyMemory`1[ushort]):byref:this (FullOpts)
          11 (2.74 % of base) : 6864.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (FullOpts)
          10 (2.69 % of base) : 7653.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)

Top method improvements (bytes):
         -25 (-1.16 % of base) : 19783.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:TryInsert(System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo,ubyte):ubyte:this (FullOpts)
         -25 (-1.16 % of base) : 22781.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:TryInsert(System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo,ubyte):ubyte:this (FullOpts)
         -25 (-1.16 % of base) : 26253.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:TryInsert(System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo,ubyte):ubyte:this (FullOpts)
         -25 (-1.16 % of base) : 8098.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:TryInsert(System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo,ubyte):ubyte:this (FullOpts)
          -8 (-0.98 % of base) : 8686.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:TryInsert(int,System.__Canon,ubyte):ubyte:this (FullOpts)
          -6 (-3.06 % of base) : 23351.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -6 (-3.08 % of base) : 5723.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -4 (-0.48 % of base) : 16142.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (FullOpts)
          -4 (-0.20 % of base) : 6539.dasm - System.Threading.WaitSubsystem+WaitableObject:Wait(System.Threading.WaitSubsystem+WaitableObject[],int,ubyte,System.Threading.WaitSubsystem+ThreadWaitInfo,int,ubyte,ubyte):int (FullOpts)
          -3 (-0.28 % of base) : 7741.dasm - System.Reflection.TypeNameParser:GetType(System.String,System.ReadOnlySpan`1[System.String],System.String):System.Type:this (FullOpts)
          -2 (-1.77 % of base) : 6861.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.36 % of base) : 18949.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.36 % of base) : 21949.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.36 % of base) : 25452.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.36 % of base) : 2330.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-0.90 % of base) : 26235.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:MoveNext():ubyte:this (FullOpts)
          -2 (-0.90 % of base) : 22759.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:MoveNext():ubyte:this (FullOpts)
          -2 (-0.90 % of base) : 19761.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.77 % of base) : 2337.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.77 % of base) : 5537.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)

Top method regressions (percentages):
          18 (12.95 % of base) : 7023.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
          18 (12.86 % of base) : 23413.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
          20 (4.93 % of base) : 7665.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
          15 (3.76 % of base) : 8785.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
          13 (3.71 % of base) : 7652.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
          55 (3.08 % of base) : 6386.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
          12 (2.88 % of base) : 16144.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
          11 (2.74 % of base) : 6864.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (FullOpts)
          10 (2.69 % of base) : 7653.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
          43 (2.18 % of base) : 5172.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
          32 (2.12 % of base) : 7102.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (FullOpts)
          13 (1.67 % of base) : 6162.dasm - System.Collections.Generic.Dictionary`2[int,int]:TryInsert(int,int,ubyte):ubyte:this (FullOpts)
          34 (1.59 % of base) : 18675.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          34 (1.59 % of base) : 21693.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          34 (1.59 % of base) : 2923.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          34 (1.59 % of base) : 25180.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          14 (1.47 % of base) : 8187.dasm - System.TimeZoneInfo:EnumerateFilesRecursively(System.String,System.Predicate`1[System.String]) (FullOpts)
          16 (1.32 % of base) : 1979.dasm - System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly:UncachedGetTypeCoreCaseSensitive(System.String):System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo:this (FullOpts)
          15 (0.92 % of base) : 7907.dasm - System.IO.KeyParser:TryParseTerminalInputSequence(ushort[],System.TerminalFormatStrings,byref,byref,int):ubyte (FullOpts)
          12 (0.75 % of base) : 8059.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:FindValue(System.ReadOnlyMemory`1[ushort]):byref:this (FullOpts)

Top method improvements (percentages):
          -6 (-3.08 % of base) : 5723.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -6 (-3.06 % of base) : 23351.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -2 (-2.22 % of base) : 23622.dasm - System.Globalization.CompareInfo:IndexOf(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -2 (-1.77 % of base) : 6861.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.77 % of base) : 2337.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.77 % of base) : 5537.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.56 % of base) : 23617.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -2 (-1.36 % of base) : 18949.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.36 % of base) : 21949.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.36 % of base) : 25452.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.36 % of base) : 2330.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -25 (-1.16 % of base) : 19783.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:TryInsert(System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo,ubyte):ubyte:this (FullOpts)
         -25 (-1.16 % of base) : 22781.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:TryInsert(System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo,ubyte):ubyte:this (FullOpts)
         -25 (-1.16 % of base) : 26253.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:TryInsert(System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo,ubyte):ubyte:this (FullOpts)
         -25 (-1.16 % of base) : 8098.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:TryInsert(System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo,ubyte):ubyte:this (FullOpts)
          -8 (-0.98 % of base) : 8686.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:TryInsert(int,System.__Canon,ubyte):ubyte:this (FullOpts)
          -2 (-0.90 % of base) : 26235.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:MoveNext():ubyte:this (FullOpts)
          -2 (-0.90 % of base) : 22759.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:MoveNext():ubyte:this (FullOpts)
          -2 (-0.90 % of base) : 19761.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:MoveNext():ubyte:this (FullOpts)
          -2 (-0.79 % of base) : 3261.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)



osx arm64

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

MISSED contexts: base: 3,201 (0.14%), diff: 3,256 (0.14%)

Overall (+444,156 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch 11,178,424 -64
benchmarks.run_pgo.osx.arm64.checked.mch 34,559,052 +112,220
benchmarks.run_tiered.osx.arm64.checked.mch 15,557,856 +32
coreclr_tests.run.osx.arm64.checked.mch 485,344,932 +36,308
libraries.crossgen2.osx.arm64.checked.mch 55,620,496 +1,608
libraries.pmi.osx.arm64.checked.mch 79,954,588 +888
libraries_tests.run.osx.arm64.Release.mch 312,735,908 +167,732
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 160,786,940 +124,140
realworld.run.osx.arm64.checked.mch 15,071,220 +1,292

FullOpts (+444,156 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch 11,177,888 -64
benchmarks.run_pgo.osx.arm64.checked.mch 18,085,772 +112,220
benchmarks.run_tiered.osx.arm64.checked.mch 4,042,780 +32
coreclr_tests.run.osx.arm64.checked.mch 153,038,476 +36,308
libraries.crossgen2.osx.arm64.checked.mch 55,618,868 +1,608
libraries.pmi.osx.arm64.checked.mch 79,833,460 +888
libraries_tests.run.osx.arm64.Release.mch 108,795,404 +167,732
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 147,649,412 +124,140
realworld.run.osx.arm64.checked.mch 14,502,816 +1,292

Example diffs

benchmarks.run.osx.arm64.checked.mch

-12 (-3.33%) : 1602.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)

@@ -35,10 +35,10 @@ G_M17703_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             mov     w20, w1
                        ;; size=28 bbWeight=1 PerfScore 5.00
 G_M17703_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
-            tbnz    w20, #31, G_M17703_IG10
+            tbnz    w20, #31, G_M17703_IG08
             fmov    s16, #1.0000
             fcmp    s8, s16
-            blo     G_M17703_IG11
+            blo     G_M17703_IG09
                        ;; size=16 bbWeight=1 PerfScore 3.50
 G_M17703_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             fmov    s16, #1.0000
@@ -48,31 +48,24 @@ G_M17703_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
             fcmp    s8, s16
             beq     G_M17703_IG04
             fcmp    s8, s8
-            bne     G_M17703_IG11
+            bne     G_M17703_IG09
                        ;; size=32 bbWeight=0.50 PerfScore 3.50
 G_M17703_IG04:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             fmov    s16, #10.0000
             fcmp    s8, s16
-            bhs     G_M17703_IG06
+            blo     G_M17703_IG06
                        ;; size=12 bbWeight=1 PerfScore 2.50
-G_M17703_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            b       G_M17703_IG08
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M17703_IG06:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M17703_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             fmov    s16, #10.0000
             fcmp    s8, s16
-            bgt     G_M17703_IG12
+            bgt     G_M17703_IG10
             fmov    s16, #10.0000
             fcmp    s8, s16
-            bne     G_M17703_IG07
-            b       G_M17703_IG08
-                       ;; size=28 bbWeight=0.50 PerfScore 3.00
-G_M17703_IG07:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            beq     G_M17703_IG06
             fcmp    s8, s8
-            beq     G_M17703_IG12
-            b       G_M17703_IG05
-                       ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M17703_IG08:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            beq     G_M17703_IG10
+                       ;; size=32 bbWeight=0.50 PerfScore 3.50
+G_M17703_IG06:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             sxtw    x1, w20
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
@@ -93,13 +86,13 @@ G_M17703_IG08:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             fcvtzs  w0, s16
             str     w0, [x19, #0x1C]
                        ;; size=56 bbWeight=1 PerfScore 15.00
-G_M17703_IG09:        ; bbWeight=1, epilog, nogc, extend
+G_M17703_IG07:        ; bbWeight=1, epilog, nogc, extend
             ldp     x19, x20, [sp, #0x20]
             ldr     d8, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=16 bbWeight=1 PerfScore 5.00
-G_M17703_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M17703_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19]
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
@@ -119,7 +112,7 @@ G_M17703_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; gcrRegs -[x1]
             brk_unix #0
                        ;; size=52 bbWeight=0 PerfScore 0.00
-G_M17703_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M17703_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -136,7 +129,7 @@ G_M17703_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             brk_unix #0
                        ;; size=52 bbWeight=0 PerfScore 0.00
-G_M17703_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M17703_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -156,7 +149,7 @@ G_M17703_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
 RWD00      dd  42C80000h       ;       100
 
 
-; Total bytes of code 360, prolog size 16, PerfScore 39.50, instruction count 90, allocated bytes for code 360 (MethodHash=aa62bad8) for method System.Collections.Queue:.ctor(int,float):this (FullOpts)
+; Total bytes of code 348, prolog size 16, PerfScore 38.00, instruction count 87, allocated bytes for code 348 (MethodHash=aa62bad8) for method System.Collections.Queue:.ctor(int,float):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -167,7 +160,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 90 (0x0005a) Actual length = 360 (0x000168)
+  Function Length   : 87 (0x00057) Actual length = 348 (0x00015c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.27%) : 5821.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)

@@ -58,9 +58,8 @@ G_M14385_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=000D {x0 x2 x3}
             cmp     w4, #110
             beq     G_M14385_IG11
             cmp     w4, #114
-            bne     G_M14385_IG09
-            b       G_M14385_IG07
-                       ;; size=20 bbWeight=2 PerfScore 8.00
+            beq     G_M14385_IG03
+                       ;; size=16 bbWeight=2 PerfScore 6.00
 G_M14385_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000D {x0 x2 x3}, byref, isz
             cmp     w4, #120
             bne     G_M14385_IG13
@@ -96,7 +95,7 @@ G_M14385_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 176, prolog size 8, PerfScore 40.50, instruction count 44, allocated bytes for code 176 (MethodHash=44f4c7ce) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
+; Total bytes of code 172, prolog size 8, PerfScore 38.50, instruction count 43, allocated bytes for code 172 (MethodHash=44f4c7ce) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -107,7 +106,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 44 (0x0002c) Actual length = 176 (0x0000b0)
+  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.27%) : 20514.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)

@@ -58,9 +58,8 @@ G_M14385_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=000D {x0 x2 x3}
             cmp     w4, #110
             beq     G_M14385_IG11
             cmp     w4, #114
-            bne     G_M14385_IG09
-            b       G_M14385_IG07
-                       ;; size=20 bbWeight=2 PerfScore 8.00
+            beq     G_M14385_IG03
+                       ;; size=16 bbWeight=2 PerfScore 6.00
 G_M14385_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000D {x0 x2 x3}, byref, isz
             cmp     w4, #120
             bne     G_M14385_IG13
@@ -96,7 +95,7 @@ G_M14385_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 176, prolog size 8, PerfScore 40.50, instruction count 44, allocated bytes for code 176 (MethodHash=44f4c7ce) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
+; Total bytes of code 172, prolog size 8, PerfScore 38.50, instruction count 43, allocated bytes for code 172 (MethodHash=44f4c7ce) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -107,7 +106,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 44 (0x0002c) Actual length = 176 (0x0000b0)
+  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+5.56%) : 22991.dasm - System.Collections.IterateForEach`1[System.Canon]:FrozenSet():System.Canon:this (FullOpts)

@@ -27,10 +27,10 @@
 ;  V16 tmp11        [V16,T02] (  3,  6   )     ref  ->   x1         single-def "argument with side effect"
 ;  V17 PSPSym       [V17,T10] (  1,  1   )    long  ->  [fp+0x30]  do-not-enreg[V] "PSPSym"
 ;* V18 cse0         [V18,T11] (  0,  0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;  V19 cse1         [V19,T09] (  5,  2.20)    long  ->   x2         hoist multi-def "CSE - aggressive"
-;* V20 rat0         [V20,T05] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V19 cse1         [V19,T09] (  6,  3.20)    long  ->   x2         hoist multi-def "CSE - aggressive"
+;  V20 rat0         [V20,T05] (  2,  4   )    long  ->   x1         "Spilling to split statement for tree"
 ;* V21 rat1         [V21,T08] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V22 rat2         [V22,T03] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V22 rat2         [V22,T03] (  2,  4   )    long  ->   x1         "fgMakeTemp is creating a new local variable"
 ;  V23 rat3         [V23,T04] (  3,  5.60)    long  ->   x3         "fgMakeTemp is creating a new local variable"
 ;  V24 rat4         [V24,T12] (  3,  0   )    long  ->   x2         "Spilling to split statement for tree"
 ;  V25 rat5         [V25,T13] (  3,  0   )    long  ->   x3         "fgMakeTemp is creating a new local variable"
@@ -62,13 +62,18 @@ G_M17622_IG02:        ; bbWeight=1, gcVars=0000000000000002 {V00}, gcrefRegs=000
             ; gcr arg pop 0
             stp     x0, x1, [fp, #0x18]    // [V03 loc2], [V03 loc2+0x08]
                        ;; size=32 bbWeight=1 PerfScore 15.00
-G_M17622_IG03:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M17622_IG03:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             ldr     x0, [fp, #0x10]    // [V00 this]
             ; gcrRegs +[x0]
             ldr     x2, [x0]
+            mov     x1, x2
+            ldr     x1, [x1, #0x38]
+            ldr     x1, [x1]
+            ldr     x1, [x1, #0x20]
+            cbnz    x1, G_M17622_IG05
             b       G_M17622_IG05
-                       ;; size=12 bbWeight=1 PerfScore 6.00
+                       ;; size=32 bbWeight=1 PerfScore 16.50
 G_M17622_IG04:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0 x19]
             ldr     w1, [fp, #0x20]    // [V13 tmp8]
@@ -200,7 +205,7 @@ G_M17622_IG19:        ; bbWeight=0, funclet epilog, nogc, extend
             ret     lr
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 360, prolog size 28, PerfScore 217.50, instruction count 90, allocated bytes for code 360 (MethodHash=5937bb29) for method System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
+; Total bytes of code 380, prolog size 28, PerfScore 228.00, instruction count 95, allocated bytes for code 380 (MethodHash=5937bb29) for method System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -211,7 +216,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 68 (0x00044) Actual length = 272 (0x000110)
+  Function Length   : 73 (0x00049) Actual length = 292 (0x000124)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+12 (+7.69%) : 15218.dasm - System.Collections.Generic.PriorityQueue2[int,int]:MoveUpDefaultComparer(System.ValueTuple2[int,int],int):this (FullOpts)

@@ -16,11 +16,11 @@
 ;* V05 loc2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    <System.ValueTuple`2[int,int]>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V08 tmp2         [V08,T03] (  2, 16   )     int  ->   x7         ld-addr-op "Inlining Arg"
+;  V08 tmp2         [V08,T03] (  3, 20   )     int  ->   x7         ld-addr-op "Inlining Arg"
 ;* V09 tmp3         [V09    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V10 tmp4         [V10,T10] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V11 tmp5         [V11,T08] (  2,  8   )     int  ->   x6         "field V05.Item1 (fldOffset=0x0)" P-INDEP
-;  V12 tmp6         [V12,T05] (  3, 12   )     int  ->   x5         "field V05.Item2 (fldOffset=0x4)" P-INDEP
+;  V12 tmp6         [V12,T05] (  4, 14   )     int  ->   x5         "field V05.Item2 (fldOffset=0x4)" P-INDEP
 ;  V13 tmp7         [V13,T01] (  3, 24   )   byref  ->   x5         "BlockOp address local"
 ;  V14 tmp8         [V14,T02] (  3, 24   )   byref  ->   x2         "BlockOp address local"
 ;  V15 cse0         [V15,T07] (  5, 11   )     int  ->   x1         hoist multi-def "CSE - aggressive"
@@ -37,7 +37,7 @@ G_M9068_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x0]
             ldr     x0, [x0, #0x08]
             cmp     w2, #0
-            ble     G_M9068_IG04
+            ble     G_M9068_IG06
             ldr     w1, [x0, #0x08]
             ldr     w3, [fp, #0x1C]    // [V01 arg1+0x04]
                        ;; size=20 bbWeight=1 PerfScore 9.50
@@ -45,7 +45,7 @@ G_M9068_IG03:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             sub     w4, w2, #1
             asr     w4, w4, #2
             cmp     w4, w1
-            bhs     G_M9068_IG06
+            bhs     G_M9068_IG08
             ubfiz   x5, x4, #3, #32
             add     x5, x5, #16
             add     x5, x0, x5
@@ -54,9 +54,16 @@ G_M9068_IG03:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; byrRegs -[x5]
             sxtw    w7, w3
             cmp     w7, w5
-            bge     G_M9068_IG04
+            blt     G_M9068_IG05
+                       ;; size=44 bbWeight=4 PerfScore 40.00
+G_M9068_IG04:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+            cmp     w7, w5
+            ble     G_M9068_IG06
+            b       G_M9068_IG06
+                       ;; size=12 bbWeight=2 PerfScore 5.00
+G_M9068_IG05:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             cmp     w2, w1
-            bhs     G_M9068_IG06
+            bhs     G_M9068_IG08
             ubfiz   x2, x2, #3, #32
             add     x2, x2, #16
             add     x2, x0, x2
@@ -66,28 +73,28 @@ G_M9068_IG03:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; byrRegs -[x2]
             cmp     w2, #0
             bgt     G_M9068_IG03
-                       ;; size=80 bbWeight=4 PerfScore 66.00
-G_M9068_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+                       ;; size=36 bbWeight=4 PerfScore 26.00
+G_M9068_IG06:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ldr     w1, [x0, #0x08]
             cmp     w2, w1
-            bhs     G_M9068_IG06
+            bhs     G_M9068_IG08
             ubfiz   x1, x2, #3, #32
             add     x1, x1, #16
             ldr     x2, [fp, #0x18]    // [V01 arg1]
             str     x2, [x0, x1]
                        ;; size=28 bbWeight=1 PerfScore 9.00
-G_M9068_IG05:        ; bbWeight=1, epilog, nogc, extend
+G_M9068_IG07:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M9068_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M9068_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 156, prolog size 12, PerfScore 89.00, instruction count 39, allocated bytes for code 156 (MethodHash=d4dadc93) for method System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
+; Total bytes of code 168, prolog size 12, PerfScore 94.00, instruction count 42, allocated bytes for code 168 (MethodHash=d4dadc93) for method System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -98,7 +105,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 39 (0x00027) Actual length = 156 (0x00009c)
+  Function Length   : 42 (0x0002a) Actual length = 168 (0x0000a8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+14.29%) : 22093.dasm - System.Collections.IterateForEach`1[System.Canon]:ImmutableStack():System.Canon:this (FullOpts)

@@ -8,7 +8,7 @@
 ; 0 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  3,  3   )     ref  ->  x19         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+;  V00 this         [V00,T01] (  4,  4   )     ref  ->  x19         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
 ;  V01 loc0         [V01,T04] (  3,  4   )     ref  ->  x20         ld-addr-op class-hnd <System.__Canon>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
 ;* V03 loc2         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op single-def <System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]>
@@ -23,21 +23,22 @@
 ;  V12 tmp7         [V12,T06] (  2,  3   )     ref  ->  x21         "field V03._originalStack (fldOffset=0x0)" P-INDEP
 ;  V13 tmp8         [V13,T00] (  8, 27   )     ref  ->  x22         "field V03._remainingStack (fldOffset=0x8)" P-INDEP
 ;* V14 cse0         [V14,T07] (  0,  0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;* V15 rat0         [V15,T03] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V15 rat0         [V15,T03] (  2,  4   )    long  ->   x0         "Spilling to split statement for tree"
 ;* V16 rat1         [V16,T05] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V17 rat2         [V17,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V17 rat2         [V17,T02] (  2,  4   )    long  ->   x0         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M64146_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
+            stp     fp, lr, [sp, #-0x40]!
+            stp     x19, x20, [sp, #0x20]
+            stp     x21, x22, [sp, #0x30]
             mov     fp, sp
+            str     x0, [fp, #0x18]
             mov     x19, x0
             ; gcrRegs +[x19]
-                       ;; size=20 bbWeight=1 PerfScore 4.00
-G_M64146_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+                       ;; size=24 bbWeight=1 PerfScore 5.00
+G_M64146_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             mov     x20, xzr
             ; gcrRegs +[x20]
             ldr     x0, [x19, #0xA0]
@@ -53,10 +54,16 @@ G_M64146_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             ; gcrRegs +[x21]
             mov     x22, x1
             ; gcrRegs +[x22]
+            ldr     x0, [x19]
+            ; gcrRegs -[x0]
+            ldr     x0, [x0, #0x38]
+            ldr     x0, [x0]
+            ldr     x0, [x0, #0x20]
+            cbnz    x0, G_M64146_IG04
             b       G_M64146_IG04
-                       ;; size=44 bbWeight=1 PerfScore 14.00
+                       ;; size=64 bbWeight=1 PerfScore 27.00
 G_M64146_IG03:        ; bbWeight=2, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0-x1 x20]
+            ; gcrRegs -[x1 x20]
             mov     x0, x22
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for System.Collections.Immutable.ImmutableStack`1[System.__Canon]:Peek():System.__Canon:this
@@ -103,13 +110,13 @@ G_M64146_IG08:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ; gcrRegs +[x0]
                        ;; size=4 bbWeight=1 PerfScore 0.50
 G_M64146_IG09:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
-            ldp     fp, lr, [sp], #0x30
+            ldp     x21, x22, [sp, #0x30]
+            ldp     x19, x20, [sp, #0x20]
+            ldp     fp, lr, [sp], #0x40
             ret     lr
                        ;; size=16 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 168, prolog size 16, PerfScore 99.50, instruction count 42, allocated bytes for code 168 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
+; Total bytes of code 192, prolog size 20, PerfScore 113.50, instruction count 48, allocated bytes for code 192 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -120,7 +127,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 42 (0x0002a) Actual length = 168 (0x0000a8)
+  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -129,8 +136,8 @@ Unwind Info:
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
     E6          save_next
-    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    C8 04       save_regp X#0 Z#4 (0x04); stp x19, x20, [sp, #32]
+    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
     E4          end
     E4          end

benchmarks.run_pgo.osx.arm64.checked.mch

-8 (-11.11%) : 15703.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)

@@ -17,7 +17,7 @@
 ;
 ; Lcl frame size = 0
 
-G_M57887_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M57887_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
@@ -25,8 +25,14 @@ G_M57887_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ; gcrRegs +[x0]
             ldr     x2, [x0, #0x18]
             ; gcrRegs +[x2]
-            cbnz    x2, G_M57887_IG05
-                       ;; size=8 bbWeight=1 PerfScore 4.00
+            cbz     x2, G_M57887_IG03
+            tst     w1, #255
+            bne     G_M57887_IG05
+            ldr     w1, [x2, #0x5C]
+            and     w1, w1, #7
+            cmp     w1, #6
+            beq     G_M57887_IG05
+                       ;; size=32 bbWeight=1 PerfScore 10.50
 G_M57887_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0 x2]
             mov     x0, xzr
@@ -35,33 +41,16 @@ G_M57887_IG04:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M57887_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x0 x2]
-            tst     w1, #255
-            beq     G_M57887_IG07
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M57887_IG06:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2]
-            b       G_M57887_IG08
-                       ;; size=4 bbWeight=0 PerfScore 0.00
-G_M57887_IG07:        ; bbWeight=1, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x2]
-            ldr     w1, [x2, #0x5C]
-            and     w1, w1, #7
-            cmp     w1, #6
-            beq     G_M57887_IG08
-            b       G_M57887_IG03
-                       ;; size=20 bbWeight=1 PerfScore 6.00
-G_M57887_IG08:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2]
+G_M57887_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x0]
             ldr     x0, [x0, #0x18]
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M57887_IG09:        ; bbWeight=0, epilog, nogc, extend
+G_M57887_IG06:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 72, prolog size 8, PerfScore 13.00, instruction count 18, allocated bytes for code 72 (MethodHash=f3d51de0) for method System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
+; Total bytes of code 64, prolog size 8, PerfScore 12.00, instruction count 16, allocated bytes for code 64 (MethodHash=f3d51de0) for method System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -72,7 +61,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-8.82%) : 58606.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (Tier1)

@@ -16,7 +16,7 @@
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05,T04] (  0,  0   )     int  ->  zero-ref   
 ;  V06 tmp2         [V06,T05] (  2,  0   )     int  ->   x1         "Single return block return value"
-;  V07 cse0         [V07,T03] (  5,  4   )     int  ->   x0         "CSE - aggressive"
+;  V07 cse0         [V07,T03] (  4,  4   )     int  ->   x0         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -28,64 +28,54 @@ G_M62058_IG02:        ; bbWeight=1, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, b
             ; gcrRegs +[x2-x3]
             ldrb    w0, [x2, #0x12]
             cmp     w0, #162
-            bne     G_M62058_IG05
-                       ;; size=12 bbWeight=1 PerfScore 4.50
-G_M62058_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2-x3]
-            mov     w0, wzr
-                       ;; size=4 bbWeight=0 PerfScore 0.00
-G_M62058_IG04:        ; bbWeight=0, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0 PerfScore 0.00
-G_M62058_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x3]
+            beq     G_M62058_IG07
             ldrb    w2, [x3, #0x12]
+            ; gcrRegs -[x2]
             cmp     w2, #162
-            beq     G_M62058_IG03
+            beq     G_M62058_IG07
             mov     w2, #0xD1FFAB1E
             cmp     w1, w2
-            beq     G_M62058_IG09
+            beq     G_M62058_IG04
             mov     w2, #0xD1FFAB1E
             cmp     w1, w2
-            bne     G_M62058_IG07
-                       ;; size=36 bbWeight=1 PerfScore 8.50
-G_M62058_IG06:        ; bbWeight=0, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, byref, isz
+            beq     G_M62058_IG04
             cmp     w0, #65
-            bne     G_M62058_IG10
-            b       G_M62058_IG08
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M62058_IG07:        ; bbWeight=1, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, byref, isz
-            cmp     w0, #65
-            beq     G_M62058_IG03
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M62058_IG08:        ; bbWeight=0, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, byref
+            beq     G_M62058_IG07
+                       ;; size=56 bbWeight=1 PerfScore 14.50
+G_M62058_IG03:        ; bbWeight=0, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, byref
             ldrb    w0, [x3, #0x12]
             cmp     w0, #65
             cset    x1, ne
-            b       G_M62058_IG12
+            b       G_M62058_IG09
                        ;; size=16 bbWeight=0 PerfScore 0.00
-G_M62058_IG09:        ; bbWeight=1, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, byref, isz
+G_M62058_IG04:        ; bbWeight=1, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, byref, isz
             cmp     w0, #65
-            beq     G_M62058_IG08
+            beq     G_M62058_IG03
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M62058_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M62058_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x3]
             mov     w0, #1
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M62058_IG11:        ; bbWeight=0, epilog, nogc, extend
+G_M62058_IG06:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M62058_IG12:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M62058_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            mov     w0, wzr
+                       ;; size=4 bbWeight=0 PerfScore 0.00
+G_M62058_IG08:        ; bbWeight=0, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M62058_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             uxtb    w0, w1
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M62058_IG13:        ; bbWeight=0, epilog, nogc, extend
+G_M62058_IG10:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 136, prolog size 8, PerfScore 17.50, instruction count 34, allocated bytes for code 136 (MethodHash=30f60d95) for method Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (Tier1)
+; Total bytes of code 124, prolog size 8, PerfScore 17.50, instruction count 31, allocated bytes for code 124 (MethodHash=30f60d95) for method Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -96,7 +86,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 34 (0x00022) Actual length = 136 (0x000088)
+  Function Length   : 31 (0x0001f) Actual length = 124 (0x00007c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-8.70%) : 31675.dasm - Microsoft.Win32.SafeHandles.SafePasswordHandle:DangerousGetSpan():System.ReadOnlySpan`1[ushort]:this (Tier1)

@@ -12,57 +12,51 @@
 ;  V00 this         [V00,T00] (  4,  4   )     ref  ->   x0         this class-hnd single-def <Microsoft.Win32.SafeHandles.SafePasswordHandle>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op <System.ReadOnlySpan`1[ushort]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T03] (  2,  4   )    long  ->   x1         "impAppendStmt"
+;  V03 tmp1         [V03,T03] (  2,  4   )    long  ->   x2         "impAppendStmt"
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V05 tmp3         [V05,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V06 tmp4         [V06    ] (  0,  0   )    long  ->  zero-ref    ld-addr-op "NewObj constructor temp"
 ;* V07 tmp5         [V07    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
-;  V08 tmp6         [V08,T01] (  3,  6   )     int  ->   x0         "Inlining Arg"
-;  V09 tmp7         [V09,T07] (  2,  0   )   byref  ->   x0         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V10 tmp8         [V10,T08] (  2,  0   )     int  ->   x1         "field V01._length (fldOffset=0x8)" P-INDEP
-;  V11 tmp9         [V11,T04] (  2,  2   )   byref  ->  registers   single-def "field V04._reference (fldOffset=0x0)" P-INDEP
-;  V12 tmp10        [V12,T05] (  2,  2   )     int  ->  [fp+0x1C]  spill-single-def "field V04._length (fldOffset=0x8)" P-INDEP
-;  V13 cse0         [V13,T02] (  4,  4   )    long  ->   x1         "CSE - aggressive"
+;  V08 tmp6         [V08,T01] (  3,  6   )     int  ->   x1         "Inlining Arg"
+;  V09 tmp7         [V09,T07] (  2,  2   )   byref  ->   x0         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V10 tmp8         [V10,T08] (  2,  2   )     int  ->   x1         "field V01._length (fldOffset=0x8)" P-INDEP
+;  V11 tmp9         [V11,T04] (  2,  2   )   byref  ->   x0         single-def "field V04._reference (fldOffset=0x0)" P-INDEP
+;  V12 tmp10        [V12,T05] (  2,  2   )     int  ->   x1         "field V04._length (fldOffset=0x8)" P-INDEP
+;  V13 cse0         [V13,T02] (  4,  4   )    long  ->   x2         "CSE - aggressive"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 0
 
 G_M8313_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x20]!
+            stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M8313_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
-            ldr     x1, [x0, #0x10]
-            cbz     x1, G_M8313_IG03
-            cmn     x1, #1
-            bne     G_M8313_IG05
-                       ;; size=16 bbWeight=1 PerfScore 5.50
-G_M8313_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ldr     x2, [x0, #0x10]
+            cbz     x2, G_M8313_IG04
+            cmn     x2, #1
+            beq     G_M8313_IG04
+            ldr     w1, [x0, #0x20]
+            tbnz    w1, #31, G_M8313_IG06
+            mov     x0, x2
             ; gcrRegs -[x0]
+            ; byrRegs +[x0]
+                       ;; size=28 bbWeight=1 PerfScore 10.00
+G_M8313_IG03:        ; bbWeight=1, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=1 PerfScore 2.00
+G_M8313_IG04:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; byrRegs -[x0]
             mov     x0, xzr
             ; byrRegs +[x0]
             mov     w1, wzr
-                       ;; size=8 bbWeight=0 PerfScore 0.00
-G_M8313_IG04:        ; bbWeight=0, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x20
-            ret     lr
-                       ;; size=8 bbWeight=0 PerfScore 0.00
-G_M8313_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     w0, [x0, #0x20]
-            ; gcrRegs -[x0]
-            tbnz    w0, #31, G_M8313_IG07
-            str     w0, [fp, #0x1C]    // [V12 tmp10]
-            mov     x0, x1
-            ; byrRegs +[x0]
-            ldr     w1, [fp, #0x1C]    // [V12 tmp10]
-                       ;; size=20 bbWeight=1 PerfScore 7.50
-G_M8313_IG06:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x20
+                       ;; size=8 bbWeight=1 PerfScore 1.00
+G_M8313_IG05:        ; bbWeight=1, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M8313_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M8313_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; byrRegs -[x0]
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
             movk    x0, #0xD1FFAB1E LSL #16
@@ -72,7 +66,7 @@ G_M8313_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 92, prolog size 8, PerfScore 16.50, instruction count 23, allocated bytes for code 92 (MethodHash=9b71df86) for method Microsoft.Win32.SafeHandles.SafePasswordHandle:DangerousGetSpan():System.ReadOnlySpan`1[ushort]:this (Tier1)
+; Total bytes of code 84, prolog size 8, PerfScore 16.50, instruction count 21, allocated bytes for code 84 (MethodHash=9b71df86) for method Microsoft.Win32.SafeHandles.SafePasswordHandle:DangerousGetSpan():System.ReadOnlySpan`1[ushort]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -83,7 +77,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 23 (0x00017) Actual length = 92 (0x00005c)
+  Function Length   : 21 (0x00015) Actual length = 84 (0x000054)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -94,7 +88,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    81          save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
     E4          end
     E4          end
 

+24 (+17.65%) : 15718.dasm - System.RuntimeMethodHandle:GetSlot(System.IRuntimeMethodInfo):int (Tier1)

@@ -7,7 +7,7 @@
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  7,  5.50)     ref  ->  x19         class-hnd single-def <System.IRuntimeMethodInfo>
+;  V00 arg0         [V00,T00] (  8,  5.50)     ref  ->  x19         class-hnd single-def <System.IRuntimeMethodInfo>
 ;  V01 loc0         [V01,T01] (  2,  2   )     int  ->   x0        
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  1.50)    long  ->   x0         "guarded devirt return temp"
@@ -27,9 +27,26 @@ G_M43191_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[x19]
                        ;; size=16 bbWeight=1 PerfScore 3.00
 G_M43191_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
-            cbnz    x19, G_M43191_IG04
+            cbz     x19, G_M43191_IG06
+            ldr     x0, [x19]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #1 LSL #32
+            cmp     x0, x1
+            bne     G_M43191_IG07
+                       ;; size=28 bbWeight=1 PerfScore 7.00
+G_M43191_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+            ldr     x0, [x19, #0x50]
+                       ;; size=4 bbWeight=0.50 PerfScore 1.50
+G_M43191_IG04:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+            bl      <unknown method>
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M43191_IG03:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M43191_IG05:        ; bbWeight=1, epilog, nogc, extend
+            ldr     x19, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=1 PerfScore 4.00
+G_M43191_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
@@ -41,27 +58,14 @@ G_M43191_IG03:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-                       ;; size=44 bbWeight=0 PerfScore 0.00
-G_M43191_IG04:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [x19]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #1 LSL #32
-            cmp     x0, x1
-            bne     G_M43191_IG08
-                       ;; size=24 bbWeight=1 PerfScore 6.00
-G_M43191_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            ldr     x0, [x19, #0x50]
-                       ;; size=4 bbWeight=0.50 PerfScore 1.50
-G_M43191_IG06:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            bl      <unknown method>
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M43191_IG07:        ; bbWeight=1, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
-            ret     lr
-                       ;; size=12 bbWeight=1 PerfScore 4.00
-G_M43191_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+            movz    x11, #0xD1FFAB1E
+            movk    x11, #0xD1FFAB1E LSL #16
+            movk    x11, #1 LSL #32
+            cmp     x0, x11
+            beq     G_M43191_IG03
+                       ;; size=68 bbWeight=0 PerfScore 0.00
+G_M43191_IG07:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             mov     x0, x19
             ; gcrRegs +[x0]
             movz    x11, #0xD1FFAB1E      // code for <unknown method>
@@ -70,10 +74,10 @@ G_M43191_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000
             ldr     x1, [x11]
             blr     x1
             ; gcrRegs -[x0]
-            b       G_M43191_IG06
+            b       G_M43191_IG04
                        ;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 136, prolog size 12, PerfScore 16.50, instruction count 34, allocated bytes for code 136 (MethodHash=d2705748) for method System.RuntimeMethodHandle:GetSlot(System.IRuntimeMethodInfo):int (Tier1)
+; Total bytes of code 160, prolog size 12, PerfScore 16.50, instruction count 40, allocated bytes for code 160 (MethodHash=d2705748) for method System.RuntimeMethodHandle:GetSlot(System.IRuntimeMethodInfo):int (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -84,7 +88,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 34 (0x00022) Actual length = 136 (0x000088)
+  Function Length   : 40 (0x00028) Actual length = 160 (0x0000a0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+17.86%) : 57300.dasm - System.Collections.Immutable.ImmutableArray1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray1+Builder[System.__Canon]):this (Tier1)

@@ -9,13 +9,13 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  4   )     ref  ->  x19         this class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
-;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->   x1         class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
+;  V01 arg1         [V01,T00] (  6,  5   )     ref  ->   x1         class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V04 tmp2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.__Canon[]>
-;* V05 rat0         [V05,T03] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V05 rat0         [V05,T03] (  2,  4   )    long  ->   x2         "Spilling to split statement for tree"
 ;* V06 rat1         [V06,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V07 rat2         [V07,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V07 rat2         [V07,T02] (  2,  4   )    long  ->   x2         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -29,10 +29,36 @@ G_M61315_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=20 bbWeight=1 PerfScore 4.00
 G_M61315_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
-            ldr     xzr, [x19]
+            ldr     x2, [x19]
+            ldr     x2, [x2, #0x38]
+            ldr     x2, [x2]
+            ldr     x2, [x2, #0x88]
+            cbz     x2, G_M61315_IG06
+                       ;; size=20 bbWeight=1 PerfScore 13.00
+G_M61315_IG03:        ; bbWeight=0.80, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
+            cbz     x1, G_M61315_IG07
+                       ;; size=4 bbWeight=0.80 PerfScore 0.80
+G_M61315_IG04:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
+            ldr     w2, [x1, #0x10]
+            ldr     x1, [x1, #0x08]
+            mov     x0, x19
+            ; gcrRegs +[x0]
+            movz    x3, #0xD1FFAB1E      // code for System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.__Canon[],int):this
+            movk    x3, #0xD1FFAB1E LSL #16
+            movk    x3, #1 LSL #32
+            ldr     x3, [x3]
+                       ;; size=28 bbWeight=1 PerfScore 11.00
+G_M61315_IG05:        ; bbWeight=1, epilog, nogc, extend
+            ldr     x19, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x20
+            br      x3
+            ; gcr arg pop 0
+                       ;; size=12 bbWeight=1 PerfScore 4.00
+G_M61315_IG06:        ; bbWeight=0.20, gcVars=0000000000000000 {}, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[x0]
             cbnz    x1, G_M61315_IG04
-                       ;; size=8 bbWeight=1 PerfScore 4.00
-G_M61315_IG03:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+                       ;; size=4 bbWeight=0.20 PerfScore 0.20
+G_M61315_IG07:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
@@ -50,25 +76,8 @@ G_M61315_IG03:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             ; gcr arg pop 0
             brk_unix #0
                        ;; size=44 bbWeight=0 PerfScore 0.00
-G_M61315_IG04:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x1]
-            ldr     w2, [x1, #0x10]
-            ldr     x1, [x1, #0x08]
-            mov     x0, x19
-            ; gcrRegs +[x0]
-            movz    x3, #0xD1FFAB1E      // code for System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.__Canon[],int):this
-            movk    x3, #0xD1FFAB1E LSL #16
-            movk    x3, #1 LSL #32
-            ldr     x3, [x3]
-                       ;; size=28 bbWeight=1 PerfScore 11.00
-G_M61315_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
-            br      x3
-            ; gcr arg pop 0
-                       ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 112, prolog size 20, PerfScore 23.00, instruction count 28, allocated bytes for code 112 (MethodHash=e419107c) for method System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
+; Total bytes of code 132, prolog size 20, PerfScore 33.00, instruction count 33, allocated bytes for code 132 (MethodHash=e419107c) for method System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -79,7 +88,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
+  Function Length   : 33 (0x00021) Actual length = 132 (0x000084)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+18.52%) : 57433.dasm - System.Collections.Immutable.ImmutableHashSet1[System.__Canon]:Union(System.Collections.Generic.IEnumerable1[System.Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.Canon]:this (Tier1)

@@ -8,13 +8,13 @@
 ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  4   )     ref  ->  x19         this class-hnd single-def <System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]>
-;  V01 arg1         [V01,T01] (  4,  4   )     ref  ->   x1         class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.__Canon]>
+;  V00 this         [V00,T01] (  4,  4   )     ref  ->  x19         this class-hnd single-def <System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]>
+;  V01 arg1         [V01,T00] (  5,  4   )     ref  ->   x1         class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.__Canon]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V04 rat0         [V04,T03] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V04 rat0         [V04,T03] (  2,  4   )    long  ->   x0         "Spilling to split statement for tree"
 ;* V05 rat1         [V05,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V06 rat2         [V06,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V06 rat2         [V06,T02] (  2,  4   )    long  ->   x0         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -28,10 +28,35 @@ G_M52093_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=20 bbWeight=1 PerfScore 4.00
 G_M52093_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
-            ldr     xzr, [x19]
+            ldr     x0, [x19]
+            ldr     x0, [x0, #0x38]
+            ldr     x0, [x0]
+            ldr     x0, [x0, #0x80]
+            cbz     x0, G_M52093_IG06
+                       ;; size=20 bbWeight=1 PerfScore 13.00
+G_M52093_IG03:        ; bbWeight=0.80, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
+            cbz     x1, G_M52093_IG07
+                       ;; size=4 bbWeight=0.80 PerfScore 0.80
+G_M52093_IG04:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
+            mov     x0, x19
+            ; gcrRegs +[x0]
+            mov     w2, wzr
+            movz    x3, #0xD1FFAB1E      // code for System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon],ubyte):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this
+            movk    x3, #0xD1FFAB1E LSL #16
+            movk    x3, #1 LSL #32
+            ldr     x3, [x3]
+                       ;; size=24 bbWeight=1 PerfScore 5.50
+G_M52093_IG05:        ; bbWeight=1, epilog, nogc, extend
+            ldr     x19, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x20
+            br      x3
+            ; gcr arg pop 0
+                       ;; size=12 bbWeight=1 PerfScore 4.00
+G_M52093_IG06:        ; bbWeight=0.20, gcVars=0000000000000000 {}, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[x0]
             cbnz    x1, G_M52093_IG04
-                       ;; size=8 bbWeight=1 PerfScore 4.00
-G_M52093_IG03:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+                       ;; size=4 bbWeight=0.20 PerfScore 0.20
+G_M52093_IG07:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
@@ -49,24 +74,8 @@ G_M52093_IG03:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             ; gcr arg pop 0
             brk_unix #0
                        ;; size=44 bbWeight=0 PerfScore 0.00
-G_M52093_IG04:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x1]
-            mov     x0, x19
-            ; gcrRegs +[x0]
-            mov     w2, wzr
-            movz    x3, #0xD1FFAB1E      // code for System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon],ubyte):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this
-            movk    x3, #0xD1FFAB1E LSL #16
-            movk    x3, #1 LSL #32
-            ldr     x3, [x3]
-                       ;; size=24 bbWeight=1 PerfScore 5.50
-G_M52093_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
-            br      x3
-            ; gcr arg pop 0
-                       ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 108, prolog size 20, PerfScore 17.50, instruction count 27, allocated bytes for code 108 (MethodHash=22173482) for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
+; Total bytes of code 128, prolog size 20, PerfScore 27.50, instruction count 32, allocated bytes for code 128 (MethodHash=22173482) for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -77,7 +86,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 27 (0x0001b) Actual length = 108 (0x00006c)
+  Function Length   : 32 (0x00020) Actual length = 128 (0x000080)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

benchmarks.run_tiered.osx.arm64.checked.mch

-4 (-2.27%) : 24260.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier1)

@@ -58,9 +58,8 @@ G_M14385_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=000D {x0 x2 x3}
             cmp     w4, #110
             beq     G_M14385_IG11
             cmp     w4, #114
-            bne     G_M14385_IG09
-            b       G_M14385_IG07
-                       ;; size=20 bbWeight=2 PerfScore 8.00
+            beq     G_M14385_IG03
+                       ;; size=16 bbWeight=2 PerfScore 6.00
 G_M14385_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000D {x0 x2 x3}, byref, isz
             cmp     w4, #120
             bne     G_M14385_IG13
@@ -96,7 +95,7 @@ G_M14385_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 176, prolog size 8, PerfScore 40.50, instruction count 44, allocated bytes for code 176 (MethodHash=44f4c7ce) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier1)
+; Total bytes of code 172, prolog size 8, PerfScore 38.50, instruction count 43, allocated bytes for code 172 (MethodHash=44f4c7ce) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -107,7 +106,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 44 (0x0002c) Actual length = 176 (0x0000b0)
+  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.08%) : 19592.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)

@@ -72,9 +72,8 @@ G_M27287_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x14]
             ldr     w15, [x14, #0x0C]
             cmn     w15, #1
-            bge     G_M27287_IG07
-            b       G_M27287_IG03
-                       ;; size=60 bbWeight=2 PerfScore 45.00
+            blt     G_M27287_IG03
+                       ;; size=56 bbWeight=2 PerfScore 43.00
 G_M27287_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=4001 {x0 x14}, byref
             ldr     x15, [x14]
             ; gcrRegs +[x15]
@@ -102,7 +101,7 @@ G_M27287_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 192, prolog size 8, PerfScore 150.00, instruction count 48, allocated bytes for code 192 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
+; Total bytes of code 188, prolog size 8, PerfScore 148.00, instruction count 47, allocated bytes for code 188 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -113,7 +112,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
+  Function Length   : 47 (0x0002f) Actual length = 188 (0x0000bc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.04%) : 3163.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)

@@ -73,9 +73,8 @@ G_M25445_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x14]
             ldr     w15, [x14, #0x0C]
             cmn     w15, #1
-            bge     G_M25445_IG07
-            b       G_M25445_IG03
-                       ;; size=64 bbWeight=2 PerfScore 54.00
+            blt     G_M25445_IG03
+                       ;; size=60 bbWeight=2 PerfScore 52.00
 G_M25445_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=4001 {x0 x14}, byref
             ldr     x15, [x14]
             ; gcrRegs +[x15]
@@ -103,7 +102,7 @@ G_M25445_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 196, prolog size 8, PerfScore 159.00, instruction count 49, allocated bytes for code 196 (MethodHash=60f49c9a) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)
+; Total bytes of code 192, prolog size 8, PerfScore 157.00, instruction count 48, allocated bytes for code 192 (MethodHash=60f49c9a) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -114,7 +113,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 49 (0x00031) Actual length = 196 (0x0000c4)
+  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+12 (+2.75%) : 43978.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)

@@ -10,20 +10,20 @@
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <LinqBenchmarks>
-;  V01 loc0         [V01,T21] (  2,  4   )     ref  ->  x22         class-hnd <System.Collections.Generic.List`1[Product]>
-;  V02 loc1         [V02,T17] (  3, 17   )     int  ->  x21        
-;  V03 loc2         [V03,T15] (  3, 24   )     int  ->  x20        
-;  V04 loc3         [V04,T07] (  9, 66   )     ref  ->  x19         class-hnd exact <System.Collections.Generic.List`1[Product]>
-;  V05 loc4         [V05,T23] (  4,  1.03)  struct (24) [fp+0xA0]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+;  V01 loc0         [V01,T22] (  2,  4   )     ref  ->  x22         class-hnd <System.Collections.Generic.List`1[Product]>
+;  V02 loc1         [V02,T18] (  3, 17   )     int  ->  x21        
+;  V03 loc2         [V03,T16] (  3, 24   )     int  ->  x20        
+;  V04 loc3         [V04,T08] (  9, 66   )     ref  ->  x19         class-hnd exact <System.Collections.Generic.List`1[Product]>
+;  V05 loc4         [V05,T24] (  4,  1.03)  struct (24) [fp+0xA0]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
 ;* V06 loc5         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Product>
-;  V07 loc6         [V07,T24] (  1,  1   )  struct (24) [fp+0x80]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+;  V07 loc6         [V07,T25] (  1,  1   )  struct (24) [fp+0x80]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
 ;* V08 loc7         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Product>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T19] (  3, 12   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[Product]>
-;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    "OSR entry state var"
+;  V10 tmp1         [V10,T20] (  3, 12   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[Product]>
+;  V11 tmp2         [V11,T06] (  3, 72.01)     int  ->  x23         "OSR entry state var"
 ;* V12 tmp3         [V12    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
-;  V13 tmp4         [V13,T14] (  3, 24   )     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V14 tmp5         [V14,T11] (  4, 32   )     int  ->  x26         "Inline stloc first use temp"
+;  V13 tmp4         [V13,T15] (  3, 24   )     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V14 tmp5         [V14,T12] (  4, 32   )     int  ->  x23         "Inline stloc first use temp"
 ;  V15 tmp6         [V15,T04] (  3, 80   )   ubyte  ->   x1         "Inline return value spill temp"
 ;* V16 tmp7         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
 ;* V17 tmp8         [V17    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
@@ -32,24 +32,24 @@
 ;* V20 tmp11        [V20    ] (  0,  0   )     ref  ->  zero-ref    "field V12._list (fldOffset=0x0)" P-INDEP
 ;* V21 tmp12        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V12._current (fldOffset=0x8)" P-INDEP
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V12._index (fldOffset=0x10)" P-INDEP
-;  V23 tmp14        [V23,T22] (  2,  4   )     int  ->  x25         "field V12._version (fldOffset=0x14)" P-INDEP
+;  V23 tmp14        [V23,T23] (  2,  4   )     int  ->  x26         "field V12._version (fldOffset=0x14)" P-INDEP
 ;* V24 tmp15        [V24    ] (  0,  0   )     ref  ->  zero-ref    "field V17._list (fldOffset=0x0)" P-INDEP
 ;* V25 tmp16        [V25    ] (  0,  0   )     ref  ->  zero-ref    "field V17._current (fldOffset=0x8)" P-INDEP
 ;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V17._index (fldOffset=0x10)" P-INDEP
-;* V27 tmp18        [V27,T18] (  0,  0   )     int  ->  zero-ref    "field V17._version (fldOffset=0x14)" P-INDEP
-;  V28 tmp19        [V28,T02] (  5, 82.01)     ref  ->  x23         "V05.[000..008)"
-;  V29 tmp20        [V29,T10] (  5, 40   )     ref  ->   x2         "V05.[008..016)"
-;  V30 tmp21        [V30,T08] (  8, 50.01)     int  ->  x24         "V05.[016..020)"
-;  V31 tmp22        [V31,T06] (  3, 66.01)     int  ->  x25         "V05.[020..024)"
+;* V27 tmp18        [V27,T19] (  0,  0   )     int  ->  zero-ref    "field V17._version (fldOffset=0x14)" P-INDEP
+;  V28 tmp19        [V28,T02] (  5, 82.01)     ref  ->  x24         "V05.[000..008)"
+;  V29 tmp20        [V29,T11] (  5, 40   )     ref  ->   x2         "V05.[008..016)"
+;  V30 tmp21        [V30,T09] (  8, 50.01)     int  ->  x25         "V05.[016..020)"
+;  V31 tmp22        [V31,T07] (  3, 66.01)     int  ->  x26         "V05.[020..024)"
 ;  V32 tmp23        [V32,T03] (  3, 80   )     ref  ->  x19         "V07.[000..008)"
 ;* V33 tmp24        [V33    ] (  0,  0   )     ref  ->  zero-ref    "V07.[008..016)"
 ;  V34 tmp25        [V34,T01] (  6,104   )     int  ->   x0         "V07.[016..020)"
-;* V35 tmp26        [V35,T20] (  0,  0   )     int  ->  zero-ref    "V07.[020..024)"
-;  V36 tmp27        [V36,T09] (  3, 48   )     ref  ->   x1         "arr expr"
-;  V37 tmp28        [V37,T13] (  2, 32   )     ref  ->   x1         "arr expr"
-;  V38 cse0         [V38,T12] (  2, 16   )     int  ->   x1         multi-def "CSE - aggressive"
-;  V39 cse1         [V39,T16] (  3, 24   )     int  ->   x1         "CSE - moderate"
-;  V40 cse2         [V40,T00] (  5,152   )     int  ->  x26         multi-def "CSE - aggressive"
+;* V35 tmp26        [V35,T21] (  0,  0   )     int  ->  zero-ref    "V07.[020..024)"
+;  V36 tmp27        [V36,T10] (  3, 48   )     ref  ->   x1         "arr expr"
+;  V37 tmp28        [V37,T14] (  2, 32   )     ref  ->   x1         "arr expr"
+;  V38 cse0         [V38,T13] (  2, 16   )     int  ->   x1         multi-def "CSE - aggressive"
+;  V39 cse1         [V39,T17] (  3, 24   )     int  ->   x1         "CSE - moderate"
+;  V40 cse2         [V40,T00] (  5,152   )     int  ->  registers   multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -67,13 +67,14 @@ G_M25128_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ; gcrRegs +[x19]
                        ;; size=36 bbWeight=0.01 PerfScore 0.12
 G_M25128_IG02:        ; bbWeight=0.01, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
-            ldr     x23, [fp, #0xA0]   // [V05 loc4]
-            ; gcrRegs +[x23]
-            ldp     w24, w25, [fp, #0xB0]  // [V05 loc4+0x10], [V05 loc4+0x14]
-            b       G_M25128_IG06
-                       ;; size=12 bbWeight=0.01 PerfScore 0.05
+            mov     w23, wzr
+            ldr     x24, [fp, #0xA0]   // [V05 loc4]
+            ; gcrRegs +[x24]
+            ldp     w25, w26, [fp, #0xB0]  // [V05 loc4+0x10], [V05 loc4+0x14]
+            b       G_M25128_IG04
+                       ;; size=16 bbWeight=0.01 PerfScore 0.06
 G_M25128_IG03:        ; bbWeight=2, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x19 x23]
+            ; gcrRegs -[x19 x24]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
@@ -87,27 +88,30 @@ G_M25128_IG03:        ; bbWeight=2, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, b
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
             str     x0, [x19, #0x08]
-            ldr     w25, [x22, #0x14]
-            mov     x23, x22
-            ; gcrRegs +[x23]
-            mov     w24, wzr
-            b       G_M25128_IG06
-                       ;; size=52 bbWeight=2 PerfScore 21.00
-G_M25128_IG04:        ; bbWeight=8, gcrefRegs=C80004 {x2 x19 x22 x23}, byrefRegs=0000 {}, byref, isz
+            ldr     w26, [x22, #0x14]
+            mov     x24, x22
+            ; gcrRegs +[x24]
+            mov     w25, wzr
+                       ;; size=48 bbWeight=2 PerfScore 19.00
+G_M25128_IG04:        ; bbWeight=8, gcrefRegs=1480000 {x19 x22 x24}, byrefRegs=0000 {}, byref, isz
+            cbz     w23, G_M25128_IG07
+            b       G_M25128_IG07
+                       ;; size=8 bbWeight=8 PerfScore 16.00
+G_M25128_IG05:        ; bbWeight=8, gcrefRegs=1480004 {x2 x19 x22 x24}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x2]
             ldr     w1, [x2, #0x1C]
-            cbnz    w1, G_M25128_IG06
-            ldp     w26, w1, [x19, #0x10]
+            cbnz    w1, G_M25128_IG07
+            ldp     w23, w1, [x19, #0x10]
             add     w1, w1, #1
             str     w1, [x19, #0x14]
             ldr     x0, [x19, #0x08]
             ; gcrRegs +[x0]
             ldr     w1, [x0, #0x08]
-            cmp     w1, w26
-            bls     G_M25128_IG05
-            add     w1, w26, #1
+            cmp     w1, w23
+            bls     G_M25128_IG06
+            add     w1, w23, #1
             str     w1, [x19, #0x10]
-            sxtw    x1, w26
+            sxtw    x1, w23
             movz    x3, #0xD1FFAB1E      // code for CORINFO_HELP_ARRADDR_ST
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
@@ -115,9 +119,9 @@ G_M25128_IG04:        ; bbWeight=8, gcrefRegs=C80004 {x2 x19 x22 x23}, byrefRegs
             blr     x3
             ; gcrRegs -[x0 x2]
             ; gcr arg pop 0
-            b       G_M25128_IG06
+            b       G_M25128_IG07
                        ;; size=72 bbWeight=8 PerfScore 196.00
-G_M25128_IG05:        ; bbWeight=8, gcrefRegs=C80004 {x2 x19 x22 x23}, byrefRegs=0000 {}, byref
+G_M25128_IG06:        ; bbWeight=8, gcrefRegs=1480004 {x2 x19 x22 x24}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x2]
             mov     x0, x19
             ; gcrRegs +[x0]
@@ -132,73 +136,74 @@ G_M25128_IG05:        ; bbWeight=8, gcrefRegs=C80004 {x2 x19 x22 x23}, byrefRegs
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
                        ;; size=28 bbWeight=8 PerfScore 52.00
-G_M25128_IG06:        ; bbWeight=64, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
-            ldr     w1, [x23, #0x14]
+G_M25128_IG07:        ; bbWeight=64, gcrefRegs=1480000 {x19 x22 x24}, byrefRegs=0000 {}, byref, isz
+            mov     w23, #1
+            ldr     w1, [x24, #0x14]
+            cmp     w26, w1
+            bne     G_M25128_IG21
+                       ;; size=16 bbWeight=64 PerfScore 320.00
+G_M25128_IG08:        ; bbWeight=8, gcrefRegs=1480000 {x19 x22 x24}, byrefRegs=0000 {}, byref, isz
+            ldr     w1, [x24, #0x10]
             cmp     w25, w1
-            bne     G_M25128_IG20
-                       ;; size=12 bbWeight=64 PerfScore 288.00
-G_M25128_IG07:        ; bbWeight=8, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
-            ldr     w1, [x23, #0x10]
-            cmp     w24, w1
-            bhs     G_M25128_IG08
-            ldr     x1, [x23, #0x08]
+            bhs     G_M25128_IG09
+            ldr     x1, [x24, #0x08]
             ; gcrRegs +[x1]
             ldr     w0, [x1, #0x08]
-            cmp     w24, w0
-            bhs     G_M25128_IG19
+            cmp     w25, w0
+            bhs     G_M25128_IG20
             add     x1, x1, #16
             ; gcrRegs -[x1]
             ; byrRegs +[x1]
-            ldr     x2, [x1, w24, UXTW #3]
+            ldr     x2, [x1, w25, UXTW #3]
             ; gcrRegs +[x2]
-            add     w24, w24, #1
+            add     w25, w25, #1
             mov     w1, #1
             ; byrRegs -[x1]
-            b       G_M25128_IG09
+            b       G_M25128_IG10
                        ;; size=48 bbWeight=8 PerfScore 140.00
-G_M25128_IG08:        ; bbWeight=8, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref
+G_M25128_IG09:        ; bbWeight=8, gcrefRegs=1480000 {x19 x22 x24}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
-            add     w24, w1, #1
+            add     w25, w1, #1
             mov     x2, xzr
             ; gcrRegs +[x2]
             mov     w1, wzr
                        ;; size=12 bbWeight=8 PerfScore 12.00
-G_M25128_IG09:        ; bbWeight=64, gcrefRegs=C80004 {x2 x19 x22 x23}, byrefRegs=0000 {}, byref, isz
-            cbnz    w1, G_M25128_IG04
+G_M25128_IG10:        ; bbWeight=64, gcrefRegs=1480004 {x2 x19 x22 x24}, byrefRegs=0000 {}, byref, isz
+            cbnz    w1, G_M25128_IG05
                        ;; size=4 bbWeight=64 PerfScore 64.00
-G_M25128_IG10:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2 x23]
+G_M25128_IG11:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x2 x24]
             ldr     wzr, [x19, #0x14]
             mov     w0, wzr
-            b       G_M25128_IG12
+            b       G_M25128_IG13
                        ;; size=12 bbWeight=8 PerfScore 36.00
-G_M25128_IG11:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+G_M25128_IG12:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
             add     w21, w21, #1
                        ;; size=4 bbWeight=8 PerfScore 4.00
-G_M25128_IG12:        ; bbWeight=64, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
-            ldr     w26, [x19, #0x10]
-            cmp     w0, w26
-            bhs     G_M25128_IG14
+G_M25128_IG13:        ; bbWeight=64, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+            ldr     w1, [x19, #0x10]
+            cmp     w0, w1
+            bhs     G_M25128_IG15
                        ;; size=12 bbWeight=64 PerfScore 288.00
-G_M25128_IG13:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M25128_IG14:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
             ldr     x1, [x19, #0x08]
             ; gcrRegs +[x1]
             ldr     w1, [x1, #0x08]
             ; gcrRegs -[x1]
             cmp     w0, w1
-            bhs     G_M25128_IG19
+            bhs     G_M25128_IG20
             add     w0, w0, #1
             mov     w1, #1
-            b       G_M25128_IG15
+            b       G_M25128_IG16
                        ;; size=28 bbWeight=8 PerfScore 76.00
-G_M25128_IG14:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
-            add     w0, w26, #1
+G_M25128_IG15:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+            add     w0, w1, #1
             mov     w1, wzr
                        ;; size=8 bbWeight=8 PerfScore 8.00
-G_M25128_IG15:        ; bbWeight=64, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
-            cbnz    w1, G_M25128_IG11
+G_M25128_IG16:        ; bbWeight=64, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+            cbnz    w1, G_M25128_IG12
                        ;; size=4 bbWeight=64 PerfScore 64.00
-G_M25128_IG16:        ; bbWeight=8, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
...

+24 (+3.75%) : 24875.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (Tier1)

@@ -10,22 +10,22 @@
 ;
 ;  V00 this         [V00,T06] ( 11,  7   )     ref  ->  x20         this class-hnd single-def <System.Collections.Generic.Dictionary`2[long,System.__Canon]>
 ;  V01 arg1         [V01,T05] (  7,  7.50)    long  ->  x19         ld-addr-op single-def
-;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  x22        
-;  V03 loc1         [V03,T20] (  3,  2   )   byref  ->  x22        
+;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  [fp+0x10] 
+;  V03 loc1         [V03,T20] (  3,  2   )   byref  ->   x0        
 ;  V04 loc2         [V04,T16] (  4,  3.50)     ref  ->  x21         class-hnd single-def <<unknown class>>
-;  V05 loc3         [V05,T09] (  5,  6   )     int  ->  x21        
-;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->   x0        
-;  V07 loc5         [V07,T11] (  3,  5   )     ref  ->   x1         class-hnd exact single-def <<unknown class>>
-;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->  x11        
-;  V09 loc7         [V09,T10] (  5,  6   )     int  ->  x24        
+;  V05 loc3         [V05,T09] (  5,  6   )     int  ->  x22        
+;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->  x21        
+;  V07 loc5         [V07,T11] (  3,  5   )     ref  ->  x23         class-hnd exact single-def <<unknown class>>
+;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->   x2        
+;  V09 loc7         [V09,T10] (  5,  6   )     int  ->  x27        
 ;  V10 loc8         [V10,T02] (  6, 13.50)     int  ->  x22        
 ;  V11 loc9         [V11,T12] (  3,  5   )     ref  ->  x20         class-hnd exact single-def <<unknown class>>
-;  V12 loc10        [V12,T04] (  4, 12.50)     int  ->  x25        
+;  V12 loc10        [V12,T04] (  4, 12.50)     int  ->  x23        
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp2         [V15    ] (  0,  0   )    long  ->  zero-ref    ld-addr-op "Inline stloc first use temp"
 ;* V16 tmp3         [V16    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V17 tmp4         [V17,T23] (  3,  1.50)     ref  ->  x22         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V17 tmp4         [V17,T23] (  3,  1.50)     ref  ->  x21         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V18 tmp5         [V18,T14] (  4,  4   )     int  ->   x0         "Inlining Arg"
 ;  V19 tmp6         [V19,T21] (  2,  2   )    long  ->   x1         "Inlining Arg"
 ;  V20 tmp7         [V20,T18] (  4,  2   )     int  ->  x24         "Inline stloc first use temp"
@@ -38,37 +38,38 @@
 ;* V27 tmp14        [V27    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V28 tmp15        [V28    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp16        [V29    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V30 tmp17        [V30,T24] (  3,  1.50)     ref  ->  x22         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V30 tmp17        [V30,T24] (  3,  1.50)     ref  ->  x25         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V31 tmp18        [V31,T15] (  4,  4   )     int  ->   x0         "Inlining Arg"
 ;  V32 tmp19        [V32,T22] (  2,  2   )    long  ->   x1         "Inlining Arg"
-;  V33 tmp20        [V33,T19] (  4,  2   )     int  ->  x26         "Inline stloc first use temp"
+;  V33 tmp20        [V33,T19] (  4,  2   )     int  ->  x23         "Inline stloc first use temp"
 ;* V34 tmp21        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V35 tmp22        [V35    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp23        [V36    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V37 cse0         [V37,T25] (  3,  1.50)     int  ->  x23         "CSE - moderate"
-;  V38 cse1         [V38,T26] (  3,  1.50)     int  ->  x25         "CSE - moderate"
-;  V39 cse2         [V39,T07] (  3,  8.50)     int  ->   x2         hoist "CSE - aggressive"
-;  V40 cse3         [V40,T08] (  3,  8.50)     int  ->  x26         hoist "CSE - aggressive"
+;  V38 cse1         [V38,T26] (  3,  1.50)     int  ->  x22         "CSE - moderate"
+;  V39 cse2         [V39,T07] (  3,  8.50)     int  ->  x24         hoist "CSE - aggressive"
+;  V40 cse3         [V40,T08] (  3,  8.50)     int  ->  x25         hoist "CSE - aggressive"
 ;  V41 cse4         [V41,T13] (  8,  4   )     ref  ->   x1         multi-def "CSE - aggressive"
-;  V42 cse5         [V42,T17] (  3,  3   )    long  ->  x23         "CSE - moderate"
+;  V42 cse5         [V42,T17] (  3,  3   )    long  ->  x26         "CSE - moderate"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M51674_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x50]!
-            stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
-            stp     x23, x24, [sp, #0x30]
-            stp     x25, x26, [sp, #0x40]
+            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]
             mov     fp, sp
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     x19, x1
-                       ;; size=32 bbWeight=1 PerfScore 6.50
+                       ;; size=36 bbWeight=1 PerfScore 7.50
 G_M51674_IG02:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [x20, #0x08]
             ; gcrRegs +[x0]
-            cbz     x0, G_M51674_IG17
+            cbz     x0, G_M51674_IG18
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M51674_IG03:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
@@ -94,14 +95,12 @@ G_M51674_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
             ; gcrRegs +[x21]
             cbnz    x21, G_M51674_IG09
             asr     x0, x19, #32
-            eor     w21, w19, w0
-            ; gcrRegs -[x21]
-            ldr     x22, [x20, #0x08]
-            ; gcrRegs +[x22]
-            ldr     w23, [x22, #0x08]
+            eor     w22, w19, w0
+            ldr     x21, [x20, #0x08]
+            ldr     w23, [x21, #0x08]
             sxtw    w0, w23
             ldr     x1, [x20, #0x30]
-            mov     w2, w21
+            mov     w2, w22
             mul     x1, x1, x2
             lsr     x1, x1, #32
             add     x1, x1, #1
@@ -109,9 +108,9 @@ G_M51674_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
             mul     x1, x1, x2
             lsr     x24, x1, #32
             cmp     w0, #0
-            beq     G_M51674_IG19
-            udiv    w1, w21, w0
-            msub    w0, w1, w0, w21
+            beq     G_M51674_IG20
+            udiv    w1, w22, w0
+            msub    w0, w1, w0, w22
             cmp     w0, w24
             beq     G_M51674_IG05
             movz    x1, #0xD1FFAB1E
@@ -127,76 +126,77 @@ G_M51674_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
             ; gcrRegs -[x0]
             ; gcr arg pop 0
                        ;; size=120 bbWeight=0.50 PerfScore 23.00
-G_M51674_IG05:        ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M51674_IG05:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
             cmp     w24, w23
-            bhs     G_M51674_IG18
-            add     x0, x22, #16
+            bhs     G_M51674_IG19
+            add     x0, x21, #16
             ; byrRegs +[x0]
-            ldr     w0, [x0, w24, UXTW #2]
-            ; byrRegs -[x0]
-            ldr     x1, [x20, #0x10]
-            ; gcrRegs +[x1]
-            mov     w11, wzr
-            sub     w0, w0, #1
-            ldr     w2, [x1, #0x08]
+            ldr     w21, [x0, w24, UXTW #2]
+            ; gcrRegs -[x21]
+            ldr     x23, [x20, #0x10]
+            ; gcrRegs +[x23]
+            mov     w2, wzr
+            sub     w21, w21, #1
+            ldr     w24, [x23, #0x08]
                        ;; size=32 bbWeight=0.50 PerfScore 6.00
-G_M51674_IG06:        ; bbWeight=4, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x20 x22]
-            cmp     w2, w0
-            bls     G_M51674_IG17
-            mov     w3, #24
-            mov     x4, #16
-            umaddl  x0, w0, w3, x4
-            add     x22, x1, x0
-            ; byrRegs +[x22]
-            ldr     w0, [x22, #0x10]
-            cmp     w0, w21
+G_M51674_IG06:        ; bbWeight=4, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x20]
+            ; byrRegs -[x0]
+            cmp     w24, w21
+            bls     G_M51674_IG18
+            mov     w0, #24
+            mov     x1, #16
+            umaddl  x0, w21, w0, x1
+            add     x25, x23, x0
+            ; byrRegs +[x25]
+            ldr     w0, [x25, #0x10]
+            cmp     w0, w22
             bne     G_M51674_IG08
                        ;; size=36 bbWeight=4 PerfScore 50.00
-G_M51674_IG07:        ; bbWeight=2, gcrefRegs=0002 {x1}, byrefRegs=400000 {x22}, byref, isz
-            ldr     x0, [x22, #0x08]
+G_M51674_IG07:        ; bbWeight=2, gcrefRegs=800000 {x23}, byrefRegs=2000000 {x25}, byref, isz
+            ldr     x0, [x25, #0x08]
             cmp     x0, x19
-            beq     G_M51674_IG14
+            beq     G_M51674_IG16
                        ;; size=12 bbWeight=2 PerfScore 9.00
-G_M51674_IG08:        ; bbWeight=4, gcrefRegs=0002 {x1}, byrefRegs=400000 {x22}, byref, isz
-            ldr     w0, [x22, #0x14]
-            add     w11, w11, #1
-            cmp     w2, w11
-            blo     G_M51674_IG20
+G_M51674_IG08:        ; bbWeight=4, gcrefRegs=800000 {x23}, byrefRegs=2000000 {x25}, byref, isz
+            ldr     w21, [x25, #0x14]
+            add     w2, w2, #1
+            cmp     w24, w2
+            blo     G_M51674_IG21
             b       G_M51674_IG06
                        ;; size=20 bbWeight=4 PerfScore 24.00
 G_M51674_IG09:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x1] +[x20-x21]
-            ; byrRegs -[x22]
+            ; gcrRegs -[x23] +[x20-x21]
+            ; byrRegs -[x25]
             mov     x0, x21
             ; gcrRegs +[x0]
             mov     x1, x19
-            movz    x23, #0xD1FFAB1E      // code for <unknown method>
-            movk    x23, #0xD1FFAB1E LSL #16
-            movk    x23, #1 LSL #32
-            mov     x11, x23
+            movz    x26, #0xD1FFAB1E      // code for <unknown method>
+            movk    x26, #0xD1FFAB1E LSL #16
+            movk    x26, #1 LSL #32
+            mov     x11, x26
             ldr     x2, [x11]
             blr     x2
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            sxtw    w24, w0
-            ldr     x22, [x20, #0x08]
-            ; gcrRegs +[x22]
-            ldr     w25, [x22, #0x08]
-            sxtw    w0, w25
+            sxtw    w27, w0
+            ldr     x25, [x20, #0x08]
+            ; gcrRegs +[x25]
+            ldr     w22, [x25, #0x08]
+            sxtw    w0, w22
             ldr     x1, [x20, #0x30]
-            mov     w2, w24
+            mov     w2, w27
             mul     x1, x1, x2
             lsr     x1, x1, #32
             add     x1, x1, #1
             mov     w2, w0
             mul     x1, x1, x2
-            lsr     x26, x1, #32
+            lsr     x23, x1, #32
             cmp     w0, #0
-            beq     G_M51674_IG19
-            udiv    w1, w24, w0
-            msub    w0, w1, w0, w24
-            cmp     w0, w26
+            beq     G_M51674_IG20
+            udiv    w1, w27, w0
+            msub    w0, w1, w0, w27
+            cmp     w0, w23
             beq     G_M51674_IG10
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -211,84 +211,100 @@ G_M51674_IG09:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=000
             ; gcrRegs -[x0]
             ; gcr arg pop 0
                        ;; size=140 bbWeight=0.50 PerfScore 24.00
-G_M51674_IG10:        ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
-            cmp     w26, w25
-            bhs     G_M51674_IG18
-            add     x1, x22, #16
+G_M51674_IG10:        ; bbWeight=0.50, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0000 {}, byref, isz
...

+24 (+3.77%) : 5896.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (Tier1)

@@ -10,21 +10,21 @@
 ;
 ;  V00 this         [V00,T06] ( 11,  7   )     ref  ->  x20         this class-hnd single-def <System.Collections.Generic.Dictionary`2[int,System.__Canon]>
 ;  V01 arg1         [V01,T05] (  6,  9   )     int  ->  x19         ld-addr-op single-def
-;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  x22        
-;  V03 loc1         [V03,T20] (  3,  2   )   byref  ->  x22        
+;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  [fp+0x10] 
+;  V03 loc1         [V03,T20] (  3,  2   )   byref  ->   x0        
 ;  V04 loc2         [V04,T16] (  4,  3.50)     ref  ->  x21         class-hnd single-def <<unknown class>>
-;  V05 loc3         [V05,T13] (  5,  4   )     int  ->  x21        
-;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->   x0        
-;  V07 loc5         [V07,T10] (  3,  5   )     ref  ->   x1         class-hnd exact single-def <<unknown class>>
-;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->  x11        
-;  V09 loc7         [V09,T09] (  5,  6   )     int  ->  x24        
+;  V05 loc3         [V05,T13] (  5,  4   )     int  ->  x22        
+;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->  x21        
+;  V07 loc5         [V07,T10] (  3,  5   )     ref  ->  x23         class-hnd exact single-def <<unknown class>>
+;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->   x2        
+;  V09 loc7         [V09,T09] (  5,  6   )     int  ->  x27        
 ;  V10 loc8         [V10,T02] (  6, 13.50)     int  ->  x22        
 ;  V11 loc9         [V11,T11] (  3,  5   )     ref  ->  x20         class-hnd exact single-def <<unknown class>>
-;  V12 loc10        [V12,T04] (  4, 12.50)     int  ->  x25        
+;  V12 loc10        [V12,T04] (  4, 12.50)     int  ->  x23        
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp2         [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V16 tmp3         [V16,T23] (  3,  1.50)     ref  ->  x22         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V16 tmp3         [V16,T23] (  3,  1.50)     ref  ->  x21         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V17 tmp4         [V17,T14] (  4,  4   )     int  ->   x0         "Inlining Arg"
 ;  V18 tmp5         [V18,T21] (  2,  2   )    long  ->   x1         "Inlining Arg"
 ;  V19 tmp6         [V19,T18] (  4,  2   )     int  ->  x24         "Inline stloc first use temp"
@@ -36,37 +36,38 @@
 ;* V25 tmp12        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp13        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V27 tmp14        [V27    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V28 tmp15        [V28,T24] (  3,  1.50)     ref  ->  x22         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V28 tmp15        [V28,T24] (  3,  1.50)     ref  ->  x25         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V29 tmp16        [V29,T15] (  4,  4   )     int  ->   x0         "Inlining Arg"
 ;  V30 tmp17        [V30,T22] (  2,  2   )    long  ->   x1         "Inlining Arg"
-;  V31 tmp18        [V31,T19] (  4,  2   )     int  ->  x26         "Inline stloc first use temp"
+;  V31 tmp18        [V31,T19] (  4,  2   )     int  ->  x23         "Inline stloc first use temp"
 ;* V32 tmp19        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp20        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp21        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V35 cse0         [V35,T25] (  3,  1.50)     int  ->  x23         "CSE - moderate"
-;  V36 cse1         [V36,T26] (  3,  1.50)     int  ->  x25         "CSE - moderate"
-;  V37 cse2         [V37,T07] (  3,  8.50)     int  ->   x2         hoist "CSE - aggressive"
-;  V38 cse3         [V38,T08] (  3,  8.50)     int  ->  x26         hoist "CSE - aggressive"
+;  V36 cse1         [V36,T26] (  3,  1.50)     int  ->  x22         "CSE - moderate"
+;  V37 cse2         [V37,T07] (  3,  8.50)     int  ->  x24         hoist "CSE - aggressive"
+;  V38 cse3         [V38,T08] (  3,  8.50)     int  ->  x25         hoist "CSE - aggressive"
 ;  V39 cse4         [V39,T12] (  8,  4   )     ref  ->   x1         multi-def "CSE - aggressive"
-;  V40 cse5         [V40,T17] (  3,  3   )    long  ->  x23         "CSE - moderate"
+;  V40 cse5         [V40,T17] (  3,  3   )    long  ->  x26         "CSE - moderate"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M7866_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x50]!
-            stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
-            stp     x23, x24, [sp, #0x30]
-            stp     x25, x26, [sp, #0x40]
+            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]
             mov     fp, sp
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     w19, w1
-                       ;; size=32 bbWeight=1 PerfScore 6.50
+                       ;; size=36 bbWeight=1 PerfScore 7.50
 G_M7866_IG02:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [x20, #0x08]
             ; gcrRegs +[x0]
-            cbz     x0, G_M7866_IG17
+            cbz     x0, G_M7866_IG18
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M7866_IG03:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
@@ -91,14 +92,12 @@ G_M7866_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {},
             ldr     x21, [x20, #0x18]
             ; gcrRegs +[x21]
             cbnz    x21, G_M7866_IG09
-            sxtw    w21, w19
-            ; gcrRegs -[x21]
-            ldr     x22, [x20, #0x08]
-            ; gcrRegs +[x22]
-            ldr     w23, [x22, #0x08]
+            sxtw    w22, w19
+            ldr     x21, [x20, #0x08]
+            ldr     w23, [x21, #0x08]
             sxtw    w0, w23
             ldr     x1, [x20, #0x30]
-            mov     w2, w21
+            mov     w2, w22
             mul     x1, x1, x2
             lsr     x1, x1, #32
             add     x1, x1, #1
@@ -106,9 +105,9 @@ G_M7866_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {},
             mul     x1, x1, x2
             lsr     x24, x1, #32
             cmp     w0, #0
-            beq     G_M7866_IG19
-            udiv    w1, w21, w0
-            msub    w0, w1, w0, w21
+            beq     G_M7866_IG20
+            udiv    w1, w22, w0
+            msub    w0, w1, w0, w22
             cmp     w0, w24
             beq     G_M7866_IG05
             movz    x1, #0xD1FFAB1E
@@ -124,76 +123,77 @@ G_M7866_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {},
             ; gcrRegs -[x0]
             ; gcr arg pop 0
                        ;; size=116 bbWeight=0.50 PerfScore 22.50
-G_M7866_IG05:        ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M7866_IG05:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
             cmp     w24, w23
-            bhs     G_M7866_IG18
-            add     x0, x22, #16
+            bhs     G_M7866_IG19
+            add     x0, x21, #16
             ; byrRegs +[x0]
-            ldr     w0, [x0, w24, UXTW #2]
-            ; byrRegs -[x0]
-            ldr     x1, [x20, #0x10]
-            ; gcrRegs +[x1]
-            mov     w11, wzr
-            sub     w0, w0, #1
-            ldr     w2, [x1, #0x08]
+            ldr     w21, [x0, w24, UXTW #2]
+            ; gcrRegs -[x21]
+            ldr     x23, [x20, #0x10]
+            ; gcrRegs +[x23]
+            mov     w2, wzr
+            sub     w21, w21, #1
+            ldr     w24, [x23, #0x08]
                        ;; size=32 bbWeight=0.50 PerfScore 6.00
-G_M7866_IG06:        ; bbWeight=4, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x20 x22]
-            cmp     w2, w0
-            bls     G_M7866_IG17
-            mov     w3, #24
-            mov     x4, #16
-            umaddl  x0, w0, w3, x4
-            add     x22, x1, x0
-            ; byrRegs +[x22]
-            ldr     w0, [x22, #0x08]
+G_M7866_IG06:        ; bbWeight=4, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x20]
+            ; byrRegs -[x0]
+            cmp     w24, w21
+            bls     G_M7866_IG18
+            mov     w0, #24
+            mov     x1, #16
+            umaddl  x0, w21, w0, x1
+            add     x25, x23, x0
+            ; byrRegs +[x25]
+            ldr     w0, [x25, #0x08]
             cmp     w0, w19
             bne     G_M7866_IG08
                        ;; size=36 bbWeight=4 PerfScore 50.00
-G_M7866_IG07:        ; bbWeight=2, gcrefRegs=0002 {x1}, byrefRegs=400000 {x22}, byref, isz
-            ldr     w0, [x22, #0x10]
-            cmp     w0, w21
-            beq     G_M7866_IG14
+G_M7866_IG07:        ; bbWeight=2, gcrefRegs=800000 {x23}, byrefRegs=2000000 {x25}, byref, isz
+            ldr     w0, [x25, #0x10]
+            cmp     w0, w22
+            beq     G_M7866_IG16
                        ;; size=12 bbWeight=2 PerfScore 9.00
-G_M7866_IG08:        ; bbWeight=4, gcrefRegs=0002 {x1}, byrefRegs=400000 {x22}, byref, isz
-            ldr     w0, [x22, #0x0C]
-            add     w11, w11, #1
-            cmp     w2, w11
-            blo     G_M7866_IG20
+G_M7866_IG08:        ; bbWeight=4, gcrefRegs=800000 {x23}, byrefRegs=2000000 {x25}, byref, isz
+            ldr     w21, [x25, #0x0C]
+            add     w2, w2, #1
+            cmp     w24, w2
+            blo     G_M7866_IG21
             b       G_M7866_IG06
                        ;; size=20 bbWeight=4 PerfScore 24.00
 G_M7866_IG09:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x1] +[x20-x21]
-            ; byrRegs -[x22]
+            ; gcrRegs -[x23] +[x20-x21]
+            ; byrRegs -[x25]
             mov     x0, x21
             ; gcrRegs +[x0]
             mov     w1, w19
-            movz    x23, #0xD1FFAB1E      // code for <unknown method>
-            movk    x23, #0xD1FFAB1E LSL #16
-            movk    x23, #1 LSL #32
-            mov     x11, x23
+            movz    x26, #0xD1FFAB1E      // code for <unknown method>
+            movk    x26, #0xD1FFAB1E LSL #16
+            movk    x26, #1 LSL #32
+            mov     x11, x26
             ldr     x2, [x11]
             blr     x2
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            sxtw    w24, w0
-            ldr     x22, [x20, #0x08]
-            ; gcrRegs +[x22]
-            ldr     w25, [x22, #0x08]
-            sxtw    w0, w25
+            sxtw    w27, w0
+            ldr     x25, [x20, #0x08]
+            ; gcrRegs +[x25]
+            ldr     w22, [x25, #0x08]
+            sxtw    w0, w22
             ldr     x1, [x20, #0x30]
-            mov     w2, w24
+            mov     w2, w27
             mul     x1, x1, x2
             lsr     x1, x1, #32
             add     x1, x1, #1
             mov     w2, w0
             mul     x1, x1, x2
-            lsr     x26, x1, #32
+            lsr     x23, x1, #32
             cmp     w0, #0
-            beq     G_M7866_IG19
-            udiv    w1, w24, w0
-            msub    w0, w1, w0, w24
-            cmp     w0, w26
+            beq     G_M7866_IG20
+            udiv    w1, w27, w0
+            msub    w0, w1, w0, w27
+            cmp     w0, w23
             beq     G_M7866_IG10
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -208,84 +208,100 @@ G_M7866_IG09:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000
             ; gcrRegs -[x0]
             ; gcr arg pop 0
                        ;; size=140 bbWeight=0.50 PerfScore 24.00
-G_M7866_IG10:        ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
-            cmp     w26, w25
-            bhs     G_M7866_IG18
-            add     x1, x22, #16
+G_M7866_IG10:        ; bbWeight=0.50, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0000 {}, byref, isz
+            cmp     w23, w22
...

coreclr_tests.run.osx.arm64.checked.mch

-28 (-8.14%) : 214670.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)

@@ -12,39 +12,37 @@
 ;  V00 this         [V00,T00] (  9,  6.59)     ref  ->  x19         this class-hnd single-def <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]>
 ;  V01 arg1         [V01,T02] (  4,  3   )   byref  ->  x20         single-def
 ;  V02 loc0         [V02,T03] (  5,  3.87)     ref  ->  x21         class-hnd exact single-def <<unknown class>>
-;  V03 loc1         [V03    ] (  2,  1.00)  struct ( 8) [fp+0x10]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Threading.SpinWait>
+;  V03 loc1         [V03    ] (  2,  1.00)  struct ( 8) [fp+0x18]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Threading.SpinWait>
 ;  V04 loc2         [V04,T01] (  9,  5.31)     int  ->  x23        
 ;  V05 loc3         [V05,T04] (  3,  3.02)     int  ->  x13        
 ;* V06 loc4         [V06    ] (  0,  0   )     int  ->  zero-ref   
-;  V07 loc5         [V07,T06] (  3,  2.59)     int  ->   x0        
-;  V08 loc6         [V08,T11] (  2,  0.58)   ubyte  ->   x0        
-;  V09 loc7         [V09,T10] (  3,  1.16)     int  ->  x27        
+;  V07 loc5         [V07,T06] (  3,  2.59)     int  ->   x2        
+;  V08 loc6         [V08,T11] (  2,  0.58)   ubyte  ->   x2        
+;  V09 loc7         [V09,T10] (  3,  1.16)     int  ->  x24        
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V11 tmp1         [V11    ] (  2,  1.00)     int  ->  [fp+0x10]  do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x0)" P-DEP
-;  V12 cse0         [V12,T09] (  3,  1.28)   byref  ->  x26         "CSE - moderate"
-;  V13 cse1         [V13,T05] (  4,  2.87)    long  ->  x25         "CSE - aggressive"
-;  V14 cse2         [V14,T07] (  3,  2.44)     int  ->  x24         "CSE - aggressive"
+;  V11 tmp1         [V11    ] (  2,  1.00)     int  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x0)" P-DEP
+;  V12 cse0         [V12,T09] (  3,  1.28)   byref  ->   x3         "CSE - moderate"
+;  V13 cse1         [V13,T05] (  4,  2.87)    long  ->   x1         "CSE - aggressive"
+;  V14 cse2         [V14,T07] (  3,  2.44)     int  ->   x0         "CSE - aggressive"
 ;  V15 cse3         [V15,T08] (  3,  2.44)   byref  ->  x22         hoist "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 16
 
 G_M25277_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     fp, lr, [sp, #-0x50]!
+            stp     x19, x20, [sp, #0x20]
+            stp     x21, x22, [sp, #0x30]
+            stp     x23, x24, [sp, #0x40]
             mov     fp, sp
             mov     x19, x0
             ; gcrRegs +[x19]
             mov     x20, x1
             ; byrRegs +[x20]
-                       ;; size=36 bbWeight=1 PerfScore 7.50
+                       ;; size=28 bbWeight=1 PerfScore 5.50
 G_M25277_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
             ldr     x21, [x19, #0x08]
             ; gcrRegs +[x21]
-            str     wzr, [fp, #0x10]   // [V03 loc1]
+            str     wzr, [fp, #0x18]   // [V03 loc1]
             add     x22, x19, #160
             ; byrRegs +[x22]
                        ;; size=12 bbWeight=1 PerfScore 4.50
@@ -52,95 +50,92 @@ G_M25277_IG03:        ; bbWeight=1.01, gcrefRegs=280000 {x19 x21}, byrefRegs=500
             ldapr   w23, [x22]
             ldr     w13, [x19, #0x18]
             and     w13, w23, w13
-            ldr     w24, [x21, #0x08]
-            cmp     w13, w24
+            ldr     w0, [x21, #0x08]
+            cmp     w13, w0
             bhs     G_M25277_IG13
             mov     w14, #24
             mov     x12, #16
-            umaddl  x25, w13, w14, x12
-            add     x13, x21, x25
+            umaddl  x1, w13, w14, x12
+            add     x13, x21, x1
             ; byrRegs +[x13]
             ldapr   w13, [x13]
             ; byrRegs -[x13]
             add     w14, w23, #1
-            sub     w0, w13, w14
-            cbz     w0, G_M25277_IG05
+            sub     w2, w13, w14
+            cbz     w2, G_M25277_IG07
                        ;; size=56 bbWeight=1.01 PerfScore 22.66
 G_M25277_IG04:        ; bbWeight=0.58, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, byref, isz
-            tbz     w0, #31, G_M25277_IG03
-            ldrb    w0, [x19, #0x1D]
-            add     x1, x19, #0xD1FFAB1E
-            ; byrRegs +[x1]
-            ldapr   w27, [x1]
-            sub     w1, w27, w23
-            ; byrRegs -[x1]
+            tbz     w2, #31, G_M25277_IG03
+            ldrb    w2, [x19, #0x1D]
+            add     x3, x19, #0xD1FFAB1E
+            ; byrRegs +[x3]
+            ldapr   w24, [x3]
+            sub     w1, w24, w23
             cmp     w1, #0
-            ble     G_M25277_IG09
-            b       G_M25277_IG11
-                       ;; size=32 bbWeight=0.58 PerfScore 6.07
-G_M25277_IG05:        ; bbWeight=0.43, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, byref, isz
+            bgt     G_M25277_IG11
+                       ;; size=28 bbWeight=0.58 PerfScore 5.49
+G_M25277_IG05:        ; bbWeight=0.57, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
+            ; gcrRegs -[x19 x21]
+            ; byrRegs -[x3 x22]
+            stp     xzr, xzr, [x20]
+            mov     w0, wzr
+                       ;; size=8 bbWeight=0.57 PerfScore 0.86
+G_M25277_IG06:        ; bbWeight=0.57, epilog, nogc, extend
+            ldp     x23, x24, [sp, #0x40]
+            ldp     x21, x22, [sp, #0x30]
+            ldp     x19, x20, [sp, #0x20]
+            ldp     fp, lr, [sp], #0x50
+            ret     lr
+                       ;; size=20 bbWeight=0.57 PerfScore 2.87
+G_M25277_IG07:        ; bbWeight=0.43, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, gcvars, byref, isz
+            ; gcrRegs +[x19 x21]
+            ; byrRegs +[x22]
             add     w13, w23, #1
             mov     w14, w23
             casal   w14, w13, [x22]
             cmp     w14, w23
             bne     G_M25277_IG03
                        ;; size=20 bbWeight=0.43 PerfScore 2.36
-G_M25277_IG06:        ; bbWeight=0.43, gcrefRegs=280000 {x19 x21}, byrefRegs=100000 {x20}, byref, isz
+G_M25277_IG08:        ; bbWeight=0.43, gcrefRegs=280000 {x19 x21}, byrefRegs=100000 {x20}, byref, isz
             ; byrRegs -[x22]
-            add     x13, x21, x25
+            add     x13, x21, x1
             ; byrRegs +[x13]
-            add     x26, x13, #8
-            ; byrRegs +[x26]
+            add     x3, x13, #8
+            ; byrRegs +[x3]
             mov     x14, x20
             ; byrRegs +[x14]
-            mov     x13, x26
+            mov     x13, x3
             bl      CORINFO_HELP_ASSIGN_BYREF
             ; byrRegs -[x20]
             ldr     x12, [x13], #0x08
             str     x12, [x14], #0x08
-            ldapurb w0, [x19, #0x1C]
-            cbnz    w0, G_M25277_IG07
-            stp     xzr, xzr, [x26]
-            add     x0, x21, x25
-            ; byrRegs +[x0]
-            add     w1, w24, w23
-            stlr    w1, [x0]
+            ldapurb w2, [x19, #0x1C]
+            cbnz    w2, G_M25277_IG09
+            stp     xzr, xzr, [x3]
+            add     x2, x21, x1
+            ; byrRegs +[x2]
+            add     w0, w0, w23
+            stlr    w0, [x2]
                        ;; size=52 bbWeight=0.43 PerfScore 5.97
-G_M25277_IG07:        ; bbWeight=0.43, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25277_IG09:        ; bbWeight=0.43, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19 x21]
-            ; byrRegs -[x0 x13-x14 x26]
+            ; byrRegs -[x2-x3 x13-x14]
             mov     w0, #1
                        ;; size=4 bbWeight=0.43 PerfScore 0.21
-G_M25277_IG08:        ; bbWeight=0.43, 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     fp, lr, [sp], #0x60
+G_M25277_IG10:        ; bbWeight=0.43, epilog, nogc, extend
+            ldp     x23, x24, [sp, #0x40]
+            ldp     x21, x22, [sp, #0x30]
+            ldp     x19, x20, [sp, #0x20]
+            ldp     fp, lr, [sp], #0x50
             ret     lr
-                       ;; size=28 bbWeight=0.43 PerfScore 3.41
-G_M25277_IG09:        ; bbWeight=0.57, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, gcvars, byref
-            ; byrRegs +[x20]
-            stp     xzr, xzr, [x20]
-            mov     w0, wzr
-                       ;; size=8 bbWeight=0.57 PerfScore 0.86
-G_M25277_IG10:        ; bbWeight=0.57, 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     fp, lr, [sp], #0x60
-            ret     lr
-                       ;; size=28 bbWeight=0.57 PerfScore 4.59
+                       ;; size=20 bbWeight=0.43 PerfScore 2.13
 G_M25277_IG11:        ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, gcvars, byref, isz
             ; gcrRegs +[x19 x21]
-            ; byrRegs +[x22]
-            cbnz    w0, G_M25277_IG14
+            ; byrRegs +[x20 x22]
+            cbnz    w2, G_M25277_IG14
                        ;; size=4 bbWeight=0.00 PerfScore 0.00
 G_M25277_IG12:        ; bbWeight=0.00, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, byref
-            add     x0, fp, #16    // [V03 loc1]
+            add     x0, fp, #24    // [V03 loc1]
             movn    w1, #0
             movz    x2, #0xD1FFAB1E      // code for System.Threading.SpinWait:SpinOnce(int):this
             movk    x2, #0xD1FFAB1E LSL #16
@@ -163,25 +158,25 @@ G_M25277_IG14:        ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=500000
             ; gcrRegs +[x0]
             ldr     w0, [x0, #0x08]
             ; gcrRegs -[x0]
-            sub     w0, w27, w0,  LSL #1
+            sub     w0, w24, w0,  LSL #1
             sub     w0, w0, w23
             cmp     w0, #0
-            ble     G_M25277_IG09
+            ble     G_M25277_IG05
             b       G_M25277_IG12
                        ;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 344, prolog size 36, PerfScore 58.18, instruction count 86, allocated bytes for code 344 (MethodHash=26289d42) for method System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)
+; Total bytes of code 316, prolog size 28, PerfScore 52.60, instruction count 79, allocated bytes for code 316 (MethodHash=26289d42) for method System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 3
+  Code Words        : 2
   Epilog Count      : 2
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 86 (0x00056) Actual length = 344 (0x000158)
+  Function Length   : 79 (0x0004f) Actual length = 316 (0x00013c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -192,13 +187,10 @@ 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]
-    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
-    E4          end
+    C8 04       save_regp X#0 Z#4 (0x04); stp x19, x20, [sp, #32]
+    89          save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
     E4          end
     E4          end
...

-28 (-8.14%) : 295923.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)

@@ -12,39 +12,37 @@
 ;  V00 this         [V00,T00] (  9,  6.54)     ref  ->  x19         this class-hnd single-def <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]>
 ;  V01 arg1         [V01,T02] (  4,  3   )   byref  ->  x20         single-def
 ;  V02 loc0         [V02,T03] (  5,  3.95)     ref  ->  x21         class-hnd exact single-def <<unknown class>>
-;  V03 loc1         [V03    ] (  2,  1.00)  struct ( 8) [fp+0x10]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Threading.SpinWait>
+;  V03 loc1         [V03    ] (  2,  1.00)  struct ( 8) [fp+0x18]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Threading.SpinWait>
 ;  V04 loc2         [V04,T01] (  9,  5.43)     int  ->  x23        
 ;  V05 loc3         [V05,T04] (  3,  3.01)     int  ->  x13        
 ;* V06 loc4         [V06    ] (  0,  0   )     int  ->  zero-ref   
-;  V07 loc5         [V07,T06] (  3,  2.54)     int  ->   x0        
-;  V08 loc6         [V08,T11] (  2,  0.54)   ubyte  ->   x0        
-;  V09 loc7         [V09,T10] (  3,  1.06)     int  ->  x27        
+;  V07 loc5         [V07,T06] (  3,  2.54)     int  ->   x2        
+;  V08 loc6         [V08,T11] (  2,  0.54)   ubyte  ->   x2        
+;  V09 loc7         [V09,T10] (  3,  1.06)     int  ->  x24        
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V11 tmp1         [V11    ] (  2,  1.00)     int  ->  [fp+0x10]  do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x0)" P-DEP
-;  V12 cse0         [V12,T09] (  3,  1.41)   byref  ->  x26         "CSE - moderate"
-;  V13 cse1         [V13,T05] (  4,  2.95)    long  ->  x25         "CSE - aggressive"
-;  V14 cse2         [V14,T07] (  3,  2.48)     int  ->  x24         "CSE - aggressive"
+;  V11 tmp1         [V11    ] (  2,  1.00)     int  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x0)" P-DEP
+;  V12 cse0         [V12,T09] (  3,  1.41)   byref  ->   x3         "CSE - moderate"
+;  V13 cse1         [V13,T05] (  4,  2.95)    long  ->   x1         "CSE - aggressive"
+;  V14 cse2         [V14,T07] (  3,  2.48)     int  ->   x0         "CSE - aggressive"
 ;  V15 cse3         [V15,T08] (  3,  2.48)   byref  ->  x22         hoist "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 16
 
 G_M25277_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     fp, lr, [sp, #-0x50]!
+            stp     x19, x20, [sp, #0x20]
+            stp     x21, x22, [sp, #0x30]
+            stp     x23, x24, [sp, #0x40]
             mov     fp, sp
             mov     x19, x0
             ; gcrRegs +[x19]
             mov     x20, x1
             ; byrRegs +[x20]
-                       ;; size=36 bbWeight=1 PerfScore 7.50
+                       ;; size=28 bbWeight=1 PerfScore 5.50
 G_M25277_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
             ldr     x21, [x19, #0x08]
             ; gcrRegs +[x21]
-            str     wzr, [fp, #0x10]   // [V03 loc1]
+            str     wzr, [fp, #0x18]   // [V03 loc1]
             add     x22, x19, #160
             ; byrRegs +[x22]
                        ;; size=12 bbWeight=1 PerfScore 4.50
@@ -52,92 +50,89 @@ G_M25277_IG03:        ; bbWeight=1.00, gcrefRegs=280000 {x19 x21}, byrefRegs=500
             ldapr   w23, [x22]
             ldr     w13, [x19, #0x18]
             and     w13, w23, w13
-            ldr     w24, [x21, #0x08]
-            cmp     w13, w24
+            ldr     w0, [x21, #0x08]
+            cmp     w13, w0
             bhs     G_M25277_IG12
             mov     w14, #24
             mov     x12, #16
-            umaddl  x25, w13, w14, x12
-            add     x13, x21, x25
+            umaddl  x1, w13, w14, x12
+            add     x13, x21, x1
             ; byrRegs +[x13]
             ldapr   w13, [x13]
             ; byrRegs -[x13]
             add     w14, w23, #1
-            sub     w0, w13, w14
-            cbz     w0, G_M25277_IG05
+            sub     w2, w13, w14
+            cbz     w2, G_M25277_IG07
                        ;; size=56 bbWeight=1.00 PerfScore 22.59
 G_M25277_IG04:        ; bbWeight=0.53, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, byref, isz
-            tbz     w0, #31, G_M25277_IG03
-            ldrb    w0, [x19, #0x1D]
-            add     x1, x19, #0xD1FFAB1E
-            ; byrRegs +[x1]
-            ldapr   w27, [x1]
-            sub     w1, w27, w23
-            ; byrRegs -[x1]
+            tbz     w2, #31, G_M25277_IG03
+            ldrb    w2, [x19, #0x1D]
+            add     x3, x19, #0xD1FFAB1E
+            ; byrRegs +[x3]
+            ldapr   w24, [x3]
+            sub     w1, w24, w23
             cmp     w1, #0
-            ble     G_M25277_IG08
-            b       G_M25277_IG10
-                       ;; size=32 bbWeight=0.53 PerfScore 5.59
-G_M25277_IG05:        ; bbWeight=0.47, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, byref, isz
+            bgt     G_M25277_IG10
+                       ;; size=28 bbWeight=0.53 PerfScore 5.06
+G_M25277_IG05:        ; bbWeight=0.53, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
+            ; gcrRegs -[x19 x21]
+            ; byrRegs -[x3 x22]
+            stp     xzr, xzr, [x20]
+            mov     w0, wzr
+                       ;; size=8 bbWeight=0.53 PerfScore 0.79
+G_M25277_IG06:        ; bbWeight=0.53, epilog, nogc, extend
+            ldp     x23, x24, [sp, #0x40]
+            ldp     x21, x22, [sp, #0x30]
+            ldp     x19, x20, [sp, #0x20]
+            ldp     fp, lr, [sp], #0x50
+            ret     lr
+                       ;; size=20 bbWeight=0.53 PerfScore 2.64
+G_M25277_IG07:        ; bbWeight=0.47, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, gcvars, byref, isz
+            ; gcrRegs +[x19 x21]
+            ; byrRegs +[x22]
             add     w13, w23, #1
             mov     w14, w23
             casal   w14, w13, [x22]
             cmp     w14, w23
             bne     G_M25277_IG03
-            add     x13, x21, x25
+            add     x13, x21, x1
             ; byrRegs +[x13]
-            add     x26, x13, #8
-            ; byrRegs +[x26]
+            add     x3, x13, #8
+            ; byrRegs +[x3]
             mov     x14, x20
             ; byrRegs +[x14]
-            mov     x13, x26
+            mov     x13, x3
             bl      CORINFO_HELP_ASSIGN_BYREF
             ; byrRegs -[x20 x22]
             ldr     x12, [x13], #0x08
             str     x12, [x14], #0x08
-            ldapurb w0, [x19, #0x1C]
-            cbnz    w0, G_M25277_IG06
-            stp     xzr, xzr, [x26]
-            add     x0, x21, x25
-            ; byrRegs +[x0]
-            add     w1, w24, w23
-            stlr    w1, [x0]
+            ldapurb w2, [x19, #0x1C]
+            cbnz    w2, G_M25277_IG08
+            stp     xzr, xzr, [x3]
+            add     x2, x21, x1
+            ; byrRegs +[x2]
+            add     w0, w0, w23
+            stlr    w0, [x2]
                        ;; size=72 bbWeight=0.47 PerfScore 9.19
-G_M25277_IG06:        ; bbWeight=0.47, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25277_IG08:        ; bbWeight=0.47, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19 x21]
-            ; byrRegs -[x0 x13-x14 x26]
+            ; byrRegs -[x2-x3 x13-x14]
             mov     w0, #1
                        ;; size=4 bbWeight=0.47 PerfScore 0.24
-G_M25277_IG07:        ; bbWeight=0.47, 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     fp, lr, [sp], #0x60
+G_M25277_IG09:        ; bbWeight=0.47, epilog, nogc, extend
+            ldp     x23, x24, [sp, #0x40]
+            ldp     x21, x22, [sp, #0x30]
+            ldp     x19, x20, [sp, #0x20]
+            ldp     fp, lr, [sp], #0x50
             ret     lr
-                       ;; size=28 bbWeight=0.47 PerfScore 3.77
-G_M25277_IG08:        ; bbWeight=0.53, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, gcvars, byref
-            ; byrRegs +[x20]
-            stp     xzr, xzr, [x20]
-            mov     w0, wzr
-                       ;; size=8 bbWeight=0.53 PerfScore 0.79
-G_M25277_IG09:        ; bbWeight=0.53, 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     fp, lr, [sp], #0x60
-            ret     lr
-                       ;; size=28 bbWeight=0.53 PerfScore 4.23
+                       ;; size=20 bbWeight=0.47 PerfScore 2.36
 G_M25277_IG10:        ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, gcvars, byref, isz
             ; gcrRegs +[x19 x21]
-            ; byrRegs +[x22]
-            cbnz    w0, G_M25277_IG13
+            ; byrRegs +[x20 x22]
+            cbnz    w2, G_M25277_IG13
                        ;; size=4 bbWeight=0.00 PerfScore 0.00
 G_M25277_IG11:        ; bbWeight=0.00, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, byref
-            add     x0, fp, #16    // [V03 loc1]
+            add     x0, fp, #24    // [V03 loc1]
             movn    w1, #0
             movz    x2, #0xD1FFAB1E      // code for System.Threading.SpinWait:SpinOnce(int):this
             movk    x2, #0xD1FFAB1E LSL #16
@@ -160,25 +155,25 @@ G_M25277_IG13:        ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=500000
             ; gcrRegs +[x0]
             ldr     w0, [x0, #0x08]
             ; gcrRegs -[x0]
-            sub     w0, w27, w0,  LSL #1
+            sub     w0, w24, w0,  LSL #1
             sub     w0, w0, w23
             cmp     w0, #0
-            ble     G_M25277_IG08
+            ble     G_M25277_IG05
             b       G_M25277_IG11
                        ;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 344, prolog size 36, PerfScore 58.43, instruction count 86, allocated bytes for code 344 (MethodHash=26289d42) for method System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)
+; Total bytes of code 316, prolog size 28, PerfScore 52.90, instruction count 79, allocated bytes for code 316 (MethodHash=26289d42) for method System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 3
+  Code Words        : 2
   Epilog Count      : 2
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 86 (0x00056) Actual length = 344 (0x000158)
+  Function Length   : 79 (0x0004f) Actual length = 316 (0x00013c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -189,13 +184,10 @@ 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]
-    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
-    E4          end
+    C8 04       save_regp X#0 Z#4 (0x04); stp x19, x20, [sp, #32]
+    89          save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
     E4          end
     E4          end
 

-28 (-8.14%) : 307007.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)

@@ -12,39 +12,37 @@
 ;  V00 this         [V00,T00] (  9,  6.57)     ref  ->  x19         this class-hnd single-def <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]>
 ;  V01 arg1         [V01,T02] (  4,  3   )   byref  ->  x20         single-def
 ;  V02 loc0         [V02,T03] (  5,  3.88)     ref  ->  x21         class-hnd exact single-def <<unknown class>>
-;  V03 loc1         [V03    ] (  2,  1.00)  struct ( 8) [fp+0x10]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Threading.SpinWait>
+;  V03 loc1         [V03    ] (  2,  1.00)  struct ( 8) [fp+0x18]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Threading.SpinWait>
 ;  V04 loc2         [V04,T01] (  9,  5.32)     int  ->  x23        
 ;  V05 loc3         [V05,T04] (  3,  3.01)     int  ->  x13        
 ;* V06 loc4         [V06    ] (  0,  0   )     int  ->  zero-ref   
-;  V07 loc5         [V07,T06] (  3,  2.57)     int  ->   x0        
-;  V08 loc6         [V08,T11] (  2,  0.57)   ubyte  ->   x0        
-;  V09 loc7         [V09,T10] (  3,  1.13)     int  ->  x27        
+;  V07 loc5         [V07,T06] (  3,  2.57)     int  ->   x2        
+;  V08 loc6         [V08,T11] (  2,  0.57)   ubyte  ->   x2        
+;  V09 loc7         [V09,T10] (  3,  1.13)     int  ->  x24        
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V11 tmp1         [V11    ] (  2,  1.00)     int  ->  [fp+0x10]  do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x0)" P-DEP
-;  V12 cse0         [V12,T09] (  3,  1.31)   byref  ->  x26         "CSE - moderate"
-;  V13 cse1         [V13,T05] (  4,  2.88)    long  ->  x25         "CSE - aggressive"
-;  V14 cse2         [V14,T07] (  3,  2.44)     int  ->  x24         "CSE - aggressive"
+;  V11 tmp1         [V11    ] (  2,  1.00)     int  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x0)" P-DEP
+;  V12 cse0         [V12,T09] (  3,  1.31)   byref  ->   x3         "CSE - moderate"
+;  V13 cse1         [V13,T05] (  4,  2.88)    long  ->   x1         "CSE - aggressive"
+;  V14 cse2         [V14,T07] (  3,  2.44)     int  ->   x0         "CSE - aggressive"
 ;  V15 cse3         [V15,T08] (  3,  2.44)   byref  ->  x22         hoist "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 16
 
 G_M25277_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     fp, lr, [sp, #-0x50]!
+            stp     x19, x20, [sp, #0x20]
+            stp     x21, x22, [sp, #0x30]
+            stp     x23, x24, [sp, #0x40]
             mov     fp, sp
             mov     x19, x0
             ; gcrRegs +[x19]
             mov     x20, x1
             ; byrRegs +[x20]
-                       ;; size=36 bbWeight=1 PerfScore 7.50
+                       ;; size=28 bbWeight=1 PerfScore 5.50
 G_M25277_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
             ldr     x21, [x19, #0x08]
             ; gcrRegs +[x21]
-            str     wzr, [fp, #0x10]   // [V03 loc1]
+            str     wzr, [fp, #0x18]   // [V03 loc1]
             add     x22, x19, #160
             ; byrRegs +[x22]
                        ;; size=12 bbWeight=1 PerfScore 4.50
@@ -52,92 +50,89 @@ G_M25277_IG03:        ; bbWeight=1.00, gcrefRegs=280000 {x19 x21}, byrefRegs=500
             ldapr   w23, [x22]
             ldr     w13, [x19, #0x18]
             and     w13, w23, w13
-            ldr     w24, [x21, #0x08]
-            cmp     w13, w24
+            ldr     w0, [x21, #0x08]
+            cmp     w13, w0
             bhs     G_M25277_IG12
             mov     w14, #24
             mov     x12, #16
-            umaddl  x25, w13, w14, x12
-            add     x13, x21, x25
+            umaddl  x1, w13, w14, x12
+            add     x13, x21, x1
             ; byrRegs +[x13]
             ldapr   w13, [x13]
             ; byrRegs -[x13]
             add     w14, w23, #1
-            sub     w0, w13, w14
-            cbz     w0, G_M25277_IG05
+            sub     w2, w13, w14
+            cbz     w2, G_M25277_IG07
                        ;; size=56 bbWeight=1.00 PerfScore 22.55
 G_M25277_IG04:        ; bbWeight=0.56, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, byref, isz
-            tbz     w0, #31, G_M25277_IG03
-            ldrb    w0, [x19, #0x1D]
-            add     x1, x19, #0xD1FFAB1E
-            ; byrRegs +[x1]
-            ldapr   w27, [x1]
-            sub     w1, w27, w23
-            ; byrRegs -[x1]
+            tbz     w2, #31, G_M25277_IG03
+            ldrb    w2, [x19, #0x1D]
+            add     x3, x19, #0xD1FFAB1E
+            ; byrRegs +[x3]
+            ldapr   w24, [x3]
+            sub     w1, w24, w23
             cmp     w1, #0
-            ble     G_M25277_IG08
-            b       G_M25277_IG10
-                       ;; size=32 bbWeight=0.56 PerfScore 5.92
-G_M25277_IG05:        ; bbWeight=0.44, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, byref, isz
+            bgt     G_M25277_IG10
+                       ;; size=28 bbWeight=0.56 PerfScore 5.36
+G_M25277_IG05:        ; bbWeight=0.56, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
+            ; gcrRegs -[x19 x21]
+            ; byrRegs -[x3 x22]
+            stp     xzr, xzr, [x20]
+            mov     w0, wzr
+                       ;; size=8 bbWeight=0.56 PerfScore 0.84
+G_M25277_IG06:        ; bbWeight=0.56, epilog, nogc, extend
+            ldp     x23, x24, [sp, #0x40]
+            ldp     x21, x22, [sp, #0x30]
+            ldp     x19, x20, [sp, #0x20]
+            ldp     fp, lr, [sp], #0x50
+            ret     lr
+                       ;; size=20 bbWeight=0.56 PerfScore 2.81
+G_M25277_IG07:        ; bbWeight=0.44, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, gcvars, byref, isz
+            ; gcrRegs +[x19 x21]
+            ; byrRegs +[x22]
             add     w13, w23, #1
             mov     w14, w23
             casal   w14, w13, [x22]
             cmp     w14, w23
             bne     G_M25277_IG03
-            add     x13, x21, x25
+            add     x13, x21, x1
             ; byrRegs +[x13]
-            add     x26, x13, #8
-            ; byrRegs +[x26]
+            add     x3, x13, #8
+            ; byrRegs +[x3]
             mov     x14, x20
             ; byrRegs +[x14]
-            mov     x13, x26
+            mov     x13, x3
             bl      CORINFO_HELP_ASSIGN_BYREF
             ; byrRegs -[x20 x22]
             ldr     x12, [x13], #0x08
             str     x12, [x14], #0x08
-            ldapurb w0, [x19, #0x1C]
-            cbnz    w0, G_M25277_IG06
-            stp     xzr, xzr, [x26]
-            add     x0, x21, x25
-            ; byrRegs +[x0]
-            add     w1, w24, w23
-            stlr    w1, [x0]
+            ldapurb w2, [x19, #0x1C]
+            cbnz    w2, G_M25277_IG08
+            stp     xzr, xzr, [x3]
+            add     x2, x21, x1
+            ; byrRegs +[x2]
+            add     w0, w0, w23
+            stlr    w0, [x2]
                        ;; size=72 bbWeight=0.44 PerfScore 8.54
-G_M25277_IG06:        ; bbWeight=0.44, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25277_IG08:        ; bbWeight=0.44, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19 x21]
-            ; byrRegs -[x0 x13-x14 x26]
+            ; byrRegs -[x2-x3 x13-x14]
             mov     w0, #1
                        ;; size=4 bbWeight=0.44 PerfScore 0.22
-G_M25277_IG07:        ; bbWeight=0.44, 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     fp, lr, [sp], #0x60
+G_M25277_IG09:        ; bbWeight=0.44, epilog, nogc, extend
+            ldp     x23, x24, [sp, #0x40]
+            ldp     x21, x22, [sp, #0x30]
+            ldp     x19, x20, [sp, #0x20]
+            ldp     fp, lr, [sp], #0x50
             ret     lr
-                       ;; size=28 bbWeight=0.44 PerfScore 3.50
-G_M25277_IG08:        ; bbWeight=0.56, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, gcvars, byref
-            ; byrRegs +[x20]
-            stp     xzr, xzr, [x20]
-            mov     w0, wzr
-                       ;; size=8 bbWeight=0.56 PerfScore 0.84
-G_M25277_IG09:        ; bbWeight=0.56, 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     fp, lr, [sp], #0x60
-            ret     lr
-                       ;; size=28 bbWeight=0.56 PerfScore 4.50
+                       ;; size=20 bbWeight=0.44 PerfScore 2.19
 G_M25277_IG10:        ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, gcvars, byref, isz
             ; gcrRegs +[x19 x21]
-            ; byrRegs +[x22]
-            cbnz    w0, G_M25277_IG13
+            ; byrRegs +[x20 x22]
+            cbnz    w2, G_M25277_IG13
                        ;; size=4 bbWeight=0.00 PerfScore 0.00
 G_M25277_IG11:        ; bbWeight=0.00, gcrefRegs=280000 {x19 x21}, byrefRegs=500000 {x20 x22}, byref
-            add     x0, fp, #16    // [V03 loc1]
+            add     x0, fp, #24    // [V03 loc1]
             movn    w1, #0
             movz    x2, #0xD1FFAB1E      // code for System.Threading.SpinWait:SpinOnce(int):this
             movk    x2, #0xD1FFAB1E LSL #16
@@ -160,25 +155,25 @@ G_M25277_IG13:        ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=500000
             ; gcrRegs +[x0]
             ldr     w0, [x0, #0x08]
             ; gcrRegs -[x0]
-            sub     w0, w27, w0,  LSL #1
+            sub     w0, w24, w0,  LSL #1
             sub     w0, w0, w23
             cmp     w0, #0
-            ble     G_M25277_IG08
+            ble     G_M25277_IG05
             b       G_M25277_IG11
                        ;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 344, prolog size 36, PerfScore 58.10, instruction count 86, allocated bytes for code 344 (MethodHash=26289d42) for method System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)
+; Total bytes of code 316, prolog size 28, PerfScore 52.54, instruction count 79, allocated bytes for code 316 (MethodHash=26289d42) for method System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 3
+  Code Words        : 2
   Epilog Count      : 2
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 86 (0x00056) Actual length = 344 (0x000158)
+  Function Length   : 79 (0x0004f) Actual length = 316 (0x00013c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -189,13 +184,10 @@ 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]
-    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
-    E4          end
+    C8 04       save_regp X#0 Z#4 (0x04); stp x19, x20, [sp, #32]
+    89          save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
     E4          end
     E4          end
 

+28 (+77.78%) : 516572.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)

@@ -8,7 +8,7 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T00] (  2,  2   )   float  ->   d0         single-def
+;  V00 loc0         [V00,T00] (  4,  3.50)   float  ->   d0         single-def
 ;* V01 loc1         [V01    ] (  0,  0   )   float  ->  zero-ref   
 ;* V02 loc2         [V02    ] (  0,  0   )   float  ->  zero-ref   
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -19,19 +19,28 @@ G_M53663_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             movz    x0, #0xD1FFAB1E      // code for Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
             ldr     x0, [x0]
             blr     x0
-                       ;; size=20 bbWeight=1 PerfScore 5.50
-G_M53663_IG03:        ; bbWeight=1, epilog, nogc, extend
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            bhs     G_M53663_IG04
+                       ;; size=32 bbWeight=1 PerfScore 8.00
+G_M53663_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
+G_M53663_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            bne     G_M53663_IG03
+            b       G_M53663_IG03
+                       ;; size=16 bbWeight=0.50 PerfScore 1.75
 
-; Total bytes of code 36, prolog size 8, PerfScore 9.00, instruction count 9, allocated bytes for code 36 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 64, prolog size 8, PerfScore 13.25, instruction count 16, allocated bytes for code 64 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -42,7 +51,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 9 (0x00009) Actual length = 36 (0x000024)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+77.78%) : 520544.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)

@@ -8,7 +8,7 @@
 ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )   float  ->  zero-ref   
+;  V00 loc0         [V00,T00] (  4,  3.50)   float  ->   d0         single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
 ; Lcl frame size = 0
@@ -17,19 +17,28 @@ G_M53663_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             movz    x0, #0xD1FFAB1E      // code for Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
             ldr     x0, [x0]
             blr     x0
-                       ;; size=20 bbWeight=1 PerfScore 5.50
-G_M53663_IG03:        ; bbWeight=1, epilog, nogc, extend
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            bhs     G_M53663_IG04
+                       ;; size=32 bbWeight=1 PerfScore 8.00
+G_M53663_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
+G_M53663_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            bne     G_M53663_IG03
+            b       G_M53663_IG03
+                       ;; size=16 bbWeight=0.50 PerfScore 1.75
 
-; Total bytes of code 36, prolog size 8, PerfScore 9.00, instruction count 9, allocated bytes for code 36 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 64, prolog size 8, PerfScore 13.25, instruction count 16, allocated bytes for code 64 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -40,7 +49,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 9 (0x00009) Actual length = 36 (0x000024)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+44 (+122.22%) : 520596.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_1():float (FullOpts)

@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )   float  ->  zero-ref   
+;  V00 loc0         [V00,T00] (  5,  4   )   float  ->   d0         single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T00] (  2,  4   )   float  ->   d0         "Single return block return value"
+;  V02 tmp1         [V02,T01] (  2,  4   )   float  ->   d0         "Single return block return value"
 ;
 ; Lcl frame size = 0
 
@@ -18,19 +18,34 @@ G_M53791_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M53791_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53791_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             movz    x0, #0xD1FFAB1E      // code for Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
             ldr     x0, [x0]
             blr     x0
-                       ;; size=20 bbWeight=1 PerfScore 5.50
-G_M53791_IG03:        ; bbWeight=1, epilog, nogc, extend
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            ble     G_M53791_IG04
+                       ;; size=32 bbWeight=1 PerfScore 8.00
+G_M53791_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            b       G_M53791_IG05
+                       ;; size=4 bbWeight=1 PerfScore 1.00
+G_M53791_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            blo     G_M53791_IG03
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            bne     G_M53791_IG03
+            b       G_M53791_IG03
+                       ;; size=28 bbWeight=0.50 PerfScore 3.00
+G_M53791_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 36, prolog size 8, PerfScore 9.00, instruction count 9, allocated bytes for code 36 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 80, prolog size 8, PerfScore 15.50, instruction count 20, allocated bytes for code 80 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -41,7 +56,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 9 (0x00009) Actual length = 36 (0x000024)
+  Function Length   : 20 (0x00014) Actual length = 80 (0x000050)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries.crossgen2.osx.arm64.checked.mch

-4 (-3.33%) : 207141.dasm - System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)

@@ -48,9 +48,8 @@ G_M9062_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001
             mov     w11, #0xD1FFAB1E
             cmp     w1, #0xD1FFAB1E
             ccmp    w1, w11, z, ne
-            bne     G_M9062_IG07
-            b       G_M9062_IG04
-                       ;; size=20 bbWeight=0.50 PerfScore 1.75
+            beq     G_M9062_IG04
+                       ;; size=16 bbWeight=0.50 PerfScore 1.25
 G_M9062_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     w0, w1
@@ -67,7 +66,7 @@ G_M9062_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=40 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 120, prolog size 8, PerfScore 13.50, instruction count 30, allocated bytes for code 120 (MethodHash=f1e0dc99) for method System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
+; Total bytes of code 116, prolog size 8, PerfScore 13.00, instruction count 29, allocated bytes for code 116 (MethodHash=f1e0dc99) for method System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -78,7 +77,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
+  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.04%) : 43097.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)

@@ -72,9 +72,8 @@ G_M30640_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x11]
             ldr     w1, [x11, #0x04]
             cmn     w1, #1
-            bge     G_M30640_IG07
-            b       G_M30640_IG03
-                       ;; size=60 bbWeight=2 PerfScore 45.00
+            blt     G_M30640_IG03
+                       ;; size=56 bbWeight=2 PerfScore 43.00
 G_M30640_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0801 {x0 x11}, byref
             ldr     w11, [x11, #0x08]
             ; byrRegs -[x11]
@@ -102,7 +101,7 @@ G_M30640_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 196, prolog size 8, PerfScore 149.75, instruction count 49, allocated bytes for code 196 (MethodHash=31a2884f) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 192, prolog size 8, PerfScore 147.75, instruction count 48, allocated bytes for code 192 (MethodHash=31a2884f) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -113,7 +112,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 49 (0x00031) Actual length = 196 (0x0000c4)
+  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.04%) : 43102.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)

@@ -72,9 +72,8 @@ G_M9612_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
             ; byrRegs +[x11]
             ldr     w1, [x11, #0x04]
             cmn     w1, #1
-            bge     G_M9612_IG07
-            b       G_M9612_IG03
-                       ;; size=60 bbWeight=2 PerfScore 45.00
+            blt     G_M9612_IG03
+                       ;; size=56 bbWeight=2 PerfScore 43.00
 G_M9612_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0801 {x0 x11}, byref
             ldrb    w11, [x11, #0x0C]
             ; byrRegs -[x11]
@@ -102,7 +101,7 @@ G_M9612_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 196, prolog size 8, PerfScore 149.75, instruction count 49, allocated bytes for code 196 (MethodHash=d379da73) for method System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 192, prolog size 8, PerfScore 147.75, instruction count 48, allocated bytes for code 192 (MethodHash=d379da73) for method System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -113,7 +112,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 49 (0x00031) Actual length = 196 (0x0000c4)
+  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+10.94%) : 45732.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)

@@ -10,7 +10,7 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T03] (  3,  2.50)     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.OverloadResolution>
-;  V01 arg1         [V01,T00] (  7,  6   )     int  ->  x19         single-def
+;  V01 arg1         [V01,T00] (  9,  6   )     int  ->  x19         single-def
 ;  V02 arg2         [V02,T01] (  7,  4.50)     ref  ->  x20         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;  V03 arg3         [V03,T02] (  4,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -41,16 +41,27 @@ G_M9442_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
             ; gcrRegs +[x21]
                        ;; size=52 bbWeight=1 PerfScore 10.00
 G_M9442_IG02:        ; bbWeight=1, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x0]
+            mov     w11, #0xD1FFAB1E
+            cmp     w19, w11
+            bgt     G_M9442_IG04
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M9442_IG03:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x0]
+            mov     w0, #0xD1FFAB1E
+            mov     w11, #0xD1FFAB1E
+            cmp     w19, w0
+            ccmp    w19, w11, z, ne
+            beq     G_M9442_IG06
+            b       G_M9442_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 2.00
+G_M9442_IG04:        ; bbWeight=0.50, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
             mov     w11, #0xD1FFAB1E
             mov     w1, #0xD1FFAB1E
-            mov     w2, #0xD1FFAB1E
             cmp     w19, w11
             ccmp    w19, w1, z, ne
-            ccmp    w19, w2, nzc, eq
-            ble     G_M9442_IG05
-                       ;; size=28 bbWeight=1 PerfScore 4.00
-G_M9442_IG03:        ; bbWeight=0.50, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0000 {}, byref
+            bne     G_M9442_IG06
             ldr     x0, [x0, #0x08]
             ldr     x0, [x0, #0x08]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -74,14 +85,14 @@ G_M9442_IG03:        ; bbWeight=0.50, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0
             ldr     x2, [x11]
             blr     x2
             ; gcrRegs -[x0 x20-x21]
-                       ;; size=88 bbWeight=0.50 PerfScore 14.75
-G_M9442_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+                       ;; size=108 bbWeight=0.50 PerfScore 16.25
+G_M9442_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x21, [sp, #0x98]
             ldp     x19, x20, [sp, #0x88]
             ldp     fp, lr, [sp], #0xA0
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M9442_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M9442_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x20-x21]
             mov     w1, #23
             orr     w1, w19, w1
@@ -100,14 +111,14 @@ G_M9442_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=3000
             blr     x2
             ; gcrRegs -[x0 x20-x21]
                        ;; size=56 bbWeight=0.50 PerfScore 7.50
-G_M9442_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M9442_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x21, [sp, #0x98]
             ldp     x19, x20, [sp, #0x88]
             ldp     fp, lr, [sp], #0xA0
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
 
-; Total bytes of code 256, prolog size 40, PerfScore 41.25, instruction count 64, allocated bytes for code 256 (MethodHash=8378db1d) for method Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
+; Total bytes of code 284, prolog size 40, PerfScore 42.75, instruction count 71, allocated bytes for code 284 (MethodHash=8378db1d) for method Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -118,7 +129,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 64 (0x00040) Actual length = 256 (0x000100)
+  Function Length   : 71 (0x00047) Actual length = 284 (0x00011c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+12.96%) : 73624.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:g_makeReplacement|171(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)

@@ -9,7 +9,7 @@
 ; 0 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  4,  3.50)     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
+;  V00 arg0         [V00,T00] (  5,  4   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
 ;  V01 arg1         [V01,T01] (  4,  3   )     ref  ->  x20         class-hnd single-def <System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]>
 ;  V02 loc0         [V02,T03] (  4,  2   )     ref  ->   x0         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDagFieldEvaluation>
 ;  V03 loc1         [V03,T05] (  3,  1.50)     ref  ->  x22         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol>
@@ -41,10 +41,22 @@ G_M26195_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ; gcr arg pop 0
             mov     x21, x0
             ; gcrRegs +[x21]
-            cbz     x21, G_M26195_IG05
+            cbnz    x21, G_M26195_IG04
                        ;; size=28 bbWeight=1 PerfScore 7.00
-G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x0]
+G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x0 x21]
+            mov     x0, x19
+            ; gcrRegs +[x0]
+            adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
+            add     x11, x11, [LOW RELOC #0xD1FFAB1E]
+            ldr     x1, [x11]
+            blr     x1
+            ; gcr arg pop 0
+            cbnz    x0, G_M26195_IG06
+            b       G_M26195_IG06
+                       ;; size=28 bbWeight=0.50 PerfScore 3.75
+G_M26195_IG04:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x0] +[x21]
             ldr     x0, [x21, #0x18]
             ; gcrRegs +[x0]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -52,11 +64,11 @@ G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
             ldr     x1, [x11]
             blr     x1
             ; gcr arg pop 0
-            cbz     x0, G_M26195_IG05
+            cbz     x0, G_M26195_IG06
             ldr     x11, [x0, #0x18]
             ; gcrRegs +[x11]
             ldr     x11, [x11, #0x20]
-            cbnz    x11, G_M26195_IG05
+            cbnz    x11, G_M26195_IG06
             ldr     x22, [x0, #0x20]
             ; gcrRegs +[x22]
             mov     x0, x22
@@ -67,7 +79,7 @@ G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
             ldr     x1, [x11]
             blr     x1
             ; gcr arg pop 0
-            cbz     x0, G_M26195_IG05
+            cbz     x0, G_M26195_IG06
             mov     x0, x22
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
@@ -84,14 +96,14 @@ G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
             ldr     wzr, [x0]
             ldr     x2, [x11]
                        ;; size=112 bbWeight=0.50 PerfScore 22.25
-G_M26195_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x21, x22, [sp, #0x20]
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x30
             br      x2
             ; gcr arg pop 0
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
-G_M26195_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
+G_M26195_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0-x1 x21] +[x19]
             mov     x1, x20
             ; gcrRegs +[x1]
@@ -101,7 +113,7 @@ G_M26195_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x2, [x11]
                        ;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M26195_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x21, x22, [sp, #0x20]
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x30
@@ -109,7 +121,7 @@ G_M26195_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ; gcr arg pop 0
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 216, prolog size 24, PerfScore 40.25, instruction count 54, allocated bytes for code 216 (MethodHash=af9999ac) for method Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
+; Total bytes of code 244, prolog size 24, PerfScore 44.00, instruction count 61, allocated bytes for code 244 (MethodHash=af9999ac) for method Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -120,7 +132,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 54 (0x00036) Actual length = 216 (0x0000d8)
+  Function Length   : 61 (0x0003d) Actual length = 244 (0x0000f4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+14.55%) : 124594.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)

@@ -8,7 +8,7 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6,  4   )     int  ->  x19         single-def
+;  V00 arg0         [V00,T00] (  9,  4   )     int  ->  x19         single-def
 ;  V01 arg1         [V01,T01] (  4,  2   )     ref  ->  x20         class-hnd single-def <System.String>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  0   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -27,11 +27,11 @@ G_M20631_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[x20]
                        ;; size=24 bbWeight=1 PerfScore 4.50
 G_M20631_IG02:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
-            mov     w11, #250
             cmp     w19, #0xD1FFAB1E
-            ccmp    w19, w11, 0, le
-            bne     G_M20631_IG04
-                       ;; size=16 bbWeight=1 PerfScore 2.50
+            bgt     G_M20631_IG07
+            cmp     w19, #250
+            bne     G_M20631_IG06
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M20631_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
@@ -97,10 +97,23 @@ G_M20631_IG05:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
             ldr     x1, [x1]
             blr     x1
             ; gcrRegs -[x0 x21]
-            brk_unix #0
-                       ;; size=72 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
+G_M20631_IG06:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x20]
+            sub     w11, w19, #0xD1FFAB1E
+            cmp     w11, #1
+            bls     G_M20631_IG04
+            b       G_M20631_IG04
+                       ;; size=16 bbWeight=0 PerfScore 0.00
+G_M20631_IG07:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+            mov     w11, #0xD1FFAB1E
+            cmp     w19, #0xD1FFAB1E
+            ccmp    w19, w11, z, ne
+            beq     G_M20631_IG04
+            b       G_M20631_IG04
+                       ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 220, prolog size 16, PerfScore 12.00, instruction count 55, allocated bytes for code 220 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 252, prolog size 16, PerfScore 12.50, instruction count 63, allocated bytes for code 252 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -111,7 +124,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 55 (0x00037) Actual length = 220 (0x0000dc)
+  Function Length   : 63 (0x0003f) Actual length = 252 (0x0000fc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries.pmi.osx.arm64.checked.mch

-16 (-10.81%) : 179969.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)

@@ -33,37 +33,25 @@ G_M54442_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ldr     d1, [@RWD08]
             str     d1, [fp, #0x10]    // [V08 cse0]
             fcmp    d8, d1
-            bhs     G_M54442_IG04
+            blo     G_M54442_IG04
                        ;; size=28 bbWeight=1 PerfScore 25.00
-G_M54442_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            b       G_M54442_IG07
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M54442_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+G_M54442_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             fcmp    d8, d1
-            bgt     G_M54442_IG05
+            bgt     G_M54442_IG06
             fcmp    d8, d1
-            bne     G_M54442_IG06
-            b       G_M54442_IG07
-                       ;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M54442_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            b       G_M54442_IG09
-                       ;; size=4 bbWeight=0.25 PerfScore 0.25
-G_M54442_IG06:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x0]
+            beq     G_M54442_IG04
             fcmp    d8, d8
-            beq     G_M54442_IG09
-            b       G_M54442_IG03
-                       ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M54442_IG07:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+            beq     G_M54442_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M54442_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             str     x1, [x0, #0x18]
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M54442_IG08:        ; bbWeight=1, epilog, nogc, extend
+G_M54442_IG05:        ; bbWeight=1, epilog, nogc, extend
             ldr     d8, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
-G_M54442_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M54442_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
@@ -85,7 +73,7 @@ RWD00     dq  416312D000000000h   ;     10000000
 RWD08      dq  41DFFFFFFFC00000h   ; 2.14748365e+09
 
 
-; Total bytes of code 148, prolog size 12, PerfScore 37.25, instruction count 37, allocated bytes for code 148 (MethodHash=b6192b55) for method System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
+; Total bytes of code 132, prolog size 12, PerfScore 35.50, instruction count 33, allocated bytes for code 132 (MethodHash=b6192b55) for method System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -96,7 +84,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 33 (0x00021) Actual length = 132 (0x000084)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-9.09%) : 3905.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThandouble (FullOpts)

@@ -24,32 +24,24 @@ G_M14136_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M14136_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
             fcmp    d0, d1
-            blo     G_M14136_IG07
+            blo     G_M14136_IG05
                        ;; size=8 bbWeight=1 PerfScore 2.00
 G_M14136_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             fcmp    d0, d1
-            bgt     G_M14136_IG06
+            bgt     G_M14136_IG04
             fcmp    d0, d1
-            bne     G_M14136_IG05
-                       ;; size=16 bbWeight=0.50 PerfScore 2.00
-G_M14136_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            b       G_M14136_IG06
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M14136_IG05:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x0]
+            beq     G_M14136_IG04
             fcmp    d0, d0
-            beq     G_M14136_IG06
+            beq     G_M14136_IG04
             fcmp    d1, d1
-            beq     G_M14136_IG07
-            b       G_M14136_IG04
-                       ;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M14136_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            beq     G_M14136_IG05
+                       ;; size=32 bbWeight=0.50 PerfScore 4.00
+G_M14136_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[x0]
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M14136_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M14136_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for System.ArgumentOutOfRangeException:ThrowLess[double](double,double,System.String)
             movk    x1, #0xD1FFAB1E LSL #16
@@ -60,7 +52,7 @@ G_M14136_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 88, prolog size 8, PerfScore 10.50, instruction count 22, allocated bytes for code 88 (MethodHash=b47cc8c7) for method System.ArgumentOutOfRangeException:ThrowIfLessThan[double](double,double,System.String) (FullOpts)
+; Total bytes of code 80, prolog size 8, PerfScore 9.50, instruction count 20, allocated bytes for code 80 (MethodHash=b47cc8c7) for method System.ArgumentOutOfRangeException:ThrowIfLessThan[double](double,double,System.String) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -71,7 +63,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 22 (0x00016) Actual length = 88 (0x000058)
+  Function Length   : 20 (0x00014) Actual length = 80 (0x000050)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-4.62%) : 179982.dasm - System.Net.Http.Headers.StringWithQualityHeaderValue:.ctor(System.String,double):this (FullOpts)

@@ -44,29 +44,22 @@ G_M10782_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             blr     x2
             ; gcrRegs -[x0]
             mov     x14, v8.d[0]
-            tbnz    x14, #63, G_M10782_IG08
+            tbnz    x14, #63, G_M10782_IG06
             fmov    d16, #1.0000
             fcmp    d8, d16
-            bhs     G_M10782_IG04
+            blo     G_M10782_IG04
                        ;; size=56 bbWeight=1 PerfScore 12.00
-G_M10782_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
-            b       G_M10782_IG06
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M10782_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M10782_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             fmov    d16, #1.0000
             fcmp    d8, d16
-            bgt     G_M10782_IG09
+            bgt     G_M10782_IG07
             fmov    d16, #1.0000
             fcmp    d8, d16
-            bne     G_M10782_IG05
-            b       G_M10782_IG06
-                       ;; size=28 bbWeight=0.50 PerfScore 3.00
-G_M10782_IG05:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            beq     G_M10782_IG04
             fcmp    d8, d8
-            beq     G_M10782_IG09
-            b       G_M10782_IG03
-                       ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M10782_IG06:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+            beq     G_M10782_IG07
+                       ;; size=32 bbWeight=0.50 PerfScore 3.50
+G_M10782_IG04:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             add     x14, x19, #8
             ; byrRegs +[x14]
             mov     x15, x20
@@ -76,13 +69,13 @@ G_M10782_IG06:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ; byrRegs -[x14]
             str     d8, [x19, #0x10]
                        ;; size=16 bbWeight=1 PerfScore 3.00
-G_M10782_IG07:        ; bbWeight=1, epilog, nogc, extend
+G_M10782_IG05:        ; bbWeight=1, epilog, nogc, extend
             ldp     x19, x20, [sp, #0x20]
             ldr     d8, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=16 bbWeight=1 PerfScore 5.00
-G_M10782_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M10782_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19]
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
@@ -99,7 +92,7 @@ G_M10782_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; gcrRegs -[x0]
             brk_unix #0
                        ;; size=48 bbWeight=0 PerfScore 0.00
-G_M10782_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M10782_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -117,7 +110,7 @@ G_M10782_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=52 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 260, prolog size 16, PerfScore 30.00, instruction count 65, allocated bytes for code 260 (MethodHash=44cad5e1) for method System.Net.Http.Headers.StringWithQualityHeaderValue:.ctor(System.String,double):this (FullOpts)
+; Total bytes of code 248, prolog size 16, PerfScore 28.50, instruction count 62, allocated bytes for code 248 (MethodHash=44cad5e1) for method System.Net.Http.Headers.StringWithQualityHeaderValue:.ctor(System.String,double):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -128,7 +121,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 65 (0x00041) Actual length = 260 (0x000104)
+  Function Length   : 62 (0x0003e) Actual length = 248 (0x0000f8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+12 (+13.64%) : 9153.dasm - System.SpanHelpers:LastIndexOfAnyInRangeint:int (FullOpts)

@@ -10,7 +10,7 @@
 ;
 ;  V00 arg0         [V00,T06] (  3,  6   )   byref  ->   x0         single-def
 ;  V01 arg1         [V01,T03] (  4,  8   )     int  ->   x1         ld-addr-op single-def
-;  V02 arg2         [V02,T05] (  3,  4   )     int  ->   x2         ld-addr-op single-def
+;  V02 arg2         [V02,T05] (  4,  6   )     int  ->   x2         ld-addr-op single-def
 ;  V03 arg3         [V03,T10] (  3,  3   )     int  ->   x3         single-def
 ;  V04 loc0         [V04,T01] (  7, 18.50)     int  ->   x3        
 ;  V05 loc1         [V05,T07] (  2,  8   )   byref  ->   x4        
@@ -18,7 +18,7 @@
 ;* V07 tmp1         [V07,T08] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V08 tmp2         [V08,T00] (  3, 20   )     int  ->   x5         "Inlining Arg"
 ;* V09 tmp3         [V09,T09] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V10 tmp4         [V10,T02] (  2,  8   )     int  ->   x4         "Inlining Arg"
+;  V10 tmp4         [V10,T02] (  3, 12   )     int  ->   x4         "Inlining Arg"
 ;  V11 cse0         [V11,T04] (  3, 10   )     int  ->   x4         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
@@ -48,8 +48,11 @@ G_M37321_IG04:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byre
                        ;; size=8 bbWeight=2 PerfScore 3.00
 G_M37321_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
             cmp     w2, w4
-            bge     G_M37321_IG09
-                       ;; size=8 bbWeight=2 PerfScore 3.00
+            blt     G_M37321_IG06
+            cmp     w2, w4
+            ble     G_M37321_IG09
+            b       G_M37321_IG09
+                       ;; size=20 bbWeight=2 PerfScore 8.00
 G_M37321_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
             sub     w3, w3, #1
             tbz     w3, #31, G_M37321_IG03
@@ -70,7 +73,7 @@ G_M37321_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 88, prolog size 8, PerfScore 43.50, instruction count 22, allocated bytes for code 88 (MethodHash=fbeb6e36) for method System.SpanHelpers:LastIndexOfAnyInRange[int](byref,int,int,int):int (FullOpts)
+; Total bytes of code 100, prolog size 8, PerfScore 48.50, instruction count 25, allocated bytes for code 100 (MethodHash=fbeb6e36) for method System.SpanHelpers:LastIndexOfAnyInRange[int](byref,int,int,int):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -81,7 +84,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 22 (0x00016) Actual length = 88 (0x000058)
+  Function Length   : 25 (0x00019) Actual length = 100 (0x000064)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+12 (+13.64%) : 9155.dasm - System.SpanHelpers:LastIndexOfAnyInRangelong:int (FullOpts)

@@ -10,7 +10,7 @@
 ;
 ;  V00 arg0         [V00,T06] (  3,  6   )   byref  ->   x0         single-def
 ;  V01 arg1         [V01,T03] (  4,  8   )    long  ->   x1         ld-addr-op single-def
-;  V02 arg2         [V02,T05] (  3,  4   )    long  ->   x2         ld-addr-op single-def
+;  V02 arg2         [V02,T05] (  4,  6   )    long  ->   x2         ld-addr-op single-def
 ;  V03 arg3         [V03,T10] (  3,  3   )     int  ->   x3         single-def
 ;  V04 loc0         [V04,T01] (  7, 18.50)     int  ->   x3        
 ;  V05 loc1         [V05,T07] (  2,  8   )   byref  ->   x4        
@@ -18,7 +18,7 @@
 ;* V07 tmp1         [V07,T08] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V08 tmp2         [V08,T00] (  3, 20   )    long  ->   x5         "Inlining Arg"
 ;* V09 tmp3         [V09,T09] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V10 tmp4         [V10,T02] (  2,  8   )    long  ->   x4         "Inlining Arg"
+;  V10 tmp4         [V10,T02] (  3, 12   )    long  ->   x4         "Inlining Arg"
 ;  V11 cse0         [V11,T04] (  3, 10   )    long  ->   x4         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
@@ -48,8 +48,11 @@ G_M64784_IG04:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byre
                        ;; size=8 bbWeight=2 PerfScore 3.00
 G_M64784_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
             cmp     x2, x4
-            bge     G_M64784_IG09
-                       ;; size=8 bbWeight=2 PerfScore 3.00
+            blt     G_M64784_IG06
+            cmp     x2, x4
+            ble     G_M64784_IG09
+            b       G_M64784_IG09
+                       ;; size=20 bbWeight=2 PerfScore 8.00
 G_M64784_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
             sub     w3, w3, #1
             tbz     w3, #31, G_M64784_IG03
@@ -70,7 +73,7 @@ G_M64784_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 88, prolog size 8, PerfScore 43.50, instruction count 22, allocated bytes for code 88 (MethodHash=eef202ef) for method System.SpanHelpers:LastIndexOfAnyInRange[long](byref,long,long,int):int (FullOpts)
+; Total bytes of code 100, prolog size 8, PerfScore 48.50, instruction count 25, allocated bytes for code 100 (MethodHash=eef202ef) for method System.SpanHelpers:LastIndexOfAnyInRange[long](byref,long,long,int):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -81,7 +84,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 22 (0x00016) Actual length = 88 (0x000058)
+  Function Length   : 25 (0x00019) Actual length = 100 (0x000064)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+15.38%) : 289236.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)

@@ -7,7 +7,7 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6,  4   )     int  ->  x19         single-def
+;  V00 arg0         [V00,T00] (  9,  4   )     int  ->  x19         single-def
 ;  V01 arg1         [V01,T01] (  4,  2   )     ref  ->  x20         class-hnd single-def <System.String>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  0   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -26,11 +26,11 @@ G_M20631_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[x20]
                        ;; size=24 bbWeight=1 PerfScore 4.50
 G_M20631_IG02:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
-            mov     w0, #250
             cmp     w19, #0xD1FFAB1E
-            ccmp    w19, w0, 0, le
-            bne     G_M20631_IG04
-                       ;; size=16 bbWeight=1 PerfScore 2.50
+            bgt     G_M20631_IG07
+            cmp     w19, #250
+            bne     G_M20631_IG06
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M20631_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
@@ -93,10 +93,23 @@ G_M20631_IG05:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
             ; gcrRegs +[x0]
             bl      CORINFO_HELP_THROW
             ; gcrRegs -[x0 x21]
-            brk_unix #0
-                       ;; size=64 bbWeight=0 PerfScore 0.00
+                       ;; size=60 bbWeight=0 PerfScore 0.00
+G_M20631_IG06:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x20]
+            sub     w0, w19, #0xD1FFAB1E
+            cmp     w0, #1
+            bls     G_M20631_IG04
+            b       G_M20631_IG04
+                       ;; size=16 bbWeight=0 PerfScore 0.00
+G_M20631_IG07:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+            mov     w0, #0xD1FFAB1E
+            cmp     w19, #0xD1FFAB1E
+            ccmp    w19, w0, z, ne
+            beq     G_M20631_IG04
+            b       G_M20631_IG04
+                       ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 208, prolog size 16, PerfScore 12.00, instruction count 52, allocated bytes for code 208 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 240, prolog size 16, PerfScore 12.50, instruction count 60, allocated bytes for code 240 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -107,7 +120,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
+  Function Length   : 60 (0x0003c) Actual length = 240 (0x0000f0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries_tests.run.osx.arm64.Release.mch

-8 (-12.50%) : 384872.dasm - System.Xml.XmlTextReaderImpl:GetResolver():System.Xml.XmlResolver:this (Tier1)

@@ -15,7 +15,7 @@
 ;
 ; Lcl frame size = 0
 
-G_M1329_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M1329_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
@@ -23,37 +23,30 @@ G_M1329_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x0]
             ldr     x1, [x0, #0x30]
             ; gcrRegs +[x1]
-            cbz     x1, G_M1329_IG04
+            cbnz    x1, G_M1329_IG05
                        ;; size=8 bbWeight=1 PerfScore 4.00
-G_M1329_IG03:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x1]
-            ldrb    w1, [x0, #0xD1FFAB1E]
-            cmp     w1, #0
-            cset    x1, eq
-            b       G_M1329_IG08
-                       ;; size=16 bbWeight=0 PerfScore 0.00
-G_M1329_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
+G_M1329_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0-x1]
             mov     x0, xzr
                        ;; size=4 bbWeight=1 PerfScore 0.50
-G_M1329_IG05:        ; bbWeight=1, epilog, nogc, extend
+G_M1329_IG04:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M1329_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M1329_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x0]
+            ldrb    w1, [x0, #0xD1FFAB1E]
+            cmp     w1, #0
+            cset    x1, eq
+            cbnz    w1, G_M1329_IG03
             ldr     x0, [x0, #0x30]
-                       ;; size=4 bbWeight=0 PerfScore 0.00
-G_M1329_IG07:        ; bbWeight=0, epilog, nogc, extend
+                       ;; size=20 bbWeight=0 PerfScore 0.00
+G_M1329_IG06:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M1329_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
-            cbz     w1, G_M1329_IG06
-            b       G_M1329_IG04
-                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 64, prolog size 8, PerfScore 8.00, instruction count 16, allocated bytes for code 64 (MethodHash=4becface) for method System.Xml.XmlTextReaderImpl:GetResolver():System.Xml.XmlResolver:this (Tier1)
+; Total bytes of code 56, prolog size 8, PerfScore 8.00, instruction count 14, allocated bytes for code 56 (MethodHash=4becface) for method System.Xml.XmlTextReaderImpl:GetResolver():System.Xml.XmlResolver:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -64,7 +57,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
+  Function Length   : 14 (0x0000e) Actual length = 56 (0x000038)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-10.53%) : 622025.dasm - System.Threading.Tasks.Dataflow.Internal.TargetCore`1[int]:get_CanceledOrFaulted():ubyte:this (Tier1)

@@ -19,7 +19,7 @@
 ;
 ; Lcl frame size = 0
 
-G_M28240_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M28240_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
@@ -28,39 +28,35 @@ G_M28240_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ldr     x1, [x0, #0x20]
             ; gcrRegs +[x1]
             ldr     x1, [x1, #0x28]
-            cbz     x1, G_M28240_IG04
+            cbnz    x1, G_M28240_IG05
                        ;; size=12 bbWeight=1 PerfScore 7.00
-G_M28240_IG03:        ; bbWeight=0, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
-            ldapur  w1, [x1, #0x20]
+G_M28240_IG03:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
-            cmp     w1, #0
-            cset    x1, ne
-            b       G_M28240_IG08
-                       ;; size=16 bbWeight=0 PerfScore 0.00
-G_M28240_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ldapur  x0, [x0, #0x40]
             cmp     x0, #0
             cset    x0, ne
             ; gcrRegs -[x0]
                        ;; size=12 bbWeight=1 PerfScore 4.00
-G_M28240_IG05:        ; bbWeight=1, epilog, nogc, extend
+G_M28240_IG04:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M28240_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M28240_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x0-x1]
+            ldapur  w1, [x1, #0x20]
+            ; gcrRegs -[x1]
+            cmp     w1, #0
+            cset    x1, ne
+            cbz     w1, G_M28240_IG03
             mov     w0, #1
-                       ;; size=4 bbWeight=0 PerfScore 0.00
-G_M28240_IG07:        ; bbWeight=0, epilog, nogc, extend
+            ; gcrRegs -[x0]
+                       ;; size=20 bbWeight=0 PerfScore 0.00
+G_M28240_IG06:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M28240_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x0]
-            cbnz    w1, G_M28240_IG06
-            b       G_M28240_IG04
-                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 76, prolog size 8, PerfScore 14.50, instruction count 19, allocated bytes for code 76 (MethodHash=eda591af) for method System.Threading.Tasks.Dataflow.Internal.TargetCore`1[int]:get_CanceledOrFaulted():ubyte:this (Tier1)
+; Total bytes of code 68, prolog size 8, PerfScore 14.50, instruction count 17, allocated bytes for code 68 (MethodHash=eda591af) for method System.Threading.Tasks.Dataflow.Internal.TargetCore`1[int]:get_CanceledOrFaulted():ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -71,7 +67,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 19 (0x00013) Actual length = 76 (0x00004c)
+  Function Length   : 17 (0x00011) Actual length = 68 (0x000044)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-10.00%) : 56995.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:get_SourcePartialImplementation():Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:this (Tier1)

@@ -16,48 +16,42 @@
 ;
 ; Lcl frame size = 0
 
-G_M46194_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M46194_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M46194_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
             ldr     w1, [x0, #0x68]
-            tbz     w1, #14, G_M46194_IG04
+            tbnz    w1, #14, G_M46194_IG05
                        ;; size=8 bbWeight=1 PerfScore 4.00
-G_M46194_IG03:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            ldr     w1, [x0, #0x70]
-            tbnz    w1, #19, G_M46194_IG04
-            ldr     w1, [x0, #0x68]
-            tst     w1, #0xD1FFAB1E
-            cset    x1, eq
-            b       G_M46194_IG08
-                       ;; size=24 bbWeight=0 PerfScore 0.00
-G_M46194_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46194_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     x0, xzr
                        ;; size=4 bbWeight=1 PerfScore 0.50
-G_M46194_IG05:        ; bbWeight=1, epilog, nogc, extend
+G_M46194_IG04:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M46194_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M46194_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x0]
+            ldr     w1, [x0, #0x70]
+            tbnz    w1, #19, G_M46194_IG03
+            ldr     w1, [x0, #0x68]
+            tst     w1, #0xD1FFAB1E
+            cset    x1, eq
+            cbz     w1, G_M46194_IG03
             ldr     x1, [x0]
             ldr     x1, [x1, #0xD1FFAB1E]
             ldr     x1, [x1, #0x08]
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M46194_IG07:        ; bbWeight=0, epilog, nogc, extend
+                       ;; size=36 bbWeight=0 PerfScore 0.00
+G_M46194_IG06:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             br      x1
             ; gcr arg pop 0
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M46194_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
-            cbnz    w1, G_M46194_IG06
-            b       G_M46194_IG04
-                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 80, prolog size 8, PerfScore 8.00, instruction count 20, allocated bytes for code 80 (MethodHash=7bf44b8d) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:get_SourcePartialImplementation():Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:this (Tier1)
+; Total bytes of code 72, prolog size 8, PerfScore 8.00, instruction count 18, allocated bytes for code 72 (MethodHash=7bf44b8d) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:get_SourcePartialImplementation():Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -68,7 +62,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 20 (0x00014) Actual length = 80 (0x000050)
+  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+27.78%) : 60584.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)

@@ -12,12 +12,12 @@
 ;  V00 this         [V00,T00] (  7,  6   )     ref  ->   x0         this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->   x1         class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  4,  4   )     int  ->  x14         "Inline stloc first use temp"
+;  V03 tmp1         [V03,T02] (  8,  4.09)     int  ->   x2         "Inline stloc first use temp"
 ;* V04 tmp2         [V04,T03] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
-G_M46606_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M46606_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
@@ -25,13 +25,13 @@ G_M46606_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
             ; gcrRegs +[x0-x1]
             ldr     x14, [x0, #0x18]
             ; gcrRegs +[x14]
-            cbnz    x14, G_M46606_IG05
-            ldapur  w14, [x1, #0x34]
-            ; gcrRegs -[x14]
-            tbnz    w14, #21, G_M46606_IG03
-            tbnz    w14, #22, G_M46606_IG03
-            tbz     w14, #24, G_M46606_IG03
+            cbnz    x14, G_M46606_IG06
+            ldapur  w2, [x1, #0x34]
+            tbnz    w2, #21, G_M46606_IG03
+            tbnz    w2, #22, G_M46606_IG03
+            tbz     w2, #24, G_M46606_IG05
             add     x14, x0, #24
+            ; gcrRegs -[x14]
             ; byrRegs +[x14]
             mov     x15, x1
             ; gcrRegs +[x15]
@@ -49,16 +49,24 @@ G_M46606_IG04:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M46606_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x1]
+G_M46606_IG05:        ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[x0]
+            tbnz    w2, #23, G_M46606_IG03
+            tbnz    w2, #17, G_M46606_IG03
+            tbnz    w2, #16, G_M46606_IG03
+            tbz     w2, #25, G_M46606_IG03
+            b       G_M46606_IG03
+                       ;; size=20 bbWeight=0.02 PerfScore 0.11
+G_M46606_IG06:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x1] +[x0]
             ldr     x0, [x0, #0x18]
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M46606_IG06:        ; bbWeight=0, epilog, nogc, extend
+G_M46606_IG07:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 72, prolog size 8, PerfScore 17.00, instruction count 18, allocated bytes for code 72 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 92, prolog size 8, PerfScore 17.11, instruction count 23, allocated bytes for code 92 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -69,7 +77,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
+  Function Length   : 23 (0x00017) Actual length = 92 (0x00005c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+27.78%) : 91384.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)

@@ -12,12 +12,12 @@
 ;  V00 this         [V00,T00] (  7,  6   )     ref  ->   x0         this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->   x1         class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  4,  4   )     int  ->  x14         "Inline stloc first use temp"
+;  V03 tmp1         [V03,T02] (  8,  4.03)     int  ->   x2         "Inline stloc first use temp"
 ;* V04 tmp2         [V04,T03] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
-G_M46606_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M46606_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
@@ -25,13 +25,13 @@ G_M46606_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
             ; gcrRegs +[x0-x1]
             ldr     x14, [x0, #0x18]
             ; gcrRegs +[x14]
-            cbnz    x14, G_M46606_IG05
-            ldapur  w14, [x1, #0x34]
-            ; gcrRegs -[x14]
-            tbnz    w14, #21, G_M46606_IG03
-            tbnz    w14, #22, G_M46606_IG03
-            tbz     w14, #24, G_M46606_IG03
+            cbnz    x14, G_M46606_IG06
+            ldapur  w2, [x1, #0x34]
+            tbnz    w2, #21, G_M46606_IG03
+            tbnz    w2, #22, G_M46606_IG03
+            tbz     w2, #24, G_M46606_IG05
             add     x14, x0, #24
+            ; gcrRegs -[x14]
             ; byrRegs +[x14]
             mov     x15, x1
             ; gcrRegs +[x15]
@@ -49,16 +49,24 @@ G_M46606_IG04:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M46606_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x1]
+G_M46606_IG05:        ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[x0]
+            tbnz    w2, #23, G_M46606_IG03
+            tbnz    w2, #17, G_M46606_IG03
+            tbnz    w2, #16, G_M46606_IG03
+            tbz     w2, #25, G_M46606_IG03
+            b       G_M46606_IG03
+                       ;; size=20 bbWeight=0.01 PerfScore 0.04
+G_M46606_IG06:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x1] +[x0]
             ldr     x0, [x0, #0x18]
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M46606_IG06:        ; bbWeight=0, epilog, nogc, extend
+G_M46606_IG07:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 72, prolog size 8, PerfScore 17.00, instruction count 18, allocated bytes for code 72 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 92, prolog size 8, PerfScore 17.04, instruction count 23, allocated bytes for code 92 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -69,7 +77,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
+  Function Length   : 23 (0x00017) Actual length = 92 (0x00005c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+27.78%) : 162476.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)

@@ -12,12 +12,12 @@
 ;  V00 this         [V00,T00] (  7,  6   )     ref  ->   x0         this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->   x1         class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  4,  4   )     int  ->  x14         "Inline stloc first use temp"
+;  V03 tmp1         [V03,T02] (  8,  4   )     int  ->   x2         "Inline stloc first use temp"
 ;* V04 tmp2         [V04,T03] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
-G_M46606_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M46606_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
@@ -26,12 +26,12 @@ G_M46606_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
             ldr     x14, [x0, #0x18]
             ; gcrRegs +[x14]
             cbnz    x14, G_M46606_IG05
-            ldapur  w14, [x1, #0x34]
-            ; gcrRegs -[x14]
-            tbnz    w14, #21, G_M46606_IG03
-            tbnz    w14, #22, G_M46606_IG03
-            tbz     w14, #24, G_M46606_IG03
+            ldapur  w2, [x1, #0x34]
+            tbnz    w2, #21, G_M46606_IG03
+            tbnz    w2, #22, G_M46606_IG03
+            tbz     w2, #24, G_M46606_IG07
             add     x14, x0, #24
+            ; gcrRegs -[x14]
             ; byrRegs +[x14]
             mov     x15, x1
             ; gcrRegs +[x15]
@@ -57,8 +57,16 @@ G_M46606_IG06:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0 PerfScore 0.00
+G_M46606_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[x0] +[x1]
+            tbnz    w2, #23, G_M46606_IG03
+            tbnz    w2, #17, G_M46606_IG03
+            tbnz    w2, #16, G_M46606_IG03
+            tbz     w2, #25, G_M46606_IG03
+            b       G_M46606_IG03
+                       ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 72, prolog size 8, PerfScore 17.00, instruction count 18, allocated bytes for code 72 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 92, prolog size 8, PerfScore 17.00, instruction count 23, allocated bytes for code 92 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -69,7 +77,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
+  Function Length   : 23 (0x00017) Actual length = 92 (0x00005c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

librariestestsnotieredcompilation.run.osx.arm64.Release.mch

-16 (-11.76%) : 155689.dasm - System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)

@@ -10,45 +10,28 @@
 ;
 ;  V00 this         [V00,T01] (  3,  2.50)     ref  ->   x0         this class-hnd single-def <System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op single-def <System.Threading.CancellationToken>
-;  V02 loc0         [V02,T02] (  3,  1.50)     ref  ->  x19         class-hnd exact single-def <<unknown class>>
+;  V02 loc0         [V02,T02] (  3,  1.50)     ref  ->   x2         class-hnd exact single-def <<unknown class>>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V05 tmp2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;  V06 tmp3         [V06,T00] (  5,  3.17)     ref  ->   x1         single-def "field V01._source (fldOffset=0x0)" P-INDEP
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M3467_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x20]!
-            str     x19, [sp, #0x18]
+            stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
-                       ;; size=12 bbWeight=1 PerfScore 2.50
+                       ;; size=8 bbWeight=1 PerfScore 1.50
 G_M3467_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0-x1]
-            cbz     x1, G_M3467_IG04
+            cbz     x1, G_M3467_IG06
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M3467_IG03:        ; bbWeight=0.17, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldapur  w2, [x1, #0x20]
-            cbnz    w2, G_M3467_IG06
+            cbz     w2, G_M3467_IG06
                        ;; size=8 bbWeight=0.17 PerfScore 0.68
-G_M3467_IG04:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
-            ldr     x19, [x0, #0x10]
-            ; gcrRegs +[x19]
-            cbnz    x19, G_M3467_IG08
-            movz    x0, #0xD1FFAB1E
+G_M3467_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #2 LSL #32
-            ldr     x0, [x0]
-            ; gcrRegs +[x0]
-                       ;; size=24 bbWeight=0.50 PerfScore 4.25
-G_M3467_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
-            ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M3467_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0 x19]
             mov     x0, x1
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for System.Threading.Tasks.Task:FromCanceled(System.Threading.CancellationToken):System.Threading.Tasks.Task
@@ -58,41 +41,56 @@ G_M3467_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002
             ldr     x1, [x1]
             blr     x1
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M3467_IG07:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
+G_M3467_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
             ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M3467_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0] +[x1 x19]
-            ldr     x0, [x19, #0x08]
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M3467_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x1]
+            ldr     x2, [x0, #0x10]
+            ; gcrRegs +[x2]
+            cbnz    x2, G_M3467_IG08
+            movz    x0, #0xD1FFAB1E
+            ; gcrRegs -[x0]
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #2 LSL #32
+            ldr     x0, [x0]
+            ; gcrRegs +[x0]
+                       ;; size=24 bbWeight=0.50 PerfScore 4.25
+G_M3467_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M3467_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            ldr     x0, [x2, #0x08]
             ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for System.Net.Http.Http2Connection:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             ldr     wzr, [x0]
             blr     x2
-            ; gcrRegs -[x1 x19]
+            ; gcrRegs -[x1]
                        ;; size=28 bbWeight=0.50 PerfScore 5.75
 G_M3467_IG09:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
+            ldp     fp, lr, [sp], #0x10
             ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 136, prolog size 12, PerfScore 23.18, instruction count 34, allocated bytes for code 136 (MethodHash=6a07f274) for method System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 120, prolog size 8, PerfScore 19.18, instruction count 30, allocated bytes for code 120 (MethodHash=6a07f274) for method System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 1
   Epilog Count      : 3
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 34 (0x00022) Actual length = 136 (0x000088)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -106,10 +104,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 03       save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
-    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
-    E4          end
-    E4          end
+    81          save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
     E4          end
     E4          end
 

-16 (-10.53%) : 145538.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)

@@ -33,37 +33,25 @@ G_M54442_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ldr     d1, [@RWD08]
             str     d1, [fp, #0x10]    // [V08 cse0]
             fcmp    d8, d1
-            bhs     G_M54442_IG04
+            blo     G_M54442_IG04
                        ;; size=28 bbWeight=1 PerfScore 25.00
-G_M54442_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            b       G_M54442_IG07
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M54442_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+G_M54442_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             fcmp    d8, d1
-            bgt     G_M54442_IG05
+            bgt     G_M54442_IG06
             fcmp    d8, d1
-            bne     G_M54442_IG06
-            b       G_M54442_IG07
-                       ;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M54442_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            b       G_M54442_IG09
-                       ;; size=4 bbWeight=0.25 PerfScore 0.25
-G_M54442_IG06:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x0]
+            beq     G_M54442_IG04
             fcmp    d8, d8
-            beq     G_M54442_IG09
-            b       G_M54442_IG03
-                       ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M54442_IG07:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+            beq     G_M54442_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M54442_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             str     x1, [x0, #0x18]
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M54442_IG08:        ; bbWeight=1, epilog, nogc, extend
+G_M54442_IG05:        ; bbWeight=1, epilog, nogc, extend
             ldr     d8, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
-G_M54442_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M54442_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
             movz    w0, #0xD1FFAB1E
             movk    w0, #1 LSL #16
@@ -86,7 +74,7 @@ RWD00     dq  416312D000000000h   ;     10000000
 RWD08      dq  41DFFFFFFFC00000h   ; 2.14748365e+09
 
 
-; Total bytes of code 152, prolog size 12, PerfScore 37.25, instruction count 38, allocated bytes for code 152 (MethodHash=b6192b55) for method System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
+; Total bytes of code 136, prolog size 12, PerfScore 35.50, instruction count 34, allocated bytes for code 136 (MethodHash=b6192b55) for method System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -97,7 +85,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 38 (0x00026) Actual length = 152 (0x000098)
+  Function Length   : 34 (0x00022) Actual length = 136 (0x000088)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-48 (-10.43%) : 300815.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)

@@ -12,9 +12,9 @@
 ;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x1         class-hnd single-def <System.Xml.Linq.XNode>
 ;  V02 loc0         [V02,T10] (  6,  4   )     ref  ->  x20         class-hnd single-def <System.Xml.Linq.XDocumentType>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T03] (  5,  4.75)     ref  ->  x25         class-hnd exact single-def "impAppendStmt" <System.String>
-;  V05 tmp2         [V05,T04] (  5,  4.75)     ref  ->  x21         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V06 tmp3         [V06,T06] (  5,  4.75)     ref  ->  x22         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V04 tmp1         [V04,T03] (  5,  4.75)     ref  ->   x2         class-hnd exact single-def "impAppendStmt" <System.String>
+;  V05 tmp2         [V05,T04] (  5,  4.75)     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V06 tmp3         [V06,T06] (  5,  4.75)     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V07 tmp4         [V07,T18] (  2,  1   )   ubyte  ->   x0         "Inline return value spill temp"
 ;  V08 tmp5         [V08,T11] (  2,  2   )   byref  ->   x0         single-def "impAppendStmt"
 ;* V09 tmp6         [V09    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -22,18 +22,18 @@
 ;* V11 tmp8         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V12 tmp9         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V13 tmp10        [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V14 tmp11        [V14,T05] (  5,  4.75)     ref  ->  x23         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V15 tmp12        [V15,T07] (  5,  4.75)     ref  ->  x24         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V14 tmp11        [V14,T05] (  5,  4.75)     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V15 tmp12        [V15,T07] (  5,  4.75)     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V16 tmp13        [V16,T19] (  2,  1   )   ubyte  ->   x0         "Inline return value spill temp"
-;  V17 tmp14        [V17,T12] (  2,  2   )   byref  ->   x0         single-def "impAppendStmt"
+;  V17 tmp14        [V17,T12] (  2,  2   )   byref  ->   x3         single-def "impAppendStmt"
 ;* V18 tmp15        [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp16        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp17        [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp18        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp19        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V23 tmp20        [V23,T08] (  5,  4.75)     ref  ->  x26         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V23 tmp20        [V23,T08] (  5,  4.75)     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V24 tmp21        [V24,T20] (  2,  1   )   ubyte  ->   x0         "Inline return value spill temp"
-;  V25 tmp22        [V25,T13] (  2,  2   )   byref  ->   x0         single-def "impAppendStmt"
+;  V25 tmp22        [V25,T13] (  2,  2   )   byref  ->   x3         single-def "impAppendStmt"
 ;* V26 tmp23        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V27 tmp24        [V27    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V28 tmp25        [V28    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -48,22 +48,19 @@
 ;* V37 tmp34        [V37    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V38 tmp35        [V38    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V39 tmp36        [V39    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V40 cse0         [V40,T14] (  3,  1.38)     int  ->   x2         "CSE - moderate"
-;  V41 cse1         [V41,T15] (  3,  1.38)     int  ->   x2         "CSE - moderate"
-;  V42 cse2         [V42,T16] (  3,  1.38)     int  ->   x2         "CSE - moderate"
+;  V40 cse0         [V40,T14] (  3,  1.38)     int  ->   x3         "CSE - moderate"
+;  V41 cse1         [V41,T15] (  3,  1.38)     int  ->   x0         "CSE - moderate"
+;  V42 cse2         [V42,T16] (  3,  1.38)     int  ->   x0         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
 G_M37476_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x50]!
+            stp     fp, lr, [sp, #-0x20]!
             stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
-            stp     x23, x24, [sp, #0x30]
-            stp     x25, x26, [sp, #0x40]
             mov     fp, sp
             mov     x19, x0
             ; gcrRegs +[x19]
-                       ;; size=28 bbWeight=1 PerfScore 6.00
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M37476_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
             movz    x0, #0xD1FFAB1E
@@ -73,102 +70,148 @@ G_M37476_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
             ; gcrRegs -[x1] +[x0]
             mov     x20, x0
             ; gcrRegs +[x20]
-            cbz     x20, G_M37476_IG23
+            cbz     x20, G_M37476_IG26
                        ;; size=24 bbWeight=1 PerfScore 4.00
 G_M37476_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x21, [x19, #0x20]
-            ; gcrRegs +[x21]
-            ldr     x22, [x20, #0x20]
-            ; gcrRegs +[x22]
-            cmp     x21, x22
-            beq     G_M37476_IG07
+            ldr     x2, [x19, #0x20]
+            ; gcrRegs +[x2]
+            ldr     x1, [x20, #0x20]
+            ; gcrRegs +[x1]
+            cmp     x2, x1
+            beq     G_M37476_IG08
                        ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M37476_IG04:        ; bbWeight=0.44, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
-            cbz     x21, G_M37476_IG23
+G_M37476_IG04:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x2, G_M37476_IG26
                        ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M37476_IG05:        ; bbWeight=0.44, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
-            b       G_M37476_IG21
+G_M37476_IG05:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x1, G_M37476_IG26
                        ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M37476_IG06:        ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
-            add     x0, x21, #12
+G_M37476_IG06:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldr     w3, [x2, #0x08]
+            ldr     w0, [x1, #0x08]
+            cmp     w3, w0
+            bne     G_M37476_IG26
+                       ;; size=16 bbWeight=0.44 PerfScore 3.28
+G_M37476_IG07:        ; bbWeight=0.50, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            add     x0, x2, #12
             ; byrRegs +[x0]
-            lsl     w2, w2, #1
+            lsl     w2, w3, #1
+            ; gcrRegs -[x2]
             mov     w2, w2
-            add     x1, x22, #12
+            add     x1, x1, #12
+            ; gcrRegs -[x1]
             ; byrRegs +[x1]
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
             ldr     x3, [x3]
             blr     x3
-            ; gcrRegs -[x21-x22]
             ; byrRegs -[x0-x1]
-            cbz     w0, G_M37476_IG23
+            cbz     w0, G_M37476_IG26
                        ;; size=40 bbWeight=0.50 PerfScore 4.50
-G_M37476_IG07:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x23, [x19, #0x28]
-            ; gcrRegs +[x23]
-            ldr     x24, [x20, #0x28]
-            ; gcrRegs +[x24]
-            cmp     x23, x24
-            beq     G_M37476_IG10
-                       ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M37476_IG08:        ; bbWeight=0.44, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
-            cbz     x23, G_M37476_IG23
-                       ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M37476_IG09:        ; bbWeight=0.44, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref
-            b       G_M37476_IG28
-                       ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M37476_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x23-x24]
-            ldr     x25, [x19, #0x30]
-            ; gcrRegs +[x25]
-            ldr     x26, [x20, #0x30]
-            ; gcrRegs +[x26]
-            cmp     x25, x26
+G_M37476_IG08:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldr     x2, [x19, #0x28]
+            ; gcrRegs +[x2]
+            ldr     x1, [x20, #0x28]
+            ; gcrRegs +[x1]
+            cmp     x2, x1
             beq     G_M37476_IG13
                        ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M37476_IG11:        ; bbWeight=0.44, gcrefRegs=6180000 {x19 x20 x25 x26}, byrefRegs=0000 {}, byref, isz
-            cbz     x25, G_M37476_IG23
+G_M37476_IG09:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x2, G_M37476_IG26
                        ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M37476_IG12:        ; bbWeight=0.44, gcrefRegs=6180000 {x19 x20 x25 x26}, byrefRegs=0000 {}, byref
-            b       G_M37476_IG25
+G_M37476_IG10:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x1, G_M37476_IG26
                        ;; size=4 bbWeight=0.44 PerfScore 0.44
+G_M37476_IG11:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldr     w0, [x2, #0x08]
+            ldr     w3, [x1, #0x08]
+            cmp     w0, w3
+            bne     G_M37476_IG26
+                       ;; size=16 bbWeight=0.44 PerfScore 3.28
+G_M37476_IG12:        ; bbWeight=0.50, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            add     x3, x2, #12
+            ; byrRegs +[x3]
+            lsl     w2, w0, #1
+            ; gcrRegs -[x2]
+            mov     w2, w2
+            add     x1, x1, #12
+            ; gcrRegs -[x1]
+            ; byrRegs +[x1]
+            mov     x0, x3
+            ; byrRegs +[x0]
+            movz    x3, #0xD1FFAB1E      // code for <unknown method>
+            ; byrRegs -[x3]
+            movk    x3, #0xD1FFAB1E LSL #16
+            movk    x3, #1 LSL #32
+            ldr     x3, [x3]
+            blr     x3
+            ; byrRegs -[x0-x1]
+            cbz     w0, G_M37476_IG26
+                       ;; size=44 bbWeight=0.50 PerfScore 4.75
 G_M37476_IG13:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x25-x26]
+            ldr     x2, [x19, #0x30]
+            ; gcrRegs +[x2]
+            ldr     x1, [x20, #0x30]
+            ; gcrRegs +[x1]
+            cmp     x2, x1
+            beq     G_M37476_IG18
+                       ;; size=16 bbWeight=0.50 PerfScore 3.75
+G_M37476_IG14:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x2, G_M37476_IG26
+                       ;; size=4 bbWeight=0.44 PerfScore 0.44
+G_M37476_IG15:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x1, G_M37476_IG26
+                       ;; size=4 bbWeight=0.44 PerfScore 0.44
+G_M37476_IG16:        ; bbWeight=0.44, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldr     w0, [x2, #0x08]
+            ldr     w3, [x1, #0x08]
+            cmp     w0, w3
+            bne     G_M37476_IG26
+                       ;; size=16 bbWeight=0.44 PerfScore 3.28
+G_M37476_IG17:        ; bbWeight=0.50, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            add     x3, x2, #12
+            ; byrRegs +[x3]
+            lsl     w2, w0, #1
+            ; gcrRegs -[x2]
+            mov     w2, w2
+            add     x1, x1, #12
+            ; gcrRegs -[x1]
+            ; byrRegs +[x1]
+            mov     x0, x3
+            ; byrRegs +[x0]
+            movz    x3, #0xD1FFAB1E      // code for <unknown method>
+            ; byrRegs -[x3]
+            movk    x3, #0xD1FFAB1E LSL #16
+            movk    x3, #1 LSL #32
+            ldr     x3, [x3]
+            blr     x3
+            ; byrRegs -[x0-x1]
+            cbz     w0, G_M37476_IG26
+                       ;; size=44 bbWeight=0.50 PerfScore 4.75
+G_M37476_IG18:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x2, [x19, #0x38]
             ; gcrRegs +[x2]
             ldr     x1, [x20, #0x38]
             ; gcrRegs +[x1]
             cmp     x2, x1
-            bne     G_M37476_IG15
+            beq     G_M37476_IG25
                        ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M37476_IG14:        ; bbWeight=0.06, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x1-x2 x19-x20]
-            mov     w0, #1
-            b       G_M37476_IG20
-                       ;; size=8 bbWeight=0.06 PerfScore 0.09
-G_M37476_IG15:        ; bbWeight=0.44, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x1-x2]
-            cbz     x2, G_M37476_IG18
+G_M37476_IG19:        ; bbWeight=0.44, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
...

+24 (+20.69%) : 48949.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)

@@ -8,7 +8,7 @@
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  3.50)     ref  ->  x19         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+;  V00 this         [V00,T00] (  5,  4   )     ref  ->  x19         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
 ;  V02 loc0         [V02,T06] (  3,  1.50)     int  ->   x1         ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
 ;  V09 tmp4         [V09,T04] (  3,  2.50)   byref  ->   x0         single-def "Inline stloc first use temp"
 ;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V11 tmp6         [V11,T07] (  3,  1.50)     ref  ->   x2         single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V12 rat0         [V12,T05] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V12 rat0         [V12,T05] (  2,  2   )    long  ->   x0         "Spilling to split statement for tree"
 ;* V13 rat1         [V13,T09] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V14 rat2         [V14,T03] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V14 rat2         [V14,T03] (  2,  2   )    long  ->   x0         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -30,9 +30,10 @@ G_M43979_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     fp, lr, [sp, #-0x20]!
             str     x19, [sp, #0x18]
             mov     fp, sp
+            str     x0, [fp, #0x10]
             mov     x19, x0
             ; gcrRegs +[x19]
-                       ;; size=16 bbWeight=1 PerfScore 3.00
+                       ;; size=20 bbWeight=1 PerfScore 4.00
 G_M43979_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
             ldr     x0, [x19, #0x20]
@@ -45,47 +46,54 @@ G_M43979_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
             blr     x2
             ; gcrRegs -[x0-x1]
             ; byrRegs +[x0]
-            cbz     x0, G_M43979_IG04
+            cbz     x0, G_M43979_IG05
                        ;; size=32 bbWeight=1 PerfScore 12.50
-G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref
+G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
             ldr     w1, [x0]
             ldr     x2, [x19, #0x80]
             ; gcrRegs +[x2]
-            b       G_M43979_IG06
-                       ;; size=12 bbWeight=0.50 PerfScore 3.50
-G_M43979_IG04:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2]
+            ldr     x0, [x19]
             ; byrRegs -[x0]
+            ldr     x0, [x0, #0x38]
+            ldr     x0, [x0]
+            ldr     x0, [x0, #0xC0]
+            cbnz    x0, G_M43979_IG07
+                       ;; size=28 bbWeight=0.50 PerfScore 9.50
+G_M43979_IG04:        ; bbWeight=0.10, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref
+            b       G_M43979_IG07
+                       ;; size=4 bbWeight=0.10 PerfScore 0.10
+G_M43979_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x2]
             mov     x0, xzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M43979_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M43979_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x2]
             ldr     w0, [x2, #0x08]
             cmp     w1, w0
-            bhs     G_M43979_IG08
+            bhs     G_M43979_IG09
             add     x0, x2, #16
             ; byrRegs +[x0]
             ldr     x0, [x0, w1, UXTW #3]
             ; gcrRegs +[x0]
             ; byrRegs -[x0]
                        ;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M43979_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M43979_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0 x2]
             bl      CORINFO_HELP_RNGCHKFAIL
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 116, prolog size 12, PerfScore 27.25, instruction count 29, allocated bytes for code 116 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 140, prolog size 16, PerfScore 34.35, instruction count 35, allocated bytes for code 140 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -96,7 +104,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
+  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+20.69%) : 43262.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)

@@ -8,7 +8,7 @@
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  3.50)     ref  ->  x19         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+;  V00 this         [V00,T00] (  5,  4   )     ref  ->  x19         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
 ;  V02 loc0         [V02,T06] (  3,  1.50)     int  ->   x1         ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
 ;  V09 tmp4         [V09,T04] (  3,  2.50)   byref  ->   x0         single-def "Inline stloc first use temp"
 ;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V11 tmp6         [V11,T07] (  3,  1.50)     ref  ->   x2         single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V12 rat0         [V12,T05] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V12 rat0         [V12,T05] (  2,  2   )    long  ->   x0         "Spilling to split statement for tree"
 ;* V13 rat1         [V13,T09] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V14 rat2         [V14,T03] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V14 rat2         [V14,T03] (  2,  2   )    long  ->   x0         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -30,9 +30,10 @@ G_M43979_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     fp, lr, [sp, #-0x20]!
             str     x19, [sp, #0x18]
             mov     fp, sp
+            str     x0, [fp, #0x10]
             mov     x19, x0
             ; gcrRegs +[x19]
-                       ;; size=16 bbWeight=1 PerfScore 3.00
+                       ;; size=20 bbWeight=1 PerfScore 4.00
 G_M43979_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
             ldr     x0, [x19, #0x20]
@@ -45,47 +46,54 @@ G_M43979_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
             blr     x2
             ; gcrRegs -[x0-x1]
             ; byrRegs +[x0]
-            cbz     x0, G_M43979_IG04
+            cbz     x0, G_M43979_IG05
                        ;; size=32 bbWeight=1 PerfScore 12.50
-G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref
+G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
             ldr     w1, [x0]
             ldr     x2, [x19, #0x80]
             ; gcrRegs +[x2]
-            b       G_M43979_IG06
-                       ;; size=12 bbWeight=0.50 PerfScore 3.50
-G_M43979_IG04:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2]
+            ldr     x0, [x19]
             ; byrRegs -[x0]
+            ldr     x0, [x0, #0x38]
+            ldr     x0, [x0]
+            ldr     x0, [x0, #0xC0]
+            cbnz    x0, G_M43979_IG07
+                       ;; size=28 bbWeight=0.50 PerfScore 9.50
+G_M43979_IG04:        ; bbWeight=0.10, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref
+            b       G_M43979_IG07
+                       ;; size=4 bbWeight=0.10 PerfScore 0.10
+G_M43979_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x2]
             mov     x0, xzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M43979_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M43979_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x2]
             ldr     w0, [x2, #0x08]
             cmp     w1, w0
-            bhs     G_M43979_IG08
+            bhs     G_M43979_IG09
             add     x0, x2, #16
             ; byrRegs +[x0]
             ldr     x0, [x0, w1, UXTW #3]
             ; gcrRegs +[x0]
             ; byrRegs -[x0]
                        ;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M43979_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M43979_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0 x2]
             bl      CORINFO_HELP_RNGCHKFAIL
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 116, prolog size 12, PerfScore 27.25, instruction count 29, allocated bytes for code 116 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 140, prolog size 16, PerfScore 34.35, instruction count 35, allocated bytes for code 140 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -96,7 +104,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
+  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+20.69%) : 5683.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)

@@ -8,7 +8,7 @@
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  3.50)     ref  ->  x19         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+;  V00 this         [V00,T00] (  5,  4   )     ref  ->  x19         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
 ;  V02 loc0         [V02,T06] (  3,  1.50)     int  ->   x1         ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
 ;  V09 tmp4         [V09,T04] (  3,  2.50)   byref  ->   x0         single-def "Inline stloc first use temp"
 ;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V11 tmp6         [V11,T07] (  3,  1.50)     ref  ->   x2         single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V12 rat0         [V12,T05] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V12 rat0         [V12,T05] (  2,  2   )    long  ->   x0         "Spilling to split statement for tree"
 ;* V13 rat1         [V13,T09] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V14 rat2         [V14,T03] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V14 rat2         [V14,T03] (  2,  2   )    long  ->   x0         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -30,9 +30,10 @@ G_M43979_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     fp, lr, [sp, #-0x20]!
             str     x19, [sp, #0x18]
             mov     fp, sp
+            str     x0, [fp, #0x10]
             mov     x19, x0
             ; gcrRegs +[x19]
-                       ;; size=16 bbWeight=1 PerfScore 3.00
+                       ;; size=20 bbWeight=1 PerfScore 4.00
 G_M43979_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
             ldr     x0, [x19, #0x20]
@@ -45,47 +46,54 @@ G_M43979_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
             blr     x2
             ; gcrRegs -[x0-x1]
             ; byrRegs +[x0]
-            cbz     x0, G_M43979_IG04
+            cbz     x0, G_M43979_IG05
                        ;; size=32 bbWeight=1 PerfScore 12.50
-G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref
+G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
             ldr     w1, [x0]
             ldr     x2, [x19, #0x80]
             ; gcrRegs +[x2]
-            b       G_M43979_IG06
-                       ;; size=12 bbWeight=0.50 PerfScore 3.50
-G_M43979_IG04:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2]
+            ldr     x0, [x19]
             ; byrRegs -[x0]
+            ldr     x0, [x0, #0x38]
+            ldr     x0, [x0]
+            ldr     x0, [x0, #0xD1FFAB1E]
+            cbnz    x0, G_M43979_IG07
+                       ;; size=28 bbWeight=0.50 PerfScore 9.50
+G_M43979_IG04:        ; bbWeight=0.10, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref
+            b       G_M43979_IG07
+                       ;; size=4 bbWeight=0.10 PerfScore 0.10
+G_M43979_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x2]
             mov     x0, xzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M43979_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M43979_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x2]
             ldr     w0, [x2, #0x08]
             cmp     w1, w0
-            bhs     G_M43979_IG08
+            bhs     G_M43979_IG09
             add     x0, x2, #16
             ; byrRegs +[x0]
             ldr     x0, [x0, w1, UXTW #3]
             ; gcrRegs +[x0]
             ; byrRegs -[x0]
                        ;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M43979_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M43979_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0 x2]
             bl      CORINFO_HELP_RNGCHKFAIL
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 116, prolog size 12, PerfScore 27.25, instruction count 29, allocated bytes for code 116 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 140, prolog size 16, PerfScore 34.35, instruction count 35, allocated bytes for code 140 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -96,7 +104,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
+  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

realworld.run.osx.arm64.checked.mch

-4 (-2.13%) : 4626.dasm - System.Collections.Generic.Dictionary2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)

@@ -71,9 +71,8 @@ G_M18821_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x1]
             ldr     w2, [x1, #0x04]
             cmn     w2, #1
-            bge     G_M18821_IG07
-            b       G_M18821_IG03
-                       ;; size=60 bbWeight=2 PerfScore 45.00
+            blt     G_M18821_IG03
+                       ;; size=56 bbWeight=2 PerfScore 43.00
 G_M18821_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref
             ldr     q16, [x1, #0x10]
             str     q16, [x0, #0x10]
@@ -99,7 +98,7 @@ G_M18821_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 188, prolog size 8, PerfScore 149.75, instruction count 47, allocated bytes for code 188 (MethodHash=4fb9b67a) for method System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 184, prolog size 8, PerfScore 147.75, instruction count 46, allocated bytes for code 184 (MethodHash=4fb9b67a) for method System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -110,7 +109,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 47 (0x0002f) Actual length = 188 (0x0000bc)
+  Function Length   : 46 (0x0002e) Actual length = 184 (0x0000b8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.13%) : 12868.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)

@@ -77,9 +77,8 @@ G_M20310_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x1]
             ldr     w2, [x1, #0x04]
             cmn     w2, #1
-            bge     G_M20310_IG07
-            b       G_M20310_IG03
-                       ;; size=60 bbWeight=2 PerfScore 45.00
+            blt     G_M20310_IG03
+                       ;; size=56 bbWeight=2 PerfScore 43.00
 G_M20310_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref
             ldp     w2, w1, [x1, #0x08]
             ; byrRegs -[x1]
@@ -105,7 +104,7 @@ G_M20310_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 188, prolog size 8, PerfScore 149.75, instruction count 47, allocated bytes for code 188 (MethodHash=5c1ab0a9) for method System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 184, prolog size 8, PerfScore 147.75, instruction count 46, allocated bytes for code 184 (MethodHash=5c1ab0a9) for method System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -116,7 +115,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 47 (0x0002f) Actual length = 188 (0x0000bc)
+  Function Length   : 46 (0x0002e) Actual length = 184 (0x0000b8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.08%) : 16235.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)

@@ -72,9 +72,8 @@ G_M27287_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x14]
             ldr     w15, [x14, #0x0C]
             cmn     w15, #1
-            bge     G_M27287_IG07
-            b       G_M27287_IG03
-                       ;; size=60 bbWeight=2 PerfScore 45.00
+            blt     G_M27287_IG03
+                       ;; size=56 bbWeight=2 PerfScore 43.00
 G_M27287_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=4001 {x0 x14}, byref
             ldr     x15, [x14]
             ; gcrRegs +[x15]
@@ -102,7 +101,7 @@ G_M27287_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 192, prolog size 8, PerfScore 150.00, instruction count 48, allocated bytes for code 192 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 188, prolog size 8, PerfScore 148.00, instruction count 47, allocated bytes for code 188 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -113,7 +112,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
+  Function Length   : 47 (0x0002f) Actual length = 188 (0x0000bc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+8.62%) : 21877.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)

@@ -27,10 +27,10 @@
 ;* V16 tmp10        [V16,T07] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
 ;* V17 tmp11        [V17,T08] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V18 cse0         [V18,T14] (  0,  0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;  V19 cse1         [V19,T10] (  2,  2.50)    long  ->  x24         hoist "CSE - aggressive"
-;* V20 rat0         [V20,T12] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V19 cse1         [V19,T10] (  3,  3   )    long  ->  x24         hoist "CSE - aggressive"
+;  V20 rat0         [V20,T12] (  2,  2   )    long  ->   x0         "Spilling to split statement for tree"
 ;* V21 rat1         [V21,T13] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V22 rat2         [V22,T11] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V22 rat2         [V22,T11] (  2,  2   )    long  ->   x0         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 16
 
@@ -64,7 +64,7 @@ G_M9562_IG02:        ; bbWeight=1, gcrefRegs=80004 {x2 x19}, byrefRegs=100000 {x
             ; gcrRegs +[x21]
             cbz     x21, G_M9562_IG07
                        ;; size=40 bbWeight=1 PerfScore 13.50
-G_M9562_IG03:        ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=100000 {x20}, byref
+G_M9562_IG03:        ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=100000 {x20}, byref, isz
             ; gcrRegs -[x0]
             mov     x0, x21
             ; gcrRegs +[x0]
@@ -77,10 +77,15 @@ G_M9562_IG03:        ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=1000
             ; gcrRegs +[x22]
             mov     w23, w1
             ldr     x24, [x19]
-            b       G_M9562_IG05
-                       ;; size=40 bbWeight=0.50 PerfScore 5.50
-G_M9562_IG04:        ; bbWeight=2, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=100000 {x20}, byref
+            mov     x0, x24
             ; gcrRegs -[x0]
+            ldr     x0, [x0, #0x38]
+            ldr     x0, [x0]
+            ldr     x0, [x0, #0x38]
+            cbnz    x0, G_M9562_IG05
+            b       G_M9562_IG05
+                       ;; size=60 bbWeight=0.50 PerfScore 10.75
+G_M9562_IG04:        ; bbWeight=2, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=100000 {x20}, byref
             mov     x0, x22
             ; gcrRegs +[x0]
             mov     w1, w23
@@ -130,7 +135,7 @@ G_M9562_IG07:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
             ret     lr
                        ;; size=20 bbWeight=1 PerfScore 5.00
 
-; Total bytes of code 232, prolog size 24, PerfScore 101.50, instruction count 58, allocated bytes for code 232 (MethodHash=57bfdaa5) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
+; Total bytes of code 252, prolog size 24, PerfScore 106.75, instruction count 63, allocated bytes for code 252 (MethodHash=57bfdaa5) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -141,7 +146,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
+  Function Length   : 63 (0x0003f) Actual length = 252 (0x0000fc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+9.80%) : 21297.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System._Canon]:getHasAnyApplicableMember():ubyte:this (FullOpts)

@@ -27,10 +27,10 @@
 ;  V16 tmp12        [V16,T00] (  5, 27   )     int  ->  x21         "field V01._index (fldOffset=0x8)" P-INDEP
 ;* V17 tmp13        [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "V03.[004..005)"
 ;* V18 cse0         [V18,T11] (  0,  0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;  V19 cse1         [V19,T06] (  1,  1   )    long  ->  x22         hoist "CSE - aggressive"
-;* V20 rat0         [V20,T07] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V19 cse1         [V19,T06] (  2,  2   )    long  ->  x22         hoist "CSE - aggressive"
+;  V20 rat0         [V20,T07] (  2,  4   )    long  ->   x0         "Spilling to split statement for tree"
 ;* V21 rat1         [V21,T08] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V22 rat2         [V22,T05] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V22 rat2         [V22,T05] (  2,  4   )    long  ->   x0         "fgMakeTemp is creating a new local variable"
 ;* V23 rat3         [V23,T10] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
 ;* V24 rat4         [V24,T01] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
@@ -49,7 +49,7 @@ G_M864_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {},
             mov     x19, x0
             ; gcrRegs +[x19]
                        ;; size=40 bbWeight=1 PerfScore 8.00
-G_M864_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M864_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [x19, #0x08]
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]]:GetEnumerator():Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1+Enumerator[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]]:this
@@ -62,10 +62,15 @@ G_M864_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byre
             ; gcrRegs +[x20]
             mov     w21, w1
             ldr     x22, [x19]
-            b       G_M864_IG04
-                       ;; size=44 bbWeight=1 PerfScore 16.50
-G_M864_IG03:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            mov     x0, x22
             ; gcrRegs -[x0]
+            ldr     x0, [x0, #0x38]
+            ldr     x0, [x0]
+            ldr     x0, [x0, #0x30]
+            cbnz    x0, G_M864_IG04
+            b       G_M864_IG04
+                       ;; size=64 bbWeight=1 PerfScore 27.00
+G_M864_IG03:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [x20, #0x08]
             ; gcrRegs +[x0]
             add     x8, fp, #24    // [V02 loc1]
@@ -113,7 +118,7 @@ G_M864_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 204, prolog size 36, PerfScore 128.00, instruction count 51, allocated bytes for code 204 (MethodHash=caadfc9f) for method Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
+; Total bytes of code 224, prolog size 36, PerfScore 138.50, instruction count 56, allocated bytes for code 224 (MethodHash=caadfc9f) for method Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -124,7 +129,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 51 (0x00033) Actual length = 204 (0x0000cc)
+  Function Length   : 56 (0x00038) Actual length = 224 (0x0000e0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+25.93%) : 11010.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)

@@ -8,8 +8,8 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  6,  4.50)     ref  ->  x19         this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
-;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <FSharp.Compiler.Infos+PropInfo>
+;  V00 this         [V00,T00] (  7,  5   )     ref  ->  x19         this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <<unknown class>>
 ;  V03 loc2         [V03,T04] (  2,  1   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
 ;* V04 loc3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <FSharp.Compiler.TypedTree+ValRef>
@@ -37,16 +37,29 @@ G_M3270_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
             bl      CORINFO_HELP_ISINSTANCEOFCLASS
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
-            cbz     x0, G_M3270_IG05
+            cbnz    x0, G_M3270_IG04
                        ;; size=24 bbWeight=1 PerfScore 4.00
 G_M3270_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
+            mov     x1, x19
+            ; gcrRegs +[x1]
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
+            bl      CORINFO_HELP_ISINSTANCEOFCLASS
+            ; gcrRegs -[x1 x19] +[x0]
+            ; gcr arg pop 0
+            cbnz    x0, G_M3270_IG06
+            b       G_M3270_IG06
+                       ;; size=28 bbWeight=0.50 PerfScore 2.50
+G_M3270_IG04:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x0] +[x19]
             ldr     x0, [x19, #0x18]
             ; gcrRegs +[x0]
-            cbz     x0, G_M3270_IG05
+            cbz     x0, G_M3270_IG06
             ldr     x1, [x19, #0x20]
             ; gcrRegs +[x1]
-            cbnz    x1, G_M3270_IG05
+            cbnz    x1, G_M3270_IG06
             ldr     x0, [x0, #0x08]
             ldr     x1, [x19, #0x08]
             movz    x2, #0xD1FFAB1E      // code for FSharp.Compiler.Infos:ValRef.IsFSharpEventProperty(FSharp.Compiler.TypedTree+ValRef,FSharp.Compiler.TcGlobals+TcGlobals):ubyte
@@ -54,23 +67,23 @@ G_M3270_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
                        ;; size=40 bbWeight=0.50 PerfScore 9.25
-G_M3270_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             br      x2
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M3270_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M3270_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0-x1 x19]
             mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M3270_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 108, prolog size 16, PerfScore 20.50, instruction count 27, allocated bytes for code 108 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
+; Total bytes of code 136, prolog size 16, PerfScore 23.00, instruction count 34, allocated bytes for code 136 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -81,7 +94,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 27 (0x0001b) Actual length = 108 (0x00006c)
+  Function Length   : 34 (0x00022) Actual length = 136 (0x000088)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.osx.arm64.checked.mch 475 147 52 276 -736 +672
benchmarks.run_pgo.osx.arm64.checked.mch 16,559 3,995 8,828 3,736 -26,208 +138,428
benchmarks.run_tiered.osx.arm64.checked.mch 131 39 16 76 -180 +212
coreclr_tests.run.osx.arm64.checked.mch 58,015 15,609 16,103 26,303 -84,788 +121,096
libraries.crossgen2.osx.arm64.checked.mch 1,086 95 124 867 -496 +2,104
libraries.pmi.osx.arm64.checked.mch 2,485 769 294 1,422 -3,412 +4,300
libraries_tests.run.osx.arm64.Release.mch 73,087 23,160 27,595 22,332 -216,260 +383,992
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 65,825 10,582 27,685 27,558 -67,332 +191,472
realworld.run.osx.arm64.checked.mch 352 35 71 246 -160 +1,452
218,015 54,431 80,768 82,816 -399,572 +843,728

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.osx.arm64.checked.mch 24,851 4 24,847 0 (0.00%) 4 (0.02%)
benchmarks.run_pgo.osx.arm64.checked.mch 84,581 48,412 36,169 84 (0.10%) 93 (0.11%)
benchmarks.run_tiered.osx.arm64.checked.mch 48,257 37,318 10,939 0 (0.00%) 4 (0.01%)
coreclr_tests.run.osx.arm64.checked.mch 585,830 357,177 228,653 389 (0.07%) 391 (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,709 18 314,691 0 (0.00%) 7 (0.00%)
libraries_tests.run.osx.arm64.Release.mch 637,121 466,371 170,750 2,722 (0.43%) 2,745 (0.43%)
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 302,464 21,558 280,906 6 (0.00%) 11 (0.00%)
realworld.run.osx.arm64.checked.mch 31,543 3 31,540 0 (0.00%) 1 (0.00%)
2,262,709 930,876 1,331,833 3,201 (0.14%) 3,256 (0.14%)

jit-analyze output

benchmarks.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: 11178424 (overridden on cmd)
Total bytes of diff: 11178360 (overridden on cmd)
Total bytes of delta: -64 (-0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          32 : 10452.dasm (0.25 % of base)
          28 : 17670.dasm (0.91 % of base)
          24 : 12847.dasm (3.77 % of base)
          24 : 14425.dasm (4.08 % of base)
          24 : 15201.dasm (0.66 % of base)
          24 : 15930.dasm (3.75 % of base)
          24 : 18915.dasm (0.36 % of base)
          24 : 211.dasm (3.77 % of base)
          24 : 22093.dasm (14.29 % of base)
          24 : 24097.dasm (2.88 % of base)
          24 : 2793.dasm (3.75 % of base)
          24 : 4383.dasm (1.47 % of base)
          20 : 20892.dasm (3.85 % of base)
          20 : 22991.dasm (5.56 % of base)
          20 : 6357.dasm (3.40 % of base)
          16 : 12570.dasm (2.67 % of base)
          16 : 13318.dasm (0.99 % of base)
          16 : 18358.dasm (4.17 % of base)
          16 : 3057.dasm (2.38 % of base)
          16 : 5262.dasm (1.88 % of base)

Top file improvements (bytes):
         -36 : 10780.dasm (-0.26 % of base)
         -32 : 12388.dasm (-0.31 % of base)
         -32 : 13626.dasm (-0.31 % of base)
         -16 : 16559.dasm (-0.67 % of base)
         -12 : 1602.dasm (-3.33 % of base)
         -12 : 16260.dasm (-0.67 % of base)
         -12 : 20307.dasm (-0.99 % of base)
         -12 : 11568.dasm (-0.85 % of base)
          -8 : 1204.dasm (-0.90 % of base)
          -8 : 12685.dasm (-1.33 % of base)
          -8 : 15300.dasm (-0.39 % of base)
          -8 : 4288.dasm (-0.46 % of base)
          -4 : 10641.dasm (-0.17 % of base)
          -4 : 1469.dasm (-0.57 % of base)
          -4 : 1729.dasm (-0.57 % of base)
          -4 : 20514.dasm (-2.27 % of base)
          -4 : 20527.dasm (-2.27 % of base)
          -4 : 207.dasm (-1.96 % of base)
          -4 : 22212.dasm (-2.27 % of base)
          -4 : 2799.dasm (-2.04 % of base)

58 total files with Code Size differences (33 improved, 25 regressed), 20 unchanged.

Top method regressions (bytes):
          32 (0.25 % of base) : 10452.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
          28 (0.91 % of base) : 17670.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
          24 (0.36 % of base) : 18915.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          24 (3.77 % of base) : 211.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
          24 (3.75 % of base) : 2793.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
          24 (3.77 % of base) : 12847.dasm - System.Collections.Generic.Dictionary`2[uint,System.__Canon]:FindValue(uint):byref:this (FullOpts)
          24 (3.75 % of base) : 15930.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (FullOpts)
          24 (2.88 % of base) : 24097.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:IndexOf(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],int,int,System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):int:this (FullOpts)
          24 (14.29 % of base) : 22093.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
          24 (4.08 % of base) : 14425.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
          24 (0.66 % of base) : 15201.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
          24 (1.47 % of base) : 4383.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
          20 (3.85 % of base) : 20892.dasm - System.Collections.Concurrent.ConcurrentBag`1[int]:ToArray():int[]:this (FullOpts)
          20 (3.40 % of base) : 6357.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
          20 (5.56 % of base) : 22991.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
          16 (4.17 % of base) : 18358.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
          16 (2.38 % of base) : 3057.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`2[int,int],System.__Canon]:FindValue(System.ValueTuple`2[int,int]):byref:this (FullOpts)
          16 (2.67 % of base) : 12570.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
          16 (2.88 % of base) : 10320.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
          16 (1.88 % of base) : 5262.dasm - System.Net.SafeDeleteSslContext:ReadFromConnection(long,ulong,ulong):int (FullOpts)

Top method improvements (bytes):
         -36 (-0.26 % of base) : 10780.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (FullOpts)
         -32 (-0.31 % of base) : 13626.dasm - Jil.Deserialize.Methods:ParseISO8601Date(System.IO.TextReader,ushort[],int,int):System.DateTime (FullOpts)
         -32 (-0.31 % of base) : 12388.dasm - Jil.Deserialize.Methods:ParseISO8601DateThunkReader(byref,ushort[],int,int):System.DateTime (FullOpts)
         -16 (-0.67 % of base) : 16559.dasm - System.Text.Json.Tests.Perf_Deep:WriteDeepUtf16():this (FullOpts)
         -12 (-0.99 % of base) : 20307.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.__Canon]]):this (FullOpts)
         -12 (-0.85 % of base) : 11568.dasm - System.Collections.Generic.PriorityQueue`2[System.Guid,System.Guid]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.Guid,System.Guid]]):this (FullOpts)
         -12 (-3.33 % of base) : 1602.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
         -12 (-0.67 % of base) : 16260.dasm - System.IO.Pipes.PipeStream+<WriteAsyncCore>d__83:MoveNext():this (FullOpts)
          -8 (-0.46 % of base) : 4288.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:ProcessSafeContents(byref,byref,byref,byref,byref,byref) (FullOpts)
          -8 (-0.90 % of base) : 1204.dasm - System.Text.Json.Utf8JsonReader:ReadSingleSegment():ubyte:this (FullOpts)
          -8 (-1.33 % of base) : 12685.dasm - System.Text.Json.Utf8JsonReader:SkipAllComments(byref):ubyte:this (FullOpts)
          -8 (-0.39 % of base) : 15300.dasm - System.Xml.XmlConverter:TryParseDateTime(ubyte[],int,int,byref):ubyte (FullOpts)
          -4 (-2.27 % of base) : 20514.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 20527.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 22212.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 4499.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 5608.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 5821.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 7439.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 1236.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)

Top method regressions (percentages):
          24 (14.29 % of base) : 22093.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
          12 (7.69 % of base) : 15218.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
          20 (5.56 % of base) : 22991.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
          16 (4.17 % of base) : 18358.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
          24 (4.08 % of base) : 14425.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
          20 (3.85 % of base) : 20892.dasm - System.Collections.Concurrent.ConcurrentBag`1[int]:ToArray():int[]:this (FullOpts)
          24 (3.77 % of base) : 211.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
          24 (3.77 % of base) : 12847.dasm - System.Collections.Generic.Dictionary`2[uint,System.__Canon]:FindValue(uint):byref:this (FullOpts)
          24 (3.75 % of base) : 2793.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
          24 (3.75 % of base) : 15930.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (FullOpts)
          12 (3.70 % of base) : 4968.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
          20 (3.40 % of base) : 6357.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
          24 (2.88 % of base) : 24097.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:IndexOf(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],int,int,System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):int:this (FullOpts)
          16 (2.88 % of base) : 10320.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
          16 (2.67 % of base) : 12570.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
          16 (2.38 % of base) : 3057.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`2[int,int],System.__Canon]:FindValue(System.ValueTuple`2[int,int]):byref:this (FullOpts)
          12 (2.29 % of base) : 11366.dasm - System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (FullOpts)
          16 (1.88 % of base) : 5262.dasm - System.Net.SafeDeleteSslContext:ReadFromConnection(long,ulong,ulong):int (FullOpts)
          24 (1.47 % of base) : 4383.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
           4 (1.45 % of base) : 14103.dasm - Microsoft.Extensions.Logging.Logger:Log[Microsoft.Extensions.Logging.FormattedLogValues](int,Microsoft.Extensions.Logging.EventId,Microsoft.Extensions.Logging.FormattedLogValues,System.Exception,System.Func`3[Microsoft.Extensions.Logging.FormattedLogValues,System.Exception,System.String]):this (FullOpts)

Top method improvements (percentages):
         -12 (-3.33 % of base) : 1602.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
          -4 (-2.27 % of base) : 20514.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 20527.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 22212.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 4499.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 5608.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 5821.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 7439.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 1236.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.13 % of base) : 3451.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.13 % of base) : 10482.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.08 % of base) : 10067.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 101.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 2799.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.96 % of base) : 207.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.41 % of base) : 3618.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -4 (-1.37 % of base) : 4613.dasm - System.Security.Cryptography.SymmetricPadding:GetCiphertextLength(int,int,int):int (FullOpts)
          -8 (-1.33 % of base) : 12685.dasm - System.Text.Json.Utf8JsonReader:SkipAllComments(byref):ubyte:this (FullOpts)
          -4 (-1.30 % of base) : 3437.dasm - System.Text.Json.Utf8JsonWriter:ValidateEnd(ubyte):this (FullOpts)
         -12 (-0.99 % of base) : 20307.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.__Canon]]):this (FullOpts)


benchmarks.run_pgo.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: 34559052 (overridden on cmd)
Total bytes of diff: 34671272 (overridden on cmd)
Total bytes of delta: 112220 (0.32 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         312 : 19523.dasm (15.57 % of base)
         312 : 19668.dasm (15.57 % of base)
         284 : 19842.dasm (11.11 % of base)
         280 : 77219.dasm (10.95 % of base)
         272 : 19669.dasm (9.78 % of base)
         264 : 19696.dasm (9.50 % of base)
         264 : 19683.dasm (9.50 % of base)
         260 : 58456.dasm (2.69 % of base)
         260 : 77226.dasm (10.42 % of base)
         244 : 20934.dasm (10.43 % of base)
         208 : 42189.dasm (11.11 % of base)
         208 : 66668.dasm (11.11 % of base)
         200 : 73938.dasm (2.90 % of base)
         192 : 46386.dasm (10.21 % of base)
         192 : 19632.dasm (9.45 % of base)
         188 : 74698.dasm (2.45 % of base)
         184 : 19677.dasm (9.18 % of base)
         180 : 46106.dasm (4.18 % of base)
         180 : 22073.dasm (4.18 % of base)
         180 : 71327.dasm (2.33 % of base)

Top file improvements (bytes):
        -128 : 42988.dasm (-3.48 % of base)
         -52 : 61160.dasm (-0.82 % of base)
         -52 : 45427.dasm (-1.53 % of base)
         -52 : 81010.dasm (-1.53 % of base)
         -48 : 62073.dasm (-1.32 % of base)
         -44 : 60574.dasm (-1.27 % of base)
         -44 : 45550.dasm (-2.43 % of base)
         -40 : 19270.dasm (-1.03 % of base)
         -40 : 45358.dasm (-1.75 % of base)
         -40 : 60974.dasm (-3.21 % of base)
         -40 : 62156.dasm (-1.75 % of base)
         -40 : 77182.dasm (-1.47 % of base)
         -40 : 84557.dasm (-1.80 % of base)
         -40 : 39474.dasm (-1.75 % of base)
         -40 : 44342.dasm (-1.80 % of base)
         -40 : 58634.dasm (-1.49 % of base)
         -40 : 63487.dasm (-1.31 % of base)
         -40 : 64351.dasm (-7.75 % of base)
         -40 : 19508.dasm (-1.33 % of base)
         -40 : 83217.dasm (-1.80 % of base)

86 total files with Code Size differences (39 improved, 47 regressed), 20 unchanged.

Top method regressions (bytes):
         312 (15.57 % of base) : 19523.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         312 (15.57 % of base) : 19668.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         284 (11.11 % of base) : 19842.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         280 (10.95 % of base) : 77219.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         272 (9.78 % of base) : 19669.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1)
         264 (9.50 % of base) : 19683.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1)
         264 (9.50 % of base) : 19696.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1)
         260 (2.69 % of base) : 58456.dasm - Microsoft.CodeAnalysis.Compilation:Emit(System.IO.Stream,System.IO.Stream,System.IO.Stream,System.IO.Stream,System.IO.Stream,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.ResourceDescription],Microsoft.CodeAnalysis.Emit.EmitOptions,Microsoft.CodeAnalysis.IMethodSymbol,System.IO.Stream,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.EmbeddedText],Microsoft.CodeAnalysis.RebuildData,Microsoft.CodeAnalysis.CodeGen.CompilationTestData,System.Threading.CancellationToken):Microsoft.CodeAnalysis.Emit.EmitResult:this (Tier1)
         260 (10.42 % of base) : 77226.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         244 (10.43 % of base) : 20934.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]:IndexOf(byref,int):int:this (Tier1)
         208 (11.11 % of base) : 42189.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         208 (11.11 % of base) : 66668.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         200 (2.90 % of base) : 73938.dasm - System.Number:Dragon4(ulong,int,uint,ubyte,int,ubyte,System.Span`1[ubyte],byref):uint (Tier1)
         192 (9.45 % of base) : 19632.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         192 (10.21 % of base) : 46386.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         188 (2.45 % of base) : 74698.dasm - System.Number:Dragon4(ulong,int,uint,ubyte,int,ubyte,System.Span`1[ubyte],byref):uint (Tier1)
         184 (9.18 % of base) : 19677.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         180 (2.33 % of base) : 71327.dasm - System.Number:Dragon4(ulong,int,uint,ubyte,int,ubyte,System.Span`1[ubyte],byref):uint (Tier1)
         180 (4.18 % of base) : 46106.dasm - System.Text.Json.Tests.Perf_Strings:Setup():this (Tier1-OSR)
         180 (4.18 % of base) : 22073.dasm - System.Text.Json.Tests.Perf_Strings:Setup():this (Tier1-OSR)

Top method improvements (bytes):
        -128 (-3.48 % of base) : 42988.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1)
         -52 (-1.53 % of base) : 45427.dasm - System.Security.Cryptography.X509Certificates.UnixExportProvider:EncodeAuthSafe(System.Formats.Asn1.AsnWriter,System.ReadOnlyMemory`1[ubyte],System.ReadOnlyMemory`1[ubyte],ubyte,System.String,System.String,System.Span`1[ubyte],System.Span`1[ubyte]):System.ArraySegment`1[ubyte] (Tier1)
         -52 (-0.82 % of base) : 61160.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier1)
         -52 (-1.53 % of base) : 81010.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -48 (-1.32 % of base) : 62073.dasm - Microsoft.Extensions.Configuration.ConfigurationProvider:GetChildKeys(System.Collections.Generic.IEnumerable`1[System.String],System.String):System.Collections.Generic.IEnumerable`1[System.String]:this (Tier1)
         -44 (-2.43 % of base) : 45550.dasm - LUDecomp:build_problem(double[][],int,double[]) (Tier1)
         -44 (-1.27 % of base) : 60574.dasm - System.Text.RegularExpressions.Regex:ScanInternal(int,ubyte,System.String,int,System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort],ubyte):System.Text.RegularExpressions.Match (Tier1)
         -40 (-1.49 % of base) : 58634.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldBinaryOperator(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.ConstantValue:this (Tier1)
         -40 (-1.31 % of base) : 63487.dasm - System.Linq.Enumerable:TryGetLast[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],byref):System.__Canon (Tier1)
         -40 (-7.75 % of base) : 64351.dasm - System.Reflection.Internal.EncodingHelper:DecodeUtf8(ulong,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)
         -40 (-1.75 % of base) : 45358.dasm - System.Security.Cryptography.PasswordBasedEncryption:InitiateEncryption(System.Security.Cryptography.PbeParameters,byref,byref,byref,byref) (Tier1)
         -40 (-1.75 % of base) : 62156.dasm - System.Security.Cryptography.PasswordBasedEncryption:InitiateEncryption(System.Security.Cryptography.PbeParameters,byref,byref,byref,byref) (Tier1)
         -40 (-1.80 % of base) : 84557.dasm - System.Security.Cryptography.PasswordBasedEncryption:InitiateEncryption(System.Security.Cryptography.PbeParameters,byref,byref,byref,byref) (Tier1)
         -40 (-1.75 % of base) : 39474.dasm - System.Security.Cryptography.PasswordBasedEncryption:InitiateEncryption(System.Security.Cryptography.PbeParameters,byref,byref,byref,byref) (Tier1)
         -40 (-1.80 % of base) : 44342.dasm - System.Security.Cryptography.PasswordBasedEncryption:InitiateEncryption(System.Security.Cryptography.PbeParameters,byref,byref,byref,byref) (Tier1)
         -40 (-1.80 % of base) : 83217.dasm - System.Security.Cryptography.PasswordBasedEncryption:InitiateEncryption(System.Security.Cryptography.PbeParameters,byref,byref,byref,byref) (Tier1)
         -40 (-1.47 % of base) : 77182.dasm - System.Text.RegularExpressions.Regex:RunAllMatchesWithCallback[int](System.String,System.ReadOnlySpan`1[ushort],int,byref,System.Text.RegularExpressions.MatchCallback`1[int],int,ubyte):this (Tier1-OSR)
         -40 (-1.33 % of base) : 19508.dasm - System.Text.RegularExpressions.Regex:RunAllMatchesWithCallback[int](System.String,System.ReadOnlySpan`1[ushort],int,byref,System.Text.RegularExpressions.MatchCallback`1[int],int,ubyte):this (Tier1-OSR)
         -40 (-1.03 % of base) : 19270.dasm - System.Text.RegularExpressions.RegexNode:CanBeMadeAtomic(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte,ubyte):ubyte (Tier1)
         -40 (-3.21 % of base) : 60974.dasm - System.Text.RegularExpressions.RegexNode:ReduceSet():System.Text.RegularExpressions.RegexNode:this (Tier1)

Top method regressions (percentages):
          80 (21.28 % of base) : 13762.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Enumerator[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier1)
          20 (18.52 % of base) : 57433.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
          20 (17.86 % of base) : 57300.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
          24 (17.65 % of base) : 15718.dasm - System.RuntimeMethodHandle:GetSlot(System.IRuntimeMethodInfo):int (Tier1)
          20 (17.24 % of base) : 13868.dasm - System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.__Canon]]:SetItem(int,System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.__Canon]],byref,byref):System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.__Canon]]:this (Tier1)
          24 (17.14 % of base) : 26873.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
          24 (17.14 % of base) : 60985.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
         312 (15.57 % of base) : 19523.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         312 (15.57 % of base) : 19668.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
          76 (15.45 % of base) : 57606.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:GetEmbeddedTypes(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (Tier1)
          28 (14.89 % of base) : 44870.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.89 % of base) : 83485.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.89 % of base) : 84601.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.89 % of base) : 36694.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.89 % of base) : 64813.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.89 % of base) : 68657.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.89 % of base) : 69377.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.89 % of base) : 73283.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          20 (14.29 % of base) : 61101.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
          20 (14.29 % of base) : 27053.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)

Top method improvements (percentages):
          -8 (-11.11 % of base) : 15703.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
         -12 (-8.82 % of base) : 58606.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (Tier1)
          -8 (-8.70 % of base) : 31675.dasm - Microsoft.Win32.SafeHandles.SafePasswordHandle:DangerousGetSpan():System.ReadOnlySpan`1[ushort]:this (Tier1)
          -8 (-8.70 % of base) : 44352.dasm - Microsoft.Win32.SafeHandles.SafePasswordHandle:DangerousGetSpan():System.ReadOnlySpan`1[ushort]:this (Tier1)
          -8 (-8.70 % of base) : 81483.dasm - Microsoft.Win32.SafeHandles.SafePasswordHandle:DangerousGetSpan():System.ReadOnlySpan`1[ushort]:this (Tier1)
          -8 (-8.70 % of base) : 33927.dasm - Microsoft.Win32.SafeHandles.SafePasswordHandle:DangerousGetSpan():System.ReadOnlySpan`1[ushort]:this (Tier1)
         -40 (-7.75 % of base) : 64351.dasm - System.Reflection.Internal.EncodingHelper:DecodeUtf8(ulong,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)
          -4 (-7.69 % of base) : 58174.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:IsSpecialEndHandlerBlock(Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock):ubyte (Tier1)
         -12 (-6.82 % of base) : 57759.dasm - Roslyn.Utilities.FileNameUtilities:IndexOfFileName(System.String):int (Tier1)
         -20 (-6.76 % of base) : 42536.dasm - NeuralJagged:do_mid_error() (Tier1)
         -20 (-6.67 % of base) : 43286.dasm - Neural:do_mid_error() (Tier1)
          -4 (-6.67 % of base) : 81169.dasm - System.Math:Max(double,double):double (Tier1)
         -20 (-6.49 % of base) : 43284.dasm - Neural:do_out_forward() (Tier1)
          -8 (-6.45 % of base) : 56748.dasm - System.Reflection.Internal.MemoryBlock:PeekTaggedReference(int,ubyte):uint:this (Tier1)
         -12 (-6.25 % of base) : 43292.dasm - Neural:worst_pass_error() (Tier1)
         -12 (-6.25 % of base) : 42540.dasm - NeuralJagged:worst_pass_error() (Tier1)
          -8 (-6.25 % of base) : 37515.dasm - System.Formats.Asn1.SpanBasedEncoding:GetChars(ulong,int,ulong,int):int:this (Tier1)
          -4 (-6.25 % of base) : 78433.dasm - System.Math:Max(double,double):double (Tier1)
          -4 (-6.25 % of base) : 59181.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -4 (-6.25 % of base) : 66465.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)


benchmarks.run_tiered.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: 15557856 (overridden on cmd)
Total bytes of diff: 15557888 (overridden on cmd)
Total bytes of delta: 32 (0.00 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          32 : 23915.dasm (0.24 % of base)
          24 : 24938.dasm (1.47 % of base)
          24 : 24875.dasm (3.75 % of base)
          24 : 5896.dasm (3.77 % of base)
          16 : 14606.dasm (1.84 % of base)
          12 : 22590.dasm (0.15 % of base)
          12 : 45366.dasm (1.86 % of base)
          12 : 42772.dasm (1.26 % of base)
          12 : 43978.dasm (2.75 % of base)
          12 : 45131.dasm (0.36 % of base)
           8 : 25131.dasm (1.42 % of base)
           8 : 19570.dasm (0.83 % of base)
           4 : 46815.dasm (0.07 % of base)
           4 : 8203.dasm (0.10 % of base)
           4 : 41238.dasm (0.17 % of base)
           4 : 14543.dasm (0.27 % of base)

Top file improvements (bytes):
         -12 : 31947.dasm (-0.67 % of base)
          -8 : 24538.dasm (-0.46 % of base)
          -8 : 32672.dasm (-0.36 % of base)
          -8 : 19586.dasm (-0.46 % of base)
          -8 : 29730.dasm (-0.52 % of base)
          -4 : 19592.dasm (-2.08 % of base)
          -4 : 29657.dasm (-0.20 % of base)
          -4 : 29670.dasm (-0.85 % of base)
          -4 : 30917.dasm (-0.20 % of base)
          -4 : 31265.dasm (-0.47 % of base)
          -4 : 32632.dasm (-0.42 % of base)
          -4 : 42256.dasm (-2.04 % of base)
          -4 : 16241.dasm (-0.05 % of base)
          -4 : 24260.dasm (-2.27 % of base)
          -4 : 24702.dasm (-1.37 % of base)
          -4 : 25352.dasm (-0.62 % of base)
          -4 : 26577.dasm (-0.21 % of base)
          -4 : 27859.dasm (-0.47 % of base)
          -4 : 30203.dasm (-0.55 % of base)
          -4 : 32098.dasm (-0.41 % of base)

45 total files with Code Size differences (29 improved, 16 regressed), 24 unchanged.

Top method regressions (bytes):
          32 (0.24 % of base) : 23915.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
          24 (3.77 % of base) : 5896.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (Tier1)
          24 (3.75 % of base) : 24875.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (Tier1)
          24 (1.47 % of base) : 24938.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (Tier1)
          16 (1.84 % of base) : 14606.dasm - System.Net.SafeDeleteSslContext:ReadFromConnection(long,ulong,ulong):int (FullOpts)
          12 (0.15 % of base) : 22590.dasm - (dynamicClass):_DynamicMethod9(byref,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
          12 (1.26 % of base) : 42772.dasm - JetStream.Hands:playHands(System.Collections.Generic.List`1[JetStream.Player]) (Tier1-OSR)
          12 (2.75 % of base) : 43978.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
          12 (1.86 % of base) : 45366.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)
          12 (0.36 % of base) : 45131.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (Tier1)
           8 (0.83 % of base) : 19570.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon]:FindValue(System.ValueTuple`3[int,System.__Canon,System.__Canon]):byref:this (Tier1)
           8 (1.42 % of base) : 25131.dasm - System.Net.SafeDeleteSslContext:ReadPendingWrites(byref):this (Tier1)
           4 (0.07 % of base) : 46815.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
           4 (0.17 % of base) : 41238.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (Tier1)
           4 (0.27 % of base) : 14543.dasm - System.Net.SafeDeleteSslContext:.ctor(System.Net.Security.SslAuthenticationOptions):this (Tier0-FullOpts)
           4 (0.10 % of base) : 8203.dasm - System.Reflection.MethodBaseInvoker:InvokeWithManyArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (Tier0-FullOpts)

Top method improvements (bytes):
         -12 (-0.67 % of base) : 31947.dasm - System.IO.Pipes.PipeStream+<WriteAsyncCore>d__83:MoveNext():this (Tier1)
          -8 (-0.46 % of base) : 19586.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon]:TryInsert(System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon,ubyte):ubyte:this (Tier1)
          -8 (-0.52 % of base) : 29730.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<SyncReadAsyncWithCancellationToken>d__9:MoveNext():this (Tier1-OSR)
          -8 (-0.36 % of base) : 32672.dasm - System.Net.Security.Tests.SslStreamTests+<>c__DisplayClass40_0+<<ConcurrentReadWriteLargeBuffer>b__0>d:MoveNext():this (Tier1)
          -8 (-0.46 % of base) : 24538.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:ProcessSafeContents(byref,byref,byref,byref,byref,byref) (Tier1)
          -4 (-0.42 % of base) : 32632.dasm - Interop.ComWrappersTests+<ParallelRCWLookUp>d__4:MoveNext():this (Tier1)
          -4 (-0.46 % of base) : 41289.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantNodesOnly>d__172:MoveNext():ubyte:this (Tier1)
          -4 (-2.27 % of base) : 24260.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier1)
          -4 (-1.92 % of base) : 8110.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-2.04 % of base) : 3163.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)
          -4 (-2.04 % of base) : 42256.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-2.08 % of base) : 19592.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-0.27 % of base) : 27909.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<SyncReadAsync>d__5:MoveNext():this (Tier1-OSR)
          -4 (-0.41 % of base) : 32098.dasm - System.IO.Pipes.Tests.Perf_PipeTest+<ReadWrite>d__7:MoveNext():this (Tier1)
          -4 (-0.47 % of base) : 31265.dasm - System.IO.Pipes.Tests.Perf_PipeTest+<ReadWrite>d__7:MoveNext():this (Tier1-OSR)
          -4 (-0.23 % of base) : 31938.dasm - System.IO.Pipes.Tests.Perf_PipeTest+<ReadWriteAsync>d__8:MoveNext():this (Tier1)
          -4 (-0.30 % of base) : 26190.dasm - System.IO.RandomAccess:WriteGatherAtOffset(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList`1[System.ReadOnlyMemory`1[ubyte]],long) (Tier0-FullOpts)
          -4 (-0.21 % of base) : 26577.dasm - System.IO.Tests.Perf_FileStream+<WriteAsync>d__37:MoveNext():this (Tier1)
          -4 (-0.20 % of base) : 30917.dasm - System.Net.Security.Tests.SslStreamTests+<ReadWriteAsync>d__35:MoveNext():this (Tier1)
          -4 (-0.20 % of base) : 29657.dasm - System.Net.Security.Tests.SslStreamTests+<WriteReadAsync>d__33:MoveNext():this (Tier1)

Top method regressions (percentages):
          24 (3.77 % of base) : 5896.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (Tier1)
          24 (3.75 % of base) : 24875.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (Tier1)
          12 (2.75 % of base) : 43978.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
          12 (1.86 % of base) : 45366.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)
          16 (1.84 % of base) : 14606.dasm - System.Net.SafeDeleteSslContext:ReadFromConnection(long,ulong,ulong):int (FullOpts)
          24 (1.47 % of base) : 24938.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (Tier1)
           8 (1.42 % of base) : 25131.dasm - System.Net.SafeDeleteSslContext:ReadPendingWrites(byref):this (Tier1)
          12 (1.26 % of base) : 42772.dasm - JetStream.Hands:playHands(System.Collections.Generic.List`1[JetStream.Player]) (Tier1-OSR)
           8 (0.83 % of base) : 19570.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon]:FindValue(System.ValueTuple`3[int,System.__Canon,System.__Canon]):byref:this (Tier1)
          12 (0.36 % of base) : 45131.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (Tier1)
           4 (0.27 % of base) : 14543.dasm - System.Net.SafeDeleteSslContext:.ctor(System.Net.Security.SslAuthenticationOptions):this (Tier0-FullOpts)
          32 (0.24 % of base) : 23915.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
           4 (0.17 % of base) : 41238.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (Tier1)
          12 (0.15 % of base) : 22590.dasm - (dynamicClass):_DynamicMethod9(byref,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
           4 (0.10 % of base) : 8203.dasm - System.Reflection.MethodBaseInvoker:InvokeWithManyArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (Tier0-FullOpts)
           4 (0.07 % of base) : 46815.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)

Top method improvements (percentages):
          -4 (-2.27 % of base) : 24260.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier1)
          -4 (-2.08 % of base) : 19592.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-2.04 % of base) : 3163.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)
          -4 (-2.04 % of base) : 42256.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-1.92 % of base) : 8110.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-1.37 % of base) : 24702.dasm - System.Security.Cryptography.SymmetricPadding:GetCiphertextLength(int,int,int):int (Tier1)
          -4 (-0.85 % of base) : 6562.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetResult():this (Tier1)
          -4 (-0.85 % of base) : 29670.dasm - System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder:SetResult():this (Tier1)
         -12 (-0.67 % of base) : 31947.dasm - System.IO.Pipes.PipeStream+<WriteAsyncCore>d__83:MoveNext():this (Tier1)
          -4 (-0.62 % of base) : 25352.dasm - System.String:Equals(System.String,int):ubyte:this (Tier1)
          -4 (-0.61 % of base) : 25335.dasm - System.String:Equals(System.String,System.String,int):ubyte (Tier1)
          -4 (-0.55 % of base) : 30203.dasm - System.Threading.Tasks.Tests.Perf_AsyncMethods+<Yield>d__2:MoveNext():this (Tier1)
          -8 (-0.52 % of base) : 29730.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<SyncReadAsyncWithCancellationToken>d__9:MoveNext():this (Tier1-OSR)
          -4 (-0.47 % of base) : 31265.dasm - System.IO.Pipes.Tests.Perf_PipeTest+<ReadWrite>d__7:MoveNext():this (Tier1-OSR)
          -4 (-0.47 % of base) : 27859.dasm - System.Threading.Tasks.Tests.Perf_AsyncMethods+<EmptyAsyncMethodInvocation>d__0:MoveNext():this (Tier1-OSR)
          -8 (-0.46 % of base) : 19586.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon]:TryInsert(System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon,ubyte):ubyte:this (Tier1)
          -4 (-0.46 % of base) : 41289.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantNodesOnly>d__172:MoveNext():ubyte:this (Tier1)
          -8 (-0.46 % of base) : 24538.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:ProcessSafeContents(byref,byref,byref,byref,byref,byref) (Tier1)
          -4 (-0.42 % of base) : 32632.dasm - Interop.ComWrappersTests+<ParallelRCWLookUp>d__4:MoveNext():this (Tier1)
          -4 (-0.41 % of base) : 32098.dasm - System.IO.Pipes.Tests.Perf_PipeTest+<ReadWrite>d__7:MoveNext():this (Tier1)


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: 485344932 (overridden on cmd)
Total bytes of diff: 485381240 (overridden on cmd)
Total bytes of delta: 36308 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1088 : 30401.dasm (94.12 % of base)
         384 : 307751.dasm (6.11 % of base)
         292 : 532177.dasm (2.94 % of base)
         268 : 383043.dasm (2.49 % of base)
         212 : 385031.dasm (1.93 % of base)
         172 : 570652.dasm (1.73 % of base)
         160 : 349184.dasm (2.96 % of base)
         160 : 349978.dasm (2.96 % of base)
         160 : 571965.dasm (2.98 % of base)
         160 : 572039.dasm (2.98 % of base)
         156 : 381584.dasm (2.04 % of base)
         144 : 378167.dasm (1.30 % of base)
         128 : 380603.dasm (1.62 % of base)
         120 : 384468.dasm (1.53 % of base)
         108 : 249249.dasm (5.04 % of base)
         108 : 249284.dasm (4.80 % of base)
         104 : 249290.dasm (4.68 % of base)
         104 : 387903.dasm (14.36 % of base)
         100 : 380479.dasm (0.97 % of base)
         100 : 372528.dasm (1.62 % of base)

Top file improvements (bytes):
        -196 : 29203.dasm (-2.77 % of base)
        -184 : 261131.dasm (-2.87 % of base)
        -160 : 381723.dasm (-4.72 % of base)
        -160 : 381317.dasm (-0.94 % of base)
        -132 : 285490.dasm (-1.75 % of base)
        -116 : 384488.dasm (-1.32 % of base)
        -112 : 380722.dasm (-1.53 % of base)
        -100 : 382776.dasm (-1.28 % of base)
        -100 : 380704.dasm (-1.18 % of base)
         -92 : 380601.dasm (-2.95 % of base)
         -84 : 517116.dasm (-0.20 % of base)
         -80 : 294986.dasm (-1.16 % of base)
         -80 : 249074.dasm (-3.07 % of base)
         -80 : 271312.dasm (-1.16 % of base)
         -76 : 351621.dasm (-1.32 % of base)
         -76 : 383622.dasm (-1.65 % of base)
         -72 : 384677.dasm (-2.17 % of base)
         -72 : 585675.dasm (-0.59 % of base)
         -68 : 517449.dasm (-0.17 % of base)
         -68 : 517453.dasm (-0.17 % of base)

93 total files with Code Size differences (44 improved, 49 regressed), 20 unchanged.

Top method regressions (bytes):
        1088 (94.12 % of base) : 30401.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Tier1-OSR)
         384 (6.11 % of base) : 307751.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         292 (2.94 % of base) : 532177.dasm - ILGEN_0x372a9ae6:Method_0xdc6ff1a4(byte,byte,int,long,ushort,double,long,ulong):int (FullOpts)
         268 (2.49 % of base) : 383043.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugInfoTableNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
         212 (1.93 % of base) : 385031.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugInfoTableNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
         172 (1.73 % of base) : 570652.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
         160 (2.98 % of base) : 571965.dasm - StrSwitchFinalTest:Run():int:this (FullOpts)
         160 (2.98 % of base) : 572039.dasm - StrSwitchFinalTest:Run():int:this (FullOpts)
         160 (2.96 % of base) : 349184.dasm - StrSwitchFinalTest:Run():int:this (Tier0-FullOpts)
         160 (2.96 % of base) : 349978.dasm - StrSwitchFinalTest:Run():int:this (Tier0-FullOpts)
         156 (2.04 % of base) : 381584.dasm - Internal.JitInterface.InstructionSetFlags:ExpandInstructionSetByReverseImplicationHelper(int,Internal.JitInterface.InstructionSetFlags):Internal.JitInterface.InstructionSetFlags (Tier1)
         144 (1.30 % of base) : 378167.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CalculateTypeLayout(Internal.TypeSystem.DefType,Internal.TypeSystem.Ecma.EcmaModule,byref):Internal.TypeSystem.FieldAndOffset[]:this (Tier1)
         128 (1.62 % of base) : 380603.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugInfoTableNode:CreateVarBlobForMethod(Internal.JitInterface.NativeVarInfo[],Internal.TypeSystem.TargetDetails):ubyte[] (Tier1)
         120 (1.53 % of base) : 384468.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugInfoTableNode:CreateVarBlobForMethod(Internal.JitInterface.NativeVarInfo[],Internal.TypeSystem.TargetDetails):ubyte[] (Tier1)
         108 (5.04 % of base) : 249249.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier1-OSR)
         108 (4.80 % of base) : 249284.dasm - AssignRect:second_assignments(int[,],short[,]) (Tier1-OSR)
         104 (4.68 % of base) : 249290.dasm - AssignRect:second_assignments(int[,],short[,]) (Tier1-OSR)
         104 (14.36 % of base) : 387903.dasm - Interop+Sys:AllocNullTerminatedArray(System.String[],byref) (FullOpts)
         100 (1.62 % of base) : 372528.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CreateValueFromKey(Internal.TypeSystem.Ecma.EcmaModule):ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayout:this (Tier1-OSR)
         100 (0.97 % of base) : 380479.dasm - Internal.JitInterface.CorInfoImpl:ceeInfoGetCallInfo(byref,ulong,ulong,int,ulong,byref,byref,byref,byref,byref,byref,byref,byref):this (Tier1)

Top method improvements (bytes):
        -196 (-2.77 % of base) : 29203.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
        -184 (-2.87 % of base) : 261131.dasm - System.Diagnostics.Tracing.EventPipePayloadDecoder:DecodePayload(byref,System.ReadOnlySpan`1[ubyte]):System.Object[] (Tier1)
        -160 (-4.72 % of base) : 381723.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+RuntimeDeterminedTypeKey,System.__Canon]:TryAddOrGetExisting(System.__Canon,byref):System.__Canon:this (Tier1)
        -160 (-0.94 % of base) : 381317.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -132 (-1.75 % of base) : 285490.dasm - System.Reflection.PortableExecutable.PEHeaders:.ctor(System.IO.Stream,int,ubyte):this (Tier1)
        -116 (-1.32 % of base) : 384488.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:IntroSort(System.Span`1[System.__Canon],int,System.Comparison`1[System.__Canon]) (Tier1)
        -112 (-1.53 % of base) : 380722.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:InsertionSort(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]) (Tier1)
        -100 (-1.28 % of base) : 382776.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.AttributePresenceFilterNode:GetCustomAttributeEntries():System.Collections.Generic.List`1[ILCompiler.DependencyAnalysis.ReadyToRun.AttributePresenceFilterNode+CustomAttributeEntry]:this (Tier1-OSR)
        -100 (-1.18 % of base) : 380704.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:IntroSort(System.Span`1[System.__Canon],int,System.Comparison`1[System.__Canon]) (Tier1)
         -92 (-2.95 % of base) : 380601.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugInfoTableNode:CreateBoundsBlobForMethod(Internal.JitInterface.OffsetMapping[]):ubyte[] (Tier1)
         -84 (-0.20 % of base) : 517116.dasm - intMDArrTest:TestEntryPoint():int (FullOpts)
         -80 (-3.07 % of base) : 249074.dasm - StringSort:DoStringSortIteration(System.String[][],int,int):int (Tier1)
         -80 (-1.16 % of base) : 294986.dasm - System.Reflection.PortableExecutable.PEHeaders:.ctor(System.IO.Stream,int,ubyte):this (Tier1)
         -80 (-1.16 % of base) : 271312.dasm - System.Reflection.PortableExecutable.PEHeaders:.ctor(System.IO.Stream,int,ubyte):this (Tier1)
         -76 (-1.32 % of base) : 351621.dasm - Internal.TypeSystem.Ecma.EcmaModule:CreateNameLookupCache():System.Collections.Generic.Dictionary`2[System.ValueTuple`2[System.String,System.String],System.Reflection.Metadata.EntityHandle]:this (Tier1-OSR)
         -76 (-1.65 % of base) : 383622.dasm - Internal.TypeSystem.Ecma.EcmaModule:ResolveMemberReference(System.Reflection.Metadata.MemberReferenceHandle):System.Object:this (Tier1)
         -72 (-2.17 % of base) : 384677.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+RuntimeDeterminedTypeKey,System.__Canon]:TryAddOrGetExisting(System.__Canon,byref):System.__Canon:this (Tier1)
         -72 (-0.59 % of base) : 585675.dasm - Tracing.Tests.ProcessInfoValidation.ProcessInfoValidation:TestEntryPoint() (FullOpts)
         -68 (-0.17 % of base) : 517449.dasm - sbyteMDArrTest:TestEntryPoint():int (FullOpts)
         -68 (-0.17 % of base) : 517453.dasm - shortMDArrTest:TestEntryPoint():int (FullOpts)

Top method regressions (percentages):
          44 (122.22 % of base) : 520596.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
        1088 (94.12 % of base) : 30401.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Tier1-OSR)
          28 (77.78 % of base) : 516572.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
          28 (77.78 % of base) : 520544.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
          52 (44.83 % of base) : 516132.dasm - Test_10w5d.testout1:Func_0_2_6_2_2():double (FullOpts)
          36 (39.13 % of base) : 516613.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
          36 (34.62 % of base) : 531533.dasm - Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
          20 (25.00 % of base) : 401621.dasm - filter1:f4() (FullOpts)
          32 (17.78 % of base) : 386991.dasm - System.Threading.TimerQueue:EnsureTimerFiresBy(uint):ubyte:this (Tier1)
          28 (16.28 % of base) : 398272.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          28 (16.28 % of base) : 397855.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          28 (14.89 % of base) : 307748.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.89 % of base) : 350218.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.58 % of base) : 369657.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.58 % of base) : 370262.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.58 % of base) : 370671.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.58 % of base) : 370698.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.58 % of base) : 371231.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.58 % of base) : 375459.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.58 % of base) : 386899.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)

Top method improvements (percentages):
         -28 (-8.14 % of base) : 214670.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)
         -28 (-8.14 % of base) : 295923.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)
         -28 (-8.14 % of base) : 307007.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)
         -44 (-7.38 % of base) : 507270.dasm - HelloWorld:Main():int (FullOpts)
         -12 (-7.32 % of base) : 1368.dasm - System.Threading.PortableThreadPool+WorkerThread:TakeActiveRequest(System.Threading.PortableThreadPool):ubyte (Instrumented Tier1)
          -8 (-6.90 % of base) : 5928.dasm - System.String:op_Equality(System.String,System.String):ubyte (Instrumented Tier1)
          -4 (-6.67 % of base) : 526196.dasm - Runtime_56495:TestEntryPoint():int (FullOpts)
          -8 (-6.67 % of base) : 4993.dasm - System.Resources.FastResourceComparer:Equals(System.String,System.String):ubyte:this (Instrumented Tier1)
          -8 (-6.67 % of base) : 5989.dasm - System.Resources.FastResourceComparer:Equals(System.String,System.String):ubyte:this (Tier1)
         -12 (-6.67 % of base) : 254984.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfClass(ulong,System.Object):System.Object (Tier1)
         -12 (-6.67 % of base) : 215819.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfClass(ulong,System.Object):System.Object (Tier1)
          -8 (-6.45 % of base) : 377067.dasm - System.Reflection.Internal.MemoryBlock:PeekTaggedReference(int,ubyte):uint:this (Tier1)
          -8 (-6.45 % of base) : 228049.dasm - Tests_len0_0:Test_tst_30(System.String):ubyte (FullOpts)
         -20 (-6.33 % of base) : 509320.dasm - HelloWorld:Main():int (FullOpts)
          -4 (-6.25 % of base) : 218085.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -4 (-6.25 % of base) : 259119.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -4 (-6.25 % of base) : 350211.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -4 (-6.25 % of base) : 369841.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -4 (-6.25 % of base) : 371238.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -8 (-6.06 % of base) : 489219.dasm - Span.IndexerBench:TestKnownSizeCtor(ubyte[],int):ubyte (FullOpts)


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: 55620496 (overridden on cmd)
Total bytes of diff: 55622104 (overridden on cmd)
Total bytes of delta: 1608 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         660 : 192302.dasm (750.00 % of base)
         144 : 86082.dasm (22.64 % of base)
         112 : 81503.dasm (5.57 % of base)
          56 : 129712.dasm (0.21 % of base)
          36 : 165755.dasm (2.22 % of base)
          36 : 72333.dasm (8.91 % of base)
          32 : 124594.dasm (14.55 % of base)
          32 : 132274.dasm (0.44 % of base)
          28 : 44863.dasm (1.31 % of base)
          28 : 45732.dasm (10.94 % of base)
          28 : 73624.dasm (12.96 % of base)
          24 : 130495.dasm (2.13 % of base)
          24 : 221666.dasm (1.21 % of base)
          24 : 147396.dasm (2.13 % of base)
          24 : 165655.dasm (2.25 % of base)
          24 : 221826.dasm (3.66 % of base)
          24 : 43798.dasm (0.53 % of base)
          20 : 88849.dasm (7.04 % of base)
          20 : 207299.dasm (3.25 % of base)
          20 : 124429.dasm (9.43 % of base)

Top file improvements (bytes):
         -48 : 43026.dasm (-1.80 % of base)
         -12 : 197838.dasm (-1.18 % of base)
         -12 : 231904.dasm (-1.12 % of base)
         -12 : 160742.dasm (-1.18 % of base)
         -12 : 231903.dasm (-1.05 % of base)
          -8 : 121541.dasm (-0.45 % of base)
          -8 : 151529.dasm (-0.94 % of base)
          -8 : 152338.dasm (-0.47 % of base)
          -8 : 152435.dasm (-1.32 % of base)
          -8 : 215760.dasm (-0.23 % of base)
          -8 : 25169.dasm (-1.33 % of base)
          -8 : 121073.dasm (-0.45 % of base)
          -8 : 215756.dasm (-0.16 % of base)
          -8 : 25170.dasm (-1.32 % of base)
          -8 : 43939.dasm (-0.35 % of base)
          -4 : 142301.dasm (-1.54 % of base)
          -4 : 143071.dasm (-1.54 % of base)
          -4 : 143076.dasm (-1.54 % of base)
          -4 : 177445.dasm (-1.54 % of base)
          -4 : 21401.dasm (-0.63 % of base)

69 total files with Code Size differences (37 improved, 32 regressed), 20 unchanged.

Top method regressions (bytes):
         660 (750.00 % of base) : 192302.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
         144 (22.64 % of base) : 86082.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
         112 (5.57 % of base) : 81503.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          56 (0.21 % of base) : 129712.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          36 (8.91 % of base) : 72333.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          36 (2.22 % of base) : 165755.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
          32 (0.44 % of base) : 132274.dasm - Microsoft.CodeAnalysis.CommonCompiler:CompileAndEmit(Microsoft.CodeAnalysis.TouchedFileLogger,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISourceGenerator],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText],Microsoft.CodeAnalysis.AnalyzerConfigSet,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AnalyzerConfigOptionsResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.EmbeddedText],Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.ErrorLogger,System.Threading.CancellationToken,byref,byref,byref):this (FullOpts)
          32 (14.55 % of base) : 124594.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          28 (12.96 % of base) : 73624.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
          28 (10.94 % of base) : 45732.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          28 (1.31 % of base) : 44863.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
          24 (0.53 % of base) : 43798.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          24 (2.13 % of base) : 130495.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
          24 (2.25 % of base) : 165655.dasm - System.Data.ExpressionParser:ParseAggregateArgument(int):System.Data.AggregateNode:this (FullOpts)
          24 (3.66 % of base) : 221826.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
          24 (1.21 % of base) : 221666.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
          24 (2.13 % of base) : 147396.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
          20 (3.79 % of base) : 52172.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetCorrespondingBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):int (FullOpts)
          20 (7.04 % of base) : 88849.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
          20 (3.25 % of base) : 207299.dasm - System.Data.Odbc.OdbcDataReader:GetData(int,short,int,byref):ubyte:this (FullOpts)

Top method improvements (bytes):
         -48 (-1.80 % of base) : 43026.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (FullOpts)
         -12 (-1.12 % of base) : 231904.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.__Canon],System.__Canon):this (FullOpts)
         -12 (-1.05 % of base) : 231903.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.__Canon]]):this (FullOpts)
         -12 (-1.18 % of base) : 160742.dasm - System.Linq.Expressions.Compiler.CompilerScope:EmitVariableAccess(System.Linq.Expressions.Compiler.LambdaCompiler,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.ParameterExpression]):this (FullOpts)
         -12 (-1.18 % of base) : 197838.dasm - System.Xml.Serialization.XmlSchemaImporter:ImportAny(System.Xml.Schema.XmlSchemaAny,ubyte,System.String):System.Xml.Serialization.ElementAccessor[]:this (FullOpts)
          -8 (-0.35 % of base) : 43939.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeDeconstructInvocationExpression(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Binder+DeconstructionVariable]):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          -8 (-0.45 % of base) : 121073.dasm - Newtonsoft.Json.Converters.XmlNodeConverter:ReadAttributeElements(Newtonsoft.Json.JsonReader,System.Xml.XmlNamespaceManager):System.Collections.Generic.Dictionary`2[System.String,System.String]:this (FullOpts)
          -8 (-0.45 % of base) : 121541.dasm - Newtonsoft.Json.Linq.JsonPath.ArraySliceFilter+<ExecuteFilter>d__12:MoveNext():ubyte:this (FullOpts)
          -8 (-0.23 % of base) : 215760.dasm - R2RTest.BuildFolderSet:WriteCombinedLog(System.String):this (FullOpts)
          -8 (-0.16 % of base) : 215756.dasm - R2RTest.BuildFolderSet:WriteExecutableSizeStatistics(System.IO.StreamWriter):this (FullOpts)
          -8 (-1.33 % of base) : 25169.dasm - System.Numerics.Matrix4x4:CreatePerspectiveFieldOfView(float,float,float,float):System.Numerics.Matrix4x4 (FullOpts)
          -8 (-1.32 % of base) : 25170.dasm - System.Numerics.Matrix4x4:CreatePerspectiveFieldOfViewLeftHanded(float,float,float,float):System.Numerics.Matrix4x4 (FullOpts)
          -8 (-0.47 % of base) : 152338.dasm - System.Text.Json.Utf8JsonReader:ConsumeNextTokenFromLastNonCommentToken():ubyte:this (FullOpts)
          -8 (-0.94 % of base) : 151529.dasm - System.Text.Json.Utf8JsonReader:ReadSingleSegment():ubyte:this (FullOpts)
          -8 (-1.32 % of base) : 152435.dasm - System.Text.Json.Utf8JsonReader:SkipAllComments(byref):ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 143071.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 178201.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 208974.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 143076.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 178206.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)

Top method regressions (percentages):
         660 (750.00 % of base) : 192302.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
         144 (22.64 % of base) : 86082.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
          32 (14.55 % of base) : 124594.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          28 (12.96 % of base) : 73624.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
          28 (10.94 % of base) : 45732.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          20 (9.43 % of base) : 124429.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
          36 (8.91 % of base) : 72333.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          16 (7.55 % of base) : 124519.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
          20 (7.04 % of base) : 88849.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
          16 (5.80 % of base) : 207104.dasm - System.Data.Odbc.OdbcHandle:ReleaseHandle():ubyte:this (FullOpts)
         112 (5.57 % of base) : 81503.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          12 (5.45 % of base) : 130683.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:IsMemberPublic(System.Reflection.MemberInfo):ubyte (FullOpts)
          12 (4.55 % of base) : 229299.dasm - Microsoft.Diagnostics.Tools.RuntimeClient.EventPipeClient:StopTracing(int,ulong):ulong (FullOpts)
           4 (4.35 % of base) : 152481.dasm - System.Text.Json.Utf8JsonReader:ThrowOnDangerousLineSeparator(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
          16 (4.26 % of base) : 69041.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
          16 (4.17 % of base) : 102568.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SingleLineLambdaContext:ProcessStatementTerminator(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext:this (FullOpts)
          12 (4.11 % of base) : 214556.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
          20 (3.79 % of base) : 52172.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetCorrespondingBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):int (FullOpts)
           8 (3.77 % of base) : 124575.dasm - System.Net.Mail.StartTlsCommand:CheckResponse(int,System.String) (FullOpts)
          24 (3.66 % of base) : 221826.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)

Top method improvements (percentages):
          -4 (-3.33 % of base) : 207141.dasm - System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
          -4 (-2.04 % of base) : 43097.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 43102.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.96 % of base) : 42588.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.89 % of base) : 34137.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.85 % of base) : 34444.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.85 % of base) : 34460.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -48 (-1.80 % of base) : 43026.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (FullOpts)
          -4 (-1.67 % of base) : 34426.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.59 % of base) : 44859.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:IsReceiverRefReadOnly(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
          -4 (-1.54 % of base) : 143071.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 178201.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 208974.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 143076.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 178206.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 208979.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 142301.dasm - Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 177445.dasm - Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.47 % of base) : 211510.dasm - System.Collections.Generic.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.47 % of base) : 211515.dasm - System.Collections.Generic.SegmentedDictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)


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: 79954588 (overridden on cmd)
Total bytes of diff: 79955476 (overridden on cmd)
Total bytes of delta: 888 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         660 : 231766.dasm (687.50 % of base)
         108 : 104079.dasm (2.27 % of base)
          72 : 69883.dasm (4.48 % of base)
          64 : 239730.dasm (4.29 % of base)
          64 : 259567.dasm (4.29 % of base)
          44 : 25453.dasm (7.14 % of base)
          44 : 25454.dasm (7.14 % of base)
          44 : 25455.dasm (7.14 % of base)
          40 : 119061.dasm (0.40 % of base)
          40 : 180700.dasm (2.48 % of base)
          36 : 107611.dasm (8.57 % of base)
          36 : 301904.dasm (8.41 % of base)
          32 : 119240.dasm (0.63 % of base)
          32 : 289236.dasm (15.38 % of base)
          28 : 36232.dasm (2.30 % of base)
          28 : 76504.dasm (5.88 % of base)
          24 : 228456.dasm (2.29 % of base)
          24 : 262396.dasm (2.03 % of base)
          24 : 243120.dasm (2.33 % of base)
          24 : 234212.dasm (2.35 % of base)

Top file improvements (bytes):
         -44 : 233669.dasm (-0.16 % of base)
         -32 : 159220.dasm (-1.91 % of base)
         -20 : 182283.dasm (-0.33 % of base)
         -16 : 114299.dasm (-3.10 % of base)
         -16 : 177077.dasm (-0.81 % of base)
         -16 : 179969.dasm (-10.81 % of base)
         -12 : 112399.dasm (-0.11 % of base)
         -12 : 179105.dasm (-0.32 % of base)
         -12 : 199954.dasm (-1.08 % of base)
         -12 : 179982.dasm (-4.62 % of base)
         -12 : 179498.dasm (-1.90 % of base)
         -12 : 281379.dasm (-3.33 % of base)
         -12 : 288639.dasm (-0.64 % of base)
         -12 : 301891.dasm (-0.99 % of base)
         -12 : 301892.dasm (-1.07 % of base)
         -12 : 301924.dasm (-1.32 % of base)
         -12 : 301925.dasm (-1.47 % of base)
         -12 : 32395.dasm (-2.14 % of base)
          -8 : 1501.dasm (-0.68 % of base)
          -8 : 3905.dasm (-9.09 % of base)

68 total files with Code Size differences (34 improved, 34 regressed), 20 unchanged.

Top method regressions (bytes):
         660 (687.50 % of base) : 231766.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
         108 (2.27 % of base) : 104079.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
          72 (4.48 % of base) : 69883.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          64 (4.29 % of base) : 239730.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeDecimalConstantValue():Microsoft.CodeAnalysis.ConstantValue:this (FullOpts)
          64 (4.29 % of base) : 259567.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeDecimalConstantValue():Microsoft.CodeAnalysis.ConstantValue:this (FullOpts)
          44 (7.14 % of base) : 25455.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
          44 (7.14 % of base) : 25454.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
          44 (7.14 % of base) : 25453.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
          40 (0.40 % of base) : 119061.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMethodSymbol:DecodeWellKnownAttributeAppliedToMethod(byref):this (FullOpts)
          40 (2.48 % of base) : 180700.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
          36 (8.57 % of base) : 107611.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          36 (8.41 % of base) : 301904.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,System.Nullable`1[int]],int):this (FullOpts)
          32 (0.63 % of base) : 119240.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceNamedTypeSymbol:AddGroupClassMembersIfNeeded(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol+MembersAndInitializersBuilder,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
          32 (15.38 % of base) : 289236.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          28 (5.88 % of base) : 76504.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          28 (2.30 % of base) : 36232.dasm - Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData:PayloadString(int,System.IFormatProvider):System.String:this (FullOpts)
          24 (2.03 % of base) : 262396.dasm - Microsoft.CodeAnalysis.Diagnostics.AsyncQueue`1[System.__Canon]:CompleteCore():ubyte:this (FullOpts)
          24 (2.33 % of base) : 243120.dasm - Microsoft.CodeAnalysis.Diagnostics.SuppressMessageAttributeState:TryDecodeSuppressMessageAttributeData(Microsoft.CodeAnalysis.AttributeData,byref):ubyte (FullOpts)
          24 (2.35 % of base) : 234212.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
          24 (2.29 % of base) : 228456.dasm - System.Xml.Xsl.Runtime.DodSequenceMerge:MergeSequences():System.Collections.Generic.IList`1[System.Xml.XPath.XPathNavigator]:this (FullOpts)

Top method improvements (bytes):
         -44 (-0.16 % of base) : 233669.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         -32 (-1.91 % of base) : 159220.dasm - System.ComponentModel.ReflectTypeDescriptionProvider+ReflectedTypeData:GetEditor(System.Object,System.Type):System.Object:this (FullOpts)
         -20 (-0.33 % of base) : 182283.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts)
         -16 (-3.10 % of base) : 114299.dasm - Microsoft.CodeAnalysis.VisualBasic.DefinitelyAssignedWalker:ProcessState(System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState,System.Nullable`1[Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState]):this (FullOpts)
         -16 (-0.81 % of base) : 177077.dasm - Newtonsoft.Json.Linq.JsonPath.ArraySliceFilter+<ExecuteFilter>d__12:MoveNext():ubyte:this (FullOpts)
         -16 (-10.81 % of base) : 179969.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
         -12 (-2.14 % of base) : 32395.dasm - System.Collections.Concurrent.ConcurrentQueue`1[ubyte]:CopyTo(ubyte[],int):this (FullOpts)
         -12 (-1.07 % of base) : 301892.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.__Canon],System.Nullable`1[int]):this (FullOpts)
         -12 (-0.99 % of base) : 301891.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.Nullable`1[int]]]):this (FullOpts)
         -12 (-1.32 % of base) : 301924.dasm - System.Collections.Generic.PriorityQueue`2[ubyte,System.Nullable`1[int]]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[ubyte,System.Nullable`1[int]]]):this (FullOpts)
         -12 (-1.47 % of base) : 301925.dasm - System.Collections.Generic.PriorityQueue`2[ubyte,System.Nullable`1[int]]:EnqueueRange(System.Collections.Generic.IEnumerable`1[ubyte],System.Nullable`1[int]):this (FullOpts)
         -12 (-3.33 % of base) : 281379.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
         -12 (-0.11 % of base) : 112399.dasm - System.Configuration.ConfigurationElement:DeserializeElement(System.Xml.XmlReader,ubyte):this (FullOpts)
         -12 (-0.64 % of base) : 288639.dasm - System.IO.Pipes.PipeStream+<WriteAsyncCore>d__83:MoveNext():this (FullOpts)
         -12 (-1.08 % of base) : 199954.dasm - System.Linq.Expressions.Compiler.CompilerScope:EmitVariableAccess(System.Linq.Expressions.Compiler.LambdaCompiler,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.ParameterExpression]):this (FullOpts)
         -12 (-1.90 % of base) : 179498.dasm - System.Net.Http.Headers.HeaderUtilities:SetQuality(System.Net.Http.Headers.UnvalidatedObjectCollection`1[System.Net.Http.Headers.NameValueHeaderValue],System.Nullable`1[double]) (FullOpts)
         -12 (-4.62 % of base) : 179982.dasm - System.Net.Http.Headers.StringWithQualityHeaderValue:.ctor(System.String,double):this (FullOpts)
         -12 (-0.32 % of base) : 179105.dasm - System.Net.Http.SocksHelper+<EstablishSocks4TunnelAsync>d__15:MoveNext():this (FullOpts)
          -8 (-9.09 % of base) : 3905.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[double](double,double,System.String) (FullOpts)
          -8 (-0.68 % of base) : 1501.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this (FullOpts)

Top method regressions (percentages):
         660 (687.50 % of base) : 231766.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
          32 (15.38 % of base) : 289236.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          12 (13.64 % of base) : 9153.dasm - System.SpanHelpers:LastIndexOfAnyInRange[int](byref,int,int,int):int (FullOpts)
          12 (13.64 % of base) : 9155.dasm - System.SpanHelpers:LastIndexOfAnyInRange[long](byref,long,long,int):int (FullOpts)
          12 (13.04 % of base) : 212667.dasm - System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
           4 (12.50 % of base) : 282194.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
          12 (12.50 % of base) : 212666.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Net.Sockets.UdpReceiveResult):ubyte:this (FullOpts)
          12 (12.50 % of base) : 9141.dasm - System.SpanHelpers:IndexOfAnyInRange[int](byref,int,int,int):int (FullOpts)
          12 (12.50 % of base) : 9143.dasm - System.SpanHelpers:IndexOfAnyInRange[long](byref,long,long,int):int (FullOpts)
          12 (10.71 % of base) : 212668.dasm - System.Net.Sockets.UdpReceiveResult:op_Inequality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
          20 (10.00 % of base) : 289255.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
          12 (8.82 % of base) : 212665.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Object):ubyte:this (FullOpts)
          36 (8.57 % of base) : 107611.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          36 (8.41 % of base) : 301904.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,System.Nullable`1[int]],int):this (FullOpts)
          16 (8.00 % of base) : 289232.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
          44 (7.14 % of base) : 25455.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
          44 (7.14 % of base) : 25454.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
          44 (7.14 % of base) : 25453.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
          20 (6.85 % of base) : 245959.dasm - Microsoft.CodeAnalysis.Collections.CachingDictionary`2[System.__Canon,System.Nullable`1[int]]:EnsureFullyPopulated():System.Collections.Generic.IDictionary`2[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.Nullable`1[int]]]:this (FullOpts)
          20 (6.85 % of base) : 265495.dasm - Microsoft.CodeAnalysis.Collections.CachingDictionary`2[System.__Canon,System.Nullable`1[int]]:EnsureFullyPopulated():System.Collections.Generic.IDictionary`2[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.Nullable`1[int]]]:this (FullOpts)

Top method improvements (percentages):
         -16 (-10.81 % of base) : 179969.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
          -8 (-9.09 % of base) : 3905.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[double](double,double,System.String) (FullOpts)
         -12 (-4.62 % of base) : 179982.dasm - System.Net.Http.Headers.StringWithQualityHeaderValue:.ctor(System.String,double):this (FullOpts)
          -4 (-4.17 % of base) : 202900.dasm - System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
         -12 (-3.33 % of base) : 281379.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
         -16 (-3.10 % of base) : 114299.dasm - Microsoft.CodeAnalysis.VisualBasic.DefinitelyAssignedWalker:ProcessState(System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState,System.Nullable`1[Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState]):this (FullOpts)
          -4 (-2.27 % of base) : 14777.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 14790.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 14776.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 14778.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 14779.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 14788.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 14789.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 14791.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
         -12 (-2.14 % of base) : 32395.dasm - System.Collections.Concurrent.ConcurrentQueue`1[ubyte]:CopyTo(ubyte[],int):this (FullOpts)
          -4 (-2.08 % of base) : 33023.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[ubyte,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.08 % of base) : 33057.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.08 % of base) : 33062.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[ubyte,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.08 % of base) : 33241.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.08 % of base) : 33246.dasm - System.Collections.Generic.HashSet`1+Enumerator[ubyte]:MoveNext():ubyte:this (FullOpts)


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: 312735908 (overridden on cmd)
Total bytes of diff: 312903640 (overridden on cmd)
Total bytes of delta: 167732 (0.05 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1244 : 88836.dasm (6.52 % of base)
        1200 : 54107.dasm (6.39 % of base)
         968 : 463182.dasm (17.01 % of base)
         952 : 587545.dasm (6.67 % of base)
         900 : 595994.dasm (5.69 % of base)
         672 : 405994.dasm (4.53 % of base)
         640 : 406055.dasm (4.32 % of base)
         592 : 406058.dasm (4.86 % of base)
         576 : 406062.dasm (4.87 % of base)
         560 : 406031.dasm (3.39 % of base)
         552 : 406009.dasm (3.15 % of base)
         532 : 587594.dasm (7.58 % of base)
         528 : 63607.dasm (4.47 % of base)
         504 : 338246.dasm (7.89 % of base)
         504 : 567940.dasm (7.91 % of base)
         504 : 160959.dasm (12.44 % of base)
         504 : 538973.dasm (7.89 % of base)
         500 : 363530.dasm (7.84 % of base)
         480 : 500311.dasm (7.48 % of base)
         476 : 238649.dasm (7.42 % of base)

Top file improvements (bytes):
        -396 : 379995.dasm (-3.11 % of base)
        -276 : 159516.dasm (-2.92 % of base)
        -248 : 537769.dasm (-1.38 % of base)
        -240 : 88507.dasm (-2.75 % of base)
        -220 : 601419.dasm (-1.85 % of base)
        -208 : 593515.dasm (-2.22 % of base)
        -180 : 67452.dasm (-1.18 % of base)
        -168 : 203529.dasm (-2.11 % of base)
        -164 : 238187.dasm (-2.06 % of base)
        -164 : 470495.dasm (-2.06 % of base)
        -164 : 484171.dasm (-2.06 % of base)
        -164 : 83596.dasm (-2.06 % of base)
        -164 : 182485.dasm (-2.06 % of base)
        -164 : 330525.dasm (-1.94 % of base)
        -164 : 344859.dasm (-2.06 % of base)
        -164 : 121322.dasm (-2.06 % of base)
        -164 : 335693.dasm (-1.94 % of base)
        -164 : 370879.dasm (-2.06 % of base)
        -164 : 429946.dasm (-2.06 % of base)
        -164 : 47830.dasm (-2.06 % of base)

94 total files with Code Size differences (52 improved, 42 regressed), 20 unchanged.

Top method regressions (bytes):
        1244 (6.52 % of base) : 88836.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
        1200 (6.39 % of base) : 54107.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
         968 (17.01 % of base) : 463182.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         952 (6.67 % of base) : 587545.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
         900 (5.69 % of base) : 595994.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
         672 (4.53 % of base) : 405994.dasm - System.Xml.Tests.TCXMLIntegrityBase:AddChildren():this (Tier1)
         640 (4.32 % of base) : 406055.dasm - System.Xml.Tests.TCReadValue:AddChildren():this (Tier1)
         592 (4.86 % of base) : 406058.dasm - System.Xml.Tests.TCReadElementContentAsBase64:AddChildren():this (Tier1)
         576 (4.87 % of base) : 406062.dasm - System.Xml.Tests.TCReadElementContentAsBinHex:AddChildren():this (Tier1)
         560 (3.39 % of base) : 406031.dasm - System.Xml.Tests.TCRead2:AddChildren():this (Tier1)
         552 (3.15 % of base) : 406009.dasm - System.Xml.Tests.TCInvalidXML:AddChildren():this (Tier1)
         532 (7.58 % of base) : 587594.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
         528 (4.47 % of base) : 63607.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckValidNullableMethodOverride[System.ValueTuple`2[System.__Canon,ubyte]](Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Symbols.ReportMismatchInReturnType`1[System.ValueTuple`2[System.__Canon,ubyte]],Microsoft.CodeAnalysis.CSharp.Symbols.ReportMismatchInParameterType`1[System.ValueTuple`2[System.__Canon,ubyte]],System.ValueTuple`2[System.__Canon,ubyte],ubyte):ubyte (Tier1)
         504 (12.44 % of base) : 160959.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:GetAttributesToBind(Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeListSyntax]],short,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Func`2[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,ubyte],Microsoft.CodeAnalysis.CSharp.Binder,byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax]:this (Tier1)
         504 (7.89 % of base) : 338246.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         504 (7.91 % of base) : 567940.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         504 (7.89 % of base) : 538973.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         500 (7.84 % of base) : 363530.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         480 (7.48 % of base) : 500311.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         476 (7.42 % of base) : 238649.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)

Top method improvements (bytes):
        -396 (-3.11 % of base) : 379995.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -276 (-2.92 % of base) : 159516.dasm - System.Reflection.PortableExecutable.PEHeader:.ctor(byref):this (Tier1)
        -248 (-1.38 % of base) : 537769.dasm - System.Text.Json.SourceGeneration.Tests.NumberHandlingTests_Default+NumberHandlingTestsContext_Default:global::System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver.GetTypeInfo(System.Type,System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonTypeInfo:this (Tier1)
        -240 (-2.75 % of base) : 88507.dasm - System.Reflection.PortableExecutable.PEHeader:.ctor(byref):this (Tier1)
        -220 (-1.85 % of base) : 601419.dasm - Microsoft.CodeAnalysis.CSharp.BestTypeInferrer:GetBestType(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.ConversionsBase,byref):Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol (Tier1)
        -208 (-2.22 % of base) : 593515.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:ValidateAttributeUsageAndDecodeWellKnownAttributes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Binder],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,short):Microsoft.CodeAnalysis.WellKnownAttributeData:this (Tier1)
        -180 (-1.18 % of base) : 67452.dasm - Microsoft.CodeAnalysis.CSharp.BuiltInOperators:GetSimpleBuiltInOperators(int,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature],ubyte):this (Tier1)
        -168 (-2.11 % of base) : 203529.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -164 (-2.06 % of base) : 238187.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -164 (-2.06 % of base) : 470495.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -164 (-2.06 % of base) : 484171.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -164 (-2.06 % of base) : 83596.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -164 (-2.06 % of base) : 182485.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -164 (-1.94 % of base) : 330525.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -164 (-2.06 % of base) : 344859.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -164 (-2.06 % of base) : 121322.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -164 (-1.94 % of base) : 335693.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -164 (-2.06 % of base) : 370879.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -164 (-2.06 % of base) : 429946.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -164 (-2.06 % of base) : 47830.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)

Top method regressions (percentages):
          20 (27.78 % of base) : 162476.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
          20 (27.78 % of base) : 91384.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
          20 (27.78 % of base) : 60584.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
          24 (25.00 % of base) : 50575.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon]):this (Tier1)
          12 (25.00 % of base) : 396120.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
         112 (21.37 % of base) : 83037.dasm - System.IO.FileStatus:IsModeReadOnlyCore():ubyte:this (Instrumented Tier1)
          16 (21.05 % of base) : 51935.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
          20 (20.83 % of base) : 49038.dasm - System.Collections.Immutable.ImmutableExtensions+FallbackWrapper`1[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
          20 (20.83 % of base) : 49524.dasm - System.Collections.Immutable.ImmutableExtensions+ListOfTWrapper`1[System.ValueTuple`3[int,int,System.__Canon]]:.ctor(System.Collections.Generic.IList`1[System.ValueTuple`3[int,int,System.__Canon]]):this (Tier1)
          20 (20.83 % of base) : 539924.dasm - System.Collections.Immutable.ImmutableStack`1+EnumeratorObject[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableStack`1[System.__Canon]):this (Tier1)
          20 (20.83 % of base) : 49587.dasm - System.Collections.Immutable.SecurePooledObject`1[System.__Canon]:.ctor(System.__Canon):this (Tier1)
          24 (20.69 % of base) : 50544.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],System.Func`2[System.Threading.CancellationToken,System.__Canon]):this (Tier1)
          24 (20.00 % of base) : 608941.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNativeIntegerOverflowingUnaryOperator(int,Microsoft.CodeAnalysis.ConstantValue):System.Object (Tier1)
          32 (18.60 % of base) : 49526.dasm - System.Collections.Immutable.ImmutableList`1+Builder[System.ValueTuple`3[int,int,System.__Canon]]:.ctor(System.Collections.Immutable.ImmutableList`1[System.ValueTuple`3[int,int,System.__Canon]]):this (Tier1)
          20 (18.52 % of base) : 48656.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:this (Tier1)
          20 (18.52 % of base) : 48712.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
          20 (17.86 % of base) : 55214.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
          20 (17.86 % of base) : 50675.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):System.Collections.Immutable.ImmutableSortedDictionary`2[System.__Canon,System.__Canon]:this (Tier1)
          20 (17.86 % of base) : 51259.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2[System.__Canon,System.__Canon]:TryGetValue(System.__Canon,byref):ubyte:this (Tier1)
          20 (17.24 % of base) : 48565.dasm - System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.__Canon]]:SetItem(int,System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.__Canon]],byref,byref):System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.__Canon]]:this (Tier1)

Top method improvements (percentages):
          -8 (-12.50 % of base) : 384872.dasm - System.Xml.XmlTextReaderImpl:GetResolver():System.Xml.XmlResolver:this (Tier1)
          -8 (-10.53 % of base) : 622025.dasm - System.Threading.Tasks.Dataflow.Internal.TargetCore`1[int]:get_CanceledOrFaulted():ubyte:this (Tier1)
          -8 (-10.00 % of base) : 56995.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:get_SourcePartialImplementation():Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:this (Tier1)
         -40 (-9.62 % of base) : 164529.dasm - System.TimeZoneInfo:CompareAdjustmentRuleToDateTime(System.TimeZoneInfo+AdjustmentRule,System.TimeZoneInfo+AdjustmentRule,System.DateTime,System.DateTime,ubyte):int:this (Tier1)
         -12 (-9.09 % of base) : 636576.dasm - System.Xml.Linq.XNodeEqualityComparer:Equals(System.Xml.Linq.XNode,System.Xml.Linq.XNode):ubyte:this (Tier1)
         -16 (-8.89 % of base) : 58744.dasm - Roslyn.Utilities.FileNameUtilities:IndexOfFileName(System.String):int (Tier1)
         -16 (-8.89 % of base) : 596704.dasm - Roslyn.Utilities.FileNameUtilities:IndexOfFileName(System.String):int (Tier1)
         -16 (-8.89 % of base) : 90370.dasm - Roslyn.Utilities.FileNameUtilities:IndexOfFileName(System.String):int (Tier1)
         -12 (-8.82 % of base) : 161418.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (Tier1)
          -8 (-8.70 % of base) : 474796.dasm - Microsoft.Win32.SafeHandles.SafePasswordHandle:DangerousGetSpan():System.ReadOnlySpan`1[ushort]:this (Tier1)
         -40 (-8.70 % of base) : 360914.dasm - System.Numerics.Tensors.TensorPrimitives:InvokeSpanSpanSpanIntoSpan[byte,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[byte]](System.ReadOnlySpan`1[byte],System.ReadOnlySpan`1[byte],System.ReadOnlySpan`1[byte],System.Span`1[byte]) (Tier1)
         -40 (-8.62 % of base) : 364896.dasm - System.Numerics.Tensors.TensorPrimitives:InvokeSpanSpanSpanIntoSpan[ubyte,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[ubyte]](System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]) (Tier1)
         -40 (-8.62 % of base) : 360998.dasm - System.Numerics.Tensors.TensorPrimitives:InvokeSpanSpanSpanIntoSpan[ushort,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[ushort]](System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.Span`1[ushort]) (Tier1)
         -40 (-8.62 % of base) : 365027.dasm - System.Numerics.Tensors.TensorPrimitives:InvokeSpanSpanSpanIntoSpan[ushort,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[ushort]](System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.Span`1[ushort]) (Tier1)
         -40 (-8.55 % of base) : 361243.dasm - System.Numerics.Tensors.TensorPrimitives:InvokeSpanSpanSpanIntoSpan[ushort,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[ushort]](System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.Span`1[ushort]) (Tier1)
          -4 (-8.33 % of base) : 599723.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeFlowAnalysisAttributes(Microsoft.CodeAnalysis.CSharp.Symbols.MethodWellKnownAttributeData):int (Tier1)
          -4 (-8.33 % of base) : 65929.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeFlowAnalysisAttributes(Microsoft.CodeAnalysis.CSharp.Symbols.MethodWellKnownAttributeData):int (Tier1)
          -4 (-8.33 % of base) : 92086.dasm - Microsoft.Interop.ManualTypeMarshallingHelper:ModeOptionallyMatchesShape(int):ubyte (Tier1)
          -4 (-8.33 % of base) : 64545.dasm - Microsoft.Interop.ManualTypeMarshallingHelper:ModeOptionallyMatchesShape(int):ubyte (Tier1)
         -28 (-8.14 % of base) : 336038.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (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: 160786940 (overridden on cmd)
Total bytes of diff: 160911080 (overridden on cmd)
Total bytes of delta: 124140 (0.08 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         384 : 54280.dasm (2.87 % of base)
         136 : 201730.dasm (3.67 % of base)
         128 : 19159.dasm (2.92 % of base)
         120 : 252758.dasm (1.04 % of base)
         116 : 203616.dasm (3.55 % of base)
         116 : 254038.dasm (2.47 % of base)
         112 : 202431.dasm (3.26 % of base)
         112 : 208216.dasm (3.20 % of base)
         112 : 197880.dasm (3.37 % of base)
         112 : 200279.dasm (3.26 % of base)
         108 : 237055.dasm (1.67 % of base)
         108 : 237122.dasm (1.66 % of base)
         108 : 255513.dasm (1.67 % of base)
         108 : 262576.dasm (1.66 % of base)
         108 : 301119.dasm (3.22 % of base)
         104 : 257158.dasm (3.00 % of base)
         104 : 36521.dasm (14.36 % of base)
         104 : 237138.dasm (3.00 % of base)
         100 : 263716.dasm (1.07 % of base)
         100 : 247716.dasm (1.07 % of base)

Top file improvements (bytes):
        -132 : 297391.dasm (-2.56 % of base)
        -116 : 195852.dasm (-3.15 % of base)
         -92 : 258631.dasm (-1.00 % of base)
         -92 : 257068.dasm (-1.00 % of base)
         -84 : 206008.dasm (-2.88 % of base)
         -72 : 277162.dasm (-1.80 % of base)
         -68 : 215601.dasm (-1.16 % of base)
         -64 : 150831.dasm (-0.71 % of base)
         -60 : 31744.dasm (-0.45 % of base)
         -60 : 192413.dasm (-0.89 % of base)
         -60 : 192863.dasm (-0.89 % of base)
         -52 : 138981.dasm (-1.36 % of base)
         -52 : 92000.dasm (-1.04 % of base)
         -48 : 114450.dasm (-0.96 % of base)
         -48 : 300815.dasm (-10.43 % of base)
         -48 : 153395.dasm (-0.93 % of base)
         -48 : 153877.dasm (-1.86 % of base)
         -48 : 177082.dasm (-4.46 % of base)
         -48 : 85226.dasm (-10.26 % of base)
         -44 : 196693.dasm (-1.34 % of base)

83 total files with Code Size differences (39 improved, 44 regressed), 20 unchanged.

Top method regressions (bytes):
         384 (2.87 % of base) : 54280.dasm - Microsoft.Gen.OptionsValidation.Unit.Test.OptionsUsingGeneratedAttributesValidator:Validate(System.String,Microsoft.Gen.OptionsValidation.Unit.Test.OptionsUsingGeneratedAttributes):Microsoft.Extensions.Options.ValidateOptionsResult:this (FullOpts)
         136 (3.67 % of base) : 201730.dasm - System.Tests.TimeZoneInfoTests:ConvertTime_DateTime_LocalToLocal() (FullOpts)
         128 (2.92 % of base) : 19159.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
         120 (1.04 % of base) : 252758.dasm - System.Text.Json.Serialization.Tests.SerializerTests+<TestMultiContextSerialization>d__8`1[System.__Canon]:MoveNext():this (FullOpts)
         116 (3.55 % of base) : 203616.dasm - System.Tests.TimeZoneInfoTests:GetAmbiguousTimeOffsets_LocalAmbiguousOffsets() (FullOpts)
         116 (2.47 % of base) : 254038.dasm - System.Text.Json.Serialization.Tests.ReadValueTests:ReadClasses() (FullOpts)
         112 (3.26 % of base) : 200279.dasm - System.Tests.UInt64Tests:Parse_Valid(System.String,int,System.IFormatProvider,ulong) (FullOpts)
         112 (3.20 % of base) : 208216.dasm - System.Tests.UInt64Tests_GenericMath:ParseValidStringTest(System.String,int,System.IFormatProvider,ulong) (FullOpts)
         112 (3.37 % of base) : 197880.dasm - System.Tests.UIntPtrTests:Parse_Valid(System.String,int,System.IFormatProvider,ulong) (FullOpts)
         112 (3.26 % of base) : 202431.dasm - System.Tests.UIntPtrTests_GenericMath:ParseValidStringTest(System.String,int,System.IFormatProvider,ulong) (FullOpts)
         108 (1.66 % of base) : 237122.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<Number_AsCollectionElement_RoundTrip>d__22:MoveNext():this (FullOpts)
         108 (1.66 % of base) : 262576.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<Number_AsCollectionElement_RoundTrip>d__22:MoveNext():this (FullOpts)
         108 (1.67 % of base) : 237055.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<Number_AsRootType_RoundTrip>d__7:MoveNext():this (FullOpts)
         108 (1.67 % of base) : 255513.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<Number_AsRootType_RoundTrip>d__7:MoveNext():this (FullOpts)
         108 (3.22 % of base) : 301119.dasm - System.Xml.XmlWellFormedWriter+AttributeValueCache+<ReplayAsync>d__24:MoveNext():this (FullOpts)
         104 (14.36 % of base) : 36521.dasm - Interop+Sys:AllocNullTerminatedArray(System.String[],byref) (FullOpts)
         104 (3.00 % of base) : 237138.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<ReadPrimitiveImmutableHashSetT>d__310:MoveNext():this (FullOpts)
         104 (3.00 % of base) : 257158.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<ReadPrimitiveImmutableHashSetT>d__349:MoveNext():this (FullOpts)
         100 (1.07 % of base) : 263716.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<Disallow_ArbritaryStrings_On_AllowFloatingPointConstants>d__60:MoveNext():this (FullOpts)
         100 (1.07 % of base) : 247716.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<Disallow_ArbritaryStrings_On_AllowFloatingPointConstants>d__60:MoveNext():this (FullOpts)

Top method improvements (bytes):
        -132 (-2.56 % of base) : 297391.dasm - System.Threading.Tasks.Tests.TaskRtTests_Core:RunTaskCompletionSourceTests_SetException() (FullOpts)
        -116 (-3.15 % of base) : 195852.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
         -92 (-1.00 % of base) : 257068.dasm - System.Text.Json.Serialization.Tests.SimpleTestClass:Initialize():this (FullOpts)
         -92 (-1.00 % of base) : 258631.dasm - System.Text.Json.Serialization.Tests.SimpleTestClassWithFields:Initialize():this (FullOpts)
         -84 (-2.88 % of base) : 206008.dasm - HandleTests:RuntimeMethodHandleTest() (FullOpts)
         -72 (-1.80 % of base) : 277162.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5670_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -68 (-1.16 % of base) : 215601.dasm - System.Security.Cryptography.Pkcs.Pkcs12SafeContents:ReadBags(System.ReadOnlyMemory`1[ubyte]):System.Collections.Generic.List`1[System.Security.Cryptography.Pkcs.Pkcs12SafeBag] (FullOpts)
         -64 (-0.71 % of base) : 150831.dasm - System.Net.Primitives.Functional.Tests.IPEndPointParsing:Parse_InvalidPort_Throws(System.String,ubyte):this (FullOpts)
         -60 (-0.89 % of base) : 192413.dasm - DataContractJsonSerializerTests:DCJS_VerifyDateTimeForFormatStringDCJsonSerSettings() (FullOpts)
         -60 (-0.89 % of base) : 192863.dasm - DataContractJsonSerializerTests:DCJS_VerifyDateTimeForFormatStringDCJsonSerSettings() (FullOpts)
         -60 (-0.45 % of base) : 31744.dasm - Microsoft.Extensions.Configuration.Binder.Tests.ConfigurationBinderCollectionTests:TestOptionsWithDifferentCollectionInterfaces():this (FullOpts)
         -52 (-1.36 % of base) : 138981.dasm - System.Linq.Tests.TakeTests:MutableSourceNotList():this (FullOpts)
         -52 (-1.04 % of base) : 92000.dasm - System.Xml.Schema.XmlSchemaInference:FindMatchingElement(ubyte,System.Xml.XmlReader,System.Xml.Schema.XmlSchemaComplexType,byref,System.Xml.Schema.XmlSchema,ubyte):System.Xml.Schema.XmlSchemaElement:this (FullOpts)
         -48 (-10.26 % of base) : 85226.dasm - System.ComponentModel.LookupBindingPropertiesAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -48 (-0.96 % of base) : 114450.dasm - System.Formats.Asn1.AsnWriter:WriteGeneralizedTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset,ubyte):this (FullOpts)
         -48 (-1.86 % of base) : 153877.dasm - System.Net.Security.EndpointChannelBindingToken:GetHashForChannelBinding(System.Security.Cryptography.X509Certificates.X509Certificate2):ubyte[] (FullOpts)
         -48 (-4.46 % of base) : 177082.dasm - System.Reflection.Emit.MethodBuilderImpl:SetCustomAttributeCore(System.Reflection.ConstructorInfo,System.ReadOnlySpan`1[ubyte]):this (FullOpts)
         -48 (-0.93 % of base) : 153395.dasm - System.Security.Cryptography.Asn1.AsnWriter:WriteGeneralizedTimeCore(System.Security.Cryptography.Asn1.Asn1Tag,System.DateTimeOffset,ubyte):this (FullOpts)
         -48 (-10.43 % of base) : 300815.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)
         -44 (-1.34 % of base) : 196693.dasm - DataContractSerializerTests:DCS_TypeWithPrimitiveKnownTypes() (FullOpts)

Top method regressions (percentages):
          24 (20.69 % of base) : 43262.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          24 (20.69 % of base) : 48949.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          24 (20.69 % of base) : 5683.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          16 (19.05 % of base) : 144032.dasm - System.SpanTests.SpanTests+<>c__DisplayClass651_0:<SliceIntRangeChecksd>b__6():this (FullOpts)
          20 (15.62 % of base) : 144029.dasm - System.SpanTests.SpanTests+<>c__DisplayClass651_0:<SliceIntRangeChecksd>b__3():this (FullOpts)
          32 (15.38 % of base) : 149181.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          20 (15.15 % of base) : 144027.dasm - System.SpanTests.SpanTests+<>c__DisplayClass651_0:<SliceIntRangeChecksd>b__1():this (FullOpts)
          12 (15.00 % of base) : 144031.dasm - System.SpanTests.SpanTests+<>c__DisplayClass651_0:<SliceIntRangeChecksd>b__5():this (FullOpts)
          44 (14.67 % of base) : 18805.dasm - NativeExports.Arrays:FillRange2D(ulong,int,ulong,int):ubyte (FullOpts)
         104 (14.36 % of base) : 36521.dasm - Interop+Sys:AllocNullTerminatedArray(System.String[],byref) (FullOpts)
          44 (13.41 % of base) : 188866.dasm - System.Runtime.Loader.Tests.AssemblyLoadContextTest+CollectibleWithOneAssemblyLoadedWithStrongReferenceToInstanceTest:FreeHandle():this (FullOpts)
          44 (13.41 % of base) : 188710.dasm - System.Runtime.Loader.Tests.AssemblyLoadContextTest+CollectibleWithOneAssemblyLoadedWithStrongReferenceToTypeTest:FreeHandle():this (FullOpts)
          40 (13.33 % of base) : 75420.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,int]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,int],int):this (FullOpts)
          16 (13.33 % of base) : 204899.dasm - System.Tests.StringTests+<>c__DisplayClass26_0:<CopyTo_Span>b__0():this (FullOpts)
          28 (12.73 % of base) : 99636.dasm - System.DirectoryServices.Protocols.Tests.BerConversionExceptionTests:Ctor_Default():this (FullOpts)
          28 (12.73 % of base) : 99943.dasm - System.DirectoryServices.Protocols.Tests.DirectoryExceptionTests:Ctor_Default():this (FullOpts)
          28 (12.73 % of base) : 193272.dasm - System.Runtime.Serialization.Tests.InvalidDataContractExceptionTests:Ctor_Default():this (FullOpts)
          32 (10.96 % of base) : 142179.dasm - System.SpanTests.ReplaceTests`1+<>c__DisplayClass5_0[System.__Canon]:<ArgumentValidation_Copy>b__1():this (FullOpts)
          28 (10.94 % of base) : 126501.dasm - System.IO.Packaging.Tests.Tests:T203A_FileFormatException():this (FullOpts)
          28 (10.61 % of base) : 99528.dasm - System.DirectoryServices.Protocols.Tests.TlsOperationExceptionTests:Ctor_Default():this (FullOpts)

Top method improvements (percentages):
         -16 (-11.76 % of base) : 155689.dasm - System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
         -16 (-10.53 % of base) : 145538.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
         -48 (-10.43 % of base) : 300815.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)
         -48 (-10.26 % of base) : 85226.dasm - System.ComponentModel.LookupBindingPropertiesAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -32 (-7.92 % of base) : 177644.dasm - System.Reflection.TypeLoading.RoAssemblyName:Equals(System.Reflection.TypeLoading.RoAssemblyName):ubyte:this (FullOpts)
          -8 (-7.14 % of base) : 143735.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__0():this (FullOpts)
         -20 (-6.94 % of base) : 19478.dasm - Microsoft.CodeAnalysis.SuppressionDescriptor:Equals(Microsoft.CodeAnalysis.SuppressionDescriptor):ubyte:this (FullOpts)
          -8 (-6.90 % of base) : 143736.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__1():this (FullOpts)
         -12 (-6.82 % of base) : 70934.dasm - System.Collections.CaseInsensitiveHashCodeProvider:GetHashCode(System.Object):int:this (FullOpts)
         -20 (-6.76 % of base) : 83024.dasm - System.ComponentModel.DesignerAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -20 (-6.76 % of base) : 82824.dasm - System.ComponentModel.EditorAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -20 (-6.76 % of base) : 83132.dasm - System.ComponentModel.ProvidePropertyAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -16 (-6.56 % of base) : 211399.dasm - System.Security.Claims.ClaimsPrincipalTests+<>c:<Ctor_IIdentity_NonClaims>b__2_0(System.Security.Claims.Claim):ubyte:this (FullOpts)
          -4 (-6.25 % of base) : 143737.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__2():this (FullOpts)
          -4 (-6.25 % of base) : 143738.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__3():this (FullOpts)
          -4 (-6.25 % of base) : 144047.dasm - System.SpanTests.SpanTests+<>c__DisplayClass104_0:<CtorArrayIntIntNegativeStart>b__0():this (FullOpts)
          -4 (-6.25 % of base) : 141826.dasm - System.SpanTests.SpanTests+<>c__DisplayClass106_0:<CtorArrayIntIntNegativeLength>b__0():this (FullOpts)
          -4 (-6.25 % of base) : 144345.dasm - System.SpanTests.SpanTests+<>c__DisplayClass107_0:<CtorArrayIntIntStartAndLengthTooLarge>b__1():this (FullOpts)
          -4 (-6.25 % of base) : 144346.dasm - System.SpanTests.SpanTests+<>c__DisplayClass107_0:<CtorArrayIntIntStartAndLengthTooLarge>b__2():this (FullOpts)
          -4 (-6.25 % of base) : 144347.dasm - System.SpanTests.SpanTests+<>c__DisplayClass107_0:<CtorArrayIntIntStartAndLengthTooLarge>b__3():this (FullOpts)


realworld.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: 15071220 (overridden on cmd)
Total bytes of diff: 15072512 (overridden on cmd)
Total bytes of delta: 1292 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         224 : 4590.dasm (58.95 % of base)
         108 : 20107.dasm (2.33 % of base)
          72 : 5953.dasm (4.79 % of base)
          64 : 9388.dasm (3.16 % of base)
          48 : 11953.dasm (3.33 % of base)
          36 : 25178.dasm (8.57 % of base)
          32 : 1572.dasm (3.48 % of base)
          32 : 19841.dasm (2.07 % of base)
          28 : 11010.dasm (25.93 % of base)
          28 : 16569.dasm (0.91 % of base)
          28 : 21164.dasm (5.88 % of base)
          28 : 9887.dasm (2.24 % of base)
          28 : 11013.dasm (3.83 % of base)
          24 : 17417.dasm (0.36 % of base)
          24 : 23155.dasm (2.88 % of base)
          24 : 19536.dasm (1.52 % of base)
          24 : 1128.dasm (2.97 % of base)
          24 : 20761.dasm (2.01 % of base)
          24 : 211.dasm (3.77 % of base)
          24 : 23437.dasm (1.14 % of base)

Top file improvements (bytes):
         -12 : 3226.dasm (-1.36 % of base)
          -8 : 17708.dasm (-0.21 % of base)
          -8 : 4962.dasm (-1.14 % of base)
          -8 : 13024.dasm (-0.25 % of base)
          -4 : 101.dasm (-2.04 % of base)
          -4 : 12777.dasm (-0.29 % of base)
          -4 : 16235.dasm (-2.08 % of base)
          -4 : 4626.dasm (-2.13 % of base)
          -4 : 12868.dasm (-2.13 % of base)
          -4 : 12926.dasm (-0.31 % of base)
          -4 : 13545.dasm (-0.20 % of base)
          -4 : 19066.dasm (-0.27 % of base)
          -4 : 207.dasm (-1.96 % of base)
          -4 : 22922.dasm (-1.64 % of base)
          -4 : 22973.dasm (-1.39 % of base)
          -4 : 31212.dasm (-1.41 % of base)
          -4 : 3169.dasm (-2.04 % of base)
          -4 : 12884.dasm (-0.77 % of base)
          -4 : 11102.dasm (-0.57 % of base)
          -4 : 12830.dasm (-0.45 % of base)

56 total files with Code Size differences (27 improved, 29 regressed), 20 unchanged.

Top method regressions (bytes):
         224 (58.95 % of base) : 4590.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
         108 (2.33 % of base) : 20107.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
          72 (4.79 % of base) : 5953.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          64 (3.16 % of base) : 9388.dasm - FSharp.Compiler.ConstraintSolver:consistent@1992(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+TyparConstraint,FSharp.Compiler.TypedTree+TyparConstraint):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
          48 (3.33 % of base) : 11953.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
          36 (8.57 % of base) : 25178.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          32 (3.48 % of base) : 1572.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
          32 (2.07 % of base) : 19841.dasm - Microsoft.CodeAnalysis.MarshalAsAttributeDecoder`4[System.__Canon,System.__Canon,System.__Canon,short]:DecodeMarshalAsArray(byref,Microsoft.CodeAnalysis.CommonMessageProvider,ubyte) (FullOpts)
          28 (2.24 % of base) : 9887.dasm - FSharp.Compiler.AccessibilityLogic:IsPropInfoAccessible(FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.AccessibilityLogic+AccessorDomain,FSharp.Compiler.Infos+PropInfo):ubyte (FullOpts)
          28 (25.93 % of base) : 11010.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
          28 (3.83 % of base) : 11013.dasm - FSharp.Compiler.Infos+PropInfo:get_IsIndexer():ubyte:this (FullOpts)
          28 (0.91 % of base) : 16569.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
          28 (5.88 % of base) : 21164.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          24 (2.97 % of base) : 1128.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
          24 (1.52 % of base) : 19536.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeStructLayoutAttribute[System.__Canon,System.__Canon,System.__Canon,short](byref,int,int,Microsoft.CodeAnalysis.CommonMessageProvider) (FullOpts)
          24 (0.36 % of base) : 17417.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          24 (1.14 % of base) : 23437.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
          24 (2.01 % of base) : 20761.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData:DecodeMemberNotNullWhenAttribute[System.__Canon](Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref) (FullOpts)
          24 (3.77 % of base) : 211.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
          24 (2.88 % of base) : 23155.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:IndexOf(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],int,int,System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):int:this (FullOpts)

Top method improvements (bytes):
         -12 (-1.36 % of base) : 3226.dasm - System.Collections.Generic.Dictionary`2[Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+StructBox`1[System.__Canon],System.__Canon]:FindValue(Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+StructBox`1[System.__Canon]):byref:this (FullOpts)
          -8 (-0.21 % of base) : 17708.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:GetCustomAttribute(System.Reflection.Metadata.CustomAttributeHandle,byref,byref):ubyte:this (FullOpts)
          -8 (-0.25 % of base) : 13024.dasm - Microsoft.ML.Trainers.SdcaMulticlassTrainerBase`1[System.__Canon]:CheckConvergence(Microsoft.ML.Runtime.IProgressChannel,int,Microsoft.ML.Trainers.FloatLabelCursor+Factory,Microsoft.ML.Trainers.SdcaTrainerBase`3+DualsTableBase[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Trainers.SdcaTrainerBase`3+IdToIdxLookup[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Data.VBuffer`1[float][],Microsoft.ML.Data.VBuffer`1[float][],float[],float[],float[],float[],long,double[],byref,byref):ubyte:this (FullOpts)
          -8 (-1.14 % of base) : 4962.dasm - System.Collections.Generic.Dictionary`2[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:FindValue(FSharp.Compiler.Text.Position):byref:this (FullOpts)
          -4 (-0.88 % of base) : 7491.dasm - FSharp.Compiler.CompilerConfig:GetWarningNumber(FSharp.Compiler.Text.Range,System.String):Microsoft.FSharp.Core.FSharpOption`1[int] (FullOpts)
          -4 (-0.57 % of base) : 7454.dasm - FSharp.Compiler.Parser+_fsyacc_reductions@7366-478:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)
          -4 (-0.27 % of base) : 8661.dasm - FSharp.Compiler.PatternMatchCompilation:CompileFallThroughTree@1359(FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.TypedTreeOps+DisplayEnv,FSharp.Compiler.Import+ImportMap,Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.TypedTree+ValRef,Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.TypedTree+ValUseFlag,Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+TType],Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Text.Range,System.Tuple`2[FSharp.Compiler.TypedTree+Expr,FSharp.Compiler.TypedTree+TType]]]]],FSharp.Compiler.InfoReader+InfoReader,FSharp.Compiler.Text.Range,FSharp.Compiler.Text.Range,ubyte,FSharp.Compiler.PatternMatchCompilation+ActionOnFailure,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar],FSharp.Compiler.TypedTree+Val,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+Expr],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.TypedTreeOps+MatchBuilder,FSharp.Compiler.PatternMatchCompilation+TypedMatchClause[],int,Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.PatternMatchCompilation+SubExprOfInput,FSharp.Compiler.TypedTree+Expr],Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.PatternMatchCompilation+Pattern,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+DecisionTreeTest]],Microsoft.FSharp.Core.FSharpRef`1[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.PatternMatchCompilation+TypedMatchClause]],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.PatternMatchCompilation+Frontier],FSharp.Compiler.PatternMatchCompilation+Path,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.PatternMatchCompilation+RefutedSet],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+DecisionTreeCase]):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+DecisionTree] (FullOpts)
          -4 (-1.39 % of base) : 22973.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.64 % of base) : 22922.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:IsReceiverRefReadOnly(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
          -4 (-0.41 % of base) : 17189.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:MakeDeclaredBaseType():Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
          -4 (-0.27 % of base) : 19066.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:FindMethodSymbolInSuperType(System.Reflection.Metadata.TypeDefinitionHandle,System.Reflection.Metadata.MethodDefinitionHandle):System.__Canon:this (FullOpts)
          -4 (-0.45 % of base) : 12830.dasm - Microsoft.ML.Data.RoleMappedSchema:MapFromNames(Microsoft.ML.DataViewSchema,System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[Microsoft.ML.Data.RoleMappedSchema+ColumnRole,System.String]],ubyte):System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[Microsoft.ML.DataViewSchema+Column]] (FullOpts)
          -4 (-0.31 % of base) : 12926.dasm - Microsoft.ML.Transforms.RowShufflingTransformer+Cursor+<LoopProducerWorker>d__31:MoveNext():this (FullOpts)
          -4 (-0.29 % of base) : 12777.dasm - System.Collections.Concurrent.BlockingCollection`1[System.__Canon]:TryAddWithNoTimeValidation(System.__Canon,int,System.Threading.CancellationToken):ubyte:this (FullOpts)
          -4 (-2.13 % of base) : 12868.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.96 % of base) : 207.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 101.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.13 % of base) : 4626.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 3169.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.92 % of base) : 21997.dasm - System.Collections.Generic.HashSet`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:MoveNext():ubyte:this (FullOpts)

Top method regressions (percentages):
         224 (58.95 % of base) : 4590.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
          28 (25.93 % of base) : 11010.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
          20 (9.80 % of base) : 21297.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
          20 (8.62 % of base) : 21877.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
          36 (8.57 % of base) : 25178.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          20 (7.94 % of base) : 23159.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
          28 (5.88 % of base) : 21164.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          12 (5.08 % of base) : 26455.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
          72 (4.79 % of base) : 5953.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          20 (4.67 % of base) : 23075.dasm - Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:.ctor(Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (FullOpts)
          16 (4.17 % of base) : 18498.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
           8 (4.08 % of base) : 20237.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AttributeDataExtensions:DecodeNotNullIfNotNullAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.String (FullOpts)
          20 (3.94 % of base) : 25114.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetCorrespondingBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):int (FullOpts)
          28 (3.83 % of base) : 11013.dasm - FSharp.Compiler.Infos+PropInfo:get_IsIndexer():ubyte:this (FullOpts)
           8 (3.77 % of base) : 20229.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:DecodeMaybeNullWhenOrNotNullWhenOrDoesNotReturnIfAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.Nullable`1[ubyte] (FullOpts)
          24 (3.77 % of base) : 211.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
          32 (3.48 % of base) : 1572.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
          48 (3.33 % of base) : 11953.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
          64 (3.16 % of base) : 9388.dasm - FSharp.Compiler.ConstraintSolver:consistent@1992(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+TyparConstraint,FSharp.Compiler.TypedTree+TyparConstraint):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
          24 (2.97 % of base) : 1128.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)

Top method improvements (percentages):
          -4 (-2.13 % of base) : 12868.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.13 % of base) : 4626.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.08 % of base) : 16235.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 101.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 3169.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.96 % of base) : 207.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.92 % of base) : 21997.dasm - System.Collections.Generic.HashSet`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.64 % of base) : 22922.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:IsReceiverRefReadOnly(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
          -4 (-1.41 % of base) : 31212.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -4 (-1.39 % of base) : 22973.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -12 (-1.36 % of base) : 3226.dasm - System.Collections.Generic.Dictionary`2[Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+StructBox`1[System.__Canon],System.__Canon]:FindValue(Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+StructBox`1[System.__Canon]):byref:this (FullOpts)
          -8 (-1.14 % of base) : 4962.dasm - System.Collections.Generic.Dictionary`2[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:FindValue(FSharp.Compiler.Text.Position):byref:this (FullOpts)
          -4 (-0.88 % of base) : 7491.dasm - FSharp.Compiler.CompilerConfig:GetWarningNumber(FSharp.Compiler.Text.Range,System.String):Microsoft.FSharp.Core.FSharpOption`1[int] (FullOpts)
          -4 (-0.77 % of base) : 12884.dasm - System.Threading.ThreadLocal`1[System.__Canon]:GrowTable(byref,int) (FullOpts)
          -4 (-0.58 % of base) : 3305.dasm - System.String:Equals(System.String,int):ubyte:this (FullOpts)
          -4 (-0.57 % of base) : 11102.dasm - System.String:Equals(System.String,System.String,int):ubyte (FullOpts)
          -4 (-0.57 % of base) : 7454.dasm - FSharp.Compiler.Parser+_fsyacc_reductions@7366-478:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)
          -4 (-0.48 % of base) : 31040.dasm - System.Management.Automation.Internal.ObjectStream:RaiseEvents():this (FullOpts)
          -4 (-0.45 % of base) : 12830.dasm - Microsoft.ML.Data.RoleMappedSchema:MapFromNames(Microsoft.ML.DataViewSchema,System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[Microsoft.ML.Data.RoleMappedSchema+ColumnRole,System.String]],ubyte):System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[Microsoft.ML.DataViewSchema+Column]] (FullOpts)
          -4 (-0.41 % of base) : 17189.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:MakeDeclaredBaseType():Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)



windows arm64

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

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

Overall (+521,152 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,961,376 -140
benchmarks.run_pgo.windows.arm64.checked.mch 47,210,356 +184,268
benchmarks.run_tiered.windows.arm64.checked.mch 15,343,876 -36
coreclr_tests.run.windows.arm64.checked.mch 495,343,368 +28,728
libraries.crossgen2.windows.arm64.checked.mch 58,963,136 +1,644
libraries.pmi.windows.arm64.checked.mch 79,562,880 +31,844
libraries_tests.run.windows.arm64.Release.mch 310,370,552 +140,708
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 169,001,944 +132,408
realworld.run.windows.arm64.checked.mch 15,889,988 +1,272
smoke_tests.nativeaot.windows.arm64.checked.mch 3,972,708 +456

FullOpts (+521,152 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,960,840 -140
benchmarks.run_pgo.windows.arm64.checked.mch 30,959,972 +184,268
benchmarks.run_tiered.windows.arm64.checked.mch 4,154,500 -36
coreclr_tests.run.windows.arm64.checked.mch 156,251,840 +28,728
libraries.crossgen2.windows.arm64.checked.mch 58,961,500 +1,644
libraries.pmi.windows.arm64.checked.mch 79,442,896 +31,844
libraries_tests.run.windows.arm64.Release.mch 108,789,048 +140,708
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 155,864,480 +132,408
realworld.run.windows.arm64.checked.mch 15,321,564 +1,272
smoke_tests.nativeaot.windows.arm64.checked.mch 3,971,736 +456

Example diffs

benchmarks.run.windows.arm64.checked.mch

-12 (-3.33%) : 4619.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)

@@ -35,10 +35,10 @@ G_M17703_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             mov     w20, w1
                        ;; size=28 bbWeight=1 PerfScore 5.00
 G_M17703_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
-            tbnz    w20, #31, G_M17703_IG10
+            tbnz    w20, #31, G_M17703_IG08
             fmov    s16, #1.0000
             fcmp    s8, s16
-            blo     G_M17703_IG11
+            blo     G_M17703_IG09
                        ;; size=16 bbWeight=1 PerfScore 3.50
 G_M17703_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             fmov    s16, #1.0000
@@ -48,31 +48,24 @@ G_M17703_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
             fcmp    s8, s16
             beq     G_M17703_IG04
             fcmp    s8, s8
-            bne     G_M17703_IG11
+            bne     G_M17703_IG09
                        ;; size=32 bbWeight=0.50 PerfScore 3.50
 G_M17703_IG04:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             fmov    s16, #10.0000
             fcmp    s8, s16
-            bhs     G_M17703_IG06
+            blo     G_M17703_IG06
                        ;; size=12 bbWeight=1 PerfScore 2.50
-G_M17703_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            b       G_M17703_IG08
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M17703_IG06:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M17703_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             fmov    s16, #10.0000
             fcmp    s8, s16
-            bgt     G_M17703_IG12
+            bgt     G_M17703_IG10
             fmov    s16, #10.0000
             fcmp    s8, s16
-            bne     G_M17703_IG07
-            b       G_M17703_IG08
-                       ;; size=28 bbWeight=0.50 PerfScore 3.00
-G_M17703_IG07:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            beq     G_M17703_IG06
             fcmp    s8, s8
-            beq     G_M17703_IG12
-            b       G_M17703_IG05
-                       ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M17703_IG08:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            beq     G_M17703_IG10
+                       ;; size=32 bbWeight=0.50 PerfScore 3.50
+G_M17703_IG06:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             sxtw    x1, w20
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
@@ -93,13 +86,13 @@ G_M17703_IG08:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             fcvtzs  w0, s16
             str     w0, [x19, #0x1C]
                        ;; size=56 bbWeight=1 PerfScore 15.00
-G_M17703_IG09:        ; bbWeight=1, epilog, nogc, extend
+G_M17703_IG07:        ; bbWeight=1, epilog, nogc, extend
             ldp     x19, x20, [sp, #0x20]
             ldr     d8, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=16 bbWeight=1 PerfScore 5.00
-G_M17703_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M17703_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19]
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
@@ -119,7 +112,7 @@ G_M17703_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; gcrRegs -[x1]
             brk_windows #0
                        ;; size=52 bbWeight=0 PerfScore 0.00
-G_M17703_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M17703_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -136,7 +129,7 @@ G_M17703_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             brk_windows #0
                        ;; size=52 bbWeight=0 PerfScore 0.00
-G_M17703_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M17703_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -156,7 +149,7 @@ G_M17703_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
 RWD00      dd  42C80000h       ;       100
 
 
-; Total bytes of code 360, prolog size 16, PerfScore 39.50, instruction count 90, allocated bytes for code 360 (MethodHash=aa62bad8) for method System.Collections.Queue:.ctor(int,float):this (FullOpts)
+; Total bytes of code 348, prolog size 16, PerfScore 38.00, instruction count 87, allocated bytes for code 348 (MethodHash=aa62bad8) for method System.Collections.Queue:.ctor(int,float):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -167,7 +160,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 90 (0x0005a) Actual length = 360 (0x000168)
+  Function Length   : 87 (0x00057) Actual length = 348 (0x00015c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.27%) : 4797.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)

@@ -58,9 +58,8 @@ G_M14385_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=000D {x0 x2 x3}
             cmp     w4, #110
             beq     G_M14385_IG11
             cmp     w4, #114
-            bne     G_M14385_IG09
-            b       G_M14385_IG07
-                       ;; size=20 bbWeight=2 PerfScore 8.00
+            beq     G_M14385_IG03
+                       ;; size=16 bbWeight=2 PerfScore 6.00
 G_M14385_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000D {x0 x2 x3}, byref, isz
             cmp     w4, #120
             bne     G_M14385_IG13
@@ -96,7 +95,7 @@ G_M14385_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 176, prolog size 8, PerfScore 40.50, instruction count 44, allocated bytes for code 176 (MethodHash=44f4c7ce) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
+; Total bytes of code 172, prolog size 8, PerfScore 38.50, instruction count 43, allocated bytes for code 172 (MethodHash=44f4c7ce) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -107,7 +106,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 44 (0x0002c) Actual length = 176 (0x0000b0)
+  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.27%) : 14461.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)

@@ -58,9 +58,8 @@ G_M14385_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=000D {x0 x2 x3}
             cmp     w4, #110
             beq     G_M14385_IG11
             cmp     w4, #114
-            bne     G_M14385_IG09
-            b       G_M14385_IG07
-                       ;; size=20 bbWeight=2 PerfScore 8.00
+            beq     G_M14385_IG03
+                       ;; size=16 bbWeight=2 PerfScore 6.00
 G_M14385_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000D {x0 x2 x3}, byref, isz
             cmp     w4, #120
             bne     G_M14385_IG13
@@ -96,7 +95,7 @@ G_M14385_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 176, prolog size 8, PerfScore 40.50, instruction count 44, allocated bytes for code 176 (MethodHash=44f4c7ce) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
+; Total bytes of code 172, prolog size 8, PerfScore 38.50, instruction count 43, allocated bytes for code 172 (MethodHash=44f4c7ce) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -107,7 +106,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 44 (0x0002c) Actual length = 176 (0x0000b0)
+  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+5.56%) : 22527.dasm - System.Collections.IterateForEach`1[System.Canon]:FrozenSet():System.Canon:this (FullOpts)

@@ -27,10 +27,10 @@
 ;  V16 tmp11        [V16,T02] (  3,  6   )     ref  ->   x1         single-def "argument with side effect"
 ;  V17 PSPSym       [V17,T10] (  1,  1   )    long  ->  [fp+0x30]  do-not-enreg[V] "PSPSym"
 ;* V18 cse0         [V18,T11] (  0,  0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;  V19 cse1         [V19,T09] (  5,  2.20)    long  ->   x2         hoist multi-def "CSE - aggressive"
-;* V20 rat0         [V20,T05] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V19 cse1         [V19,T09] (  6,  3.20)    long  ->   x2         hoist multi-def "CSE - aggressive"
+;  V20 rat0         [V20,T05] (  2,  4   )    long  ->   x1         "Spilling to split statement for tree"
 ;* V21 rat1         [V21,T08] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V22 rat2         [V22,T03] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V22 rat2         [V22,T03] (  2,  4   )    long  ->   x1         "fgMakeTemp is creating a new local variable"
 ;  V23 rat3         [V23,T04] (  3,  5.60)    long  ->   x3         "fgMakeTemp is creating a new local variable"
 ;  V24 rat4         [V24,T12] (  3,  0   )    long  ->   x2         "Spilling to split statement for tree"
 ;  V25 rat5         [V25,T13] (  3,  0   )    long  ->   x3         "fgMakeTemp is creating a new local variable"
@@ -62,13 +62,18 @@ G_M17622_IG02:        ; bbWeight=1, gcVars=0000000000000002 {V00}, gcrefRegs=000
             ; gcr arg pop 0
             stp     x0, x1, [fp, #0x18]    // [V03 loc2], [V03 loc2+0x08]
                        ;; size=32 bbWeight=1 PerfScore 15.00
-G_M17622_IG03:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M17622_IG03:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             ldr     x0, [fp, #0x10]    // [V00 this]
             ; gcrRegs +[x0]
             ldr     x2, [x0]
+            mov     x1, x2
+            ldr     x1, [x1, #0x38]
+            ldr     x1, [x1]
+            ldr     x1, [x1, #0x20]
+            cbnz    x1, G_M17622_IG05
             b       G_M17622_IG05
-                       ;; size=12 bbWeight=1 PerfScore 6.00
+                       ;; size=32 bbWeight=1 PerfScore 16.50
 G_M17622_IG04:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0 x19]
             ldr     w1, [fp, #0x20]    // [V13 tmp8]
@@ -200,7 +205,7 @@ G_M17622_IG19:        ; bbWeight=0, funclet epilog, nogc, extend
             ret     lr
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 360, prolog size 28, PerfScore 217.50, instruction count 90, allocated bytes for code 360 (MethodHash=5937bb29) for method System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
+; Total bytes of code 380, prolog size 28, PerfScore 228.00, instruction count 95, allocated bytes for code 380 (MethodHash=5937bb29) for method System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -211,7 +216,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 68 (0x00044) Actual length = 272 (0x000110)
+  Function Length   : 73 (0x00049) Actual length = 292 (0x000124)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+12 (+7.69%) : 14610.dasm - System.Collections.Generic.PriorityQueue2[int,int]:MoveUpDefaultComparer(System.ValueTuple2[int,int],int):this (FullOpts)

@@ -16,11 +16,11 @@
 ;* V05 loc2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    <System.ValueTuple`2[int,int]>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V08 tmp2         [V08,T03] (  2, 16   )     int  ->   x7         ld-addr-op "Inlining Arg"
+;  V08 tmp2         [V08,T03] (  3, 20   )     int  ->   x7         ld-addr-op "Inlining Arg"
 ;* V09 tmp3         [V09    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V10 tmp4         [V10,T10] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V11 tmp5         [V11,T08] (  2,  8   )     int  ->   x6         "field V05.Item1 (fldOffset=0x0)" P-INDEP
-;  V12 tmp6         [V12,T05] (  3, 12   )     int  ->   x5         "field V05.Item2 (fldOffset=0x4)" P-INDEP
+;  V12 tmp6         [V12,T05] (  4, 14   )     int  ->   x5         "field V05.Item2 (fldOffset=0x4)" P-INDEP
 ;  V13 tmp7         [V13,T01] (  3, 24   )   byref  ->   x5         "BlockOp address local"
 ;  V14 tmp8         [V14,T02] (  3, 24   )   byref  ->   x2         "BlockOp address local"
 ;  V15 cse0         [V15,T07] (  5, 11   )     int  ->   x1         hoist multi-def "CSE - aggressive"
@@ -37,7 +37,7 @@ G_M9068_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x0]
             ldr     x0, [x0, #0x08]
             cmp     w2, #0
-            ble     G_M9068_IG04
+            ble     G_M9068_IG06
             ldr     w1, [x0, #0x08]
             ldr     w3, [fp, #0x1C]    // [V01 arg1+0x04]
                        ;; size=20 bbWeight=1 PerfScore 9.50
@@ -45,7 +45,7 @@ G_M9068_IG03:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             sub     w4, w2, #1
             asr     w4, w4, #2
             cmp     w4, w1
-            bhs     G_M9068_IG06
+            bhs     G_M9068_IG08
             ubfiz   x5, x4, #3, #32
             add     x5, x5, #16
             add     x5, x0, x5
@@ -54,9 +54,16 @@ G_M9068_IG03:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; byrRegs -[x5]
             sxtw    w7, w3
             cmp     w7, w5
-            bge     G_M9068_IG04
+            blt     G_M9068_IG05
+                       ;; size=44 bbWeight=4 PerfScore 40.00
+G_M9068_IG04:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+            cmp     w7, w5
+            ble     G_M9068_IG06
+            b       G_M9068_IG06
+                       ;; size=12 bbWeight=2 PerfScore 5.00
+G_M9068_IG05:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             cmp     w2, w1
-            bhs     G_M9068_IG06
+            bhs     G_M9068_IG08
             ubfiz   x2, x2, #3, #32
             add     x2, x2, #16
             add     x2, x0, x2
@@ -66,28 +73,28 @@ G_M9068_IG03:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; byrRegs -[x2]
             cmp     w2, #0
             bgt     G_M9068_IG03
-                       ;; size=80 bbWeight=4 PerfScore 66.00
-G_M9068_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+                       ;; size=36 bbWeight=4 PerfScore 26.00
+G_M9068_IG06:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ldr     w1, [x0, #0x08]
             cmp     w2, w1
-            bhs     G_M9068_IG06
+            bhs     G_M9068_IG08
             ubfiz   x1, x2, #3, #32
             add     x1, x1, #16
             ldr     x2, [fp, #0x18]    // [V01 arg1]
             str     x2, [x0, x1]
                        ;; size=28 bbWeight=1 PerfScore 9.00
-G_M9068_IG05:        ; bbWeight=1, epilog, nogc, extend
+G_M9068_IG07:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M9068_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M9068_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
             brk_windows #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 156, prolog size 12, PerfScore 89.00, instruction count 39, allocated bytes for code 156 (MethodHash=d4dadc93) for method System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
+; Total bytes of code 168, prolog size 12, PerfScore 94.00, instruction count 42, allocated bytes for code 168 (MethodHash=d4dadc93) for method System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -98,7 +105,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 39 (0x00027) Actual length = 156 (0x00009c)
+  Function Length   : 42 (0x0002a) Actual length = 168 (0x0000a8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+14.29%) : 21684.dasm - System.Collections.IterateForEach`1[System.Canon]:ImmutableStack():System.Canon:this (FullOpts)

@@ -8,7 +8,7 @@
 ; 0 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  3,  3   )     ref  ->  x19         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+;  V00 this         [V00,T01] (  4,  4   )     ref  ->  x19         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
 ;  V01 loc0         [V01,T04] (  3,  4   )     ref  ->  x20         ld-addr-op class-hnd <System.__Canon>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
 ;* V03 loc2         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op single-def <System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]>
@@ -23,21 +23,22 @@
 ;  V12 tmp7         [V12,T06] (  2,  3   )     ref  ->  x21         "field V03._originalStack (fldOffset=0x0)" P-INDEP
 ;  V13 tmp8         [V13,T00] (  8, 27   )     ref  ->  x22         "field V03._remainingStack (fldOffset=0x8)" P-INDEP
 ;* V14 cse0         [V14,T07] (  0,  0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;* V15 rat0         [V15,T03] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V15 rat0         [V15,T03] (  2,  4   )    long  ->   x0         "Spilling to split statement for tree"
 ;* V16 rat1         [V16,T05] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V17 rat2         [V17,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V17 rat2         [V17,T02] (  2,  4   )    long  ->   x0         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M64146_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
+            stp     fp, lr, [sp, #-0x40]!
+            stp     x19, x20, [sp, #0x20]
+            stp     x21, x22, [sp, #0x30]
             mov     fp, sp
+            str     x0, [fp, #0x18]
             mov     x19, x0
             ; gcrRegs +[x19]
-                       ;; size=20 bbWeight=1 PerfScore 4.00
-G_M64146_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+                       ;; size=24 bbWeight=1 PerfScore 5.00
+G_M64146_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             mov     x20, xzr
             ; gcrRegs +[x20]
             ldr     x0, [x19, #0xA0]
@@ -53,10 +54,16 @@ G_M64146_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             ; gcrRegs +[x21]
             mov     x22, x1
             ; gcrRegs +[x22]
+            ldr     x0, [x19]
+            ; gcrRegs -[x0]
+            ldr     x0, [x0, #0x38]
+            ldr     x0, [x0]
+            ldr     x0, [x0, #0x20]
+            cbnz    x0, G_M64146_IG04
             b       G_M64146_IG04
-                       ;; size=44 bbWeight=1 PerfScore 14.00
+                       ;; size=64 bbWeight=1 PerfScore 27.00
 G_M64146_IG03:        ; bbWeight=2, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0-x1 x20]
+            ; gcrRegs -[x1 x20]
             mov     x0, x22
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for System.Collections.Immutable.ImmutableStack`1[System.__Canon]:Peek():System.__Canon:this
@@ -103,13 +110,13 @@ G_M64146_IG08:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ; gcrRegs +[x0]
                        ;; size=4 bbWeight=1 PerfScore 0.50
 G_M64146_IG09:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
-            ldp     fp, lr, [sp], #0x30
+            ldp     x21, x22, [sp, #0x30]
+            ldp     x19, x20, [sp, #0x20]
+            ldp     fp, lr, [sp], #0x40
             ret     lr
                        ;; size=16 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 168, prolog size 16, PerfScore 99.50, instruction count 42, allocated bytes for code 168 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
+; Total bytes of code 192, prolog size 20, PerfScore 113.50, instruction count 48, allocated bytes for code 192 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -120,7 +127,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 42 (0x0002a) Actual length = 168 (0x0000a8)
+  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -129,8 +136,8 @@ Unwind Info:
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
     E6          save_next
-    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    C8 04       save_regp X#0 Z#4 (0x04); stp x19, x20, [sp, #32]
+    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
     E4          end
     E4          end

benchmarks.run_pgo.windows.arm64.checked.mch

-20 (-8.20%) : 7498.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(ulong,System.Object):System.Object (Tier1)

@@ -35,21 +35,10 @@ G_M60590_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M60590_IG02:        ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
-            cbnz    x1, G_M60590_IG05
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M60590_IG03:        ; bbWeight=0, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
-            mov     x0, x1
-            ; gcrRegs +[x0]
-                       ;; size=4 bbWeight=0 PerfScore 0.00
-G_M60590_IG04:        ; bbWeight=0, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0 PerfScore 0.00
-G_M60590_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[x0]
+            cbz     x1, G_M60590_IG11
             ldr     x2, [x1]
             cmp     x2, x0
-            beq     G_M60590_IG03
+            beq     G_M60590_IG11
             movz    x3, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
@@ -68,8 +57,8 @@ G_M60590_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0002 {
             ldr     w5, [x3]
             lsr     x4, x4, x5
             mov     w5, wzr
-                       ;; size=72 bbWeight=1 PerfScore 19.00
-G_M60590_IG06:        ; bbWeight=1.17, gcrefRegs=0002 {x1}, byrefRegs=0008 {x3}, byref, isz
+                       ;; size=76 bbWeight=1 PerfScore 20.00
+G_M60590_IG03:        ; bbWeight=1.17, gcrefRegs=0002 {x1}, byrefRegs=0008 {x3}, byref, isz
             add     w6, w4, #1
             mov     w7, #24
             smull   x6, w6, w7
@@ -79,66 +68,61 @@ G_M60590_IG06:        ; bbWeight=1.17, gcrefRegs=0002 {x1}, byrefRegs=0008 {x3},
             ldr     x8, [x6, #0x08]
             and     w7, w7, #0xD1FFAB1E
             cmp     x8, x2
-            beq     G_M60590_IG11
+            bne     G_M60590_IG07
                        ;; size=36 bbWeight=1.17 PerfScore 13.43
-G_M60590_IG07:        ; bbWeight=0.34, gcrefRegs=0002 {x1}, byrefRegs=0008 {x3}, byref, isz
-            ; byrRegs -[x6]
-            cbnz    w7, G_M60590_IG10
-                       ;; size=4 bbWeight=0.34 PerfScore 0.34
-G_M60590_IG08:        ; bbWeight=0.17, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
-            ; byrRegs -[x3]
-            mov     w8, #2
-                       ;; size=4 bbWeight=0.17 PerfScore 0.08
-G_M60590_IG09:        ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
+G_M60590_IG04:        ; bbWeight=0.83, gcrefRegs=0002 {x1}, byrefRegs=0048 {x3 x6}, byref, isz
+            ldr     x8, [x6, #0x10]
+            eor     x8, x8, x0
+            cmp     x8, #1
+            bhi     G_M60590_IG07
+            dmb     ishld
+            ldr     w2, [x6]
+            cmp     w7, w2
+            bne     G_M60590_IG09
+                       ;; size=32 bbWeight=0.83 PerfScore 16.23
+G_M60590_IG05:        ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
+            ; byrRegs -[x3 x6]
             cmp     w8, #1
-            beq     G_M60590_IG03
-            cbnz    w8, G_M60590_IG13
-            b       G_M60590_IG15
-                       ;; size=16 bbWeight=1 PerfScore 3.50
-G_M60590_IG10:        ; bbWeight=1.17, gcrefRegs=0002 {x1}, byrefRegs=0008 {x3}, byref, isz
+            beq     G_M60590_IG11
+            cbz     w8, G_M60590_IG10
+                       ;; size=12 bbWeight=1 PerfScore 2.50
+G_M60590_IG06:        ; bbWeight=1, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            b       <unknown method>
+            ; gcr arg pop 0
+                       ;; size=8 bbWeight=1 PerfScore 2.00
+G_M60590_IG07:        ; bbWeight=0.34, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0008 {x3}, gcvars, byref, isz
             ; byrRegs +[x3]
+            cbz     w7, G_M60590_IG09
+                       ;; size=4 bbWeight=0.34 PerfScore 0.34
+G_M60590_IG08:        ; bbWeight=1.17, gcrefRegs=0002 {x1}, byrefRegs=0008 {x3}, byref, isz
             add     w5, w5, #1
             add     w4, w4, w5
             ldr     w8, [x3, #0x04]
             and     w4, w4, w8
             cmp     w5, #8
-            bge     G_M60590_IG08
-            b       G_M60590_IG06
-                       ;; size=28 bbWeight=1.17 PerfScore 8.17
-G_M60590_IG11:        ; bbWeight=0.83, gcrefRegs=0002 {x1}, byrefRegs=0048 {x3 x6}, byref, isz
-            ; byrRegs +[x6]
-            ldr     x8, [x6, #0x10]
-            eor     x8, x8, x0
-            cmp     x8, #1
-            bhi     G_M60590_IG07
-            b       G_M60590_IG14
-                       ;; size=20 bbWeight=0.83 PerfScore 4.99
-G_M60590_IG12:        ; bbWeight=0.83, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
-            ; byrRegs -[x3 x6]
-            b       G_M60590_IG09
-                       ;; size=4 bbWeight=0.83 PerfScore 0.83
-G_M60590_IG13:        ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, epilog, nogc
-            ldp     fp, lr, [sp], #0x10
-            b       <unknown method>
-            ; gcr arg pop 0
-                       ;; size=8 bbWeight=1 PerfScore 2.00
-G_M60590_IG14:        ; bbWeight=0.83, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0040 {x6}, gcvars, byref, isz
-            ; byrRegs +[x6]
-            dmb     ishld
-            ldr     w2, [x6]
-            cmp     w7, w2
-            bne     G_M60590_IG08
-            b       G_M60590_IG12
-                       ;; size=20 bbWeight=0.83 PerfScore 12.90
-G_M60590_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            blt     G_M60590_IG03
+                       ;; size=24 bbWeight=1.17 PerfScore 7.01
+G_M60590_IG09:        ; bbWeight=0.17, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
+            ; byrRegs -[x3]
+            mov     w8, #2
+            b       G_M60590_IG05
+                       ;; size=8 bbWeight=0.17 PerfScore 0.25
+G_M60590_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
-            ; byrRegs -[x6]
             mov     x1, xzr
             ; gcrRegs +[x1]
-            b       G_M60590_IG03
+                       ;; size=4 bbWeight=0 PerfScore 0.00
+G_M60590_IG11:        ; bbWeight=0, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
+            mov     x0, x1
+            ; gcrRegs +[x0]
+                       ;; size=4 bbWeight=0 PerfScore 0.00
+G_M60590_IG12:        ; bbWeight=0, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 244, prolog size 8, PerfScore 67.75, instruction count 61, allocated bytes for code 244 (MethodHash=9f861351) for method System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(ulong,System.Object):System.Object (Tier1)
+; Total bytes of code 224, prolog size 8, PerfScore 63.25, instruction count 56, allocated bytes for code 224 (MethodHash=9f861351) for method System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(ulong,System.Object):System.Object (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -149,7 +133,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 61 (0x0003d) Actual length = 244 (0x0000f4)
+  Function Length   : 56 (0x00038) Actual length = 224 (0x0000e0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-40 (-7.75%) : 70487.dasm - System.Reflection.Internal.EncodingHelper:DecodeUtf8(ulong,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)

@@ -27,14 +27,14 @@
 ;* V15 tmp11        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;  V16 tmp12        [V16,T01] (  3, 52.48)   ubyte  ->   x6         "Inline stloc first use temp"
 ;* V17 tmp13        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.String>
-;  V18 tmp14        [V18,T19] (  3,  3.00)     ref  ->  x19         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V19 tmp15        [V19,T12] (  5,  5.01)     int  ->  x20         "Inline stloc first use temp"
-;  V20 tmp16        [V20,T11] (  7,  5.98)     ref  ->  x22         class-hnd "Inline stloc first use temp" <System.String>
-;  V21 tmp17        [V21,T13] (  5,  5.01)     int  ->  x21         "Inline stloc first use temp"
-;  V22 tmp18        [V22,T24] (  2,  1.51)     int  ->   x1         "Inline stloc first use temp"
+;  V18 tmp14        [V18,T19] (  3,  3.00)     ref  ->   x1         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;  V19 tmp15        [V19,T12] (  5,  5.01)     int  ->   x5         "Inline stloc first use temp"
+;  V20 tmp16        [V20,T11] (  7,  5.98)     ref  ->  x19         class-hnd "Inline stloc first use temp" <System.String>
+;  V21 tmp17        [V21,T13] (  5,  5.01)     int  ->   x6         "Inline stloc first use temp"
+;  V22 tmp18        [V22,T24] (  2,  1.51)     int  ->   x7         "Inline stloc first use temp"
 ;* V23 tmp19        [V23,T28] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V24 tmp20        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;  V25 tmp21        [V25,T04] (  5, 34.81)     int  ->  x23         "Inline stloc first use temp"
+;  V25 tmp21        [V25,T04] (  5, 34.81)     int  ->   x7         "Inline stloc first use temp"
 ;  V26 tmp22        [V26,T22] (  2,  2.00)   byref  ->   x4         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
 ;  V27 tmp23        [V27,T23] (  2,  2.00)     int  ->   x2         "field V07._length (fldOffset=0x8)" P-INDEP
 ;  V28 tmp24        [V28,T06] (  4, 28.07)   byref  ->   x4         single-def "field V08._reference (fldOffset=0x0)" P-INDEP
@@ -42,75 +42,49 @@
 ;* V30 tmp26        [V30,T26] (  0,  0   )   byref  ->  zero-ref    single-def "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V31 tmp27        [V31,T27] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V32 tmp28        [V32,T29] (  0,  0   )   byref  ->  zero-ref    "field V24._reference (fldOffset=0x0)" P-INDEP
-;  V33 tmp29        [V33,T25] (  2,  1.01)     int  ->   x1         "field V24._length (fldOffset=0x8)" P-INDEP
-;  V34 cse0         [V34,T18] (  3,  3.01)    long  ->   x1         "CSE - moderate"
+;  V33 tmp29        [V33,T25] (  2,  1.01)     int  ->   x7         "field V24._length (fldOffset=0x8)" P-INDEP
+;  V34 cse0         [V34,T18] (  3,  3.01)    long  ->   x7         "CSE - moderate"
 ;  V35 cse1         [V35,T08] (  2, 18.44)     int  ->   x5         hoist "CSE - aggressive"
-;  V36 cse2         [V36,T09] (  2,  9.05)   byref  ->   x1         hoist "CSE - aggressive"
-;  V37 cse3         [V37,T07] (  3, 25.73)    long  ->   x5         "CSE - aggressive"
+;  V36 cse2         [V36,T09] (  2,  9.05)   byref  ->   x8         hoist "CSE - aggressive"
+;  V37 cse3         [V37,T07] (  3, 25.73)    long  ->   x9         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M33766_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x18]
-            stp     x21, x22, [sp, #0x28]
-            str     x23, [sp, #0x38]
+            stp     fp, lr, [sp, #-0x20]!
+            str     x19, [sp, #0x18]
             mov     fp, sp
             mov     x4, x0
-                       ;; size=24 bbWeight=1 PerfScore 5.00
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M33766_IG02:        ; bbWeight=1, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x2-x3]
-            cbz     x2, G_M33766_IG05
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M33766_IG03:        ; bbWeight=0, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
-            mov     x0, x4
-            movz    x4, #0xD1FFAB1E      // code for System.Reflection.Internal.EncodingHelper:DecodeUtf8Prefixed(ulong,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String
-            movk    x4, #0xD1FFAB1E LSL #16
-            movk    x4, #0xD1FFAB1E LSL #32
-            ldr     x4, [x4]
-            blr     x4
-            ; gcrRegs -[x2-x3] +[x0]
-            ; gcr arg pop 0
-                       ;; size=24 bbWeight=0 PerfScore 0.00
-G_M33766_IG04:        ; bbWeight=0, epilog, nogc, extend
-            ldr     x23, [sp, #0x38]
-            ldp     x21, x22, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x40
-            ret     lr
-                       ;; size=20 bbWeight=0 PerfScore 0.00
-G_M33766_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[x0] +[x3]
-            cbnz    w1, G_M33766_IG17
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M33766_IG06:        ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x3]
-            movz    x0, #8
+            cbnz    x2, G_M33766_IG23
+            cbz     w1, G_M33766_IG16
+                       ;; size=8 bbWeight=1 PerfScore 2.00
+G_M33766_IG03:        ; bbWeight=1.00, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x2]
+            ldr     x2, [x3]
+            movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
-                       ;; size=12 bbWeight=0.00 PerfScore 0.00
-G_M33766_IG07:        ; bbWeight=0.00, epilog, nogc, extend
-            ldr     x23, [sp, #0x38]
-            ldp     x21, x22, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x40
-            ret     lr
-                       ;; size=20 bbWeight=0.00 PerfScore 0.01
-G_M33766_IG08:        ; bbWeight=1.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            cmp     x2, x0
+            bne     G_M33766_IG21
+            tbnz    w1, #31, G_M33766_IG25
             sxtw    w2, w1
             movz    w0, #0xD1FFAB1E
             movk    w0, #0xD1FFAB1E LSL #16
             mov     w1, wzr
             mov     w3, wzr
+            ; gcrRegs -[x3]
             cmp     w2, #0
-            ble     G_M33766_IG11
-                       ;; size=28 bbWeight=1.00 PerfScore 3.99
-G_M33766_IG09:        ; bbWeight=0.94, gcrefRegs=0000 {}, byrefRegs=0010 {x4}, byref
+            ble     G_M33766_IG06
+                       ;; size=56 bbWeight=1.00 PerfScore 10.98
+G_M33766_IG04:        ; bbWeight=0.94, gcrefRegs=0000 {}, byrefRegs=0010 {x4}, byref
             ; byrRegs +[x4]
             movz    w5, #0xD1FFAB1E
             movk    w5, #0xD1FFAB1E LSL #16
                        ;; size=8 bbWeight=0.94 PerfScore 0.94
-G_M33766_IG10:        ; bbWeight=17.49, gcrefRegs=0000 {}, byrefRegs=0010 {x4}, byref, isz
+G_M33766_IG05:        ; bbWeight=17.49, gcrefRegs=0000 {}, byrefRegs=0010 {x4}, byref, isz
             ldrb    w6, [x4, w3, UXTW #2]
             orr     w1, w1, w6
             uxtb    w1, w1
@@ -118,135 +92,107 @@ G_M33766_IG10:        ; bbWeight=17.49, gcrefRegs=0000 {}, byrefRegs=0010 {x4},
             mul     w0, w0, w5
             add     w3, w3, #1
             cmp     w3, w2
-            blt     G_M33766_IG10
+            blt     G_M33766_IG05
                        ;; size=32 bbWeight=17.49 PerfScore 148.68
-G_M33766_IG11:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0010 {x4}, byref, isz
+G_M33766_IG06:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0010 {x4}, byref, isz
             tst     w1, #128
             cset    x3, eq
-            cbz     w3, G_M33766_IG27
+            cbz     w3, G_M33766_IG20
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            ldr     x19, [x1]
-            ; gcrRegs +[x19]
-            eor     w1, w0, w0,  ASR #11
-            uxth    w20, w1
-            mov     w21, #1
+            ldr     x1, [x1]
+            ; gcrRegs +[x1]
+            eor     w5, w0, w0,  ASR #11
+            uxth    w5, w5
+            mov     w6, #1
                        ;; size=40 bbWeight=1.00 PerfScore 8.49
-G_M33766_IG12:        ; bbWeight=1.00, gcrefRegs=80000 {x19}, byrefRegs=0010 {x4}, byref, isz
-            cmp     w20, #16, LSL #12
-            bhs     G_M33766_IG28
-            ubfiz   x1, x20, #4, #32
-            add     x1, x1, #16
-            ldr     x22, [x19, x1]
-            ; gcrRegs +[x22]
-            add     x1, x19, x1
-            ; byrRegs +[x1]
-            ldr     w1, [x1, #0x08]
-            ; byrRegs -[x1]
-            cbz     x22, G_M33766_IG26
+G_M33766_IG07:        ; bbWeight=1.00, gcrefRegs=0002 {x1}, byrefRegs=0010 {x4}, byref, isz
+            cmp     w5, #16, LSL #12
+            bhs     G_M33766_IG22
+            ubfiz   x7, x5, #4, #32
+            add     x7, x7, #16
+            ldr     x19, [x1, x7]
+            ; gcrRegs +[x19]
+            add     x7, x1, x7
+            ; byrRegs +[x7]
+            ldr     w7, [x7, #0x08]
+            ; byrRegs -[x7]
+            cbz     x19, G_M33766_IG13
                        ;; size=32 bbWeight=1.00 PerfScore 10.52
-G_M33766_IG13:        ; bbWeight=0.51, gcrefRegs=480000 {x19 x22}, byrefRegs=0010 {x4}, byref, isz
-            cmp     w1, w0
-            bne     G_M33766_IG25
+G_M33766_IG08:        ; bbWeight=0.51, gcrefRegs=80002 {x1 x19}, byrefRegs=0010 {x4}, byref, isz
+            cmp     w7, w0
+            bne     G_M33766_IG18
                        ;; size=8 bbWeight=0.51 PerfScore 0.76
-G_M33766_IG14:        ; bbWeight=0.50, gcrefRegs=480000 {x19 x22}, byrefRegs=0010 {x4}, byref, isz
-            sxtw    w1, w2
-            ldr     w5, [x22, #0x08]
-            cmp     w5, w1
-            bne     G_M33766_IG25
+G_M33766_IG09:        ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0010 {x4}, byref, isz
+            sxtw    w7, w2
+            ldr     w8, [x19, #0x08]
+            cmp     w8, w7
+            bne     G_M33766_IG18
                        ;; size=16 bbWeight=0.50 PerfScore 2.51
-G_M33766_IG15:        ; bbWeight=0.50, gcrefRegs=480000 {x19 x22}, byrefRegs=0010 {x4}, byref, isz
-            mov     w23, wzr
+G_M33766_IG10:        ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0010 {x4}, byref, isz
+            mov     w7, wzr
             cmp     w2, #0
-            ble     G_M33766_IG26
+            ble     G_M33766_IG13
                        ;; size=12 bbWeight=0.50 PerfScore 1.01
-G_M33766_IG16:        ; bbWeight=0.48, gcrefRegs=480000 {x19 x22}, byrefRegs=0010 {x4}, byref
-            b       G_M33766_IG21
-                       ;; size=4 bbWeight=0.48 PerfScore 0.48
-G_M33766_IG17:        ; bbWeight=1.00, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x19 x22] +[x3]
+G_M33766_IG11:        ; bbWeight=0.48, gcrefRegs=80002 {x1 x19}, byrefRegs=0010 {x4}, byref
+            add     x8, x19, #12
+            ; byrRegs +[x8]
+                       ;; size=4 bbWeight=0.48 PerfScore 0.24
+G_M33766_IG12:        ; bbWeight=8.58, gcrefRegs=80002 {x1 x19}, byrefRegs=0110 {x4 x8}, byref, isz
+            mov     w9, w7
+            ldrb    w10, [x4, x9]
+            lsl     x9, x9, #1
+            ldrh    w9, [x8, x9]
+            cmp     w10, w9
+            bne     G_M33766_IG18
+            add     w7, w7, #1
+            cmp     w7, w2
+            blt     G_M33766_IG12
+                       ;; size=36 bbWeight=8.58 PerfScore 94.36
+G_M33766_IG13:        ; bbWeight=1.00, gcrefRegs=80000 {x19}, byrefRegs=0010 {x4}, byref, isz
+            ; gcrRegs -[x1]
+            ; byrRegs -[x8]
+            cbz     x19, G_M33766_IG20
+                       ;; size=4 bbWeight=1.00 PerfScore 1.00
+G_M33766_IG14:        ; bbWeight=1.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             ; byrRegs -[x4]
-            ldr     x2, [x3]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            cmp     x2, x0
-            beq     G_M33766_IG24
-                       ;; size=24 bbWeight=1.00 PerfScore 5.99
-G_M33766_IG18:        ; bbWeight=0, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, byref
-            str     w1, [fp, #0x14]    // [V01 arg1]
-            mov     x0, x3
-            ; gcrRegs +[x0]
-            mov     x1, x4
-            ldr     w2, [fp, #0x14]    // [V01 arg1]
-            ldr     x3, [x3]
-            ; gcrRegs -[x3]
-            ldr     x3, [x3, #0x48]
-            ldr     x3, [x3, #0x20]
-            blr     x3
-            ; gcr arg pop 0
-            mov     x22, x0
-            ; gcrRegs +[x22]
-                       ;; size=36 bbWeight=0 PerfScore 0.00
-G_M33766_IG19:        ; bbWeight=1.00, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            mov     x0, x22
+            mov     x0, x19
...

-4 (-7.69%) : 64259.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:IsSpecialEndHandlerBlock(Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock):ubyte (Tier1)

@@ -14,14 +14,14 @@
 ;
 ; Lcl frame size = 0
 
-G_M32505_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M32505_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M32505_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
             ldrh    w1, [x0, #0x34]
-            cbz     w1, G_M32505_IG07
+            cbz     w1, G_M32505_IG05
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M32505_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
@@ -31,21 +31,19 @@ G_M32505_IG04:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M32505_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M32505_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x0]
+            ldr     x0, [x0, #0x20]
+            cbz     x0, G_M32505_IG03
             mov     w0, #1
-                       ;; size=4 bbWeight=0 PerfScore 0.00
+            ; gcrRegs -[x0]
+                       ;; size=12 bbWeight=0 PerfScore 0.00
 G_M32505_IG06:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M32505_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x0]
-            ldr     x0, [x0, #0x20]
-            cbnz    x0, G_M32505_IG05
-            b       G_M32505_IG03
-                       ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 52, prolog size 8, PerfScore 8.00, instruction count 13, allocated bytes for code 52 (MethodHash=e84d8106) for method Microsoft.CodeAnalysis.CodeGen.ILBuilder:IsSpecialEndHandlerBlock(Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock):ubyte (Tier1)
+; Total bytes of code 48, prolog size 8, PerfScore 8.00, instruction count 12, allocated bytes for code 48 (MethodHash=e84d8106) for method Microsoft.CodeAnalysis.CodeGen.ILBuilder:IsSpecialEndHandlerBlock(Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock):ubyte (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -56,7 +54,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 13 (0x0000d) Actual length = 52 (0x000034)
+  Function Length   : 12 (0x0000c) Actual length = 48 (0x000030)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+17.86%) : 63440.dasm - System.Collections.Immutable.ImmutableArray1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray1+Builder[System.__Canon]):this (Tier1)

@@ -9,13 +9,13 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  4.00)     ref  ->  x19         this class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
-;  V01 arg1         [V01,T00] (  5,  5.00)     ref  ->   x1         class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
+;  V01 arg1         [V01,T00] (  6,  5.00)     ref  ->   x1         class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V04 tmp2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.__Canon[]>
-;* V05 rat0         [V05,T03] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V05 rat0         [V05,T03] (  2,  4.00)    long  ->   x2         "Spilling to split statement for tree"
 ;* V06 rat1         [V06,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V07 rat2         [V07,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V07 rat2         [V07,T02] (  2,  4.00)    long  ->   x2         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -29,10 +29,36 @@ G_M61315_IG01:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
                        ;; size=20 bbWeight=1.00 PerfScore 4.00
 G_M61315_IG02:        ; bbWeight=1.00, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
-            ldr     xzr, [x19]
+            ldr     x2, [x19]
+            ldr     x2, [x2, #0x38]
+            ldr     x2, [x2]
+            ldr     x2, [x2, #0x88]
+            cbz     x2, G_M61315_IG06
+                       ;; size=20 bbWeight=1.00 PerfScore 13.00
+G_M61315_IG03:        ; bbWeight=0.80, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
+            cbz     x1, G_M61315_IG07
+                       ;; size=4 bbWeight=0.80 PerfScore 0.80
+G_M61315_IG04:        ; bbWeight=1.00, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
+            ldr     w2, [x1, #0x10]
+            ldr     x1, [x1, #0x08]
+            mov     x0, x19
+            ; gcrRegs +[x0]
+            movz    x3, #0xD1FFAB1E      // code for System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.__Canon[],int):this
+            movk    x3, #0xD1FFAB1E LSL #16
+            movk    x3, #0xD1FFAB1E LSL #32
+            ldr     x3, [x3]
+                       ;; size=28 bbWeight=1.00 PerfScore 11.00
+G_M61315_IG05:        ; bbWeight=1.00, epilog, nogc, extend
+            ldr     x19, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x20
+            br      x3
+            ; gcr arg pop 0
+                       ;; size=12 bbWeight=1.00 PerfScore 4.00
+G_M61315_IG06:        ; bbWeight=0.20, gcVars=0000000000000000 {}, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[x0]
             cbnz    x1, G_M61315_IG04
-                       ;; size=8 bbWeight=1.00 PerfScore 4.00
-G_M61315_IG03:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+                       ;; size=4 bbWeight=0.20 PerfScore 0.20
+G_M61315_IG07:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
@@ -50,25 +76,8 @@ G_M61315_IG03:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             ; gcr arg pop 0
             brk_windows #0
                        ;; size=44 bbWeight=0 PerfScore 0.00
-G_M61315_IG04:        ; bbWeight=1.00, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x1]
-            ldr     w2, [x1, #0x10]
-            ldr     x1, [x1, #0x08]
-            mov     x0, x19
-            ; gcrRegs +[x0]
-            movz    x3, #0xD1FFAB1E      // code for System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.__Canon[],int):this
-            movk    x3, #0xD1FFAB1E LSL #16
-            movk    x3, #0xD1FFAB1E LSL #32
-            ldr     x3, [x3]
-                       ;; size=28 bbWeight=1.00 PerfScore 11.00
-G_M61315_IG05:        ; bbWeight=1.00, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
-            br      x3
-            ; gcr arg pop 0
-                       ;; size=12 bbWeight=1.00 PerfScore 4.00
 
-; Total bytes of code 112, prolog size 20, PerfScore 23.00, instruction count 28, allocated bytes for code 112 (MethodHash=e419107c) for method System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
+; Total bytes of code 132, prolog size 20, PerfScore 33.00, instruction count 33, allocated bytes for code 132 (MethodHash=e419107c) for method System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -79,7 +88,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
+  Function Length   : 33 (0x00021) Actual length = 132 (0x000084)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+18.52%) : 63602.dasm - System.Collections.Immutable.ImmutableHashSet1[System.__Canon]:Union(System.Collections.Generic.IEnumerable1[System.Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.Canon]:this (Tier1)

@@ -8,13 +8,13 @@
 ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  4.00)     ref  ->  x19         this class-hnd single-def <System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]>
-;  V01 arg1         [V01,T01] (  4,  4.00)     ref  ->   x1         class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.__Canon]>
+;  V00 this         [V00,T01] (  4,  4.00)     ref  ->  x19         this class-hnd single-def <System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]>
+;  V01 arg1         [V01,T00] (  5,  4.00)     ref  ->   x1         class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.__Canon]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V04 rat0         [V04,T03] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V04 rat0         [V04,T03] (  2,  4.00)    long  ->   x0         "Spilling to split statement for tree"
 ;* V05 rat1         [V05,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V06 rat2         [V06,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V06 rat2         [V06,T02] (  2,  4.00)    long  ->   x0         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -28,10 +28,35 @@ G_M52093_IG01:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
                        ;; size=20 bbWeight=1.00 PerfScore 4.00
 G_M52093_IG02:        ; bbWeight=1.00, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
-            ldr     xzr, [x19]
+            ldr     x0, [x19]
+            ldr     x0, [x0, #0x38]
+            ldr     x0, [x0]
+            ldr     x0, [x0, #0x80]
+            cbz     x0, G_M52093_IG06
+                       ;; size=20 bbWeight=1.00 PerfScore 13.00
+G_M52093_IG03:        ; bbWeight=0.80, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
+            cbz     x1, G_M52093_IG07
+                       ;; size=4 bbWeight=0.80 PerfScore 0.80
+G_M52093_IG04:        ; bbWeight=1.00, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
+            mov     x0, x19
+            ; gcrRegs +[x0]
+            mov     w2, wzr
+            movz    x3, #0xD1FFAB1E      // code for System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon],ubyte):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this
+            movk    x3, #0xD1FFAB1E LSL #16
+            movk    x3, #0xD1FFAB1E LSL #32
+            ldr     x3, [x3]
+                       ;; size=24 bbWeight=1.00 PerfScore 5.50
+G_M52093_IG05:        ; bbWeight=1.00, epilog, nogc, extend
+            ldr     x19, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x20
+            br      x3
+            ; gcr arg pop 0
+                       ;; size=12 bbWeight=1.00 PerfScore 4.00
+G_M52093_IG06:        ; bbWeight=0.20, gcVars=0000000000000000 {}, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[x0]
             cbnz    x1, G_M52093_IG04
-                       ;; size=8 bbWeight=1.00 PerfScore 4.00
-G_M52093_IG03:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+                       ;; size=4 bbWeight=0.20 PerfScore 0.20
+G_M52093_IG07:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
@@ -49,24 +74,8 @@ G_M52093_IG03:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             ; gcr arg pop 0
             brk_windows #0
                        ;; size=44 bbWeight=0 PerfScore 0.00
-G_M52093_IG04:        ; bbWeight=1.00, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x1]
-            mov     x0, x19
-            ; gcrRegs +[x0]
-            mov     w2, wzr
-            movz    x3, #0xD1FFAB1E      // code for System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon],ubyte):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this
-            movk    x3, #0xD1FFAB1E LSL #16
-            movk    x3, #0xD1FFAB1E LSL #32
-            ldr     x3, [x3]
-                       ;; size=24 bbWeight=1.00 PerfScore 5.50
-G_M52093_IG05:        ; bbWeight=1.00, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
-            br      x3
-            ; gcr arg pop 0
-                       ;; size=12 bbWeight=1.00 PerfScore 4.00
 
-; Total bytes of code 108, prolog size 20, PerfScore 17.50, instruction count 27, allocated bytes for code 108 (MethodHash=22173482) for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
+; Total bytes of code 128, prolog size 20, PerfScore 27.50, instruction count 32, allocated bytes for code 128 (MethodHash=22173482) for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -77,7 +86,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 27 (0x0001b) Actual length = 108 (0x00006c)
+  Function Length   : 32 (0x00020) Actual length = 128 (0x000080)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+25.00%) : 16041.dasm - System.Diagnostics.Stopwatch:QueryPerformanceCounter():long (Tier1)

@@ -8,7 +8,7 @@
 ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00    ] (  2,  2   )    long  ->  [fp+0x18]  do-not-enreg[X] addr-exposed ld-addr-op
+;  V00 loc0         [V00    ] (  3,  2   )    long  ->  [fp+0x18]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V01 loc1         [V01    ] (  0,  0   )     int  ->  zero-ref   
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -25,22 +25,35 @@ G_M20471_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     w0, [x0]
-            cbz     w0, G_M20471_IG04
-                       ;; size=20 bbWeight=1 PerfScore 5.50
-G_M20471_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            bl      CORINFO_HELP_POLL_GC
-                       ;; size=4 bbWeight=0 PerfScore 0.00
-G_M20471_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            cbnz    w0, G_M20471_IG06
             add     x0, fp, #24    // [V00 loc0]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-                       ;; size=16 bbWeight=1 PerfScore 2.00
-G_M20471_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+                       ;; size=36 bbWeight=1 PerfScore 7.50
+G_M20471_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             blr     x1
-            cbnz    w0, G_M20471_IG07
+            cbz     w0, G_M20471_IG08
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M20471_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M20471_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ldr     x0, [fp, #0x18]    // [V00 loc0]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
+G_M20471_IG05:        ; bbWeight=1, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=8 bbWeight=1 PerfScore 2.00
+G_M20471_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            bl      CORINFO_HELP_POLL_GC
+            add     x0, fp, #24    // [V00 loc0]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+                       ;; size=20 bbWeight=0 PerfScore 0.00
+G_M20471_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            blr     x1
+            cbnz    w0, G_M20471_IG04
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M20471_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movz    x0, #8
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -52,16 +65,10 @@ G_M20471_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-                       ;; size=44 bbWeight=0 PerfScore 0.00
-G_M20471_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x18]    // [V00 loc0]
-                       ;; size=4 bbWeight=1 PerfScore 2.00
-G_M20471_IG08:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x20
-            ret     lr
-                       ;; size=8 bbWeight=1 PerfScore 2.00
+            b       G_M20471_IG04
+                       ;; size=48 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 112, prolog size 8, PerfScore 15.00, instruction count 28, allocated bytes for code 112 (MethodHash=15e9b008) for method System.Diagnostics.Stopwatch:QueryPerformanceCounter():long (Tier1)
+; Total bytes of code 140, prolog size 8, PerfScore 15.00, instruction count 35, allocated bytes for code 140 (MethodHash=15e9b008) for method System.Diagnostics.Stopwatch:QueryPerformanceCounter():long (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -72,7 +79,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
+  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

benchmarks.run_tiered.windows.arm64.checked.mch

-4 (-2.08%) : 20959.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)

@@ -72,9 +72,8 @@ G_M27287_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x14]
             ldr     w15, [x14, #0x0C]
             cmn     w15, #1
-            bge     G_M27287_IG07
-            b       G_M27287_IG03
-                       ;; size=60 bbWeight=2 PerfScore 45.00
+            blt     G_M27287_IG03
+                       ;; size=56 bbWeight=2 PerfScore 43.00
 G_M27287_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=4001 {x0 x14}, byref
             ldr     x15, [x14]
             ; gcrRegs +[x15]
@@ -102,7 +101,7 @@ G_M27287_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 192, prolog size 8, PerfScore 150.00, instruction count 48, allocated bytes for code 192 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
+; Total bytes of code 188, prolog size 8, PerfScore 148.00, instruction count 47, allocated bytes for code 188 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -113,7 +112,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
+  Function Length   : 47 (0x0002f) Actual length = 188 (0x0000bc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.08%) : 38684.dasm - System.Collections.Generic.Dictionary2+ValueCollection+Enumerator[System.ReadOnlyMemory1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:MoveNext():ubyte:this (Tier1)

@@ -72,9 +72,8 @@ G_M54618_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x13]
             ldr     w14, [x13, #0x04]
             cmn     w14, #1
-            bge     G_M54618_IG07
-            b       G_M54618_IG03
-                       ;; size=60 bbWeight=2 PerfScore 45.00
+            blt     G_M54618_IG03
+                       ;; size=56 bbWeight=2 PerfScore 43.00
 G_M54618_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2001 {x0 x13}, byref
             add     x13, x13, #24
             add     x14, x0, #16
@@ -102,7 +101,7 @@ G_M54618_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 192, prolog size 8, PerfScore 148.75, instruction count 48, allocated bytes for code 192 (MethodHash=f4d82aa5) for method System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:MoveNext():ubyte:this (Tier1)
+; Total bytes of code 188, prolog size 8, PerfScore 146.75, instruction count 47, allocated bytes for code 188 (MethodHash=f4d82aa5) for method System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:MoveNext():ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -113,7 +112,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
+  Function Length   : 47 (0x0002f) Actual length = 188 (0x0000bc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.04%) : 918.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)

@@ -73,9 +73,8 @@ G_M25445_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x14]
             ldr     w15, [x14, #0x0C]
             cmn     w15, #1
-            bge     G_M25445_IG07
-            b       G_M25445_IG03
-                       ;; size=64 bbWeight=2 PerfScore 54.00
+            blt     G_M25445_IG03
+                       ;; size=60 bbWeight=2 PerfScore 52.00
 G_M25445_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=4001 {x0 x14}, byref
             ldr     x15, [x14]
             ; gcrRegs +[x15]
@@ -103,7 +102,7 @@ G_M25445_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 196, prolog size 8, PerfScore 159.00, instruction count 49, allocated bytes for code 196 (MethodHash=60f49c9a) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)
+; Total bytes of code 192, prolog size 8, PerfScore 157.00, instruction count 48, allocated bytes for code 192 (MethodHash=60f49c9a) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -114,7 +113,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 49 (0x00031) Actual length = 196 (0x0000c4)
+  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+2.55%) : 42871.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (Tier1)

@@ -10,21 +10,21 @@
 ;
 ;  V00 this         [V00,T06] ( 11,  7   )     ref  ->  x20         this class-hnd single-def <System.Collections.Generic.Dictionary`2[int,int]>
 ;  V01 arg1         [V01,T05] (  6,  9   )     int  ->  x19         ld-addr-op single-def
-;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  x22        
+;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  registers  
 ;  V03 loc1         [V03,T20] (  3,  2   )   byref  ->   x0        
 ;  V04 loc2         [V04,T16] (  4,  3.50)     ref  ->  x21         class-hnd single-def <<unknown class>>
-;  V05 loc3         [V05,T13] (  5,  4   )     int  ->  x21        
-;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->   x0        
-;  V07 loc5         [V07,T10] (  3,  5   )     ref  ->   x1         class-hnd exact single-def <<unknown class>>
-;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->  x11        
-;  V09 loc7         [V09,T09] (  5,  6   )     int  ->  x24        
+;  V05 loc3         [V05,T13] (  5,  4   )     int  ->  x22        
+;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->  x21        
+;  V07 loc5         [V07,T10] (  3,  5   )     ref  ->  x23         class-hnd exact single-def <<unknown class>>
+;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->   x2        
+;  V09 loc7         [V09,T09] (  5,  6   )     int  ->  x27        
 ;  V10 loc8         [V10,T02] (  6, 13.50)     int  ->  x22        
 ;  V11 loc9         [V11,T11] (  3,  5   )     ref  ->  x20         class-hnd exact single-def <<unknown class>>
-;  V12 loc10        [V12,T04] (  4, 12.50)     int  ->  x25        
+;  V12 loc10        [V12,T04] (  4, 12.50)     int  ->  x23        
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp2         [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V16 tmp3         [V16,T23] (  3,  1.50)     ref  ->  x22         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V16 tmp3         [V16,T23] (  3,  1.50)     ref  ->  x21         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V17 tmp4         [V17,T14] (  4,  4   )     int  ->   x0         "Inlining Arg"
 ;  V18 tmp5         [V18,T21] (  2,  2   )    long  ->   x1         "Inlining Arg"
 ;  V19 tmp6         [V19,T18] (  4,  2   )     int  ->  x24         "Inline stloc first use temp"
@@ -36,37 +36,38 @@
 ;* V25 tmp12        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp13        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V27 tmp14        [V27    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V28 tmp15        [V28,T24] (  3,  1.50)     ref  ->  x22         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V28 tmp15        [V28,T24] (  3,  1.50)     ref  ->  x25         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V29 tmp16        [V29,T15] (  4,  4   )     int  ->   x0         "Inlining Arg"
 ;  V30 tmp17        [V30,T22] (  2,  2   )    long  ->   x1         "Inlining Arg"
-;  V31 tmp18        [V31,T19] (  4,  2   )     int  ->  x26         "Inline stloc first use temp"
+;  V31 tmp18        [V31,T19] (  4,  2   )     int  ->  x23         "Inline stloc first use temp"
 ;* V32 tmp19        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp20        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp21        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V35 cse0         [V35,T25] (  3,  1.50)     int  ->  x23         "CSE - moderate"
-;  V36 cse1         [V36,T26] (  3,  1.50)     int  ->  x25         "CSE - moderate"
-;  V37 cse2         [V37,T07] (  3,  8.50)     int  ->   x2         hoist "CSE - aggressive"
-;  V38 cse3         [V38,T08] (  3,  8.50)     int  ->  x26         hoist "CSE - aggressive"
+;  V36 cse1         [V36,T26] (  3,  1.50)     int  ->  x22         "CSE - moderate"
+;  V37 cse2         [V37,T07] (  3,  8.50)     int  ->  x24         hoist "CSE - aggressive"
+;  V38 cse3         [V38,T08] (  3,  8.50)     int  ->  x25         hoist "CSE - aggressive"
 ;  V39 cse4         [V39,T12] (  8,  4   )     ref  ->   x1         multi-def "CSE - aggressive"
-;  V40 cse5         [V40,T17] (  3,  3   )    long  ->  x23         "CSE - moderate"
+;  V40 cse5         [V40,T17] (  3,  3   )    long  ->  x26         "CSE - moderate"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M50607_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x50]!
-            stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
-            stp     x23, x24, [sp, #0x30]
-            stp     x25, x26, [sp, #0x40]
+            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]
             mov     fp, sp
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     w19, w1
-                       ;; size=32 bbWeight=1 PerfScore 6.50
+                       ;; size=36 bbWeight=1 PerfScore 7.50
 G_M50607_IG02:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [x20, #0x08]
             ; gcrRegs +[x0]
-            cbz     x0, G_M50607_IG16
+            cbz     x0, G_M50607_IG17
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M50607_IG03:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
@@ -91,14 +92,12 @@ G_M50607_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
             ldr     x21, [x20, #0x18]
             ; gcrRegs +[x21]
             cbnz    x21, G_M50607_IG09
-            sxtw    w21, w19
-            ; gcrRegs -[x21]
-            ldr     x22, [x20, #0x08]
-            ; gcrRegs +[x22]
-            ldr     w23, [x22, #0x08]
+            sxtw    w22, w19
+            ldr     x21, [x20, #0x08]
+            ldr     w23, [x21, #0x08]
             sxtw    w0, w23
             ldr     x1, [x20, #0x30]
-            mov     w2, w21
+            mov     w2, w22
             mul     x1, x1, x2
             lsr     x1, x1, #32
             add     x1, x1, #1
@@ -106,9 +105,9 @@ G_M50607_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
             mul     x1, x1, x2
             lsr     x24, x1, #32
             cmp     w0, #0
-            beq     G_M50607_IG18
-            udiv    w1, w21, w0
-            msub    w0, w1, w0, w21
+            beq     G_M50607_IG19
+            udiv    w1, w22, w0
+            msub    w0, w1, w0, w22
             cmp     w0, w24
             beq     G_M50607_IG05
             movz    x1, #8
@@ -124,75 +123,76 @@ G_M50607_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
             ; gcrRegs -[x0]
             ; gcr arg pop 0
                        ;; size=116 bbWeight=0.50 PerfScore 22.50
-G_M50607_IG05:        ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M50607_IG05:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
             cmp     w24, w23
-            bhs     G_M50607_IG17
-            add     x0, x22, #16
+            bhs     G_M50607_IG18
+            add     x0, x21, #16
             ; byrRegs +[x0]
-            ldr     w0, [x0, w24, UXTW #2]
-            ; byrRegs -[x0]
-            ldr     x1, [x20, #0x10]
-            ; gcrRegs +[x1]
-            mov     w11, wzr
-            sub     w0, w0, #1
-            ldr     w2, [x1, #0x08]
+            ldr     w21, [x0, w24, UXTW #2]
+            ; gcrRegs -[x21]
+            ldr     x23, [x20, #0x10]
+            ; gcrRegs +[x23]
+            mov     w2, wzr
+            sub     w21, w21, #1
+            ldr     w24, [x23, #0x08]
                        ;; size=32 bbWeight=0.50 PerfScore 6.00
-G_M50607_IG06:        ; bbWeight=4, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x20 x22]
-            cmp     w2, w0
-            bls     G_M50607_IG16
-            ubfiz   x0, x0, #4, #32
+G_M50607_IG06:        ; bbWeight=4, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x20]
+            ; byrRegs -[x0]
+            cmp     w24, w21
+            bls     G_M50607_IG17
+            ubfiz   x0, x21, #4, #32
             add     x0, x0, #16
-            add     x22, x1, x0
-            ; byrRegs +[x22]
-            ldr     w0, [x22]
+            add     x25, x23, x0
+            ; byrRegs +[x25]
+            ldr     w0, [x25]
             cmp     w0, w19
             bne     G_M50607_IG08
                        ;; size=32 bbWeight=4 PerfScore 32.00
-G_M50607_IG07:        ; bbWeight=2, gcrefRegs=0002 {x1}, byrefRegs=400000 {x22}, byref, isz
-            ldr     w0, [x22, #0x08]
-            cmp     w0, w21
-            beq     G_M50607_IG14
+G_M50607_IG07:        ; bbWeight=2, gcrefRegs=800000 {x23}, byrefRegs=2000000 {x25}, byref, isz
+            ldr     w0, [x25, #0x08]
+            cmp     w0, w22
+            beq     G_M50607_IG15
                        ;; size=12 bbWeight=2 PerfScore 9.00
-G_M50607_IG08:        ; bbWeight=4, gcrefRegs=0002 {x1}, byrefRegs=400000 {x22}, byref, isz
-            ldr     w0, [x22, #0x04]
-            add     w11, w11, #1
-            cmp     w2, w11
-            blo     G_M50607_IG19
+G_M50607_IG08:        ; bbWeight=4, gcrefRegs=800000 {x23}, byrefRegs=2000000 {x25}, byref, isz
+            ldr     w21, [x25, #0x04]
+            add     w2, w2, #1
+            cmp     w24, w2
+            blo     G_M50607_IG20
             b       G_M50607_IG06
                        ;; size=20 bbWeight=4 PerfScore 24.00
 G_M50607_IG09:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x1] +[x20-x21]
-            ; byrRegs -[x22]
+            ; gcrRegs -[x23] +[x20-x21]
+            ; byrRegs -[x25]
             mov     x0, x21
             ; gcrRegs +[x0]
             mov     w1, w19
-            movz    x23, #0xD1FFAB1E      // code for <unknown method>
-            movk    x23, #0xD1FFAB1E LSL #16
-            movk    x23, #0xD1FFAB1E LSL #32
-            mov     x11, x23
+            movz    x26, #0xD1FFAB1E      // code for <unknown method>
+            movk    x26, #0xD1FFAB1E LSL #16
+            movk    x26, #0xD1FFAB1E LSL #32
+            mov     x11, x26
             ldr     x2, [x11]
             blr     x2
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            sxtw    w24, w0
-            ldr     x22, [x20, #0x08]
-            ; gcrRegs +[x22]
-            ldr     w25, [x22, #0x08]
-            sxtw    w0, w25
+            sxtw    w27, w0
+            ldr     x25, [x20, #0x08]
+            ; gcrRegs +[x25]
+            ldr     w22, [x25, #0x08]
+            sxtw    w0, w22
             ldr     x1, [x20, #0x30]
-            mov     w2, w24
+            mov     w2, w27
             mul     x1, x1, x2
             lsr     x1, x1, #32
             add     x1, x1, #1
             mov     w2, w0
             mul     x1, x1, x2
-            lsr     x26, x1, #32
+            lsr     x23, x1, #32
             cmp     w0, #0
-            beq     G_M50607_IG18
-            udiv    w1, w24, w0
-            msub    w0, w1, w0, w24
-            cmp     w0, w26
+            beq     G_M50607_IG19
+            udiv    w1, w27, w0
+            msub    w0, w1, w0, w27
+            cmp     w0, w23
             beq     G_M50607_IG10
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
@@ -207,82 +207,89 @@ G_M50607_IG09:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=000
             ; gcrRegs -[x0]
             ; gcr arg pop 0
                        ;; size=140 bbWeight=0.50 PerfScore 24.00
-G_M50607_IG10:        ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
-            cmp     w26, w25
-            bhs     G_M50607_IG17
-            add     x1, x22, #16
+G_M50607_IG10:        ; bbWeight=0.50, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0000 {}, byref, isz
+            cmp     w23, w22
+            bhs     G_M50607_IG18
+            add     x1, x25, #16
             ; byrRegs +[x1]
-            ldr     w22, [x1, w26, UXTW #2]
...

+12 (+2.86%) : 44030.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)

@@ -10,20 +10,20 @@
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <LinqBenchmarks>
-;  V01 loc0         [V01,T21] (  2,  4   )     ref  ->  x22         class-hnd <System.Collections.Generic.List`1[Product]>
-;  V02 loc1         [V02,T17] (  3, 17   )     int  ->  x21        
-;  V03 loc2         [V03,T15] (  3, 24   )     int  ->  x20        
-;  V04 loc3         [V04,T07] (  9, 66   )     ref  ->  x19         class-hnd exact <System.Collections.Generic.List`1[Product]>
-;  V05 loc4         [V05,T23] (  4,  1.03)  struct (24) [fp+0xA0]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+;  V01 loc0         [V01,T22] (  2,  4   )     ref  ->  x22         class-hnd <System.Collections.Generic.List`1[Product]>
+;  V02 loc1         [V02,T18] (  3, 17   )     int  ->  x21        
+;  V03 loc2         [V03,T16] (  3, 24   )     int  ->  x20        
+;  V04 loc3         [V04,T08] (  9, 66   )     ref  ->  x19         class-hnd exact <System.Collections.Generic.List`1[Product]>
+;  V05 loc4         [V05,T24] (  4,  1.03)  struct (24) [fp+0xA0]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
 ;* V06 loc5         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Product>
-;  V07 loc6         [V07,T24] (  1,  1   )  struct (24) [fp+0x80]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+;  V07 loc6         [V07,T25] (  1,  1   )  struct (24) [fp+0x80]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
 ;* V08 loc7         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Product>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T19] (  3, 12   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[Product]>
-;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    "OSR entry state var"
+;  V10 tmp1         [V10,T20] (  3, 12   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[Product]>
+;  V11 tmp2         [V11,T06] (  3, 72.01)     int  ->  x23         "OSR entry state var"
 ;* V12 tmp3         [V12    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
-;  V13 tmp4         [V13,T14] (  3, 24   )     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V14 tmp5         [V14,T11] (  4, 32   )     int  ->  x26         "Inline stloc first use temp"
+;  V13 tmp4         [V13,T15] (  3, 24   )     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V14 tmp5         [V14,T12] (  4, 32   )     int  ->  x23         "Inline stloc first use temp"
 ;  V15 tmp6         [V15,T04] (  3, 80   )   ubyte  ->   x1         "Inline return value spill temp"
 ;* V16 tmp7         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
 ;* V17 tmp8         [V17    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
@@ -32,24 +32,24 @@
 ;* V20 tmp11        [V20    ] (  0,  0   )     ref  ->  zero-ref    "field V12._list (fldOffset=0x0)" P-INDEP
 ;* V21 tmp12        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V12._current (fldOffset=0x8)" P-INDEP
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V12._index (fldOffset=0x10)" P-INDEP
-;  V23 tmp14        [V23,T22] (  2,  4   )     int  ->  x25         "field V12._version (fldOffset=0x14)" P-INDEP
+;  V23 tmp14        [V23,T23] (  2,  4   )     int  ->  x26         "field V12._version (fldOffset=0x14)" P-INDEP
 ;* V24 tmp15        [V24    ] (  0,  0   )     ref  ->  zero-ref    "field V17._list (fldOffset=0x0)" P-INDEP
 ;* V25 tmp16        [V25    ] (  0,  0   )     ref  ->  zero-ref    "field V17._current (fldOffset=0x8)" P-INDEP
 ;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V17._index (fldOffset=0x10)" P-INDEP
-;* V27 tmp18        [V27,T18] (  0,  0   )     int  ->  zero-ref    "field V17._version (fldOffset=0x14)" P-INDEP
-;  V28 tmp19        [V28,T02] (  5, 82.01)     ref  ->  x23         "V05.[000..008)"
-;  V29 tmp20        [V29,T10] (  5, 40   )     ref  ->   x2         "V05.[008..016)"
-;  V30 tmp21        [V30,T08] (  8, 50.01)     int  ->  x24         "V05.[016..020)"
-;  V31 tmp22        [V31,T06] (  3, 66.01)     int  ->  x25         "V05.[020..024)"
+;* V27 tmp18        [V27,T19] (  0,  0   )     int  ->  zero-ref    "field V17._version (fldOffset=0x14)" P-INDEP
+;  V28 tmp19        [V28,T02] (  5, 82.01)     ref  ->  x24         "V05.[000..008)"
+;  V29 tmp20        [V29,T11] (  5, 40   )     ref  ->   x2         "V05.[008..016)"
+;  V30 tmp21        [V30,T09] (  8, 50.01)     int  ->  x25         "V05.[016..020)"
+;  V31 tmp22        [V31,T07] (  3, 66.01)     int  ->  x26         "V05.[020..024)"
 ;  V32 tmp23        [V32,T03] (  3, 80   )     ref  ->  x19         "V07.[000..008)"
 ;* V33 tmp24        [V33    ] (  0,  0   )     ref  ->  zero-ref    "V07.[008..016)"
 ;  V34 tmp25        [V34,T01] (  6,104   )     int  ->   x0         "V07.[016..020)"
-;* V35 tmp26        [V35,T20] (  0,  0   )     int  ->  zero-ref    "V07.[020..024)"
-;  V36 tmp27        [V36,T09] (  3, 48   )     ref  ->   x1         "arr expr"
-;  V37 tmp28        [V37,T13] (  2, 32   )     ref  ->   x1         "arr expr"
-;  V38 cse0         [V38,T12] (  2, 16   )     int  ->   x1         multi-def "CSE - aggressive"
-;  V39 cse1         [V39,T16] (  3, 24   )     int  ->   x1         "CSE - moderate"
-;  V40 cse2         [V40,T00] (  5,152   )     int  ->  x26         multi-def "CSE - aggressive"
+;* V35 tmp26        [V35,T21] (  0,  0   )     int  ->  zero-ref    "V07.[020..024)"
+;  V36 tmp27        [V36,T10] (  3, 48   )     ref  ->   x1         "arr expr"
+;  V37 tmp28        [V37,T14] (  2, 32   )     ref  ->   x1         "arr expr"
+;  V38 cse0         [V38,T13] (  2, 16   )     int  ->   x1         multi-def "CSE - aggressive"
+;  V39 cse1         [V39,T17] (  3, 24   )     int  ->   x1         "CSE - moderate"
+;  V40 cse2         [V40,T00] (  5,152   )     int  ->  registers   multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -67,13 +67,14 @@ G_M25128_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ; gcrRegs +[x19]
                        ;; size=36 bbWeight=0.01 PerfScore 0.12
 G_M25128_IG02:        ; bbWeight=0.01, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
-            ldr     x23, [fp, #0xA0]   // [V05 loc4]
-            ; gcrRegs +[x23]
-            ldp     w24, w25, [fp, #0xB0]  // [V05 loc4+0x10], [V05 loc4+0x14]
-            b       G_M25128_IG06
-                       ;; size=12 bbWeight=0.01 PerfScore 0.05
+            mov     w23, wzr
+            ldr     x24, [fp, #0xA0]   // [V05 loc4]
+            ; gcrRegs +[x24]
+            ldp     w25, w26, [fp, #0xB0]  // [V05 loc4+0x10], [V05 loc4+0x14]
+            b       G_M25128_IG04
+                       ;; size=16 bbWeight=0.01 PerfScore 0.06
 G_M25128_IG03:        ; bbWeight=2, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x19 x23]
+            ; gcrRegs -[x19 x24]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -87,33 +88,36 @@ G_M25128_IG03:        ; bbWeight=2, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, b
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             str     x0, [x19, #0x08]
-            ldr     w25, [x22, #0x14]
-            mov     x23, x22
-            ; gcrRegs +[x23]
-            mov     w24, wzr
-            b       G_M25128_IG06
-                       ;; size=52 bbWeight=2 PerfScore 21.00
-G_M25128_IG04:        ; bbWeight=8, gcrefRegs=C80004 {x2 x19 x22 x23}, byrefRegs=0000 {}, byref, isz
+            ldr     w26, [x22, #0x14]
+            mov     x24, x22
+            ; gcrRegs +[x24]
+            mov     w25, wzr
+                       ;; size=48 bbWeight=2 PerfScore 19.00
+G_M25128_IG04:        ; bbWeight=8, gcrefRegs=1480000 {x19 x22 x24}, byrefRegs=0000 {}, byref, isz
+            cbz     w23, G_M25128_IG07
+            b       G_M25128_IG07
+                       ;; size=8 bbWeight=8 PerfScore 16.00
+G_M25128_IG05:        ; bbWeight=8, gcrefRegs=1480004 {x2 x19 x22 x24}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x2]
             ldr     w1, [x2, #0x1C]
-            cbnz    w1, G_M25128_IG06
-            ldp     w26, w1, [x19, #0x10]
+            cbnz    w1, G_M25128_IG07
+            ldp     w23, w1, [x19, #0x10]
             add     w1, w1, #1
             str     w1, [x19, #0x14]
             ldr     x0, [x19, #0x08]
             ; gcrRegs +[x0]
             ldr     w1, [x0, #0x08]
-            cmp     w1, w26
-            bls     G_M25128_IG05
-            add     w1, w26, #1
+            cmp     w1, w23
+            bls     G_M25128_IG06
+            add     w1, w23, #1
             str     w1, [x19, #0x10]
-            sxtw    x1, w26
+            sxtw    x1, w23
             bl      CORINFO_HELP_ARRADDR_ST
             ; gcrRegs -[x0 x2]
             ; gcr arg pop 0
-            b       G_M25128_IG06
+            b       G_M25128_IG07
                        ;; size=56 bbWeight=8 PerfScore 160.00
-G_M25128_IG05:        ; bbWeight=8, gcrefRegs=C80004 {x2 x19 x22 x23}, byrefRegs=0000 {}, byref
+G_M25128_IG06:        ; bbWeight=8, gcrefRegs=1480004 {x2 x19 x22 x24}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x2]
             mov     x0, x19
             ; gcrRegs +[x0]
@@ -128,73 +132,74 @@ G_M25128_IG05:        ; bbWeight=8, gcrefRegs=C80004 {x2 x19 x22 x23}, byrefRegs
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
                        ;; size=28 bbWeight=8 PerfScore 52.00
-G_M25128_IG06:        ; bbWeight=64, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
-            ldr     w1, [x23, #0x14]
+G_M25128_IG07:        ; bbWeight=64, gcrefRegs=1480000 {x19 x22 x24}, byrefRegs=0000 {}, byref, isz
+            mov     w23, #1
+            ldr     w1, [x24, #0x14]
+            cmp     w26, w1
+            bne     G_M25128_IG21
+                       ;; size=16 bbWeight=64 PerfScore 320.00
+G_M25128_IG08:        ; bbWeight=8, gcrefRegs=1480000 {x19 x22 x24}, byrefRegs=0000 {}, byref, isz
+            ldr     w1, [x24, #0x10]
             cmp     w25, w1
-            bne     G_M25128_IG20
-                       ;; size=12 bbWeight=64 PerfScore 288.00
-G_M25128_IG07:        ; bbWeight=8, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
-            ldr     w1, [x23, #0x10]
-            cmp     w24, w1
-            bhs     G_M25128_IG08
-            ldr     x1, [x23, #0x08]
+            bhs     G_M25128_IG09
+            ldr     x1, [x24, #0x08]
             ; gcrRegs +[x1]
             ldr     w0, [x1, #0x08]
-            cmp     w24, w0
-            bhs     G_M25128_IG19
+            cmp     w25, w0
+            bhs     G_M25128_IG20
             add     x1, x1, #16
             ; gcrRegs -[x1]
             ; byrRegs +[x1]
-            ldr     x2, [x1, w24, UXTW #3]
+            ldr     x2, [x1, w25, UXTW #3]
             ; gcrRegs +[x2]
-            add     w24, w24, #1
+            add     w25, w25, #1
             mov     w1, #1
             ; byrRegs -[x1]
-            b       G_M25128_IG09
+            b       G_M25128_IG10
                        ;; size=48 bbWeight=8 PerfScore 140.00
-G_M25128_IG08:        ; bbWeight=8, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref
+G_M25128_IG09:        ; bbWeight=8, gcrefRegs=1480000 {x19 x22 x24}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
-            add     w24, w1, #1
+            add     w25, w1, #1
             mov     x2, xzr
             ; gcrRegs +[x2]
             mov     w1, wzr
                        ;; size=12 bbWeight=8 PerfScore 12.00
-G_M25128_IG09:        ; bbWeight=64, gcrefRegs=C80004 {x2 x19 x22 x23}, byrefRegs=0000 {}, byref, isz
-            cbnz    w1, G_M25128_IG04
+G_M25128_IG10:        ; bbWeight=64, gcrefRegs=1480004 {x2 x19 x22 x24}, byrefRegs=0000 {}, byref, isz
+            cbnz    w1, G_M25128_IG05
                        ;; size=4 bbWeight=64 PerfScore 64.00
-G_M25128_IG10:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2 x23]
+G_M25128_IG11:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x2 x24]
             ldr     wzr, [x19, #0x14]
             mov     w0, wzr
-            b       G_M25128_IG12
+            b       G_M25128_IG13
                        ;; size=12 bbWeight=8 PerfScore 36.00
-G_M25128_IG11:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+G_M25128_IG12:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
             add     w21, w21, #1
                        ;; size=4 bbWeight=8 PerfScore 4.00
-G_M25128_IG12:        ; bbWeight=64, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
-            ldr     w26, [x19, #0x10]
-            cmp     w0, w26
-            bhs     G_M25128_IG14
+G_M25128_IG13:        ; bbWeight=64, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+            ldr     w1, [x19, #0x10]
+            cmp     w0, w1
+            bhs     G_M25128_IG15
                        ;; size=12 bbWeight=64 PerfScore 288.00
-G_M25128_IG13:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M25128_IG14:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
             ldr     x1, [x19, #0x08]
             ; gcrRegs +[x1]
             ldr     w1, [x1, #0x08]
             ; gcrRegs -[x1]
             cmp     w0, w1
-            bhs     G_M25128_IG19
+            bhs     G_M25128_IG20
             add     w0, w0, #1
             mov     w1, #1
-            b       G_M25128_IG15
+            b       G_M25128_IG16
                        ;; size=28 bbWeight=8 PerfScore 76.00
-G_M25128_IG14:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
-            add     w0, w26, #1
+G_M25128_IG15:        ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+            add     w0, w1, #1
             mov     w1, wzr
                        ;; size=8 bbWeight=8 PerfScore 8.00
-G_M25128_IG15:        ; bbWeight=64, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
-            cbnz    w1, G_M25128_IG11
+G_M25128_IG16:        ; bbWeight=64, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+            cbnz    w1, G_M25128_IG12
                        ;; size=4 bbWeight=64 PerfScore 64.00
-G_M25128_IG16:        ; bbWeight=8, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
+G_M25128_IG17:        ; bbWeight=8, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x19]
             add     w20, w20, #1
             movz    w0, #0xD1FFAB1E
...

+24 (+3.77%) : 11597.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (Tier1)

@@ -10,21 +10,21 @@
 ;
 ;  V00 this         [V00,T06] ( 11,  7   )     ref  ->  x20         this class-hnd single-def <System.Collections.Generic.Dictionary`2[int,System.__Canon]>
 ;  V01 arg1         [V01,T05] (  6,  9   )     int  ->  x19         ld-addr-op single-def
-;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  x22        
-;  V03 loc1         [V03,T20] (  3,  2   )   byref  ->  x22        
+;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  [fp+0x10] 
+;  V03 loc1         [V03,T20] (  3,  2   )   byref  ->   x0        
 ;  V04 loc2         [V04,T16] (  4,  3.50)     ref  ->  x21         class-hnd single-def <<unknown class>>
-;  V05 loc3         [V05,T13] (  5,  4   )     int  ->  x21        
-;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->   x0        
-;  V07 loc5         [V07,T10] (  3,  5   )     ref  ->   x1         class-hnd exact single-def <<unknown class>>
-;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->  x11        
-;  V09 loc7         [V09,T09] (  5,  6   )     int  ->  x24        
+;  V05 loc3         [V05,T13] (  5,  4   )     int  ->  x22        
+;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->  x21        
+;  V07 loc5         [V07,T10] (  3,  5   )     ref  ->  x23         class-hnd exact single-def <<unknown class>>
+;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->   x2        
+;  V09 loc7         [V09,T09] (  5,  6   )     int  ->  x27        
 ;  V10 loc8         [V10,T02] (  6, 13.50)     int  ->  x22        
 ;  V11 loc9         [V11,T11] (  3,  5   )     ref  ->  x20         class-hnd exact single-def <<unknown class>>
-;  V12 loc10        [V12,T04] (  4, 12.50)     int  ->  x25        
+;  V12 loc10        [V12,T04] (  4, 12.50)     int  ->  x23        
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp2         [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V16 tmp3         [V16,T23] (  3,  1.50)     ref  ->  x22         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V16 tmp3         [V16,T23] (  3,  1.50)     ref  ->  x21         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V17 tmp4         [V17,T14] (  4,  4   )     int  ->   x0         "Inlining Arg"
 ;  V18 tmp5         [V18,T21] (  2,  2   )    long  ->   x1         "Inlining Arg"
 ;  V19 tmp6         [V19,T18] (  4,  2   )     int  ->  x24         "Inline stloc first use temp"
@@ -36,37 +36,38 @@
 ;* V25 tmp12        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp13        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V27 tmp14        [V27    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V28 tmp15        [V28,T24] (  3,  1.50)     ref  ->  x22         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V28 tmp15        [V28,T24] (  3,  1.50)     ref  ->  x25         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V29 tmp16        [V29,T15] (  4,  4   )     int  ->   x0         "Inlining Arg"
 ;  V30 tmp17        [V30,T22] (  2,  2   )    long  ->   x1         "Inlining Arg"
-;  V31 tmp18        [V31,T19] (  4,  2   )     int  ->  x26         "Inline stloc first use temp"
+;  V31 tmp18        [V31,T19] (  4,  2   )     int  ->  x23         "Inline stloc first use temp"
 ;* V32 tmp19        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp20        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp21        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V35 cse0         [V35,T25] (  3,  1.50)     int  ->  x23         "CSE - moderate"
-;  V36 cse1         [V36,T26] (  3,  1.50)     int  ->  x25         "CSE - moderate"
-;  V37 cse2         [V37,T07] (  3,  8.50)     int  ->   x2         hoist "CSE - aggressive"
-;  V38 cse3         [V38,T08] (  3,  8.50)     int  ->  x26         hoist "CSE - aggressive"
+;  V36 cse1         [V36,T26] (  3,  1.50)     int  ->  x22         "CSE - moderate"
+;  V37 cse2         [V37,T07] (  3,  8.50)     int  ->  x24         hoist "CSE - aggressive"
+;  V38 cse3         [V38,T08] (  3,  8.50)     int  ->  x25         hoist "CSE - aggressive"
 ;  V39 cse4         [V39,T12] (  8,  4   )     ref  ->   x1         multi-def "CSE - aggressive"
-;  V40 cse5         [V40,T17] (  3,  3   )    long  ->  x23         "CSE - moderate"
+;  V40 cse5         [V40,T17] (  3,  3   )    long  ->  x26         "CSE - moderate"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M7866_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x50]!
-            stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
-            stp     x23, x24, [sp, #0x30]
-            stp     x25, x26, [sp, #0x40]
+            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]
             mov     fp, sp
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     w19, w1
-                       ;; size=32 bbWeight=1 PerfScore 6.50
+                       ;; size=36 bbWeight=1 PerfScore 7.50
 G_M7866_IG02:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [x20, #0x08]
             ; gcrRegs +[x0]
-            cbz     x0, G_M7866_IG17
+            cbz     x0, G_M7866_IG18
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M7866_IG03:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
@@ -91,14 +92,12 @@ G_M7866_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {},
             ldr     x21, [x20, #0x18]
             ; gcrRegs +[x21]
             cbnz    x21, G_M7866_IG09
-            sxtw    w21, w19
-            ; gcrRegs -[x21]
-            ldr     x22, [x20, #0x08]
-            ; gcrRegs +[x22]
-            ldr     w23, [x22, #0x08]
+            sxtw    w22, w19
+            ldr     x21, [x20, #0x08]
+            ldr     w23, [x21, #0x08]
             sxtw    w0, w23
             ldr     x1, [x20, #0x30]
-            mov     w2, w21
+            mov     w2, w22
             mul     x1, x1, x2
             lsr     x1, x1, #32
             add     x1, x1, #1
@@ -106,9 +105,9 @@ G_M7866_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {},
             mul     x1, x1, x2
             lsr     x24, x1, #32
             cmp     w0, #0
-            beq     G_M7866_IG19
-            udiv    w1, w21, w0
-            msub    w0, w1, w0, w21
+            beq     G_M7866_IG20
+            udiv    w1, w22, w0
+            msub    w0, w1, w0, w22
             cmp     w0, w24
             beq     G_M7866_IG05
             movz    x1, #8
@@ -124,76 +123,77 @@ G_M7866_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {},
             ; gcrRegs -[x0]
             ; gcr arg pop 0
                        ;; size=116 bbWeight=0.50 PerfScore 22.50
-G_M7866_IG05:        ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M7866_IG05:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
             cmp     w24, w23
-            bhs     G_M7866_IG18
-            add     x0, x22, #16
+            bhs     G_M7866_IG19
+            add     x0, x21, #16
             ; byrRegs +[x0]
-            ldr     w0, [x0, w24, UXTW #2]
-            ; byrRegs -[x0]
-            ldr     x1, [x20, #0x10]
-            ; gcrRegs +[x1]
-            mov     w11, wzr
-            sub     w0, w0, #1
-            ldr     w2, [x1, #0x08]
+            ldr     w21, [x0, w24, UXTW #2]
+            ; gcrRegs -[x21]
+            ldr     x23, [x20, #0x10]
+            ; gcrRegs +[x23]
+            mov     w2, wzr
+            sub     w21, w21, #1
+            ldr     w24, [x23, #0x08]
                        ;; size=32 bbWeight=0.50 PerfScore 6.00
-G_M7866_IG06:        ; bbWeight=4, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x20 x22]
-            cmp     w2, w0
-            bls     G_M7866_IG17
-            mov     w3, #24
-            mov     x4, #16
-            umaddl  x0, w0, w3, x4
-            add     x22, x1, x0
-            ; byrRegs +[x22]
-            ldr     w0, [x22, #0x08]
+G_M7866_IG06:        ; bbWeight=4, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x20]
+            ; byrRegs -[x0]
+            cmp     w24, w21
+            bls     G_M7866_IG18
+            mov     w0, #24
+            mov     x1, #16
+            umaddl  x0, w21, w0, x1
+            add     x25, x23, x0
+            ; byrRegs +[x25]
+            ldr     w0, [x25, #0x08]
             cmp     w0, w19
             bne     G_M7866_IG08
                        ;; size=36 bbWeight=4 PerfScore 50.00
-G_M7866_IG07:        ; bbWeight=2, gcrefRegs=0002 {x1}, byrefRegs=400000 {x22}, byref, isz
-            ldr     w0, [x22, #0x10]
-            cmp     w0, w21
-            beq     G_M7866_IG14
+G_M7866_IG07:        ; bbWeight=2, gcrefRegs=800000 {x23}, byrefRegs=2000000 {x25}, byref, isz
+            ldr     w0, [x25, #0x10]
+            cmp     w0, w22
+            beq     G_M7866_IG16
                        ;; size=12 bbWeight=2 PerfScore 9.00
-G_M7866_IG08:        ; bbWeight=4, gcrefRegs=0002 {x1}, byrefRegs=400000 {x22}, byref, isz
-            ldr     w0, [x22, #0x0C]
-            add     w11, w11, #1
-            cmp     w2, w11
-            blo     G_M7866_IG20
+G_M7866_IG08:        ; bbWeight=4, gcrefRegs=800000 {x23}, byrefRegs=2000000 {x25}, byref, isz
+            ldr     w21, [x25, #0x0C]
+            add     w2, w2, #1
+            cmp     w24, w2
+            blo     G_M7866_IG21
             b       G_M7866_IG06
                        ;; size=20 bbWeight=4 PerfScore 24.00
 G_M7866_IG09:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x1] +[x20-x21]
-            ; byrRegs -[x22]
+            ; gcrRegs -[x23] +[x20-x21]
+            ; byrRegs -[x25]
             mov     x0, x21
             ; gcrRegs +[x0]
             mov     w1, w19
-            movz    x23, #0xD1FFAB1E      // code for <unknown method>
-            movk    x23, #0xD1FFAB1E LSL #16
-            movk    x23, #0xD1FFAB1E LSL #32
-            mov     x11, x23
+            movz    x26, #0xD1FFAB1E      // code for <unknown method>
+            movk    x26, #0xD1FFAB1E LSL #16
+            movk    x26, #0xD1FFAB1E LSL #32
+            mov     x11, x26
             ldr     x2, [x11]
             blr     x2
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            sxtw    w24, w0
-            ldr     x22, [x20, #0x08]
-            ; gcrRegs +[x22]
-            ldr     w25, [x22, #0x08]
-            sxtw    w0, w25
+            sxtw    w27, w0
+            ldr     x25, [x20, #0x08]
+            ; gcrRegs +[x25]
+            ldr     w22, [x25, #0x08]
+            sxtw    w0, w22
             ldr     x1, [x20, #0x30]
-            mov     w2, w24
+            mov     w2, w27
             mul     x1, x1, x2
             lsr     x1, x1, #32
             add     x1, x1, #1
             mov     w2, w0
             mul     x1, x1, x2
-            lsr     x26, x1, #32
+            lsr     x23, x1, #32
             cmp     w0, #0
-            beq     G_M7866_IG19
-            udiv    w1, w24, w0
-            msub    w0, w1, w0, w24
-            cmp     w0, w26
+            beq     G_M7866_IG20
+            udiv    w1, w27, w0
+            msub    w0, w1, w0, w27
+            cmp     w0, w23
             beq     G_M7866_IG10
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
@@ -208,84 +208,100 @@ G_M7866_IG09:        ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000
             ; gcrRegs -[x0]
             ; gcr arg pop 0
                        ;; size=140 bbWeight=0.50 PerfScore 24.00
-G_M7866_IG10:        ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
-            cmp     w26, w25
-            bhs     G_M7866_IG18
-            add     x1, x22, #16
+G_M7866_IG10:        ; bbWeight=0.50, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=0000 {}, byref, isz
+            cmp     w23, w22
...

coreclr_tests.run.windows.arm64.checked.mch

-12 (-8.33%) : 495466.dasm - BufferMemmoveUnrolling+<>c:b_02(ubyte[],ubyte[]):this (FullOpts)

@@ -9,8 +9,8 @@
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <BufferMemmoveUnrolling+<>c>
-;  V01 arg1         [V01,T01] (  5,  4.00)     ref  ->   x1         class-hnd single-def <ubyte[]>
-;  V02 arg2         [V02,T00] (  5,  5   )     ref  ->   x2         class-hnd single-def <ubyte[]>
+;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->   x1         class-hnd single-def <ubyte[]>
+;  V02 arg2         [V02,T01] (  5,  5   )     ref  ->   x2         class-hnd single-def <ubyte[]>
 ;* V03 loc0         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[ubyte]>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
@@ -24,10 +24,10 @@
 ;* V13 tmp9         [V13    ] (  0,  0   )     int  ->  zero-ref    single-def "field V03._length (fldOffset=0x8)" P-INDEP
 ;* V14 tmp10        [V14    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V15 tmp11        [V15    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
-;  V16 tmp12        [V16,T02] (  2,  2.00)   byref  ->  x19         single-def "field V06._reference (fldOffset=0x0)" P-INDEP
+;  V16 tmp12        [V16,T04] (  2,  2.00)   byref  ->  x19         single-def "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V17 tmp13        [V17    ] (  0,  0   )     int  ->  zero-ref    single-def "field V06._length (fldOffset=0x8)" P-INDEP
-;  V18 tmp14        [V18,T03] (  3,  1.50)   byref  ->  x20         "field V07._reference (fldOffset=0x0)" P-INDEP
-;  V19 tmp15        [V19,T04] (  3,  1.50)     int  ->  x21         "field V07._length (fldOffset=0x8)" P-INDEP
+;  V18 tmp14        [V18,T03] (  3,  2   )   byref  ->  x20         "field V07._reference (fldOffset=0x0)" P-INDEP
+;  V19 tmp15        [V19,T02] (  4,  2   )     int  ->  x21         "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V20 tmp16        [V20    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V21 tmp17        [V21    ] (  0,  0   )     int  ->  zero-ref    single-def "field V08._length (fldOffset=0x8)" P-INDEP
 ;
@@ -41,10 +41,35 @@ G_M5178_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=16 bbWeight=1 PerfScore 3.50
 G_M5178_IG02:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1-x2]
-            cbnz    x2, G_M5178_IG04
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M5178_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x1-x2]
+            cbz     x2, G_M5178_IG07
+            ldr     w0, [x2, #0x08]
+            cbz     w0, G_M5178_IG07
+                       ;; size=12 bbWeight=1 PerfScore 5.00
+G_M5178_IG03:        ; bbWeight=1.00, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+            add     x19, x2, #16
+            ; byrRegs +[x19]
+            cbz     x1, G_M5178_IG08
+                       ;; size=8 bbWeight=1.00 PerfScore 1.50
+G_M5178_IG04:        ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=80000 {x19}, byref, isz
+            ; gcrRegs -[x2]
+            add     x20, x1, #16
+            ; byrRegs +[x20]
+            ldr     w21, [x1, #0x08]
+            cbz     w21, G_M5178_IG09
+                       ;; size=12 bbWeight=1 PerfScore 4.50
+G_M5178_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
+            ; gcrRegs -[x1]
+            ldrb    w0, [x19]
+            strb    w0, [x20]
+                       ;; size=8 bbWeight=1 PerfScore 4.00
+G_M5178_IG06:        ; bbWeight=1, epilog, nogc, extend
+            ldr     x21, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x30
+            ret     lr
+                       ;; size=16 bbWeight=1 PerfScore 5.00
+G_M5178_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; byrRegs -[x19-x20]
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -52,24 +77,14 @@ G_M5178_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             blr     x0
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M5178_IG04:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x1-x2]
-            ldr     w0, [x2, #0x08]
-            cbz     w0, G_M5178_IG03
-            b       G_M5178_IG09
-                       ;; size=12 bbWeight=1 PerfScore 5.00
-G_M5178_IG05:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=80000 {x19}, byref
-            ; gcrRegs -[x2]
+G_M5178_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             ; byrRegs +[x19]
-            add     x20, x1, #16
+            mov     x20, xzr
             ; byrRegs +[x20]
-            ldr     w21, [x1, #0x08]
-                       ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M5178_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
-            ; gcrRegs -[x1]
-            cbnz    w21, G_M5178_IG08
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M5178_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            mov     w21, wzr
+            cbnz    w21, G_M5178_IG05
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M5178_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; byrRegs -[x19-x20]
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
             movk    x0, #0xD1FFAB1E LSL #16
@@ -78,37 +93,8 @@ G_M5178_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             blr     x0
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M5178_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
-            ; byrRegs +[x19-x20]
-            ldrb    w0, [x19]
-            strb    w0, [x20]
-            b       G_M5178_IG10
-                       ;; size=12 bbWeight=1 PerfScore 5.00
-G_M5178_IG09:        ; bbWeight=1.00, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x1-x2]
-            ; byrRegs -[x19-x20]
-            add     x19, x2, #16
-            ; byrRegs +[x19]
-            cbz     x1, G_M5178_IG11
-            b       G_M5178_IG05
-                       ;; size=12 bbWeight=1.00 PerfScore 2.50
-G_M5178_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x1-x2]
-            ; byrRegs -[x19]
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
-            ret     lr
-                       ;; size=16 bbWeight=1 PerfScore 5.00
-G_M5178_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, gcvars, byref
-            ; byrRegs +[x19]
-            mov     x20, xzr
-            ; byrRegs +[x20]
-            mov     w21, wzr
-            b       G_M5178_IG06
-                       ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 144, prolog size 16, PerfScore 24.75, instruction count 36, allocated bytes for code 144 (MethodHash=7030ebc5) for method BufferMemmoveUnrolling+<>c:<TestEntryPoint>b__0_2(ubyte[],ubyte[]):this (FullOpts)
+; Total bytes of code 132, prolog size 16, PerfScore 23.50, instruction count 33, allocated bytes for code 132 (MethodHash=7030ebc5) for method BufferMemmoveUnrolling+<>c:<TestEntryPoint>b__0_2(ubyte[],ubyte[]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -119,7 +105,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 36 (0x00024) Actual length = 144 (0x000090)
+  Function Length   : 33 (0x00021) Actual length = 132 (0x000084)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-44 (-7.38%) : 518364.dasm - HelloWorld:Main():int (FullOpts)

@@ -44,21 +44,19 @@
 ;  V33 cse1         [V33,T11] (  3,  1.40)     int  ->   x2         "CSE - moderate"
 ;  V34 cse2         [V34,T12] (  3,  1.40)     int  ->   x2         "CSE - moderate"
 ;  V35 cse3         [V35,T13] (  3,  1.40)     int  ->   x2         "CSE - moderate"
-;  V36 cse4         [V36,T07] (  3,  1.50)     ref  ->  x24         "CSE - moderate"
-;  V37 cse5         [V37,T08] (  3,  1.50)     ref  ->  x25         "CSE - moderate"
+;  V36 cse4         [V36,T07] (  3,  1.50)     ref  ->   x1         "CSE - moderate"
+;  V37 cse5         [V37,T08] (  3,  1.50)     ref  ->   x1         "CSE - moderate"
 ;  V38 cse6         [V38,T09] (  3,  1.50)     ref  ->   x1         "CSE - moderate"
-;  V39 cse7         [V39,T04] (  3,  2.50)     ref  ->  x23         "CSE - aggressive"
+;  V39 cse7         [V39,T04] (  3,  2.50)     ref  ->   x1         "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M1987_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x50]!
-            stp     x19, x20, [sp, #0x18]
-            stp     x21, x22, [sp, #0x28]
-            stp     x23, x24, [sp, #0x38]
-            str     x25, [sp, #0x48]
+            stp     fp, lr, [sp, #-0x30]!
+            stp     x19, x20, [sp, #0x10]
+            stp     x21, x22, [sp, #0x20]
             mov     fp, sp
-                       ;; size=24 bbWeight=1 PerfScore 5.50
+                       ;; size=16 bbWeight=1 PerfScore 3.50
 G_M1987_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             movz    x0, #0xD1FFAB1E      // code for HelloWorld:StepAB_1():System.String
             movk    x0, #0xD1FFAB1E LSL #16
@@ -126,67 +124,121 @@ G_M1987_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ldr     x1, [x1]
             blr     x1
             ; gcrRegs -[x0]
-            movz    x23, #0xD1FFAB1E
-            movk    x23, #0xD1FFAB1E LSL #16
-            movk    x23, #0xD1FFAB1E LSL #32
-            cmp     x19, x23
-            beq     G_M1987_IG05
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x19, x1
+            beq     G_M1987_IG06
                        ;; size=212 bbWeight=1 PerfScore 51.00
-G_M1987_IG03:        ; bbWeight=0.45, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x23]
-            cbz     x19, G_M1987_IG22
+G_M1987_IG03:        ; bbWeight=0.45, gcrefRegs=780002 {x1 x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x1]
+            cbz     x19, G_M1987_IG19
                        ;; size=4 bbWeight=0.45 PerfScore 0.45
-G_M1987_IG04:        ; bbWeight=0.45, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, byrefRegs=0000 {}, byref
-            b       G_M1987_IG15
-                       ;; size=4 bbWeight=0.45 PerfScore 0.45
-G_M1987_IG05:        ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x19 x23]
-            movz    x24, #0xD1FFAB1E
-            movk    x24, #0xD1FFAB1E LSL #16
-            movk    x24, #0xD1FFAB1E LSL #32
-            cmp     x20, x24
-            beq     G_M1987_IG08
+G_M1987_IG04:        ; bbWeight=0.45, gcrefRegs=780002 {x1 x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+            ldr     w2, [x19, #0x08]
+            cmp     w2, #21
+            bne     G_M1987_IG19
+                       ;; size=12 bbWeight=0.45 PerfScore 2.02
+G_M1987_IG05:        ; bbWeight=0.50, gcrefRegs=780002 {x1 x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+            add     x0, x19, #12
+            ; byrRegs +[x0]
+            lsl     w2, w2, #1
+            mov     w2, w2
+            add     x1, x1, #12
+            ; gcrRegs -[x1]
+            ; byrRegs +[x1]
+            movz    x3, #0xD1FFAB1E      // code for <unknown method>
+            movk    x3, #0xD1FFAB1E LSL #16
+            movk    x3, #0xD1FFAB1E LSL #32
+            ldr     x3, [x3]
+            blr     x3
+            ; gcrRegs -[x19]
+            ; byrRegs -[x0-x1]
+            cbz     w0, G_M1987_IG19
+                       ;; size=40 bbWeight=0.50 PerfScore 4.50
+G_M1987_IG06:        ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x20, x1
+            beq     G_M1987_IG10
                        ;; size=20 bbWeight=0.50 PerfScore 1.50
-G_M1987_IG06:        ; bbWeight=0.45, gcrefRegs=1700000 {x20 x21 x22 x24}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x24]
-            cbz     x20, G_M1987_IG22
+G_M1987_IG07:        ; bbWeight=0.45, gcrefRegs=700002 {x1 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x1]
+            cbz     x20, G_M1987_IG19
                        ;; size=4 bbWeight=0.45 PerfScore 0.45
-G_M1987_IG07:        ; bbWeight=0.45, gcrefRegs=1700000 {x20 x21 x22 x24}, byrefRegs=0000 {}, byref
-            b       G_M1987_IG19
-                       ;; size=4 bbWeight=0.45 PerfScore 0.45
-G_M1987_IG08:        ; bbWeight=0.50, gcrefRegs=600000 {x21 x22}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x20 x24]
-            movz    x25, #0xD1FFAB1E
-            movk    x25, #0xD1FFAB1E LSL #16
-            movk    x25, #0xD1FFAB1E LSL #32
-            cmp     x21, x25
-            beq     G_M1987_IG11
+G_M1987_IG08:        ; bbWeight=0.45, gcrefRegs=700002 {x1 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+            ldr     w2, [x20, #0x08]
+            cmp     w2, #21
+            bne     G_M1987_IG19
+                       ;; size=12 bbWeight=0.45 PerfScore 2.02
+G_M1987_IG09:        ; bbWeight=0.50, gcrefRegs=700002 {x1 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+            add     x0, x20, #12
+            ; byrRegs +[x0]
+            lsl     w2, w2, #1
+            mov     w2, w2
+            add     x1, x1, #12
+            ; gcrRegs -[x1]
+            ; byrRegs +[x1]
+            movz    x3, #0xD1FFAB1E      // code for <unknown method>
+            movk    x3, #0xD1FFAB1E LSL #16
+            movk    x3, #0xD1FFAB1E LSL #32
+            ldr     x3, [x3]
+            blr     x3
+            ; gcrRegs -[x20]
+            ; byrRegs -[x0-x1]
+            cbz     w0, G_M1987_IG19
+                       ;; size=40 bbWeight=0.50 PerfScore 4.50
+G_M1987_IG10:        ; bbWeight=0.50, gcrefRegs=600000 {x21 x22}, byrefRegs=0000 {}, byref, isz
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x21, x1
+            beq     G_M1987_IG14
                        ;; size=20 bbWeight=0.50 PerfScore 1.50
-G_M1987_IG09:        ; bbWeight=0.45, gcrefRegs=2600000 {x21 x22 x25}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x25]
-            cbz     x21, G_M1987_IG22
+G_M1987_IG11:        ; bbWeight=0.45, gcrefRegs=600002 {x1 x21 x22}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x1]
+            cbz     x21, G_M1987_IG19
                        ;; size=4 bbWeight=0.45 PerfScore 0.45
-G_M1987_IG10:        ; bbWeight=0.45, gcrefRegs=2600000 {x21 x22 x25}, byrefRegs=0000 {}, byref
-            b       G_M1987_IG17
-                       ;; size=4 bbWeight=0.45 PerfScore 0.45
-G_M1987_IG11:        ; bbWeight=0.50, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x21 x25]
+G_M1987_IG12:        ; bbWeight=0.45, gcrefRegs=600002 {x1 x21 x22}, byrefRegs=0000 {}, byref, isz
+            ldr     w2, [x21, #0x08]
+            cmp     w2, #22
+            bne     G_M1987_IG19
+                       ;; size=12 bbWeight=0.45 PerfScore 2.02
+G_M1987_IG13:        ; bbWeight=0.50, gcrefRegs=600002 {x1 x21 x22}, byrefRegs=0000 {}, byref, isz
+            add     x0, x21, #12
+            ; byrRegs +[x0]
+            lsl     w2, w2, #1
+            mov     w2, w2
+            add     x1, x1, #12
+            ; gcrRegs -[x1]
+            ; byrRegs +[x1]
+            movz    x3, #0xD1FFAB1E      // code for <unknown method>
+            movk    x3, #0xD1FFAB1E LSL #16
+            movk    x3, #0xD1FFAB1E LSL #32
+            ldr     x3, [x3]
+            blr     x3
+            ; gcrRegs -[x21]
+            ; byrRegs -[x0-x1]
+            cbz     w0, G_M1987_IG19
+                       ;; size=40 bbWeight=0.50 PerfScore 4.50
+G_M1987_IG14:        ; bbWeight=0.50, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             cmp     x22, x1
-            beq     G_M1987_IG21
+            beq     G_M1987_IG18
                        ;; size=20 bbWeight=0.50 PerfScore 1.50
-G_M1987_IG12:        ; bbWeight=0.45, gcrefRegs=400002 {x1 x22}, byrefRegs=0000 {}, byref, isz
+G_M1987_IG15:        ; bbWeight=0.45, gcrefRegs=400002 {x1 x22}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
-            cbz     x22, G_M1987_IG22
+            cbz     x22, G_M1987_IG19
                        ;; size=4 bbWeight=0.45 PerfScore 0.45
-G_M1987_IG13:        ; bbWeight=0.45, gcrefRegs=400002 {x1 x22}, byrefRegs=0000 {}, byref, isz
+G_M1987_IG16:        ; bbWeight=0.45, gcrefRegs=400002 {x1 x22}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x22, #0x08]
             cmp     w2, #22
-            bne     G_M1987_IG22
+            bne     G_M1987_IG19
                        ;; size=12 bbWeight=0.45 PerfScore 2.02
-G_M1987_IG14:        ; bbWeight=0.50, gcrefRegs=400002 {x1 x22}, byrefRegs=0000 {}, byref, isz
+G_M1987_IG17:        ; bbWeight=0.50, gcrefRegs=400002 {x1 x22}, byrefRegs=0000 {}, byref, isz
             add     x0, x22, #12
             ; byrRegs +[x0]
             lsl     w2, w2, #1
@@ -204,107 +256,34 @@ G_M1987_IG14:        ; bbWeight=0.50, gcrefRegs=400002 {x1 x22}, byrefRegs=0000
             cmp     w0, #0
             cset    x0, eq
             tst     w0, #255
-            bne     G_M1987_IG22
-            b       G_M1987_IG21
-                       ;; size=56 bbWeight=0.50 PerfScore 5.75
-G_M1987_IG15:        ; bbWeight=0.45, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x19-x23]
-            ldr     w2, [x19, #0x08]
-            cmp     w2, #21
-            bne     G_M1987_IG22
-                       ;; size=12 bbWeight=0.45 PerfScore 2.02
-G_M1987_IG16:        ; bbWeight=0.50, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, byrefRegs=0000 {}, byref, isz
-            add     x0, x19, #12
-            ; byrRegs +[x0]
-            lsl     w2, w2, #1
-            mov     w2, w2
-            add     x1, x23, #12
-            ; byrRegs +[x1]
-            movz    x3, #0xD1FFAB1E      // code for <unknown method>
-            movk    x3, #0xD1FFAB1E LSL #16
-            movk    x3, #0xD1FFAB1E LSL #32
-            ldr     x3, [x3]
-            blr     x3
-            ; gcrRegs -[x19 x23]
-            ; byrRegs -[x0-x1]
-            cbz     w0, G_M1987_IG22
-            b       G_M1987_IG05
-                       ;; size=44 bbWeight=0.50 PerfScore 5.00
-G_M1987_IG17:        ; bbWeight=0.45, gcrefRegs=2600000 {x21 x22 x25}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x20] +[x25]
-            ldr     w2, [x21, #0x08]
-            cmp     w2, #22
-            bne     G_M1987_IG22
-                       ;; size=12 bbWeight=0.45 PerfScore 2.02
-G_M1987_IG18:        ; bbWeight=0.50, gcrefRegs=2600000 {x21 x22 x25}, byrefRegs=0000 {}, byref, isz
-            add     x0, x21, #12
-            ; byrRegs +[x0]
-            lsl     w2, w2, #1
-            mov     w2, w2
-            add     x1, x25, #12
-            ; byrRegs +[x1]
-            movz    x3, #0xD1FFAB1E      // code for <unknown method>
-            movk    x3, #0xD1FFAB1E LSL #16
-            movk    x3, #0xD1FFAB1E LSL #32
-            ldr     x3, [x3]
-            blr     x3
-            ; gcrRegs -[x21 x25]
-            ; byrRegs -[x0-x1]
-            cbz     w0, G_M1987_IG22
-            b       G_M1987_IG11
-                       ;; size=44 bbWeight=0.50 PerfScore 5.00
...

-12 (-7.32%) : 1487.dasm - System.Threading.PortableThreadPool+WorkerThread:TakeActiveRequest(System.Threading.PortableThreadPool):ubyte (Instrumented Tier1)

@@ -8,10 +8,11 @@
 ; with Static PGO: edge weights are valid, and fgCalledCount is 37220
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  4,  3.87)     ref  ->  x19         class-hnd single-def <System.Threading.PortableThreadPool>
+;  V00 arg0         [V00,T01] (  3,  3   )     ref  ->   x0         class-hnd single-def <System.Threading.PortableThreadPool>
 ;  V01 loc0         [V01,T00] (  7,  6.60)     int  ->  x20        
-;  V02 loc1         [V02,T02] (  3,  2.74)     int  ->  x21        
+;  V02 loc1         [V02,T03] (  3,  2.74)     int  ->  x21        
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V04 cse0         [V04,T02] (  3,  2.87)   byref  ->  x19         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -20,45 +21,25 @@ G_M49425_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     x19, x20, [sp, #0x18]
             str     x21, [sp, #0x28]
             mov     fp, sp
-            mov     x19, x0
-            ; gcrRegs +[x19]
-                       ;; size=20 bbWeight=1 PerfScore 4.00
-G_M49425_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
-            add     x0, x19, #0xD1FFAB1E
-            ; byrRegs +[x0]
-            ldapr   w20, [x0]
+                       ;; size=16 bbWeight=1 PerfScore 3.50
+G_M49425_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x0]
+            add     x19, x0, #0xD1FFAB1E
+            ; byrRegs +[x19]
+            ldapr   w20, [x19]
             cmp     w20, #0
-            bgt     G_M49425_IG05
+            ble     G_M49425_IG07
                        ;; size=16 bbWeight=1 PerfScore 5.00
-G_M49425_IG03:        ; bbWeight=0.14, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x19]
-            ; byrRegs -[x0]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            bl      CORINFO_HELP_COUNTPROFILE32
-            ; gcr arg pop 0
-            mov     w0, wzr
-                       ;; size=20 bbWeight=0.14 PerfScore 0.41
-G_M49425_IG04:        ; bbWeight=0.14, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
-            ret     lr
-                       ;; size=16 bbWeight=0.14 PerfScore 0.69
-G_M49425_IG05:        ; bbWeight=0.87, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x19]
-            add     x0, x19, #0xD1FFAB1E
-            ; byrRegs +[x0]
-            sub     w1, w20, #1
+G_M49425_IG03:        ; bbWeight=0.87, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+            ; gcrRegs -[x0]
+            sub     w0, w20, #1
             mov     w21, w20
-            casal   w21, w1, [x0]
+            casal   w21, w0, [x19]
             cmp     w21, w20
-            bne     G_M49425_IG08
-                       ;; size=24 bbWeight=0.87 PerfScore 5.20
-G_M49425_IG06:        ; bbWeight=0.86, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x19]
-            ; byrRegs -[x0]
+            bne     G_M49425_IG06
+                       ;; size=20 bbWeight=0.87 PerfScore 4.76
+G_M49425_IG04:        ; bbWeight=0.86, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; byrRegs -[x19]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -66,14 +47,14 @@ G_M49425_IG06:        ; bbWeight=0.86, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ; gcr arg pop 0
             mov     w0, #1
                        ;; size=20 bbWeight=0.86 PerfScore 2.59
-G_M49425_IG07:        ; bbWeight=0.86, epilog, nogc, extend
+G_M49425_IG05:        ; bbWeight=0.86, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=16 bbWeight=0.86 PerfScore 4.31
-G_M49425_IG08:        ; bbWeight=1.00, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x19]
+G_M49425_IG06:        ; bbWeight=1.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, gcvars, byref, isz
+            ; byrRegs +[x19]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -81,11 +62,25 @@ G_M49425_IG08:        ; bbWeight=1.00, gcVars=0000000000000000 {}, gcrefRegs=800
             ; gcr arg pop 0
             sxtw    w20, w21
             cmp     w20, #0
-            bgt     G_M49425_IG05
-            b       G_M49425_IG03
-                       ;; size=32 bbWeight=1.00 PerfScore 5.52
+            bgt     G_M49425_IG03
+                       ;; size=28 bbWeight=1.00 PerfScore 4.51
+G_M49425_IG07:        ; bbWeight=0.14, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; byrRegs -[x19]
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
+            bl      CORINFO_HELP_COUNTPROFILE32
+            ; gcr arg pop 0
+            mov     w0, wzr
+                       ;; size=20 bbWeight=0.14 PerfScore 0.41
+G_M49425_IG08:        ; bbWeight=0.14, epilog, nogc, extend
+            ldr     x21, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x30
+            ret     lr
+                       ;; size=16 bbWeight=0.14 PerfScore 0.69
 
-; Total bytes of code 164, prolog size 20, PerfScore 27.71, instruction count 41, allocated bytes for code 164 (MethodHash=d5fc3eee) for method System.Threading.PortableThreadPool+WorkerThread:TakeActiveRequest(System.Threading.PortableThreadPool):ubyte (Instrumented Tier1)
+; Total bytes of code 152, prolog size 16, PerfScore 25.78, instruction count 38, allocated bytes for code 152 (MethodHash=d5fc3eee) for method System.Threading.PortableThreadPool+WorkerThread:TakeActiveRequest(System.Threading.PortableThreadPool):ubyte (Instrumented Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -96,7 +91,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 38 (0x00026) Actual length = 152 (0x000098)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+77.78%) : 529343.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)

@@ -8,7 +8,7 @@
 ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )   float  ->  zero-ref   
+;  V00 loc0         [V00,T00] (  4,  3.50)   float  ->   d0         single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
 ; Lcl frame size = 0
@@ -17,19 +17,28 @@ G_M53663_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             movz    x0, #0xD1FFAB1E      // code for Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
-                       ;; size=20 bbWeight=1 PerfScore 5.50
-G_M53663_IG03:        ; bbWeight=1, epilog, nogc, extend
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            bhs     G_M53663_IG04
+                       ;; size=32 bbWeight=1 PerfScore 8.00
+G_M53663_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
+G_M53663_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            bne     G_M53663_IG03
+            b       G_M53663_IG03
+                       ;; size=16 bbWeight=0.50 PerfScore 1.75
 
-; Total bytes of code 36, prolog size 8, PerfScore 9.00, instruction count 9, allocated bytes for code 36 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 64, prolog size 8, PerfScore 13.25, instruction count 16, allocated bytes for code 64 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -40,7 +49,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 9 (0x00009) Actual length = 36 (0x000024)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+77.78%) : 525400.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)

@@ -8,7 +8,7 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T00] (  2,  2   )   float  ->   d0         single-def
+;  V00 loc0         [V00,T00] (  4,  3.50)   float  ->   d0         single-def
 ;* V01 loc1         [V01    ] (  0,  0   )   float  ->  zero-ref   
 ;* V02 loc2         [V02    ] (  0,  0   )   float  ->  zero-ref   
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -19,19 +19,28 @@ G_M53663_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             movz    x0, #0xD1FFAB1E      // code for Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
-                       ;; size=20 bbWeight=1 PerfScore 5.50
-G_M53663_IG03:        ; bbWeight=1, epilog, nogc, extend
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            bhs     G_M53663_IG04
+                       ;; size=32 bbWeight=1 PerfScore 8.00
+G_M53663_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
+G_M53663_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            bne     G_M53663_IG03
+            b       G_M53663_IG03
+                       ;; size=16 bbWeight=0.50 PerfScore 1.75
 
-; Total bytes of code 36, prolog size 8, PerfScore 9.00, instruction count 9, allocated bytes for code 36 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 64, prolog size 8, PerfScore 13.25, instruction count 16, allocated bytes for code 64 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -42,7 +51,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 9 (0x00009) Actual length = 36 (0x000024)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+44 (+122.22%) : 529395.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_1():float (FullOpts)

@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )   float  ->  zero-ref   
+;  V00 loc0         [V00,T00] (  5,  4   )   float  ->   d0         single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T00] (  2,  4   )   float  ->   d0         "Single return block return value"
+;  V02 tmp1         [V02,T01] (  2,  4   )   float  ->   d0         "Single return block return value"
 ;
 ; Lcl frame size = 0
 
@@ -18,19 +18,34 @@ G_M53791_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M53791_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53791_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             movz    x0, #0xD1FFAB1E      // code for Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
-                       ;; size=20 bbWeight=1 PerfScore 5.50
-G_M53791_IG03:        ; bbWeight=1, epilog, nogc, extend
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            ble     G_M53791_IG04
+                       ;; size=32 bbWeight=1 PerfScore 8.00
+G_M53791_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            b       G_M53791_IG05
+                       ;; size=4 bbWeight=1 PerfScore 1.00
+G_M53791_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            blo     G_M53791_IG03
+            fmov    s16, #10.0000
+            fcmp    s0, s16
+            bne     G_M53791_IG03
+            b       G_M53791_IG03
+                       ;; size=28 bbWeight=0.50 PerfScore 3.00
+G_M53791_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 36, prolog size 8, PerfScore 9.00, instruction count 9, allocated bytes for code 36 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 80, prolog size 8, PerfScore 15.50, instruction count 20, allocated bytes for code 80 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -41,7 +56,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 9 (0x00009) Actual length = 36 (0x000024)
+  Function Length   : 20 (0x00014) Actual length = 80 (0x000050)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries.crossgen2.windows.arm64.checked.mch

-4 (-3.33%) : 161833.dasm - System.Data.OleDb.OleDbParameter:set_SourceVersion(int):this (FullOpts)

@@ -48,9 +48,8 @@ G_M1702_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001
             mov     w11, #0xD1FFAB1E
             cmp     w1, #0xD1FFAB1E
             ccmp    w1, w11, z, ne
-            bne     G_M1702_IG07
-            b       G_M1702_IG04
-                       ;; size=20 bbWeight=0.50 PerfScore 1.75
+            beq     G_M1702_IG04
+                       ;; size=16 bbWeight=0.50 PerfScore 1.25
 G_M1702_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     w0, w1
@@ -67,7 +66,7 @@ G_M1702_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=40 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 120, prolog size 8, PerfScore 13.50, instruction count 30, allocated bytes for code 120 (MethodHash=ea3df959) for method System.Data.OleDb.OleDbParameter:set_SourceVersion(int):this (FullOpts)
+; Total bytes of code 116, prolog size 8, PerfScore 13.00, instruction count 29, allocated bytes for code 116 (MethodHash=ea3df959) for method System.Data.OleDb.OleDbParameter:set_SourceVersion(int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -78,7 +77,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
+  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-3.33%) : 123855.dasm - System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)

@@ -48,9 +48,8 @@ G_M9062_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001
             mov     w11, #0xD1FFAB1E
             cmp     w1, #0xD1FFAB1E
             ccmp    w1, w11, z, ne
-            bne     G_M9062_IG07
-            b       G_M9062_IG04
-                       ;; size=20 bbWeight=0.50 PerfScore 1.75
+            beq     G_M9062_IG04
+                       ;; size=16 bbWeight=0.50 PerfScore 1.25
 G_M9062_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     w0, w1
@@ -67,7 +66,7 @@ G_M9062_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=40 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 120, prolog size 8, PerfScore 13.50, instruction count 30, allocated bytes for code 120 (MethodHash=f1e0dc99) for method System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
+; Total bytes of code 116, prolog size 8, PerfScore 13.00, instruction count 29, allocated bytes for code 116 (MethodHash=f1e0dc99) for method System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -78,7 +77,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
+  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-2.08%) : 26295.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]:CopyTo(System.Threading.PortableThreadPool+IOCompletionPoller+Event[],int):this (FullOpts)

@@ -52,8 +52,8 @@ G_M48786_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=48 bbWeight=1 PerfScore 10.00
 G_M48786_IG02:        ; bbWeight=1, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
-            cbz     x19, G_M48786_IG11
-            tbnz    w20, #31, G_M48786_IG12
+            cbz     x19, G_M48786_IG10
+            tbnz    w20, #31, G_M48786_IG11
             add     x3, fp, #32    // [V05 loc2]
             add     x4, fp, #24    // [V06 loc3]
             add     x1, fp, #48    // [V03 loc0]
@@ -82,7 +82,7 @@ G_M48786_IG02:        ; bbWeight=1, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {},
             sub     x3, x3, x21
             sxtw    x0, w20
             cmp     x3, x0
-            blt     G_M48786_IG13
+            blt     G_M48786_IG12
             sxtw    w23, w20
             ldr     w3, [fp, #0x18]    // [V06 loc3]
             ldr     x0, [fp, #0x30]    // [V03 loc0]
@@ -107,7 +107,7 @@ G_M48786_IG03:        ; bbWeight=1, gcVars=0000000000000004 {V09}, gcrefRegs=800
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            cbz     w0, G_M48786_IG06
+            cbz     w0, G_M48786_IG07
             adrp    x25, [HIGH RELOC #0xD1FFAB1E]
             add     x25, x25, [LOW RELOC #0xD1FFAB1E]
                        ;; size=32 bbWeight=1 PerfScore 7.50
@@ -122,7 +122,7 @@ G_M48786_IG04:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             ; gcrRegs -[x0]
             ; gcr arg pop 0
             cmp     w23, w22
-            bhs     G_M48786_IG07
+            bhs     G_M48786_IG06
             ubfiz   x11, x23, #4, #32
             add     x11, x11, #16
             add     x11, x19, x11
@@ -137,19 +137,14 @@ G_M48786_IG04:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            cbnz    w0, G_M48786_IG05
-            b       G_M48786_IG08
-                       ;; size=76 bbWeight=4 PerfScore 86.00
-G_M48786_IG05:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             mov     w23, w26
-            b       G_M48786_IG04
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M48786_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            cbnz    w0, G_M48786_IG04
+                       ;; size=76 bbWeight=4 PerfScore 84.00
+G_M48786_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
-            mov     w26, w23
-            b       G_M48786_IG08
-                       ;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M48786_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            b       G_M48786_IG07
+                       ;; size=4 bbWeight=1 PerfScore 1.00
+G_M48786_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x0]
@@ -157,7 +152,7 @@ G_M48786_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             brk_windows #0
                        ;; size=20 bbWeight=0 PerfScore 0.00
-G_M48786_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M48786_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [fp, #0x10]    // [V09 loc6]
             ; gcrRegs +[x0]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -167,12 +162,12 @@ G_M48786_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            sub     w1, w26, w20
+            sub     w1, w23, w20
             sxtw    x1, w1
             cmp     x1, x21
-            beq     G_M48786_IG10
+            beq     G_M48786_IG09
                        ;; size=36 bbWeight=1 PerfScore 9.50
-G_M48786_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M48786_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             adrp    x1, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x1, x1, [LOW RELOC #0xD1FFAB1E]
             ldr     x1, [x1]
@@ -187,7 +182,7 @@ G_M48786_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
                        ;; size=36 bbWeight=0.50 PerfScore 6.25
-G_M48786_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M48786_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     x25, x26, [sp, #0x70]
             ldp     x23, x24, [sp, #0x60]
             ldp     x21, x22, [sp, #0x50]
@@ -195,7 +190,7 @@ G_M48786_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ldp     fp, lr, [sp], #0x80
             ret     lr
                        ;; size=24 bbWeight=1 PerfScore 6.00
-G_M48786_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M48786_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             mov     w0, #2
@@ -204,7 +199,7 @@ G_M48786_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; gcr arg pop 0
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M48786_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M48786_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             mov     w0, #21
@@ -213,7 +208,7 @@ G_M48786_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M48786_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M48786_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             mov     w0, #6
@@ -222,7 +217,7 @@ G_M48786_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M48786_IG14:        ; bbWeight=0, gcVars=0000000000000004 {V09}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M48786_IG13:        ; bbWeight=0, gcVars=0000000000000004 {V09}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
             ; GC ptr vars +{V02 V09}
             stp     fp, lr, [sp, #-0x60]!
             stp     x19, x20, [sp, #0x20]
@@ -232,10 +227,10 @@ G_M48786_IG14:        ; bbWeight=0, gcVars=0000000000000004 {V09}, gcrefRegs=000
             add     x3, fp, #128
             str     x3, [sp, #0x18]
                        ;; size=28 bbWeight=0 PerfScore 0.00
-G_M48786_IG15:        ; bbWeight=0, gcVars=0000000000000004 {V09}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M48786_IG14:        ; bbWeight=0, gcVars=0000000000000004 {V09}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ldr     x0, [fp, #0x10]    // [V09 loc6]
             ; gcrRegs +[x0]
-            cbz     x0, G_M48786_IG16
+            cbz     x0, G_M48786_IG15
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x1, [x11]
@@ -244,7 +239,7 @@ G_M48786_IG15:        ; bbWeight=0, gcVars=0000000000000004 {V09}, gcrefRegs=000
             ; gcrRegs -[x0]
             ; gcr arg pop 0
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M48786_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
+G_M48786_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
             ldp     x25, x26, [sp, #0x50]
             ldp     x23, x24, [sp, #0x40]
             ldp     x21, x22, [sp, #0x30]
@@ -253,7 +248,7 @@ G_M48786_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ret     lr
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 576, prolog size 48, PerfScore 172.00, instruction count 144, allocated bytes for code 576 (MethodHash=8839416d) for method System.Collections.Concurrent.ConcurrentQueue`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]:CopyTo(System.Threading.PortableThreadPool+IOCompletionPoller+Event[],int):this (FullOpts)
+; Total bytes of code 564, prolog size 48, PerfScore 167.25, instruction count 141, allocated bytes for code 564 (MethodHash=8839416d) for method System.Collections.Concurrent.ConcurrentQueue`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]:CopyTo(System.Threading.PortableThreadPool+IOCompletionPoller+Event[],int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -264,7 +259,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 125 (0x0007d) Actual length = 500 (0x0001f4)
+  Function Length   : 122 (0x0007a) Actual length = 488 (0x0001e8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -301,4 +296,4 @@ Unwind Info:
 
 *************** EH table for System.Collections.Concurrent.ConcurrentQueue`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]:CopyTo(System.Threading.PortableThreadPool+IOCompletionPoller+Event[],int):this
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M48786_IG03..G_M48786_IG08) handled by [G_M48786_IG14..END) (fault)
+EH#0: try [G_M48786_IG03..G_M48786_IG07) handled by [G_M48786_IG13..END) (fault)

+28 (+12.96%) : 77440.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:g_makeReplacement|171(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)

@@ -9,7 +9,7 @@
 ; 0 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  4,  3.50)     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
+;  V00 arg0         [V00,T00] (  5,  4   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
 ;  V01 arg1         [V01,T01] (  4,  3   )     ref  ->  x20         class-hnd single-def <System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]>
 ;  V02 loc0         [V02,T03] (  4,  2   )     ref  ->   x0         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDagFieldEvaluation>
 ;  V03 loc1         [V03,T05] (  3,  1.50)     ref  ->  x22         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol>
@@ -41,10 +41,22 @@ G_M26195_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ; gcr arg pop 0
             mov     x21, x0
             ; gcrRegs +[x21]
-            cbz     x21, G_M26195_IG05
+            cbnz    x21, G_M26195_IG04
                        ;; size=28 bbWeight=1 PerfScore 7.00
-G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x0]
+G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x0 x21]
+            mov     x0, x19
+            ; gcrRegs +[x0]
+            adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
+            add     x11, x11, [LOW RELOC #0xD1FFAB1E]
+            ldr     x1, [x11]
+            blr     x1
+            ; gcr arg pop 0
+            cbnz    x0, G_M26195_IG06
+            b       G_M26195_IG06
+                       ;; size=28 bbWeight=0.50 PerfScore 3.75
+G_M26195_IG04:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x0] +[x21]
             ldr     x0, [x21, #0x18]
             ; gcrRegs +[x0]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -52,11 +64,11 @@ G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
             ldr     x1, [x11]
             blr     x1
             ; gcr arg pop 0
-            cbz     x0, G_M26195_IG05
+            cbz     x0, G_M26195_IG06
             ldr     x11, [x0, #0x18]
             ; gcrRegs +[x11]
             ldr     x11, [x11, #0x20]
-            cbnz    x11, G_M26195_IG05
+            cbnz    x11, G_M26195_IG06
             ldr     x22, [x0, #0x20]
             ; gcrRegs +[x22]
             mov     x0, x22
@@ -67,7 +79,7 @@ G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
             ldr     x1, [x11]
             blr     x1
             ; gcr arg pop 0
-            cbz     x0, G_M26195_IG05
+            cbz     x0, G_M26195_IG06
             mov     x0, x22
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
@@ -84,14 +96,14 @@ G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
             ldr     wzr, [x0]
             ldr     x2, [x11]
                        ;; size=112 bbWeight=0.50 PerfScore 22.25
-G_M26195_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x21, x22, [sp, #0x20]
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x30
             br      x2
             ; gcr arg pop 0
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
-G_M26195_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
+G_M26195_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0-x1 x21] +[x19]
             mov     x1, x20
             ; gcrRegs +[x1]
@@ -101,7 +113,7 @@ G_M26195_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x2, [x11]
                        ;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M26195_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x21, x22, [sp, #0x20]
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x30
@@ -109,7 +121,7 @@ G_M26195_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ; gcr arg pop 0
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 216, prolog size 24, PerfScore 40.25, instruction count 54, allocated bytes for code 216 (MethodHash=af9999ac) for method Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
+; Total bytes of code 244, prolog size 24, PerfScore 44.00, instruction count 61, allocated bytes for code 244 (MethodHash=af9999ac) for method Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -120,7 +132,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 54 (0x00036) Actual length = 216 (0x0000d8)
+  Function Length   : 61 (0x0003d) Actual length = 244 (0x0000f4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+14.55%) : 241723.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)

@@ -8,7 +8,7 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6,  4   )     int  ->  x19         single-def
+;  V00 arg0         [V00,T00] (  9,  4   )     int  ->  x19         single-def
 ;  V01 arg1         [V01,T01] (  4,  2   )     ref  ->  x20         class-hnd single-def <System.String>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  0   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -27,11 +27,11 @@ G_M20631_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[x20]
                        ;; size=24 bbWeight=1 PerfScore 4.50
 G_M20631_IG02:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
-            mov     w11, #250
             cmp     w19, #0xD1FFAB1E
-            ccmp    w19, w11, 0, le
-            bne     G_M20631_IG04
-                       ;; size=16 bbWeight=1 PerfScore 2.50
+            bgt     G_M20631_IG07
+            cmp     w19, #250
+            bne     G_M20631_IG06
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M20631_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
@@ -97,10 +97,23 @@ G_M20631_IG05:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
             ldr     x1, [x1]
             blr     x1
             ; gcrRegs -[x0 x21]
-            brk_windows #0
-                       ;; size=72 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
+G_M20631_IG06:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x20]
+            sub     w11, w19, #0xD1FFAB1E
+            cmp     w11, #1
+            bls     G_M20631_IG04
+            b       G_M20631_IG04
+                       ;; size=16 bbWeight=0 PerfScore 0.00
+G_M20631_IG07:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+            mov     w11, #0xD1FFAB1E
+            cmp     w19, #0xD1FFAB1E
+            ccmp    w19, w11, z, ne
+            beq     G_M20631_IG04
+            b       G_M20631_IG04
+                       ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 220, prolog size 16, PerfScore 12.00, instruction count 55, allocated bytes for code 220 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 252, prolog size 16, PerfScore 12.50, instruction count 63, allocated bytes for code 252 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -111,7 +124,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 55 (0x00037) Actual length = 220 (0x0000dc)
+  Function Length   : 63 (0x0003f) Actual length = 252 (0x0000fc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+42.86%) : 122011.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)

@@ -8,10 +8,10 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  3,  3   )     int  ->   x0         single-def
+;  V00 arg0         [V00,T01] (  4,  3.50)     int  ->   x0         single-def
 ;  V01 loc0         [V01,T02] (  3,  2   )   ubyte  ->   x0        
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 rat0         [V03,T00] (  3,  6   )     int  ->   x0         "ReplaceWithLclVar is creating a new local variable"
+;  V03 rat0         [V03,T00] (  3,  6   )     int  ->   x1         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 0
 
@@ -20,27 +20,56 @@ G_M3102_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M3102_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            sub     w0, w0, #2
-            cmp     w0, #19
-            bhi     G_M3102_IG04
-            movz    w1, #0xD1FFAB1E
-            movk    w1, #3 LSL #16
-            lsr     w0, w1, w0
-            tbz     w0, #0, G_M3102_IG04
-                       ;; size=28 bbWeight=1 PerfScore 4.50
-G_M3102_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            mov     w0, #1
+            sub     w1, w0, #2
+            cmp     w1, #19
+            bhi     G_M3102_IG03
+            mov     w0, w1
+            adr     x1, [@RWD00]
+            ldr     w1, [x1, x0, LSL #2]
+            adr     x2, [G_M3102_IG02]
+            add     x1, x1, x2
+            br      x1
+                       ;; size=36 bbWeight=1 PerfScore 8.00
+G_M3102_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            sub     w1, w0, #101
+            cmp     w1, #2
+            bls     G_M3102_IG05
             b       G_M3102_IG05
-                       ;; size=8 bbWeight=0.50 PerfScore 0.75
+                       ;; size=16 bbWeight=0.50 PerfScore 1.50
 G_M3102_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            mov     w0, #1
+            b       G_M3102_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
+G_M3102_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M3102_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M3102_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
+RWD00      dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
 
-; Total bytes of code 56, prolog size 8, PerfScore 9.00, instruction count 14, allocated bytes for code 56 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
+
+; Total bytes of code 80, prolog size 8, PerfScore 14.00, instruction count 20, allocated bytes for code 80 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -51,7 +80,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 14 (0x0000e) Actual length = 56 (0x000038)
+  Function Length   : 20 (0x00014) Actual length = 80 (0x000050)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries.pmi.windows.arm64.checked.mch

-16 (-11.43%) : 198340.dasm - System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)

@@ -10,48 +10,31 @@
 ;
 ;  V00 this         [V00,T01] (  3,  2.50)     ref  ->   x0         this class-hnd single-def <System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op single-def <System.Threading.CancellationToken>
-;  V02 loc0         [V02,T02] (  3,  1.50)     ref  ->  x19         class-hnd exact single-def <<unknown class>>
+;  V02 loc0         [V02,T02] (  3,  1.50)     ref  ->   x2         class-hnd exact single-def <<unknown class>>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V05 tmp2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;  V06 tmp3         [V06,T00] (  5,  3.16)     ref  ->   x1         single-def "field V01._source (fldOffset=0x0)" P-INDEP
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M3467_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x20]!
-            str     x19, [sp, #0x18]
+            stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
-                       ;; size=12 bbWeight=1 PerfScore 2.50
+                       ;; size=8 bbWeight=1 PerfScore 1.50
 G_M3467_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0-x1]
-            cbz     x1, G_M3467_IG04
+            cbz     x1, G_M3467_IG06
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M3467_IG03:        ; bbWeight=0.16, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             add     x2, x1, #32
             ; byrRegs +[x2]
             ldapr   w2, [x2]
             ; byrRegs -[x2]
-            cbnz    w2, G_M3467_IG06
+            cbz     w2, G_M3467_IG06
                        ;; size=12 bbWeight=0.16 PerfScore 0.74
-G_M3467_IG04:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
-            ldr     x19, [x0, #0x10]
-            ; gcrRegs +[x19]
-            cbnz    x19, G_M3467_IG08
-            movz    x0, #0xD1FFAB1E
+G_M3467_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            ldr     x0, [x0]
-            ; gcrRegs +[x0]
-                       ;; size=24 bbWeight=0.50 PerfScore 4.25
-G_M3467_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
-            ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M3467_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0 x19]
             mov     x0, x1
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for System.Threading.Tasks.Task:FromCanceled(System.Threading.CancellationToken):System.Threading.Tasks.Task
@@ -61,41 +44,56 @@ G_M3467_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002
             ldr     x1, [x1]
             blr     x1
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M3467_IG07:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
+G_M3467_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
             ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M3467_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0] +[x1 x19]
-            ldr     x0, [x19, #0x08]
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M3467_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x1]
+            ldr     x2, [x0, #0x10]
+            ; gcrRegs +[x2]
+            cbnz    x2, G_M3467_IG08
+            movz    x0, #0xD1FFAB1E
+            ; gcrRegs -[x0]
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
+            ldr     x0, [x0]
+            ; gcrRegs +[x0]
+                       ;; size=24 bbWeight=0.50 PerfScore 4.25
+G_M3467_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M3467_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            ldr     x0, [x2, #0x08]
             ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for System.Net.Http.Http2Connection:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             ldr     wzr, [x0]
             blr     x2
-            ; gcrRegs -[x1 x19]
+            ; gcrRegs -[x1]
                        ;; size=28 bbWeight=0.50 PerfScore 5.75
 G_M3467_IG09:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
+            ldp     fp, lr, [sp], #0x10
             ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 140, prolog size 12, PerfScore 23.24, instruction count 35, allocated bytes for code 140 (MethodHash=6a07f274) for method System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 124, prolog size 8, PerfScore 19.24, instruction count 31, allocated bytes for code 124 (MethodHash=6a07f274) for method System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 1
   Epilog Count      : 3
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
+  Function Length   : 31 (0x0001f) Actual length = 124 (0x00007c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -109,10 +107,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 03       save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
-    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
-    E4          end
-    E4          end
+    81          save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
     E4          end
     E4          end
 

-16 (-10.81%) : 199696.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)

@@ -33,37 +33,25 @@ G_M54442_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ldr     d1, [@RWD08]
             str     d1, [fp, #0x10]    // [V08 cse0]
             fcmp    d8, d1
-            bhs     G_M54442_IG04
+            blo     G_M54442_IG04
                        ;; size=28 bbWeight=1 PerfScore 25.00
-G_M54442_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            b       G_M54442_IG07
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M54442_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+G_M54442_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             fcmp    d8, d1
-            bgt     G_M54442_IG05
+            bgt     G_M54442_IG06
             fcmp    d8, d1
-            bne     G_M54442_IG06
-            b       G_M54442_IG07
-                       ;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M54442_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            b       G_M54442_IG09
-                       ;; size=4 bbWeight=0.25 PerfScore 0.25
-G_M54442_IG06:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x0]
+            beq     G_M54442_IG04
             fcmp    d8, d8
-            beq     G_M54442_IG09
-            b       G_M54442_IG03
-                       ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M54442_IG07:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+            beq     G_M54442_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M54442_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             str     x1, [x0, #0x18]
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M54442_IG08:        ; bbWeight=1, epilog, nogc, extend
+G_M54442_IG05:        ; bbWeight=1, epilog, nogc, extend
             ldr     d8, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
-G_M54442_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M54442_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
@@ -85,7 +73,7 @@ RWD00     dq  416312D000000000h   ;     10000000
 RWD08      dq  41DFFFFFFFC00000h   ; 2.14748365e+09
 
 
-; Total bytes of code 148, prolog size 12, PerfScore 37.25, instruction count 37, allocated bytes for code 148 (MethodHash=b6192b55) for method System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
+; Total bytes of code 132, prolog size 12, PerfScore 35.50, instruction count 33, allocated bytes for code 132 (MethodHash=b6192b55) for method System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -96,7 +84,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 33 (0x00021) Actual length = 132 (0x000084)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-48 (-10.43%) : 289106.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)

@@ -12,9 +12,9 @@
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <System.Xml.Linq.XNode>
 ;  V02 loc0         [V02,T10] (  6,  4   )     ref  ->  x20         class-hnd single-def <System.Xml.Linq.XDocumentType>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T03] (  5,  4.79)     ref  ->  x25         class-hnd exact single-def "impAppendStmt" <System.String>
-;  V05 tmp2         [V05,T04] (  5,  4.79)     ref  ->  x21         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V06 tmp3         [V06,T06] (  5,  4.79)     ref  ->  x22         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V04 tmp1         [V04,T03] (  5,  4.79)     ref  ->   x2         class-hnd exact single-def "impAppendStmt" <System.String>
+;  V05 tmp2         [V05,T04] (  5,  4.79)     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V06 tmp3         [V06,T06] (  5,  4.79)     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V07 tmp4         [V07,T18] (  2,  1   )   ubyte  ->   x0         "Inline return value spill temp"
 ;  V08 tmp5         [V08,T11] (  2,  2   )   byref  ->   x0         single-def "impAppendStmt"
 ;* V09 tmp6         [V09    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -22,18 +22,18 @@
 ;* V11 tmp8         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V12 tmp9         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V13 tmp10        [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V14 tmp11        [V14,T05] (  5,  4.79)     ref  ->  x23         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V15 tmp12        [V15,T07] (  5,  4.79)     ref  ->  x24         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V14 tmp11        [V14,T05] (  5,  4.79)     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V15 tmp12        [V15,T07] (  5,  4.79)     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V16 tmp13        [V16,T19] (  2,  1   )   ubyte  ->   x0         "Inline return value spill temp"
-;  V17 tmp14        [V17,T12] (  2,  2   )   byref  ->   x0         single-def "impAppendStmt"
+;  V17 tmp14        [V17,T12] (  2,  2   )   byref  ->   x3         single-def "impAppendStmt"
 ;* V18 tmp15        [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp16        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp17        [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp18        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp19        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V23 tmp20        [V23,T08] (  5,  4.79)     ref  ->  x26         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V23 tmp20        [V23,T08] (  5,  4.79)     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V24 tmp21        [V24,T20] (  2,  1   )   ubyte  ->   x0         "Inline return value spill temp"
-;  V25 tmp22        [V25,T13] (  2,  2   )   byref  ->   x0         single-def "impAppendStmt"
+;  V25 tmp22        [V25,T13] (  2,  2   )   byref  ->   x3         single-def "impAppendStmt"
 ;* V26 tmp23        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V27 tmp24        [V27    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V28 tmp25        [V28    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -48,22 +48,19 @@
 ;* V37 tmp34        [V37    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V38 tmp35        [V38    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V39 tmp36        [V39    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V40 cse0         [V40,T14] (  3,  1.40)     int  ->   x2         "CSE - moderate"
-;  V41 cse1         [V41,T15] (  3,  1.40)     int  ->   x2         "CSE - moderate"
-;  V42 cse2         [V42,T16] (  3,  1.40)     int  ->   x2         "CSE - moderate"
+;  V40 cse0         [V40,T14] (  3,  1.40)     int  ->   x3         "CSE - moderate"
+;  V41 cse1         [V41,T15] (  3,  1.40)     int  ->   x0         "CSE - moderate"
+;  V42 cse2         [V42,T16] (  3,  1.40)     int  ->   x0         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
 G_M37476_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x50]!
+            stp     fp, lr, [sp, #-0x20]!
             stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
-            stp     x23, x24, [sp, #0x30]
-            stp     x25, x26, [sp, #0x40]
             mov     fp, sp
             mov     x19, x0
             ; gcrRegs +[x19]
-                       ;; size=28 bbWeight=1 PerfScore 6.00
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M37476_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
             movz    x0, #0xD1FFAB1E
@@ -73,102 +70,148 @@ G_M37476_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
             ; gcrRegs -[x1] +[x0]
             mov     x20, x0
             ; gcrRegs +[x20]
-            cbz     x20, G_M37476_IG23
+            cbz     x20, G_M37476_IG26
                        ;; size=24 bbWeight=1 PerfScore 4.00
 G_M37476_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x21, [x19, #0x20]
-            ; gcrRegs +[x21]
-            ldr     x22, [x20, #0x20]
-            ; gcrRegs +[x22]
-            cmp     x21, x22
-            beq     G_M37476_IG07
+            ldr     x2, [x19, #0x20]
+            ; gcrRegs +[x2]
+            ldr     x1, [x20, #0x20]
+            ; gcrRegs +[x1]
+            cmp     x2, x1
+            beq     G_M37476_IG08
                        ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M37476_IG04:        ; bbWeight=0.45, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
-            cbz     x21, G_M37476_IG23
+G_M37476_IG04:        ; bbWeight=0.45, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x2, G_M37476_IG26
                        ;; size=4 bbWeight=0.45 PerfScore 0.45
-G_M37476_IG05:        ; bbWeight=0.45, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
-            b       G_M37476_IG21
+G_M37476_IG05:        ; bbWeight=0.45, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x1, G_M37476_IG26
                        ;; size=4 bbWeight=0.45 PerfScore 0.45
-G_M37476_IG06:        ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
-            add     x0, x21, #12
+G_M37476_IG06:        ; bbWeight=0.45, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldr     w3, [x2, #0x08]
+            ldr     w0, [x1, #0x08]
+            cmp     w3, w0
+            bne     G_M37476_IG26
+                       ;; size=16 bbWeight=0.45 PerfScore 3.36
+G_M37476_IG07:        ; bbWeight=0.50, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            add     x0, x2, #12
             ; byrRegs +[x0]
-            lsl     w2, w2, #1
+            lsl     w2, w3, #1
+            ; gcrRegs -[x2]
             mov     w2, w2
-            add     x1, x22, #12
+            add     x1, x1, #12
+            ; gcrRegs -[x1]
             ; byrRegs +[x1]
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
             movk    x3, #230 LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-            ; gcrRegs -[x21-x22]
             ; byrRegs -[x0-x1]
-            cbz     w0, G_M37476_IG23
+            cbz     w0, G_M37476_IG26
                        ;; size=40 bbWeight=0.50 PerfScore 4.50
-G_M37476_IG07:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x23, [x19, #0x28]
-            ; gcrRegs +[x23]
-            ldr     x24, [x20, #0x28]
-            ; gcrRegs +[x24]
-            cmp     x23, x24
-            beq     G_M37476_IG10
-                       ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M37476_IG08:        ; bbWeight=0.45, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
-            cbz     x23, G_M37476_IG23
-                       ;; size=4 bbWeight=0.45 PerfScore 0.45
-G_M37476_IG09:        ; bbWeight=0.45, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref
-            b       G_M37476_IG28
-                       ;; size=4 bbWeight=0.45 PerfScore 0.45
-G_M37476_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x23-x24]
-            ldr     x25, [x19, #0x30]
-            ; gcrRegs +[x25]
-            ldr     x26, [x20, #0x30]
-            ; gcrRegs +[x26]
-            cmp     x25, x26
+G_M37476_IG08:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldr     x2, [x19, #0x28]
+            ; gcrRegs +[x2]
+            ldr     x1, [x20, #0x28]
+            ; gcrRegs +[x1]
+            cmp     x2, x1
             beq     G_M37476_IG13
                        ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M37476_IG11:        ; bbWeight=0.45, gcrefRegs=6180000 {x19 x20 x25 x26}, byrefRegs=0000 {}, byref, isz
-            cbz     x25, G_M37476_IG23
+G_M37476_IG09:        ; bbWeight=0.45, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x2, G_M37476_IG26
                        ;; size=4 bbWeight=0.45 PerfScore 0.45
-G_M37476_IG12:        ; bbWeight=0.45, gcrefRegs=6180000 {x19 x20 x25 x26}, byrefRegs=0000 {}, byref
-            b       G_M37476_IG25
+G_M37476_IG10:        ; bbWeight=0.45, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x1, G_M37476_IG26
                        ;; size=4 bbWeight=0.45 PerfScore 0.45
+G_M37476_IG11:        ; bbWeight=0.45, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldr     w0, [x2, #0x08]
+            ldr     w3, [x1, #0x08]
+            cmp     w0, w3
+            bne     G_M37476_IG26
+                       ;; size=16 bbWeight=0.45 PerfScore 3.36
+G_M37476_IG12:        ; bbWeight=0.50, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            add     x3, x2, #12
+            ; byrRegs +[x3]
+            lsl     w2, w0, #1
+            ; gcrRegs -[x2]
+            mov     w2, w2
+            add     x1, x1, #12
+            ; gcrRegs -[x1]
+            ; byrRegs +[x1]
+            mov     x0, x3
+            ; byrRegs +[x0]
+            movz    x3, #0xD1FFAB1E      // code for <unknown method>
+            ; byrRegs -[x3]
+            movk    x3, #230 LSL #16
+            movk    x3, #0xD1FFAB1E LSL #32
+            ldr     x3, [x3]
+            blr     x3
+            ; byrRegs -[x0-x1]
+            cbz     w0, G_M37476_IG26
+                       ;; size=44 bbWeight=0.50 PerfScore 4.75
 G_M37476_IG13:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x25-x26]
+            ldr     x2, [x19, #0x30]
+            ; gcrRegs +[x2]
+            ldr     x1, [x20, #0x30]
+            ; gcrRegs +[x1]
+            cmp     x2, x1
+            beq     G_M37476_IG18
+                       ;; size=16 bbWeight=0.50 PerfScore 3.75
+G_M37476_IG14:        ; bbWeight=0.45, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x2, G_M37476_IG26
+                       ;; size=4 bbWeight=0.45 PerfScore 0.45
+G_M37476_IG15:        ; bbWeight=0.45, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            cbz     x1, G_M37476_IG26
+                       ;; size=4 bbWeight=0.45 PerfScore 0.45
+G_M37476_IG16:        ; bbWeight=0.45, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldr     w0, [x2, #0x08]
+            ldr     w3, [x1, #0x08]
+            cmp     w0, w3
+            bne     G_M37476_IG26
+                       ;; size=16 bbWeight=0.45 PerfScore 3.36
+G_M37476_IG17:        ; bbWeight=0.50, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+            add     x3, x2, #12
+            ; byrRegs +[x3]
+            lsl     w2, w0, #1
+            ; gcrRegs -[x2]
+            mov     w2, w2
+            add     x1, x1, #12
+            ; gcrRegs -[x1]
+            ; byrRegs +[x1]
+            mov     x0, x3
+            ; byrRegs +[x0]
+            movz    x3, #0xD1FFAB1E      // code for <unknown method>
+            ; byrRegs -[x3]
+            movk    x3, #230 LSL #16
+            movk    x3, #0xD1FFAB1E LSL #32
+            ldr     x3, [x3]
+            blr     x3
+            ; byrRegs -[x0-x1]
+            cbz     w0, G_M37476_IG26
+                       ;; size=44 bbWeight=0.50 PerfScore 4.75
+G_M37476_IG18:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x2, [x19, #0x38]
             ; gcrRegs +[x2]
             ldr     x1, [x20, #0x38]
             ; gcrRegs +[x1]
             cmp     x2, x1
-            bne     G_M37476_IG15
+            beq     G_M37476_IG25
                        ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M37476_IG14:        ; bbWeight=0.05, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x1-x2 x19-x20]
-            mov     w0, #1
-            b       G_M37476_IG20
-                       ;; size=8 bbWeight=0.05 PerfScore 0.08
-G_M37476_IG15:        ; bbWeight=0.45, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x1-x2]
-            cbz     x2, G_M37476_IG18
+G_M37476_IG19:        ; bbWeight=0.45, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
...

+12 (+13.64%) : 2700.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRangeint:int (FullOpts)

@@ -10,7 +10,7 @@
 ;
 ;  V00 arg0         [V00,T06] (  3,  6   )   byref  ->   x0         single-def
 ;  V01 arg1         [V01,T04] (  4,  6.40)     int  ->   x1         ld-addr-op single-def
-;  V02 arg2         [V02,T05] (  3,  6   )     int  ->   x2         ld-addr-op single-def
+;  V02 arg2         [V02,T05] (  4,  6.40)     int  ->   x2         ld-addr-op single-def
 ;  V03 arg3         [V03,T08] (  3,  3   )     int  ->   x3         single-def
 ;  V04 loc0         [V04,T00] (  7, 19.60)     int  ->   x3        
 ;  V05 loc1         [V05,T07] (  2,  8   )   byref  ->   x4        
@@ -18,7 +18,7 @@
 ;* V07 tmp1         [V07,T09] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V08 tmp2         [V08,T01] (  3, 16.81)     int  ->   x5         "Inlining Arg"
 ;* V09 tmp3         [V09,T10] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V10 tmp4         [V10,T02] (  2, 16   )     int  ->   x4         "Inlining Arg"
+;  V10 tmp4         [V10,T02] (  3, 16.81)     int  ->   x4         "Inlining Arg"
 ;  V11 cse0         [V11,T03] (  3, 12   )     int  ->   x4         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
@@ -48,7 +48,7 @@ G_M34838_IG04:        ; bbWeight=0.40, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, b
                        ;; size=8 bbWeight=0.40 PerfScore 0.60
 G_M34838_IG05:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
             cmp     w2, w4
-            bge     G_M34838_IG08
+            bge     G_M34838_IG11
                        ;; size=8 bbWeight=4 PerfScore 6.00
 G_M34838_IG06:        ; bbWeight=1.60, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; byrRegs -[x0]
@@ -71,8 +71,16 @@ G_M34838_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M34838_IG11:        ; bbWeight=0.40, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, gcvars, byref, isz
+            ; byrRegs +[x0]
+            cmp     w2, w4
+            ble     G_M34838_IG08
+                       ;; size=8 bbWeight=0.40 PerfScore 0.60
+G_M34838_IG12:        ; bbWeight=0.05, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
+            b       G_M34838_IG08
+                       ;; size=4 bbWeight=0.05 PerfScore 0.05
 
-; Total bytes of code 88, prolog size 8, PerfScore 46.85, instruction count 22, allocated bytes for code 88 (MethodHash=781577e9) for method System.SpanHelpers:LastIndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
+; Total bytes of code 100, prolog size 8, PerfScore 47.51, instruction count 25, allocated bytes for code 100 (MethodHash=781577e9) for method System.SpanHelpers:LastIndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -83,7 +91,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 22 (0x00016) Actual length = 88 (0x000058)
+  Function Length   : 25 (0x00019) Actual length = 100 (0x000064)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+15.38%) : 282414.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)

@@ -7,7 +7,7 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6,  4   )     int  ->  x19         single-def
+;  V00 arg0         [V00,T00] (  9,  4   )     int  ->  x19         single-def
 ;  V01 arg1         [V01,T01] (  4,  2   )     ref  ->  x20         class-hnd single-def <System.String>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  0   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -26,11 +26,11 @@ G_M20631_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[x20]
                        ;; size=24 bbWeight=1 PerfScore 4.50
 G_M20631_IG02:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
-            mov     w0, #250
             cmp     w19, #0xD1FFAB1E
-            ccmp    w19, w0, 0, le
-            bne     G_M20631_IG04
-                       ;; size=16 bbWeight=1 PerfScore 2.50
+            bgt     G_M20631_IG07
+            cmp     w19, #250
+            bne     G_M20631_IG06
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M20631_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
@@ -93,10 +93,23 @@ G_M20631_IG05:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
             ; gcrRegs +[x0]
             bl      CORINFO_HELP_THROW
             ; gcrRegs -[x0 x21]
-            brk_windows #0
-                       ;; size=64 bbWeight=0 PerfScore 0.00
+                       ;; size=60 bbWeight=0 PerfScore 0.00
+G_M20631_IG06:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x20]
+            sub     w0, w19, #0xD1FFAB1E
+            cmp     w0, #1
+            bls     G_M20631_IG04
+            b       G_M20631_IG04
+                       ;; size=16 bbWeight=0 PerfScore 0.00
+G_M20631_IG07:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+            mov     w0, #0xD1FFAB1E
+            cmp     w19, #0xD1FFAB1E
+            ccmp    w19, w0, z, ne
+            beq     G_M20631_IG04
+            b       G_M20631_IG04
+                       ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 208, prolog size 16, PerfScore 12.00, instruction count 52, allocated bytes for code 208 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 240, prolog size 16, PerfScore 12.50, instruction count 60, allocated bytes for code 240 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -107,7 +120,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
+  Function Length   : 60 (0x0003c) Actual length = 240 (0x0000f0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+42.86%) : 196706.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)

@@ -7,10 +7,10 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  3,  3   )     int  ->   x0         single-def
+;  V00 arg0         [V00,T01] (  4,  3.50)     int  ->   x0         single-def
 ;  V01 loc0         [V01,T02] (  3,  2   )   ubyte  ->   x0        
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 rat0         [V03,T00] (  3,  6   )     int  ->   x0         "ReplaceWithLclVar is creating a new local variable"
+;  V03 rat0         [V03,T00] (  3,  6   )     int  ->   x1         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 0
 
@@ -19,27 +19,56 @@ G_M3102_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M3102_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            sub     w0, w0, #2
-            cmp     w0, #19
-            bhi     G_M3102_IG04
-            movz    w1, #0xD1FFAB1E
-            movk    w1, #3 LSL #16
-            lsr     w0, w1, w0
-            tbz     w0, #0, G_M3102_IG04
-                       ;; size=28 bbWeight=1 PerfScore 4.50
-G_M3102_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            mov     w0, #1
+            sub     w1, w0, #2
+            cmp     w1, #19
+            bhi     G_M3102_IG03
+            mov     w0, w1
+            adr     x1, [@RWD00]
+            ldr     w1, [x1, x0, LSL #2]
+            adr     x2, [G_M3102_IG02]
+            add     x1, x1, x2
+            br      x1
+                       ;; size=36 bbWeight=1 PerfScore 8.00
+G_M3102_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            sub     w1, w0, #101
+            cmp     w1, #2
+            bls     G_M3102_IG05
             b       G_M3102_IG05
-                       ;; size=8 bbWeight=0.50 PerfScore 0.75
+                       ;; size=16 bbWeight=0.50 PerfScore 1.50
 G_M3102_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            mov     w0, #1
+            b       G_M3102_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
+G_M3102_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M3102_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M3102_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
+RWD00      dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
 
-; Total bytes of code 56, prolog size 8, PerfScore 9.00, instruction count 14, allocated bytes for code 56 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
+
+; Total bytes of code 80, prolog size 8, PerfScore 14.00, instruction count 20, allocated bytes for code 80 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -50,7 +79,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 14 (0x0000e) Actual length = 56 (0x000038)
+  Function Length   : 20 (0x00014) Actual length = 80 (0x000050)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries_tests.run.windows.arm64.Release.mch

-8 (-12.50%) : 388254.dasm - System.Xml.XmlTextReaderImpl:GetResolver():System.Xml.XmlResolver:this (Tier1)

@@ -15,7 +15,7 @@
 ;
 ; Lcl frame size = 0
 
-G_M1329_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M1329_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
@@ -23,37 +23,30 @@ G_M1329_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x0]
             ldr     x1, [x0, #0x30]
             ; gcrRegs +[x1]
-            cbz     x1, G_M1329_IG04
+            cbnz    x1, G_M1329_IG05
                        ;; size=8 bbWeight=1 PerfScore 4.00
-G_M1329_IG03:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x1]
-            ldrb    w1, [x0, #0xD1FFAB1E]
-            cmp     w1, #0
-            cset    x1, eq
-            b       G_M1329_IG08
-                       ;; size=16 bbWeight=0 PerfScore 0.00
-G_M1329_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
+G_M1329_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0-x1]
             mov     x0, xzr
                        ;; size=4 bbWeight=1 PerfScore 0.50
-G_M1329_IG05:        ; bbWeight=1, epilog, nogc, extend
+G_M1329_IG04:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M1329_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M1329_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x0]
+            ldrb    w1, [x0, #0xD1FFAB1E]
+            cmp     w1, #0
+            cset    x1, eq
+            cbnz    w1, G_M1329_IG03
             ldr     x0, [x0, #0x30]
-                       ;; size=4 bbWeight=0 PerfScore 0.00
-G_M1329_IG07:        ; bbWeight=0, epilog, nogc, extend
+                       ;; size=20 bbWeight=0 PerfScore 0.00
+G_M1329_IG06:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M1329_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
-            cbz     w1, G_M1329_IG06
-            b       G_M1329_IG04
-                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 64, prolog size 8, PerfScore 8.00, instruction count 16, allocated bytes for code 64 (MethodHash=4becface) for method System.Xml.XmlTextReaderImpl:GetResolver():System.Xml.XmlResolver:this (Tier1)
+; Total bytes of code 56, prolog size 8, PerfScore 8.00, instruction count 14, allocated bytes for code 56 (MethodHash=4becface) for method System.Xml.XmlTextReaderImpl:GetResolver():System.Xml.XmlResolver:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -64,7 +57,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
+  Function Length   : 14 (0x0000e) Actual length = 56 (0x000038)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-10.00%) : 54841.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:get_SourcePartialImplementation():Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:this (Tier1)

@@ -16,48 +16,42 @@
 ;
 ; Lcl frame size = 0
 
-G_M46194_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M46194_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M46194_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
             ldr     w1, [x0, #0x68]
-            tbz     w1, #14, G_M46194_IG04
+            tbnz    w1, #14, G_M46194_IG05
                        ;; size=8 bbWeight=1 PerfScore 4.00
-G_M46194_IG03:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            ldr     w1, [x0, #0x70]
-            tbnz    w1, #19, G_M46194_IG04
-            ldr     w1, [x0, #0x68]
-            tst     w1, #0xD1FFAB1E
-            cset    x1, eq
-            b       G_M46194_IG08
-                       ;; size=24 bbWeight=0 PerfScore 0.00
-G_M46194_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46194_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     x0, xzr
                        ;; size=4 bbWeight=1 PerfScore 0.50
-G_M46194_IG05:        ; bbWeight=1, epilog, nogc, extend
+G_M46194_IG04:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M46194_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M46194_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x0]
+            ldr     w1, [x0, #0x70]
+            tbnz    w1, #19, G_M46194_IG03
+            ldr     w1, [x0, #0x68]
+            tst     w1, #0xD1FFAB1E
+            cset    x1, eq
+            cbz     w1, G_M46194_IG03
             ldr     x1, [x0]
             ldr     x1, [x1, #0xD1FFAB1E]
             ldr     x1, [x1, #0x08]
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M46194_IG07:        ; bbWeight=0, epilog, nogc, extend
+                       ;; size=36 bbWeight=0 PerfScore 0.00
+G_M46194_IG06:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             br      x1
             ; gcr arg pop 0
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M46194_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
-            cbnz    w1, G_M46194_IG06
-            b       G_M46194_IG04
-                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 80, prolog size 8, PerfScore 8.00, instruction count 20, allocated bytes for code 80 (MethodHash=7bf44b8d) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:get_SourcePartialImplementation():Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:this (Tier1)
+; Total bytes of code 72, prolog size 8, PerfScore 8.00, instruction count 18, allocated bytes for code 72 (MethodHash=7bf44b8d) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:get_SourcePartialImplementation():Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -68,7 +62,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 20 (0x00014) Actual length = 80 (0x000050)
+  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-16 (-9.09%) : 62302.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol+<>c:<.cctor>b_3500(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte:this (Tier1)

@@ -15,75 +15,76 @@
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04,T02] (  2,  2   )     int  ->   x0         "guarded devirt return temp"
 ;* V05 tmp2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol>
-;  V06 tmp3         [V06,T03] (  3,  1.37)     int  ->  x21         "guarded devirt return temp"
+;  V06 tmp3         [V06,T03] (  3,  1.37)     int  ->   x0         "guarded devirt return temp"
 ;* V07 tmp4         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedInstanceConstructor>
 ;  V08 cse0         [V08,T01] (  5,  4.02)    long  ->  x20         "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M47116_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x18]
-            str     x21, [sp, #0x28]
+            stp     fp, lr, [sp, #-0x20]!
+            stp     x19, x20, [sp, #0x10]
             mov     fp, sp
             mov     x19, x1
             ; gcrRegs +[x19]
-                       ;; size=20 bbWeight=1 PerfScore 4.00
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M47116_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             ldr     x20, [x19]
             movz    x0, #0xD1FFAB1E
             movk    x0, #127 LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             cmp     x20, x0
-            beq     G_M47116_IG04
+            beq     G_M47116_IG05
             mov     x0, x19
             ; gcrRegs +[x0]
             ldr     x1, [x20, #0x70]
             ldr     x1, [x1, #0x20]
             blr     x1
             ; gcrRegs -[x0]
-            cbnz    w0, G_M47116_IG05
+            cbnz    w0, G_M47116_IG06
                        ;; size=44 bbWeight=1 PerfScore 14.50
 G_M47116_IG03:        ; bbWeight=0.68, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             cmp     x20, x0
-            bne     G_M47116_IG11
-            b       G_M47116_IG07
-                       ;; size=24 bbWeight=0.68 PerfScore 2.74
-G_M47116_IG04:        ; bbWeight=0.42, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            bne     G_M47116_IG12
+                       ;; size=20 bbWeight=0.68 PerfScore 2.05
+G_M47116_IG04:        ; bbWeight=0.35, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x19]
+            b       G_M47116_IG08
+                       ;; size=4 bbWeight=0.35 PerfScore 0.35
+G_M47116_IG05:        ; bbWeight=0.42, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x19]
             ldrh    w0, [x19, #0x40]
             tbz     w0, #4, G_M47116_IG03
                        ;; size=8 bbWeight=0.42 PerfScore 1.68
-G_M47116_IG05:        ; bbWeight=0.71, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M47116_IG06:        ; bbWeight=0.71, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             mov     w0, wzr
                        ;; size=4 bbWeight=0.71 PerfScore 0.36
-G_M47116_IG06:        ; bbWeight=0.71, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+G_M47116_IG07:        ; bbWeight=0.71, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=16 bbWeight=0.71 PerfScore 3.56
-G_M47116_IG07:        ; bbWeight=0.35, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            mov     w21, #9
+                       ;; size=12 bbWeight=0.71 PerfScore 2.13
+G_M47116_IG08:        ; bbWeight=0.35, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            mov     w0, #9
                        ;; size=4 bbWeight=0.35 PerfScore 0.17
-G_M47116_IG08:        ; bbWeight=0.68, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            sub     w0, w21, #5
+G_M47116_IG09:        ; bbWeight=0.68, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            sub     w0, w0, #5
             cmp     w0, #1
-            bhi     G_M47116_IG05
+            bhi     G_M47116_IG06
                        ;; size=12 bbWeight=0.68 PerfScore 1.37
-G_M47116_IG09:        ; bbWeight=0.29, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M47116_IG10:        ; bbWeight=0.29, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, #1
                        ;; size=4 bbWeight=0.29 PerfScore 0.14
-G_M47116_IG10:        ; bbWeight=0.29, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+G_M47116_IG11:        ; bbWeight=0.29, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=16 bbWeight=0.29 PerfScore 1.44
-G_M47116_IG11:        ; bbWeight=0.34, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=12 bbWeight=0.29 PerfScore 0.87
+G_M47116_IG12:        ; bbWeight=0.34, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x19]
             mov     x0, x19
             ; gcrRegs +[x0]
@@ -91,11 +92,10 @@ G_M47116_IG11:        ; bbWeight=0.34, gcVars=0000000000000000 {}, gcrefRegs=800
             ldr     x1, [x1]
             blr     x1
             ; gcrRegs -[x0 x19]
-            sxtw    w21, w0
-            b       G_M47116_IG08
-                       ;; size=24 bbWeight=0.34 PerfScore 3.02
+            b       G_M47116_IG09
+                       ;; size=20 bbWeight=0.34 PerfScore 2.85
 
-; Total bytes of code 176, prolog size 16, PerfScore 32.98, instruction count 44, allocated bytes for code 176 (MethodHash=061747f3) for method Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol+<>c:<.cctor>b__350_0(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte:this (Tier1)
+; Total bytes of code 160, prolog size 12, PerfScore 29.48, instruction count 40, allocated bytes for code 160 (MethodHash=061747f3) for method Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol+<>c:<.cctor>b__350_0(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -106,7 +106,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 44 (0x0002c) Actual length = 176 (0x0000b0)
+  Function Length   : 40 (0x00028) Actual length = 160 (0x0000a0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -117,9 +117,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 85       save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
-    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    E4          end
+    E4          end
     E4          end
     E4          end
 

+20 (+26.32%) : 90266.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)

@@ -12,12 +12,12 @@
 ;  V00 this         [V00,T00] (  7,  6   )     ref  ->   x0         this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->   x1         class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  4,  4.01)     int  ->  x14         "Inline stloc first use temp"
+;  V03 tmp1         [V03,T02] (  8,  4.08)     int  ->   x2         "Inline stloc first use temp"
 ;* V04 tmp2         [V04,T03] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
-G_M46606_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M46606_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
@@ -25,17 +25,17 @@ G_M46606_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
             ; gcrRegs +[x0-x1]
             ldr     x14, [x0, #0x18]
             ; gcrRegs +[x14]
-            cbnz    x14, G_M46606_IG07
+            cbnz    x14, G_M46606_IG08
             add     x14, x1, #52
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
-            ldapr   w14, [x14]
-            ; byrRegs -[x14]
-            tbnz    w14, #21, G_M46606_IG05
+            ldapr   w2, [x14]
+            tbnz    w2, #21, G_M46606_IG05
                        ;; size=20 bbWeight=1 PerfScore 8.50
 G_M46606_IG03:        ; bbWeight=1.01, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
-            tbnz    w14, #22, G_M46606_IG05
-            tbz     w14, #24, G_M46606_IG05
+            ; byrRegs -[x14]
+            tbnz    w2, #22, G_M46606_IG05
+            tbz     w2, #24, G_M46606_IG07
                        ;; size=8 bbWeight=1.01 PerfScore 2.01
 G_M46606_IG04:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
             add     x14, x0, #24
@@ -56,16 +56,24 @@ G_M46606_IG06:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M46606_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x1]
+G_M46606_IG07:        ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[x0]
+            tbnz    w2, #23, G_M46606_IG05
+            tbnz    w2, #17, G_M46606_IG05
+            tbnz    w2, #16, G_M46606_IG05
+            tbz     w2, #25, G_M46606_IG05
+            b       G_M46606_IG05
+                       ;; size=20 bbWeight=0.02 PerfScore 0.09
+G_M46606_IG08:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x1] +[x0]
             ldr     x0, [x0, #0x18]
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M46606_IG08:        ; bbWeight=0, epilog, nogc, extend
+G_M46606_IG09:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 76, prolog size 8, PerfScore 17.51, instruction count 19, allocated bytes for code 76 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 96, prolog size 8, PerfScore 17.60, instruction count 24, allocated bytes for code 96 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -76,7 +84,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 19 (0x00013) Actual length = 76 (0x00004c)
+  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+26.32%) : 156391.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)

@@ -12,12 +12,12 @@
 ;  V00 this         [V00,T00] (  7,  6   )     ref  ->   x0         this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->   x1         class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  4,  4   )     int  ->  x14         "Inline stloc first use temp"
+;  V03 tmp1         [V03,T02] (  8,  4   )     int  ->   x2         "Inline stloc first use temp"
 ;* V04 tmp2         [V04,T03] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
-G_M46606_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M46606_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
@@ -29,13 +29,11 @@ G_M46606_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
             add     x14, x1, #52
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
-            ldapr   w14, [x14]
-            ; byrRegs -[x14]
-            tbnz    w14, #21, G_M46606_IG03
-            tbnz    w14, #22, G_M46606_IG03
-            tbz     w14, #24, G_M46606_IG03
+            ldapr   w2, [x14]
+            tbnz    w2, #21, G_M46606_IG03
+            tbnz    w2, #22, G_M46606_IG03
+            tbz     w2, #24, G_M46606_IG07
             add     x14, x0, #24
-            ; byrRegs +[x14]
             mov     x15, x1
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
@@ -60,8 +58,16 @@ G_M46606_IG06:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0 PerfScore 0.00
+G_M46606_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[x0] +[x1]
+            tbnz    w2, #23, G_M46606_IG03
+            tbnz    w2, #17, G_M46606_IG03
+            tbnz    w2, #16, G_M46606_IG03
+            tbz     w2, #25, G_M46606_IG03
+            b       G_M46606_IG03
+                       ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 76, prolog size 8, PerfScore 17.50, instruction count 19, allocated bytes for code 76 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 96, prolog size 8, PerfScore 17.50, instruction count 24, allocated bytes for code 96 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -72,7 +78,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 19 (0x00013) Actual length = 76 (0x00004c)
+  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+26.32%) : 605639.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)

@@ -12,12 +12,12 @@
 ;  V00 this         [V00,T00] (  7,  6   )     ref  ->   x0         this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->   x1         class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  4,  4   )     int  ->  x14         "Inline stloc first use temp"
+;  V03 tmp1         [V03,T02] (  8,  4.01)     int  ->   x2         "Inline stloc first use temp"
 ;* V04 tmp2         [V04,T03] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
-G_M46606_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M46606_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
@@ -25,17 +25,15 @@ G_M46606_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
             ; gcrRegs +[x0-x1]
             ldr     x14, [x0, #0x18]
             ; gcrRegs +[x14]
-            cbnz    x14, G_M46606_IG05
+            cbnz    x14, G_M46606_IG06
             add     x14, x1, #52
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
-            ldapr   w14, [x14]
-            ; byrRegs -[x14]
-            tbnz    w14, #21, G_M46606_IG03
-            tbnz    w14, #22, G_M46606_IG03
-            tbz     w14, #24, G_M46606_IG03
+            ldapr   w2, [x14]
+            tbnz    w2, #21, G_M46606_IG03
+            tbnz    w2, #22, G_M46606_IG03
+            tbz     w2, #24, G_M46606_IG05
             add     x14, x0, #24
-            ; byrRegs +[x14]
             mov     x15, x1
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
@@ -52,16 +50,24 @@ G_M46606_IG04:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M46606_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x1]
+G_M46606_IG05:        ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[x0]
+            tbnz    w2, #23, G_M46606_IG03
+            tbnz    w2, #17, G_M46606_IG03
+            tbnz    w2, #16, G_M46606_IG03
+            tbz     w2, #25, G_M46606_IG03
+            b       G_M46606_IG03
+                       ;; size=20 bbWeight=0.00 PerfScore 0.01
+G_M46606_IG06:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x1] +[x0]
             ldr     x0, [x0, #0x18]
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M46606_IG06:        ; bbWeight=0, epilog, nogc, extend
+G_M46606_IG07:        ; bbWeight=0, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 76, prolog size 8, PerfScore 17.50, instruction count 19, allocated bytes for code 76 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 96, prolog size 8, PerfScore 17.51, instruction count 24, allocated bytes for code 96 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -72,7 +78,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 19 (0x00013) Actual length = 76 (0x00004c)
+  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

librariestestsnotieredcompilation.run.windows.arm64.Release.mch

-16 (-11.43%) : 164051.dasm - System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)

@@ -10,48 +10,31 @@
 ;
 ;  V00 this         [V00,T01] (  3,  2.50)     ref  ->   x0         this class-hnd single-def <System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op single-def <System.Threading.CancellationToken>
-;  V02 loc0         [V02,T02] (  3,  1.50)     ref  ->  x19         class-hnd exact single-def <<unknown class>>
+;  V02 loc0         [V02,T02] (  3,  1.50)     ref  ->   x2         class-hnd exact single-def <<unknown class>>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V05 tmp2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;  V06 tmp3         [V06,T00] (  5,  3.16)     ref  ->   x1         single-def "field V01._source (fldOffset=0x0)" P-INDEP
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M3467_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x20]!
-            str     x19, [sp, #0x18]
+            stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
-                       ;; size=12 bbWeight=1 PerfScore 2.50
+                       ;; size=8 bbWeight=1 PerfScore 1.50
 G_M3467_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0-x1]
-            cbz     x1, G_M3467_IG04
+            cbz     x1, G_M3467_IG06
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M3467_IG03:        ; bbWeight=0.16, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             add     x2, x1, #32
             ; byrRegs +[x2]
             ldapr   w2, [x2]
             ; byrRegs -[x2]
-            cbnz    w2, G_M3467_IG06
+            cbz     w2, G_M3467_IG06
                        ;; size=12 bbWeight=0.16 PerfScore 0.74
-G_M3467_IG04:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
-            ldr     x19, [x0, #0x10]
-            ; gcrRegs +[x19]
-            cbnz    x19, G_M3467_IG08
-            movz    x0, #0xD1FFAB1E
+G_M3467_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            ldr     x0, [x0]
-            ; gcrRegs +[x0]
-                       ;; size=24 bbWeight=0.50 PerfScore 4.25
-G_M3467_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
-            ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M3467_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0 x19]
             mov     x0, x1
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for System.Threading.Tasks.Task:FromCanceled(System.Threading.CancellationToken):System.Threading.Tasks.Task
@@ -61,41 +44,56 @@ G_M3467_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002
             ldr     x1, [x1]
             blr     x1
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M3467_IG07:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
+G_M3467_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
             ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M3467_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0] +[x1 x19]
-            ldr     x0, [x19, #0x08]
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M3467_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x1]
+            ldr     x2, [x0, #0x10]
+            ; gcrRegs +[x2]
+            cbnz    x2, G_M3467_IG08
+            movz    x0, #0xD1FFAB1E
+            ; gcrRegs -[x0]
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
+            ldr     x0, [x0]
+            ; gcrRegs +[x0]
+                       ;; size=24 bbWeight=0.50 PerfScore 4.25
+G_M3467_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M3467_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            ldr     x0, [x2, #0x08]
             ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for System.Net.Http.Http2Connection:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             ldr     wzr, [x0]
             blr     x2
-            ; gcrRegs -[x1 x19]
+            ; gcrRegs -[x1]
                        ;; size=28 bbWeight=0.50 PerfScore 5.75
 G_M3467_IG09:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
+            ldp     fp, lr, [sp], #0x10
             ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 140, prolog size 12, PerfScore 23.24, instruction count 35, allocated bytes for code 140 (MethodHash=6a07f274) for method System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 124, prolog size 8, PerfScore 19.24, instruction count 31, allocated bytes for code 124 (MethodHash=6a07f274) for method System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 1
   Epilog Count      : 3
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
+  Function Length   : 31 (0x0001f) Actual length = 124 (0x00007c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -109,10 +107,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 03       save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
-    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
-    E4          end
-    E4          end
+    81          save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
     E4          end
     E4          end
 

-16 (-10.81%) : 154516.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)

@@ -33,37 +33,25 @@ G_M54442_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ldr     d1, [@RWD08]
             str     d1, [fp, #0x10]    // [V08 cse0]
             fcmp    d8, d1
-            bhs     G_M54442_IG04
+            blo     G_M54442_IG04
                        ;; size=28 bbWeight=1 PerfScore 25.00
-G_M54442_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            b       G_M54442_IG07
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M54442_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+G_M54442_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             fcmp    d8, d1
-            bgt     G_M54442_IG05
+            bgt     G_M54442_IG06
             fcmp    d8, d1
-            bne     G_M54442_IG06
-            b       G_M54442_IG07
-                       ;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M54442_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            b       G_M54442_IG09
-                       ;; size=4 bbWeight=0.25 PerfScore 0.25
-G_M54442_IG06:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x0]
+            beq     G_M54442_IG04
             fcmp    d8, d8
-            beq     G_M54442_IG09
-            b       G_M54442_IG03
-                       ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M54442_IG07:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+            beq     G_M54442_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M54442_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             str     x1, [x0, #0x18]
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M54442_IG08:        ; bbWeight=1, epilog, nogc, extend
+G_M54442_IG05:        ; bbWeight=1, epilog, nogc, extend
             ldr     d8, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
-G_M54442_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M54442_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
@@ -85,7 +73,7 @@ RWD00     dq  416312D000000000h   ;     10000000
 RWD08      dq  41DFFFFFFFC00000h   ; 2.14748365e+09
 
 
-; Total bytes of code 148, prolog size 12, PerfScore 37.25, instruction count 37, allocated bytes for code 148 (MethodHash=b6192b55) for method System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
+; Total bytes of code 132, prolog size 12, PerfScore 35.50, instruction count 33, allocated bytes for code 132 (MethodHash=b6192b55) for method System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -96,7 +84,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 33 (0x00021) Actual length = 132 (0x000084)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-16 (-10.53%) : 151280.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)

@@ -33,37 +33,25 @@ G_M54442_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ldr     d1, [@RWD08]
             str     d1, [fp, #0x10]    // [V08 cse0]
             fcmp    d8, d1
-            bhs     G_M54442_IG04
+            blo     G_M54442_IG04
                        ;; size=28 bbWeight=1 PerfScore 25.00
-G_M54442_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            b       G_M54442_IG07
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M54442_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+G_M54442_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             fcmp    d8, d1
-            bgt     G_M54442_IG05
+            bgt     G_M54442_IG06
             fcmp    d8, d1
-            bne     G_M54442_IG06
-            b       G_M54442_IG07
-                       ;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M54442_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            b       G_M54442_IG09
-                       ;; size=4 bbWeight=0.25 PerfScore 0.25
-G_M54442_IG06:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x0]
+            beq     G_M54442_IG04
             fcmp    d8, d8
-            beq     G_M54442_IG09
-            b       G_M54442_IG03
-                       ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M54442_IG07:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+            beq     G_M54442_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M54442_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             str     x1, [x0, #0x18]
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M54442_IG08:        ; bbWeight=1, epilog, nogc, extend
+G_M54442_IG05:        ; bbWeight=1, epilog, nogc, extend
             ldr     d8, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
-G_M54442_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M54442_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
             movz    w0, #0xD1FFAB1E
             movk    w0, #1 LSL #16
@@ -86,7 +74,7 @@ RWD00     dq  416312D000000000h   ;     10000000
 RWD08      dq  41DFFFFFFFC00000h   ; 2.14748365e+09
 
 
-; Total bytes of code 152, prolog size 12, PerfScore 37.25, instruction count 38, allocated bytes for code 152 (MethodHash=b6192b55) for method System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
+; Total bytes of code 136, prolog size 12, PerfScore 35.50, instruction count 34, allocated bytes for code 136 (MethodHash=b6192b55) for method System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -97,7 +85,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 38 (0x00026) Actual length = 152 (0x000098)
+  Function Length   : 34 (0x00022) Actual length = 136 (0x000088)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+20.69%) : 43867.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)

@@ -8,7 +8,7 @@
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  3.50)     ref  ->  x19         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+;  V00 this         [V00,T00] (  5,  4   )     ref  ->  x19         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
 ;  V02 loc0         [V02,T06] (  3,  1.50)     int  ->   x1         ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
 ;  V09 tmp4         [V09,T04] (  3,  2.50)   byref  ->   x0         single-def "Inline stloc first use temp"
 ;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V11 tmp6         [V11,T07] (  3,  1.50)     ref  ->   x2         single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V12 rat0         [V12,T05] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V12 rat0         [V12,T05] (  2,  2   )    long  ->   x0         "Spilling to split statement for tree"
 ;* V13 rat1         [V13,T09] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V14 rat2         [V14,T03] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V14 rat2         [V14,T03] (  2,  2   )    long  ->   x0         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -30,9 +30,10 @@ G_M43979_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     fp, lr, [sp, #-0x20]!
             str     x19, [sp, #0x18]
             mov     fp, sp
+            str     x0, [fp, #0x10]
             mov     x19, x0
             ; gcrRegs +[x19]
-                       ;; size=16 bbWeight=1 PerfScore 3.00
+                       ;; size=20 bbWeight=1 PerfScore 4.00
 G_M43979_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
             ldr     x0, [x19, #0x20]
@@ -45,47 +46,54 @@ G_M43979_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
             blr     x2
             ; gcrRegs -[x0-x1]
             ; byrRegs +[x0]
-            cbz     x0, G_M43979_IG04
+            cbz     x0, G_M43979_IG05
                        ;; size=32 bbWeight=1 PerfScore 12.50
-G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref
+G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
             ldr     w1, [x0]
             ldr     x2, [x19, #0x80]
             ; gcrRegs +[x2]
-            b       G_M43979_IG06
-                       ;; size=12 bbWeight=0.50 PerfScore 3.50
-G_M43979_IG04:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2]
+            ldr     x0, [x19]
             ; byrRegs -[x0]
+            ldr     x0, [x0, #0x38]
+            ldr     x0, [x0]
+            ldr     x0, [x0, #0xC0]
+            cbnz    x0, G_M43979_IG07
+                       ;; size=28 bbWeight=0.50 PerfScore 9.50
+G_M43979_IG04:        ; bbWeight=0.10, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref
+            b       G_M43979_IG07
+                       ;; size=4 bbWeight=0.10 PerfScore 0.10
+G_M43979_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x2]
             mov     x0, xzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M43979_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M43979_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x2]
             ldr     w0, [x2, #0x08]
             cmp     w1, w0
-            bhs     G_M43979_IG08
+            bhs     G_M43979_IG09
             add     x0, x2, #16
             ; byrRegs +[x0]
             ldr     x0, [x0, w1, UXTW #3]
             ; gcrRegs +[x0]
             ; byrRegs -[x0]
                        ;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M43979_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M43979_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0 x2]
             bl      CORINFO_HELP_RNGCHKFAIL
             brk_windows #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 116, prolog size 12, PerfScore 27.25, instruction count 29, allocated bytes for code 116 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 140, prolog size 16, PerfScore 34.35, instruction count 35, allocated bytes for code 140 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -96,7 +104,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
+  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+20.69%) : 5388.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)

@@ -8,7 +8,7 @@
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  3.50)     ref  ->  x19         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+;  V00 this         [V00,T00] (  5,  4   )     ref  ->  x19         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
 ;  V02 loc0         [V02,T06] (  3,  1.50)     int  ->   x1         ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
 ;  V09 tmp4         [V09,T04] (  3,  2.50)   byref  ->   x0         single-def "Inline stloc first use temp"
 ;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V11 tmp6         [V11,T07] (  3,  1.50)     ref  ->   x2         single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V12 rat0         [V12,T05] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V12 rat0         [V12,T05] (  2,  2   )    long  ->   x0         "Spilling to split statement for tree"
 ;* V13 rat1         [V13,T09] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V14 rat2         [V14,T03] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V14 rat2         [V14,T03] (  2,  2   )    long  ->   x0         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -30,9 +30,10 @@ G_M43979_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     fp, lr, [sp, #-0x20]!
             str     x19, [sp, #0x18]
             mov     fp, sp
+            str     x0, [fp, #0x10]
             mov     x19, x0
             ; gcrRegs +[x19]
-                       ;; size=16 bbWeight=1 PerfScore 3.00
+                       ;; size=20 bbWeight=1 PerfScore 4.00
 G_M43979_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1]
             ldr     x0, [x19, #0x20]
@@ -45,47 +46,54 @@ G_M43979_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
             blr     x2
             ; gcrRegs -[x0-x1]
             ; byrRegs +[x0]
-            cbz     x0, G_M43979_IG04
+            cbz     x0, G_M43979_IG05
                        ;; size=32 bbWeight=1 PerfScore 12.50
-G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref
+G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
             ldr     w1, [x0]
             ldr     x2, [x19, #0x80]
             ; gcrRegs +[x2]
-            b       G_M43979_IG06
-                       ;; size=12 bbWeight=0.50 PerfScore 3.50
-G_M43979_IG04:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2]
+            ldr     x0, [x19]
             ; byrRegs -[x0]
+            ldr     x0, [x0, #0x38]
+            ldr     x0, [x0]
+            ldr     x0, [x0, #0xD1FFAB1E]
+            cbnz    x0, G_M43979_IG07
+                       ;; size=28 bbWeight=0.50 PerfScore 9.50
+G_M43979_IG04:        ; bbWeight=0.10, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref
+            b       G_M43979_IG07
+                       ;; size=4 bbWeight=0.10 PerfScore 0.10
+G_M43979_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x2]
             mov     x0, xzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M43979_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M43979_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x2]
             ldr     w0, [x2, #0x08]
             cmp     w1, w0
-            bhs     G_M43979_IG08
+            bhs     G_M43979_IG09
             add     x0, x2, #16
             ; byrRegs +[x0]
             ldr     x0, [x0, w1, UXTW #3]
             ; gcrRegs +[x0]
             ; byrRegs -[x0]
                        ;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M43979_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M43979_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0 x2]
             bl      CORINFO_HELP_RNGCHKFAIL
             brk_windows #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 116, prolog size 12, PerfScore 27.25, instruction count 29, allocated bytes for code 116 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 140, prolog size 16, PerfScore 34.35, instruction count 35, allocated bytes for code 140 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -96,7 +104,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
+  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+42.86%) : 145915.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)

@@ -7,10 +7,10 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  3,  3   )     int  ->   x0         single-def
+;  V00 arg0         [V00,T01] (  4,  3.50)     int  ->   x0         single-def
 ;  V01 loc0         [V01,T02] (  3,  2   )   ubyte  ->   x0        
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 rat0         [V03,T00] (  3,  6   )     int  ->   x0         "ReplaceWithLclVar is creating a new local variable"
+;  V03 rat0         [V03,T00] (  3,  6   )     int  ->   x1         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 0
 
@@ -19,27 +19,56 @@ G_M3102_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M3102_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            sub     w0, w0, #2
-            cmp     w0, #19
-            bhi     G_M3102_IG04
-            movz    w1, #0xD1FFAB1E
-            movk    w1, #3 LSL #16
-            lsr     w0, w1, w0
-            tbz     w0, #0, G_M3102_IG04
-                       ;; size=28 bbWeight=1 PerfScore 4.50
-G_M3102_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            mov     w0, #1
+            sub     w1, w0, #2
+            cmp     w1, #19
+            bhi     G_M3102_IG03
+            mov     w0, w1
+            adr     x1, [@RWD00]
+            ldr     w1, [x1, x0, LSL #2]
+            adr     x2, [G_M3102_IG02]
+            add     x1, x1, x2
+            br      x1
+                       ;; size=36 bbWeight=1 PerfScore 8.00
+G_M3102_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            sub     w1, w0, #101
+            cmp     w1, #2
+            bls     G_M3102_IG05
             b       G_M3102_IG05
-                       ;; size=8 bbWeight=0.50 PerfScore 0.75
+                       ;; size=16 bbWeight=0.50 PerfScore 1.50
 G_M3102_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            mov     w0, #1
+            b       G_M3102_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
+G_M3102_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M3102_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M3102_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
+RWD00      dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
 
-; Total bytes of code 56, prolog size 8, PerfScore 9.00, instruction count 14, allocated bytes for code 56 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
+
+; Total bytes of code 80, prolog size 8, PerfScore 14.00, instruction count 20, allocated bytes for code 80 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -50,7 +79,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 14 (0x0000e) Actual length = 56 (0x000038)
+  Function Length   : 20 (0x00014) Actual length = 80 (0x000050)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

realworld.run.windows.arm64.checked.mch

-4 (-2.13%) : 4538.dasm - System.Collections.Generic.Dictionary2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)

@@ -71,9 +71,8 @@ G_M18821_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x1]
             ldr     w2, [x1, #0x04]
             cmn     w2, #1
-            bge     G_M18821_IG07
-            b       G_M18821_IG03
-                       ;; size=60 bbWeight=2 PerfScore 45.00
+            blt     G_M18821_IG03
+                       ;; size=56 bbWeight=2 PerfScore 43.00
 G_M18821_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref
             ldr     q16, [x1, #0x10]
             str     q16, [x0, #0x10]
@@ -99,7 +98,7 @@ G_M18821_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 188, prolog size 8, PerfScore 149.75, instruction count 47, allocated bytes for code 188 (MethodHash=4fb9b67a) for method System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 184, prolog size 8, PerfScore 147.75, instruction count 46, allocated bytes for code 184 (MethodHash=4fb9b67a) for method System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -110,7 +109,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 47 (0x0002f) Actual length = 188 (0x0000bc)
+  Function Length   : 46 (0x0002e) Actual length = 184 (0x0000b8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.13%) : 12744.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)

@@ -77,9 +77,8 @@ G_M20310_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x1]
             ldr     w2, [x1, #0x04]
             cmn     w2, #1
-            bge     G_M20310_IG07
-            b       G_M20310_IG03
-                       ;; size=60 bbWeight=2 PerfScore 45.00
+            blt     G_M20310_IG03
+                       ;; size=56 bbWeight=2 PerfScore 43.00
 G_M20310_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref
             ldp     w2, w1, [x1, #0x08]
             ; byrRegs -[x1]
@@ -105,7 +104,7 @@ G_M20310_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 188, prolog size 8, PerfScore 149.75, instruction count 47, allocated bytes for code 188 (MethodHash=5c1ab0a9) for method System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 184, prolog size 8, PerfScore 147.75, instruction count 46, allocated bytes for code 184 (MethodHash=5c1ab0a9) for method System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -116,7 +115,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 47 (0x0002f) Actual length = 188 (0x0000bc)
+  Function Length   : 46 (0x0002e) Actual length = 184 (0x0000b8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.08%) : 17254.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)

@@ -72,9 +72,8 @@ G_M27287_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x14]
             ldr     w15, [x14, #0x0C]
             cmn     w15, #1
-            bge     G_M27287_IG07
-            b       G_M27287_IG03
-                       ;; size=60 bbWeight=2 PerfScore 45.00
+            blt     G_M27287_IG03
+                       ;; size=56 bbWeight=2 PerfScore 43.00
 G_M27287_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=4001 {x0 x14}, byref
             ldr     x15, [x14]
             ; gcrRegs +[x15]
@@ -102,7 +101,7 @@ G_M27287_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 192, prolog size 8, PerfScore 150.00, instruction count 48, allocated bytes for code 192 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 188, prolog size 8, PerfScore 148.00, instruction count 47, allocated bytes for code 188 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -113,7 +112,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
+  Function Length   : 47 (0x0002f) Actual length = 188 (0x0000bc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+8.62%) : 23559.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)

@@ -27,10 +27,10 @@
 ;* V16 tmp10        [V16,T07] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
 ;* V17 tmp11        [V17,T08] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V18 cse0         [V18,T14] (  0,  0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;  V19 cse1         [V19,T10] (  2,  2.50)    long  ->  x24         hoist "CSE - aggressive"
-;* V20 rat0         [V20,T12] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V19 cse1         [V19,T10] (  3,  3   )    long  ->  x24         hoist "CSE - aggressive"
+;  V20 rat0         [V20,T12] (  2,  2   )    long  ->   x0         "Spilling to split statement for tree"
 ;* V21 rat1         [V21,T13] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V22 rat2         [V22,T11] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V22 rat2         [V22,T11] (  2,  2   )    long  ->   x0         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 16
 
@@ -64,7 +64,7 @@ G_M9562_IG02:        ; bbWeight=1, gcrefRegs=80004 {x2 x19}, byrefRegs=100000 {x
             ; gcrRegs +[x21]
             cbz     x21, G_M9562_IG07
                        ;; size=40 bbWeight=1 PerfScore 13.50
-G_M9562_IG03:        ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=100000 {x20}, byref
+G_M9562_IG03:        ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=100000 {x20}, byref, isz
             ; gcrRegs -[x0]
             mov     x0, x21
             ; gcrRegs +[x0]
@@ -77,10 +77,15 @@ G_M9562_IG03:        ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=1000
             ; gcrRegs +[x22]
             mov     w23, w1
             ldr     x24, [x19]
-            b       G_M9562_IG05
-                       ;; size=40 bbWeight=0.50 PerfScore 5.50
-G_M9562_IG04:        ; bbWeight=2, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=100000 {x20}, byref
+            mov     x0, x24
             ; gcrRegs -[x0]
+            ldr     x0, [x0, #0x38]
+            ldr     x0, [x0]
+            ldr     x0, [x0, #0x38]
+            cbnz    x0, G_M9562_IG05
+            b       G_M9562_IG05
+                       ;; size=60 bbWeight=0.50 PerfScore 10.75
+G_M9562_IG04:        ; bbWeight=2, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=100000 {x20}, byref
             mov     x0, x22
             ; gcrRegs +[x0]
             mov     w1, w23
@@ -130,7 +135,7 @@ G_M9562_IG07:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
             ret     lr
                        ;; size=20 bbWeight=1 PerfScore 5.00
 
-; Total bytes of code 232, prolog size 24, PerfScore 101.50, instruction count 58, allocated bytes for code 232 (MethodHash=57bfdaa5) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
+; Total bytes of code 252, prolog size 24, PerfScore 106.75, instruction count 63, allocated bytes for code 252 (MethodHash=57bfdaa5) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -141,7 +146,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
+  Function Length   : 63 (0x0003f) Actual length = 252 (0x0000fc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+9.80%) : 22422.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System._Canon]:getHasAnyApplicableMember():ubyte:this (FullOpts)

@@ -27,10 +27,10 @@
 ;  V16 tmp12        [V16,T00] (  5, 27   )     int  ->  x21         "field V01._index (fldOffset=0x8)" P-INDEP
 ;* V17 tmp13        [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "V03.[004..005)"
 ;* V18 cse0         [V18,T11] (  0,  0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;  V19 cse1         [V19,T06] (  1,  1   )    long  ->  x22         hoist "CSE - aggressive"
-;* V20 rat0         [V20,T07] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V19 cse1         [V19,T06] (  2,  2   )    long  ->  x22         hoist "CSE - aggressive"
+;  V20 rat0         [V20,T07] (  2,  4   )    long  ->   x0         "Spilling to split statement for tree"
 ;* V21 rat1         [V21,T08] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V22 rat2         [V22,T05] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V22 rat2         [V22,T05] (  2,  4   )    long  ->   x0         "fgMakeTemp is creating a new local variable"
 ;* V23 rat3         [V23,T10] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
 ;* V24 rat4         [V24,T01] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
@@ -49,7 +49,7 @@ G_M864_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {},
             mov     x19, x0
             ; gcrRegs +[x19]
                        ;; size=40 bbWeight=1 PerfScore 8.00
-G_M864_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M864_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [x19, #0x08]
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]]:GetEnumerator():Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1+Enumerator[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]]:this
@@ -62,10 +62,15 @@ G_M864_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byre
             ; gcrRegs +[x20]
             mov     w21, w1
             ldr     x22, [x19]
-            b       G_M864_IG04
-                       ;; size=44 bbWeight=1 PerfScore 16.50
-G_M864_IG03:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            mov     x0, x22
             ; gcrRegs -[x0]
+            ldr     x0, [x0, #0x38]
+            ldr     x0, [x0]
+            ldr     x0, [x0, #0x30]
+            cbnz    x0, G_M864_IG04
+            b       G_M864_IG04
+                       ;; size=64 bbWeight=1 PerfScore 27.00
+G_M864_IG03:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [x20, #0x08]
             ; gcrRegs +[x0]
             add     x8, fp, #24    // [V02 loc1]
@@ -113,7 +118,7 @@ G_M864_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 204, prolog size 36, PerfScore 128.00, instruction count 51, allocated bytes for code 204 (MethodHash=caadfc9f) for method Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
+; Total bytes of code 224, prolog size 36, PerfScore 138.50, instruction count 56, allocated bytes for code 224 (MethodHash=caadfc9f) for method Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -124,7 +129,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 51 (0x00033) Actual length = 204 (0x0000cc)
+  Function Length   : 56 (0x00038) Actual length = 224 (0x0000e0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+25.93%) : 10234.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)

@@ -8,8 +8,8 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  6,  4.50)     ref  ->  x19         this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
-;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <FSharp.Compiler.Infos+PropInfo>
+;  V00 this         [V00,T00] (  7,  5   )     ref  ->  x19         this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <<unknown class>>
 ;  V03 loc2         [V03,T04] (  2,  1   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
 ;* V04 loc3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <FSharp.Compiler.TypedTree+ValRef>
@@ -37,16 +37,29 @@ G_M3270_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
             bl      CORINFO_HELP_ISINSTANCEOFCLASS
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
-            cbz     x0, G_M3270_IG05
+            cbnz    x0, G_M3270_IG04
                        ;; size=24 bbWeight=1 PerfScore 4.00
 G_M3270_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
+            mov     x1, x19
+            ; gcrRegs +[x1]
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
+            bl      CORINFO_HELP_ISINSTANCEOFCLASS
+            ; gcrRegs -[x1 x19] +[x0]
+            ; gcr arg pop 0
+            cbnz    x0, G_M3270_IG06
+            b       G_M3270_IG06
+                       ;; size=28 bbWeight=0.50 PerfScore 2.50
+G_M3270_IG04:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x0] +[x19]
             ldr     x0, [x19, #0x18]
             ; gcrRegs +[x0]
-            cbz     x0, G_M3270_IG05
+            cbz     x0, G_M3270_IG06
             ldr     x1, [x19, #0x20]
             ; gcrRegs +[x1]
-            cbnz    x1, G_M3270_IG05
+            cbnz    x1, G_M3270_IG06
             ldr     x0, [x0, #0x08]
             ldr     x1, [x19, #0x08]
             movz    x2, #0xD1FFAB1E      // code for FSharp.Compiler.Infos:ValRef.IsFSharpEventProperty(FSharp.Compiler.TypedTree+ValRef,FSharp.Compiler.TcGlobals+TcGlobals):ubyte
@@ -54,23 +67,23 @@ G_M3270_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
                        ;; size=40 bbWeight=0.50 PerfScore 9.25
-G_M3270_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             br      x2
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M3270_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M3270_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0-x1 x19]
             mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M3270_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 108, prolog size 16, PerfScore 20.50, instruction count 27, allocated bytes for code 108 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
+; Total bytes of code 136, prolog size 16, PerfScore 23.00, instruction count 34, allocated bytes for code 136 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -81,7 +94,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 27 (0x0001b) Actual length = 108 (0x00006c)
+  Function Length   : 34 (0x00022) Actual length = 136 (0x000088)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

smoke_tests.nativeaot.windows.arm64.checked.mch

-4 (-2.33%) : 13179.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)

@@ -76,9 +76,8 @@ G_M20310_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x1]
             ldr     w2, [x1, #0x04]
             cmn     w2, #1
-            bge     G_M20310_IG07
-            b       G_M20310_IG03
-                       ;; size=60 bbWeight=2 PerfScore 45.00
+            blt     G_M20310_IG03
+                       ;; size=56 bbWeight=2 PerfScore 43.00
 G_M20310_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref
             ldp     w2, w1, [x1, #0x08]
             ; byrRegs -[x1]
@@ -100,7 +99,7 @@ G_M20310_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 172, prolog size 8, PerfScore 149.75, instruction count 43, allocated bytes for code 172 (MethodHash=5c1ab0a9) for method System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 168, prolog size 8, PerfScore 147.75, instruction count 42, allocated bytes for code 168 (MethodHash=5c1ab0a9) for method System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -111,7 +110,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
+  Function Length   : 42 (0x0002a) Actual length = 168 (0x0000a8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.27%) : 12074.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)

@@ -72,9 +72,8 @@ G_M27287_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x14]
             ldr     w15, [x14, #0x0C]
             cmn     w15, #1
-            bge     G_M27287_IG07
-            b       G_M27287_IG03
-                       ;; size=60 bbWeight=2 PerfScore 45.00
+            blt     G_M27287_IG03
+                       ;; size=56 bbWeight=2 PerfScore 43.00
 G_M27287_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=4001 {x0 x14}, byref
             ldr     x15, [x14]
             ; gcrRegs +[x15]
@@ -98,7 +97,7 @@ G_M27287_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 176, prolog size 8, PerfScore 150.00, instruction count 44, allocated bytes for code 176 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 172, prolog size 8, PerfScore 148.00, instruction count 43, allocated bytes for code 172 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -109,7 +108,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 44 (0x0002c) Actual length = 176 (0x0000b0)
+  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.22%) : 9825.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.Canon,System.Canon]:MoveNext():ubyte:this (FullOpts)

@@ -73,9 +73,8 @@ G_M56828_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x14]
             ldr     w15, [x14, #0x14]
             cmn     w15, #1
-            bge     G_M56828_IG07
-            b       G_M56828_IG03
-                       ;; size=64 bbWeight=2 PerfScore 54.00
+            blt     G_M56828_IG03
+                       ;; size=60 bbWeight=2 PerfScore 52.00
 G_M56828_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=4001 {x0 x14}, byref
             ldr     x15, [x14]
             ; gcrRegs +[x15]
@@ -99,7 +98,7 @@ G_M56828_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 180, prolog size 8, PerfScore 159.00, instruction count 45, allocated bytes for code 180 (MethodHash=5db22203) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 176, prolog size 8, PerfScore 157.00, instruction count 44, allocated bytes for code 176 (MethodHash=5db22203) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -110,7 +109,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 45 (0x0002d) Actual length = 180 (0x0000b4)
+  Function Length   : 44 (0x0002c) Actual length = 176 (0x0000b0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+6.67%) : 13884.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)

@@ -16,7 +16,7 @@
 ;  V06 loc1         [V06,T17] (  5,  8.50)    long  ->  registers  
 ;  V07 loc2         [V07,T15] (  7, 11   )    long  ->  registers  
 ;  V08 loc3         [V08,T18] (  6,  6   )     int  ->   x6        
-;  V09 loc4         [V09,T00] ( 16,102.50)     int  ->   x7        
+;  V09 loc4         [V09,T00] ( 18,102.50)     int  ->   x7        
 ;  V10 loc5         [V10,T20] (  3,  6   )     int  ->  x11        
 ;  V11 loc6         [V11,T04] (  7, 26   )     int  ->  x13        
 ;  V12 loc7         [V12,T12] (  6, 12   )    long  ->   x2        
@@ -25,10 +25,10 @@
 ;  V15 tmp2         [V15,T13] (  3, 12   )    long  ->   x3         "impSpillLclRefs"
 ;  V16 tmp3         [V16,T14] (  3, 12   )    long  ->  x13         "impSpillLclRefs"
 ;* V17 tmp4         [V17    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V18 tmp5         [V18,T10] (  3, 16   )     int  ->   x9         "Inlining Arg"
+;  V18 tmp5         [V18,T10] (  4, 16   )     int  ->   x9         "Inlining Arg"
 ;* V19 tmp6         [V19,T24] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V20 tmp7         [V20    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V21 tmp8         [V21,T01] (  3, 64   )     int  ->  x14         "Inlining Arg"
+;  V21 tmp8         [V21,T01] (  4, 64   )     int  ->  x14         "Inlining Arg"
 ;* V22 tmp9         [V22,T11] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V23 tmp10        [V23,T05] (  3, 24   )     ref  ->   x9         "arr expr"
 ;* V24 tmp11        [V24,T03] (  0,  0   )     ref  ->  zero-ref    "arr expr"
@@ -162,7 +162,17 @@ G_M50170_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M50170_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M50170_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            cmp     w7, w9
+            bls     G_M50170_IG21
+            b       G_M50170_IG21
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M50170_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            cmp     w7, w14
+            bls     G_M50170_IG22
+            b       G_M50170_IG22
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M50170_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, w7
             mov     w1, w9
             adrp    x2, [HIGH RELOC #0xD1FFAB1E]
@@ -173,7 +183,7 @@ G_M50170_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M50170_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M50170_IG22:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, w7
             mov     w1, w14
             adrp    x2, [HIGH RELOC #0xD1FFAB1E]
@@ -185,7 +195,7 @@ G_M50170_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 360, prolog size 8, PerfScore 285.50, instruction count 90, allocated bytes for code 360 (MethodHash=70013c05) for method Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
+; Total bytes of code 384, prolog size 8, PerfScore 285.50, instruction count 96, allocated bytes for code 384 (MethodHash=70013c05) for method Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -196,7 +206,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 90 (0x0005a) Actual length = 360 (0x000168)
+  Function Length   : 96 (0x00060) Actual length = 384 (0x000180)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+36 (+7.69%) : 8222.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)

@@ -14,7 +14,7 @@
 ;  V03 loc0         [V03,T18] (  3,  6   )     int  ->  x21         single-def
 ;  V04 loc1         [V04,T14] (  6,  9   )     int  ->  x22         single-def
 ;* V05 loc2         [V05    ] (  0,  0   )     int  ->  zero-ref   
-;  V06 loc3         [V06,T00] ( 13, 35   )     int  ->  x23        
+;  V06 loc3         [V06,T00] ( 15, 35   )     int  ->  x23        
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V08 tmp1         [V08,T26] (  2,  1   )     int  ->   x0        
 ;  V09 tmp2         [V09,T19] (  2,  4   )     int  ->   x0        
@@ -25,19 +25,19 @@
 ;* V14 tmp7         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp8         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp9         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
-;  V17 tmp10        [V17,T01] (  5, 32   )     int  ->   x0         "Inlining Arg"
+;  V17 tmp10        [V17,T01] (  6, 32   )     int  ->   x0         "Inlining Arg"
 ;* V18 tmp11        [V18    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V19 tmp12        [V19,T07] (  3, 16   )     int  ->   x1         "Inlining Arg"
+;  V19 tmp12        [V19,T07] (  4, 16   )     int  ->   x1         "Inlining Arg"
 ;* V20 tmp13        [V20,T20] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V21 tmp14        [V21,T11] (  3, 12   )     ref  ->   x0         class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
 ;* V22 tmp15        [V22    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V23 tmp16        [V23,T15] (  3,  8   )     int  ->   x1         "Inlining Arg"
+;  V23 tmp16        [V23,T15] (  4,  8   )     int  ->   x1         "Inlining Arg"
 ;* V24 tmp17        [V24,T24] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V25 tmp18        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp19        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V27 tmp20        [V27,T02] (  3, 24   )     ref  ->   x0         class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
 ;* V28 tmp21        [V28    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V29 tmp22        [V29,T08] (  3, 16   )     int  ->   x1         "Inlining Arg"
+;  V29 tmp22        [V29,T08] (  4, 16   )     int  ->   x1         "Inlining Arg"
 ;* V30 tmp23        [V30,T21] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V31 tmp24        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
 ;  V32 tmp25        [V32,T23] (  3,  3   )     ref  ->   x0         single-def "arr expr"
@@ -210,7 +210,22 @@ G_M29651_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M29651_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            cmp     w0, w1
+            bls     G_M29651_IG14
+            b       G_M29651_IG14
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M29651_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            cmp     w23, w1
+            bls     G_M29651_IG15
+            b       G_M29651_IG15
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M29651_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            cmp     w23, w1
+            bls     G_M29651_IG16
+            b       G_M29651_IG16
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M29651_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             adrp    x2, [HIGH RELOC #0xD1FFAB1E]
             add     x2, x2, [LOW RELOC #0xD1FFAB1E]
             ; gcrRegs +[x2]
@@ -218,7 +233,7 @@ G_M29651_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
             brk_windows #0
                        ;; size=16 bbWeight=0 PerfScore 0.00
-G_M29651_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, w23
             adrp    x2, [HIGH RELOC #0xD1FFAB1E]
             add     x2, x2, [LOW RELOC #0xD1FFAB1E]
@@ -227,7 +242,7 @@ G_M29651_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
             brk_windows #0
                        ;; size=20 bbWeight=0 PerfScore 0.00
-G_M29651_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, w23
             adrp    x2, [HIGH RELOC #0xD1FFAB1E]
             add     x2, x2, [LOW RELOC #0xD1FFAB1E]
@@ -237,7 +252,7 @@ G_M29651_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 468, prolog size 20, PerfScore 278.50, instruction count 117, allocated bytes for code 468 (MethodHash=0e6f8c2c) for method Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
+; Total bytes of code 504, prolog size 20, PerfScore 278.50, instruction count 126, allocated bytes for code 504 (MethodHash=0e6f8c2c) for method Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -248,7 +263,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 117 (0x00075) Actual length = 468 (0x0001d4)
+  Function Length   : 126 (0x0007e) Actual length = 504 (0x0001f8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+36 (+7.69%) : 13908.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)

@@ -13,7 +13,7 @@
 ;  V03 loc0         [V03,T18] (  3,  6   )     int  ->  x21         single-def
 ;  V04 loc1         [V04,T14] (  6,  9   )     int  ->  x22         single-def
 ;* V05 loc2         [V05    ] (  0,  0   )     int  ->  zero-ref   
-;  V06 loc3         [V06,T00] ( 13, 35   )     int  ->  x23        
+;  V06 loc3         [V06,T00] ( 15, 35   )     int  ->  x23        
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V08 tmp1         [V08,T26] (  2,  1   )     int  ->   x0        
 ;  V09 tmp2         [V09,T19] (  2,  4   )     int  ->   x0        
@@ -24,19 +24,19 @@
 ;* V14 tmp7         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp8         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp9         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
-;  V17 tmp10        [V17,T01] (  5, 32   )     int  ->   x0         "Inlining Arg"
+;  V17 tmp10        [V17,T01] (  6, 32   )     int  ->   x0         "Inlining Arg"
 ;* V18 tmp11        [V18    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V19 tmp12        [V19,T07] (  3, 16   )     int  ->   x1         "Inlining Arg"
+;  V19 tmp12        [V19,T07] (  4, 16   )     int  ->   x1         "Inlining Arg"
 ;* V20 tmp13        [V20,T20] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V21 tmp14        [V21,T11] (  3, 12   )     ref  ->   x0         class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
 ;* V22 tmp15        [V22    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V23 tmp16        [V23,T15] (  3,  8   )     int  ->   x1         "Inlining Arg"
+;  V23 tmp16        [V23,T15] (  4,  8   )     int  ->   x1         "Inlining Arg"
 ;* V24 tmp17        [V24,T24] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V25 tmp18        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp19        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V27 tmp20        [V27,T02] (  3, 24   )     ref  ->   x0         class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
 ;* V28 tmp21        [V28    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V29 tmp22        [V29,T08] (  3, 16   )     int  ->   x1         "Inlining Arg"
+;  V29 tmp22        [V29,T08] (  4, 16   )     int  ->   x1         "Inlining Arg"
 ;* V30 tmp23        [V30,T21] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V31 tmp24        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
 ;  V32 tmp25        [V32,T23] (  3,  3   )     ref  ->   x0         single-def "arr expr"
@@ -209,7 +209,22 @@ G_M29651_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M29651_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            cmp     w0, w1
+            bls     G_M29651_IG14
+            b       G_M29651_IG14
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M29651_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            cmp     w23, w1
+            bls     G_M29651_IG15
+            b       G_M29651_IG15
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M29651_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            cmp     w23, w1
+            bls     G_M29651_IG16
+            b       G_M29651_IG16
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M29651_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             adrp    x2, [HIGH RELOC #0xD1FFAB1E]
             add     x2, x2, [LOW RELOC #0xD1FFAB1E]
             ; gcrRegs +[x2]
@@ -217,7 +232,7 @@ G_M29651_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
             brk_windows #0
                        ;; size=16 bbWeight=0 PerfScore 0.00
-G_M29651_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, w23
             adrp    x2, [HIGH RELOC #0xD1FFAB1E]
             add     x2, x2, [LOW RELOC #0xD1FFAB1E]
@@ -226,7 +241,7 @@ G_M29651_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
             brk_windows #0
                        ;; size=20 bbWeight=0 PerfScore 0.00
-G_M29651_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, w23
             adrp    x2, [HIGH RELOC #0xD1FFAB1E]
             add     x2, x2, [LOW RELOC #0xD1FFAB1E]
@@ -236,7 +251,7 @@ G_M29651_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 468, prolog size 20, PerfScore 278.50, instruction count 117, allocated bytes for code 468 (MethodHash=0e6f8c2c) for method Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
+; Total bytes of code 504, prolog size 20, PerfScore 278.50, instruction count 126, allocated bytes for code 504 (MethodHash=0e6f8c2c) for method Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -247,7 +262,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 117 (0x00075) Actual length = 468 (0x0001d4)
+  Function Length   : 126 (0x0007e) Actual length = 504 (0x0001f8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.windows.arm64.checked.mch 469 155 49 265 -768 +628
benchmarks.run_pgo.windows.arm64.checked.mch 30,106 10,520 13,284 6,302 -64,856 +249,124
benchmarks.run_tiered.windows.arm64.checked.mch 127 46 13 68 -200 +164
coreclr_tests.run.windows.arm64.checked.mch 59,453 16,273 16,292 26,888 -93,068 +121,796
libraries.crossgen2.windows.arm64.checked.mch 1,202 108 135 959 -576 +2,220
libraries.pmi.windows.arm64.checked.mch 31,221 5,655 7,735 17,831 -34,636 +66,480
libraries_tests.run.windows.arm64.Release.mch 73,046 23,556 26,934 22,556 -224,444 +365,152
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 69,820 11,167 29,723 28,930 -71,948 +204,356
realworld.run.windows.arm64.checked.mch 393 47 74 272 -220 +1,492
smoke_tests.nativeaot.windows.arm64.checked.mch 165 27 33 105 -124 +580
266,002 67,554 94,272 104,176 -490,840 +1,011,992

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.arm64.checked.mch 24,445 4 24,441 0 (0.00%) 4 (0.02%)
benchmarks.run_pgo.windows.arm64.checked.mch 98,308 48,543 49,765 114 (0.12%) 125 (0.13%)
benchmarks.run_tiered.windows.arm64.checked.mch 48,501 36,685 11,816 0 (0.00%) 4 (0.01%)
coreclr_tests.run.windows.arm64.checked.mch 595,368 362,737 232,631 316 (0.05%) 317 (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,046 6 304,040 0 (0.00%) 7 (0.00%)
libraries_tests.run.windows.arm64.Release.mch 630,439 461,984 168,455 2,171 (0.34%) 2,223 (0.35%)
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 316,297 21,559 294,738 0 (0.00%) 4 (0.00%)
realworld.run.windows.arm64.checked.mch 33,192 3 33,189 0 (0.00%) 3 (0.01%)
smoke_tests.nativeaot.windows.arm64.checked.mch 24,181 7 24,174 0 (0.00%) 0 (0.00%)
2,318,207 931,543 1,386,664 2,601 (0.11%) 2,687 (0.12%)

jit-analyze output

benchmarks.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: 10961376 (overridden on cmd)
Total bytes of diff: 10961236 (overridden on cmd)
Total bytes of delta: -140 (-0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          32 : 9230.dasm (0.24 % of base)
          28 : 17452.dasm (0.91 % of base)
          24 : 1110.dasm (3.75 % of base)
          24 : 14058.dasm (4.08 % of base)
          24 : 14591.dasm (0.66 % of base)
          24 : 15435.dasm (3.75 % of base)
          24 : 21684.dasm (14.29 % of base)
          24 : 223.dasm (3.77 % of base)
          24 : 18708.dasm (0.36 % of base)
          24 : 21824.dasm (2.88 % of base)
          20 : 20541.dasm (3.85 % of base)
          20 : 22527.dasm (5.56 % of base)
          20 : 4842.dasm (3.40 % of base)
          16 : 11180.dasm (2.67 % of base)
          16 : 3127.dasm (2.55 % of base)
          16 : 4306.dasm (2.38 % of base)
          16 : 8495.dasm (2.88 % of base)
          16 : 10977.dasm (0.99 % of base)
          16 : 18144.dasm (4.17 % of base)
          12 : 14610.dasm (7.69 % of base)

Top file improvements (bytes):
         -32 : 11216.dasm (-0.31 % of base)
         -32 : 8800.dasm (-0.31 % of base)
         -24 : 9401.dasm (-0.18 % of base)
         -16 : 5169.dasm (-0.66 % of base)
         -12 : 6338.dasm (-0.98 % of base)
         -12 : 16812.dasm (-0.99 % of base)
         -12 : 4619.dasm (-3.33 % of base)
         -12 : 7991.dasm (-0.85 % of base)
          -8 : 10220.dasm (-0.35 % of base)
          -8 : 14566.dasm (-0.34 % of base)
          -8 : 2247.dasm (-0.90 % of base)
          -8 : 2320.dasm (-0.47 % of base)
          -8 : 14728.dasm (-1.33 % of base)
          -8 : 3250.dasm (-0.27 % of base)
          -8 : 4413.dasm (-1.06 % of base)
          -4 : 1303.dasm (-2.04 % of base)
          -4 : 14461.dasm (-2.27 % of base)
          -4 : 2276.dasm (-2.27 % of base)
          -4 : 2796.dasm (-1.82 % of base)
          -4 : 2865.dasm (-0.57 % of base)

62 total files with Code Size differences (36 improved, 26 regressed), 20 unchanged.

Top method regressions (bytes):
          32 (0.24 % of base) : 9230.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
          28 (0.91 % of base) : 17452.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
          24 (0.36 % of base) : 18708.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          24 (3.77 % of base) : 223.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
          24 (3.75 % of base) : 1110.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
          24 (3.75 % of base) : 15435.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (FullOpts)
          24 (2.88 % of base) : 21824.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:IndexOf(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],int,int,System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):int:this (FullOpts)
          24 (14.29 % of base) : 21684.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
          24 (4.08 % of base) : 14058.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
          24 (0.66 % of base) : 14591.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
          20 (3.85 % of base) : 20541.dasm - System.Collections.Concurrent.ConcurrentBag`1[int]:ToArray():int[]:this (FullOpts)
          20 (3.40 % of base) : 4842.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
          20 (5.56 % of base) : 22527.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
          16 (4.17 % of base) : 18144.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
          16 (2.55 % of base) : 3127.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (FullOpts)
          16 (2.38 % of base) : 4306.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`2[int,int],System.__Canon]:FindValue(System.ValueTuple`2[int,int]):byref:this (FullOpts)
          16 (2.67 % of base) : 11180.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
          16 (2.88 % of base) : 8495.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
          16 (0.99 % of base) : 10977.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
          12 (1.99 % of base) : 3234.dasm - Internal.Cryptography.Helpers:ToLpstrArray(System.Security.Cryptography.OidCollection,byref):System.Runtime.InteropServices.SafeHandle (FullOpts)

Top method improvements (bytes):
         -32 (-0.31 % of base) : 11216.dasm - Jil.Deserialize.Methods:ParseISO8601Date(System.IO.TextReader,ushort[],int,int):System.DateTime (FullOpts)
         -32 (-0.31 % of base) : 8800.dasm - Jil.Deserialize.Methods:ParseISO8601DateThunkReader(byref,ushort[],int,int):System.DateTime (FullOpts)
         -24 (-0.18 % of base) : 9401.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (FullOpts)
         -16 (-0.66 % of base) : 5169.dasm - System.Text.Json.Tests.Perf_Deep:WriteDeepUtf16():this (FullOpts)
         -12 (-0.99 % of base) : 16812.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.__Canon]]):this (FullOpts)
         -12 (-0.85 % of base) : 7991.dasm - System.Collections.Generic.PriorityQueue`2[System.Guid,System.Guid]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.Guid,System.Guid]]):this (FullOpts)
         -12 (-3.33 % of base) : 4619.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
         -12 (-0.98 % of base) : 6338.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:BuildConstructor(System.Reflection.Emit.TypeBuilder,Utf8Json.Internal.Emit.MetaType,System.Reflection.ConstructorInfo,System.Reflection.Emit.FieldBuilder,System.Reflection.Emit.ILGenerator,ubyte,ubyte):System.Collections.Generic.Dictionary`2[Utf8Json.Internal.Emit.MetaMember,System.Reflection.FieldInfo] (FullOpts)
          -8 (-1.06 % of base) : 4413.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:FindValue(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant):byref:this (FullOpts)
          -8 (-0.35 % of base) : 10220.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.ValueTuple`3[System.__Canon,System.__Canon,ubyte]]:MoveNext():ubyte:this (FullOpts)
          -8 (-0.47 % of base) : 2320.dasm - System.IO.Tests.Perf_RandomAccess+<ReadAsync>d__16:MoveNext():this (FullOpts)
          -8 (-0.90 % of base) : 2247.dasm - System.Text.Json.Utf8JsonReader:ReadSingleSegment():ubyte:this (FullOpts)
          -8 (-1.33 % of base) : 14728.dasm - System.Text.Json.Utf8JsonReader:SkipAllComments(byref):ubyte:this (FullOpts)
          -8 (-0.27 % of base) : 3250.dasm - System.TimeZoneInfo:TryCreateAdjustmentRules(System.String,byref,byref,byref,int):ubyte (FullOpts)
          -8 (-0.34 % of base) : 14566.dasm - System.Xml.XmlConverter:TryParseDateTime(ubyte[],int,int,byref):ubyte (FullOpts)
          -4 (-2.27 % of base) : 14461.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 2276.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 4024.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 13752.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 15342.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)

Top method regressions (percentages):
          24 (14.29 % of base) : 21684.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
          12 (7.69 % of base) : 14610.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
          20 (5.56 % of base) : 22527.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
          16 (4.17 % of base) : 18144.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
          24 (4.08 % of base) : 14058.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
          20 (3.85 % of base) : 20541.dasm - System.Collections.Concurrent.ConcurrentBag`1[int]:ToArray():int[]:this (FullOpts)
          24 (3.77 % of base) : 223.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
          24 (3.75 % of base) : 1110.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
          24 (3.75 % of base) : 15435.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (FullOpts)
          12 (3.70 % of base) : 3830.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
          20 (3.40 % of base) : 4842.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
          24 (2.88 % of base) : 21824.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:IndexOf(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],int,int,System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):int:this (FullOpts)
          16 (2.88 % of base) : 8495.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
          16 (2.67 % of base) : 11180.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
          16 (2.55 % of base) : 3127.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (FullOpts)
          16 (2.38 % of base) : 4306.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`2[int,int],System.__Canon]:FindValue(System.ValueTuple`2[int,int]):byref:this (FullOpts)
          12 (2.29 % of base) : 8989.dasm - System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (FullOpts)
          12 (1.99 % of base) : 3234.dasm - Internal.Cryptography.Helpers:ToLpstrArray(System.Security.Cryptography.OidCollection,byref):System.Runtime.InteropServices.SafeHandle (FullOpts)
           4 (1.45 % of base) : 11574.dasm - Microsoft.Extensions.Logging.Logger:Log[Microsoft.Extensions.Logging.FormattedLogValues](int,Microsoft.Extensions.Logging.EventId,Microsoft.Extensions.Logging.FormattedLogValues,System.Exception,System.Func`3[Microsoft.Extensions.Logging.FormattedLogValues,System.Exception,System.String]):this (FullOpts)
           4 (1.20 % of base) : 6710.dasm - Microsoft.Extensions.Logging.Logger:Log[Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon]](int,Microsoft.Extensions.Logging.EventId,Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon],System.Exception,System.Func`3[Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon],System.__Canon,System.__Canon]):this (FullOpts)

Top method improvements (percentages):
         -12 (-3.33 % of base) : 4619.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
          -4 (-2.27 % of base) : 14461.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 2276.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 4024.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 13752.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 15342.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 15738.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 15775.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 4797.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.13 % of base) : 8054.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.08 % of base) : 7538.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 100.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 1303.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.96 % of base) : 219.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.82 % of base) : 2796.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.41 % of base) : 6800.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -8 (-1.33 % of base) : 14728.dasm - System.Text.Json.Utf8JsonReader:SkipAllComments(byref):ubyte:this (FullOpts)
          -4 (-1.30 % of base) : 5199.dasm - System.Text.Json.Utf8JsonWriter:ValidateEnd(ubyte):this (FullOpts)
          -8 (-1.06 % of base) : 4413.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:FindValue(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant):byref:this (FullOpts)
         -12 (-0.99 % of base) : 16812.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.__Canon]]):this (FullOpts)


benchmarks.run_pgo.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: 47210356 (overridden on cmd)
Total bytes of diff: 47394624 (overridden on cmd)
Total bytes of delta: 184268 (0.39 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         320 : 64556.dasm (3.10 % of base)
         284 : 34565.dasm (11.11 % of base)
         280 : 31809.dasm (10.95 % of base)
         264 : 34461.dasm (9.75 % of base)
         264 : 34469.dasm (9.69 % of base)
         264 : 34452.dasm (9.69 % of base)
         260 : 31812.dasm (10.42 % of base)
         244 : 35640.dasm (10.43 % of base)
         216 : 9874.dasm (11.56 % of base)
         216 : 34434.dasm (11.71 % of base)
         216 : 34270.dasm (11.59 % of base)
         208 : 34414.dasm (11.06 % of base)
         200 : 82105.dasm (10.18 % of base)
         200 : 86418.dasm (10.18 % of base)
         200 : 34438.dasm (10.20 % of base)
         200 : 17069.dasm (10.18 % of base)
         164 : 49311.dasm (3.80 % of base)
         164 : 92700.dasm (3.86 % of base)
         160 : 34972.dasm (7.30 % of base)
         160 : 41390.dasm (3.81 % of base)

Top file improvements (bytes):
        -264 : 88834.dasm (-1.77 % of base)
        -128 : 48168.dasm (-3.48 % of base)
        -112 : 88838.dasm (-4.56 % of base)
         -80 : 97279.dasm (-2.58 % of base)
         -72 : 83053.dasm (-2.32 % of base)
         -72 : 16047.dasm (-2.20 % of base)
         -72 : 44818.dasm (-2.32 % of base)
         -72 : 78796.dasm (-2.32 % of base)
         -72 : 83149.dasm (-2.30 % of base)
         -72 : 93629.dasm (-2.34 % of base)
         -64 : 88168.dasm (-1.97 % of base)
         -64 : 92156.dasm (-2.03 % of base)
         -60 : 86899.dasm (-1.94 % of base)
         -60 : 42180.dasm (-0.94 % of base)
         -60 : 95333.dasm (-1.96 % of base)
         -56 : 63948.dasm (-0.93 % of base)
         -52 : 34234.dasm (-2.66 % of base)
         -48 : 81999.dasm (-3.36 % of base)
         -48 : 71813.dasm (-1.32 % of base)
         -48 : 76407.dasm (-1.49 % of base)

96 total files with Code Size differences (40 improved, 56 regressed), 20 unchanged.

Top method regressions (bytes):
         320 (3.10 % of base) : 64556.dasm - Microsoft.CodeAnalysis.Compilation:Emit(System.IO.Stream,System.IO.Stream,System.IO.Stream,System.IO.Stream,System.IO.Stream,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.ResourceDescription],Microsoft.CodeAnalysis.Emit.EmitOptions,Microsoft.CodeAnalysis.IMethodSymbol,System.IO.Stream,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.EmbeddedText],Microsoft.CodeAnalysis.RebuildData,Microsoft.CodeAnalysis.CodeGen.CompilationTestData,System.Threading.CancellationToken):Microsoft.CodeAnalysis.Emit.EmitResult:this (Tier1)
         284 (11.11 % of base) : 34565.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         280 (10.95 % of base) : 31809.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         264 (9.69 % of base) : 34469.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1)
         264 (9.75 % of base) : 34461.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1)
         264 (9.69 % of base) : 34452.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1)
         260 (10.42 % of base) : 31812.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         244 (10.43 % of base) : 35640.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]:IndexOf(byref,int):int:this (Tier1)
         216 (11.56 % of base) : 9874.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         216 (11.71 % of base) : 34434.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         216 (11.59 % of base) : 34270.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         208 (11.06 % of base) : 34414.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         200 (10.18 % of base) : 82105.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         200 (10.18 % of base) : 86418.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         200 (10.20 % of base) : 34438.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         200 (10.18 % of base) : 17069.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         164 (3.80 % of base) : 49311.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
         164 (3.86 % of base) : 92700.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
         160 (7.30 % of base) : 34972.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         160 (3.81 % of base) : 41390.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)

Top method improvements (bytes):
        -264 (-1.77 % of base) : 88834.dasm - Jil.Common.Utils:FindRecursiveTypes(System.Type):System.Collections.Generic.HashSet`1[System.Type] (Tier1)
        -128 (-3.48 % of base) : 48168.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1)
        -112 (-4.56 % of base) : 88838.dasm - System.Linq.Enumerable+WhereListIterator`1[System.__Canon]:ToList():System.Collections.Generic.List`1[System.__Canon]:this (Tier1)
         -80 (-2.58 % of base) : 97279.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -72 (-2.32 % of base) : 83053.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -72 (-2.20 % of base) : 16047.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -72 (-2.32 % of base) : 44818.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -72 (-2.32 % of base) : 78796.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -72 (-2.30 % of base) : 83149.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -72 (-2.34 % of base) : 93629.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -64 (-1.97 % of base) : 88168.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -64 (-2.03 % of base) : 92156.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -60 (-0.94 % of base) : 42180.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier1)
         -60 (-1.94 % of base) : 86899.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -60 (-1.96 % of base) : 95333.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -56 (-0.93 % of base) : 63948.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:BindMethodBody(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.TypeCompilationState,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.BoundNode,ubyte,byref,byref,byref,byref):Microsoft.CodeAnalysis.CSharp.BoundBlock (Tier1)
         -52 (-2.66 % of base) : 34234.dasm - System.Linq.Enumerable+DistinctIterator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
         -48 (-1.32 % of base) : 71813.dasm - Microsoft.Extensions.Configuration.ConfigurationProvider:GetChildKeys(System.Collections.Generic.IEnumerable`1[System.String],System.String):System.Collections.Generic.IEnumerable`1[System.String]:this (Tier1)
         -48 (-3.36 % of base) : 81999.dasm - System.Collections.Hashtable:get_Item(System.Object):System.Object:this (Tier1)
         -48 (-1.49 % of base) : 76407.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)

Top method regressions (percentages):
          28 (25.00 % of base) : 16041.dasm - System.Diagnostics.Stopwatch:QueryPerformanceCounter():long (Tier1)
          80 (21.28 % of base) : 12301.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Enumerator[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier1)
          20 (18.52 % of base) : 63602.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
          20 (17.86 % of base) : 63440.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
          24 (17.65 % of base) : 10361.dasm - System.RuntimeMethodHandle:GetSlot(System.IRuntimeMethodInfo):int (Tier1)
          20 (17.24 % of base) : 83484.dasm - System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.__Canon]]:SetItem(int,System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.__Canon]],byref,byref):System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.__Canon]]:this (Tier1)
          24 (17.14 % of base) : 39176.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
          24 (17.14 % of base) : 42028.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
          28 (15.91 % of base) : 12016.dasm - System.Threading.LowLevelLock:SetOwnerThreadToCurrent():this (Tier1)
          76 (15.45 % of base) : 63751.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:GetEmbeddedTypes(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (Tier1)
          28 (14.89 % of base) : 33810.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.89 % of base) : 47454.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.89 % of base) : 50846.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.89 % of base) : 67111.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.89 % of base) : 72359.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (14.89 % of base) : 95270.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          20 (14.29 % of base) : 39207.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
          20 (14.29 % of base) : 42079.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
          44 (13.75 % of base) : 12132.dasm - System.Threading.PortableThreadPool:NotifyWorkItemComplete(System.Object,int):ubyte:this (Tier1)
          36 (13.43 % of base) : 31796.dasm - System.Buffers.StringSearchValuesHelper:ValidateReadPosition(System.ReadOnlySpan`1[ushort],byref,int) (Tier1)

Top method improvements (percentages):
         -20 (-8.20 % of base) : 7498.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(ulong,System.Object):System.Object (Tier1)
         -40 (-7.75 % of base) : 70487.dasm - System.Reflection.Internal.EncodingHelper:DecodeUtf8(ulong,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)
          -4 (-7.69 % of base) : 64259.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:IsSpecialEndHandlerBlock(Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock):ubyte (Tier1)
         -12 (-7.32 % of base) : 64356.dasm - Microsoft.CodeAnalysis.CSharp.BoundStatementList:.ctor(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],ubyte):this (Tier1)
         -12 (-6.82 % of base) : 63912.dasm - Roslyn.Utilities.FileNameUtilities:IndexOfFileName(System.String):int (Tier1)
         -20 (-6.76 % of base) : 48027.dasm - NeuralJagged:do_mid_error() (Tier1)
         -20 (-6.67 % of base) : 50249.dasm - Neural:do_mid_error() (Tier1)
          -4 (-6.67 % of base) : 82502.dasm - System.Math:Max(double,double):double (Tier1)
         -20 (-6.49 % of base) : 50247.dasm - Neural:do_out_forward() (Tier1)
          -8 (-6.45 % of base) : 57665.dasm - System.Reflection.Internal.MemoryBlock:PeekTaggedReference(int,ubyte):uint:this (Tier1)
          -4 (-6.25 % of base) : 84143.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -4 (-5.88 % of base) : 62897.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:op_Equality(Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.AssemblyIdentity):ubyte (Tier1)
         -28 (-5.60 % of base) : 83969.dasm - Benchstone.BenchF.SqMtx:Inner(double[][],double[][],int) (Tier1-OSR)
          -4 (-5.56 % of base) : 29070.dasm - System.Net.Sockets.Socket:CheckErrorAndUpdateStatus(int):ubyte:this (Tier1)
          -4 (-5.56 % of base) : 92684.dasm - System.Text.RegularExpressions.RegexNode:get_IsOneFamily():ubyte:this (Tier1)
          -4 (-5.56 % of base) : 92681.dasm - System.Text.RegularExpressions.RegexNode:get_IsSetFamily():ubyte:this (Tier1)
          -4 (-5.26 % of base) : 59857.dasm - System.Threading.CancellationToken:ThrowIfCancellationRequested():this (Tier1)
          -4 (-5.26 % of base) : 73701.dasm - System.Threading.CancellationToken:ThrowIfCancellationRequested():this (Tier1)
          -4 (-5.26 % of base) : 66329.dasm - System.Threading.CancellationToken:ThrowIfCancellationRequested():this (Tier1)
          -4 (-5.26 % of base) : 12190.dasm - System.Threading.CancellationToken:ThrowIfCancellationRequested():this (Tier1)


benchmarks.run_tiered.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: 15343876 (overridden on cmd)
Total bytes of diff: 15343840 (overridden on cmd)
Total bytes of delta: -36 (-0.00 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          32 : 20565.dasm (0.24 % of base)
          24 : 11597.dasm (3.77 % of base)
          16 : 39325.dasm (2.52 % of base)
          16 : 42871.dasm (2.55 % of base)
          12 : 42629.dasm (1.26 % of base)
          12 : 21236.dasm (0.15 % of base)
          12 : 44030.dasm (2.86 % of base)
          12 : 45331.dasm (1.91 % of base)
           8 : 27957.dasm (0.96 % of base)
           8 : 38721.dasm (0.90 % of base)
           4 : 46508.dasm (0.07 % of base)
           4 : 10863.dasm (0.11 % of base)
           4 : 41512.dasm (0.17 % of base)

Top file improvements (bytes):
          -8 : 45176.dasm (-0.38 % of base)
          -8 : 6126.dasm (-0.47 % of base)
          -8 : 28970.dasm (-0.54 % of base)
          -8 : 44400.dasm (-0.35 % of base)
          -4 : 39192.dasm (-0.43 % of base)
          -4 : 41561.dasm (-0.46 % of base)
          -4 : 44417.dasm (-0.60 % of base)
          -4 : 45209.dasm (-0.31 % of base)
          -4 : 47041.dasm (-0.19 % of base)
          -4 : 6697.dasm (-0.57 % of base)
          -4 : 10496.dasm (-0.57 % of base)
          -4 : 27488.dasm (-1.41 % of base)
          -4 : 29209.dasm (-0.25 % of base)
          -4 : 38684.dasm (-2.08 % of base)
          -4 : 43017.dasm (-0.85 % of base)
          -4 : 44601.dasm (-0.21 % of base)
          -4 : 918.dasm (-2.04 % of base)
          -4 : 32076.dasm (-0.41 % of base)
          -4 : 42797.dasm (-0.22 % of base)
          -4 : 44065.dasm (-0.55 % of base)

44 total files with Code Size differences (31 improved, 13 regressed), 25 unchanged.

Top method regressions (bytes):
          32 (0.24 % of base) : 20565.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
          24 (3.77 % of base) : 11597.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (Tier1)
          16 (2.55 % of base) : 42871.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (Tier1)
          16 (2.52 % of base) : 39325.dasm - System.Collections.Generic.Dictionary`2[System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle]]:FindValue(System.Reflection.Metadata.TypeDefinitionHandle):byref:this (Tier1)
          12 (0.15 % of base) : 21236.dasm - (dynamicClass):_DynamicMethod9(byref,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
          12 (1.26 % of base) : 42629.dasm - JetStream.Hands:playHands(System.Collections.Generic.List`1[JetStream.Player]) (Tier1-OSR)
          12 (2.86 % of base) : 44030.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
          12 (1.91 % of base) : 45331.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)
           8 (0.90 % of base) : 38721.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (Tier1)
           8 (0.96 % of base) : 27957.dasm - System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong],System.__Canon]:FindValue(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]):byref:this (Tier1)
           4 (0.07 % of base) : 46508.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
           4 (0.17 % of base) : 41512.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (Tier1)
           4 (0.11 % of base) : 10863.dasm - System.Reflection.MethodBaseInvoker:InvokeWithManyArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (Tier0-FullOpts)

Top method improvements (bytes):
          -8 (-0.35 % of base) : 44400.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
          -8 (-0.54 % of base) : 28970.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<SyncReadAsyncWithCancellationToken>d__9:MoveNext():this (Tier1-OSR)
          -8 (-0.47 % of base) : 6126.dasm - System.IO.Tests.Perf_RandomAccess+<ReadAsync>d__16:MoveNext():this (Tier1)
          -8 (-0.38 % of base) : 45176.dasm - System.Net.Security.Tests.SslStreamTests+<>c__DisplayClass40_0+<<ConcurrentReadWriteLargeBuffer>b__0>d:MoveNext():this (Tier1-OSR)
          -4 (-0.42 % of base) : 31291.dasm - Interop.ComWrappersTests+<ParallelRCWLookUp>d__4:MoveNext():this (Tier1)
          -4 (-0.43 % of base) : 39192.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:MakeDeclaredBaseType():Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier1)
          -4 (-0.46 % of base) : 41561.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantNodesOnly>d__172:MoveNext():ubyte:this (Tier1)
          -4 (-0.30 % of base) : 37137.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:TryInsert(System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon],ubyte):ubyte:this (Tier1)
          -4 (-1.92 % of base) : 4306.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-2.04 % of base) : 918.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)
          -4 (-2.08 % of base) : 38684.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:MoveNext():ubyte:this (Tier1)
          -4 (-2.08 % of base) : 20959.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-1.41 % of base) : 27488.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (Tier1)
          -4 (-0.25 % of base) : 4042.dasm - System.Diagnostics.Tracing.EventSource:Initialize(System.Guid,System.String,System.String[]):this (Tier1)
          -4 (-0.57 % of base) : 44389.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:FindNextEntry():this (Tier1)
          -4 (-0.60 % of base) : 44417.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:GetData():ubyte:this (Tier1)
          -4 (-0.25 % of base) : 29209.dasm - System.IO.File+<<WriteAllBytesAsync>g__Core|94_0>d:MoveNext():this (Tier1)
          -4 (-0.41 % of base) : 32076.dasm - System.IO.Pipes.Tests.Perf_PipeTest+<ReadWrite>d__7:MoveNext():this (Tier1)
          -4 (-0.31 % of base) : 45209.dasm - System.IO.RandomAccess+<WriteGatherAtOffsetSingleSyscallAsync>d__33:MoveNext():this (Tier1)
          -4 (-0.20 % of base) : 40181.dasm - System.IO.Tests.Perf_RandomAccess+<WriteAsync>d__17:MoveNext():this (Tier1)

Top method regressions (percentages):
          24 (3.77 % of base) : 11597.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (Tier1)
          12 (2.86 % of base) : 44030.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
          16 (2.55 % of base) : 42871.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (Tier1)
          16 (2.52 % of base) : 39325.dasm - System.Collections.Generic.Dictionary`2[System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle]]:FindValue(System.Reflection.Metadata.TypeDefinitionHandle):byref:this (Tier1)
          12 (1.91 % of base) : 45331.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)
          12 (1.26 % of base) : 42629.dasm - JetStream.Hands:playHands(System.Collections.Generic.List`1[JetStream.Player]) (Tier1-OSR)
           8 (0.96 % of base) : 27957.dasm - System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong],System.__Canon]:FindValue(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]):byref:this (Tier1)
           8 (0.90 % of base) : 38721.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (Tier1)
          32 (0.24 % of base) : 20565.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
           4 (0.17 % of base) : 41512.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (Tier1)
          12 (0.15 % of base) : 21236.dasm - (dynamicClass):_DynamicMethod9(byref,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
           4 (0.11 % of base) : 10863.dasm - System.Reflection.MethodBaseInvoker:InvokeWithManyArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (Tier0-FullOpts)
           4 (0.07 % of base) : 46508.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)

Top method improvements (percentages):
          -4 (-2.08 % of base) : 38684.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:MoveNext():ubyte:this (Tier1)
          -4 (-2.08 % of base) : 20959.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-2.04 % of base) : 918.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)
          -4 (-1.92 % of base) : 4306.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-1.41 % of base) : 27488.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (Tier1)
          -4 (-0.85 % of base) : 44600.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetResult():this (Tier1)
          -4 (-0.85 % of base) : 43017.dasm - System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder:SetResult():this (Tier1)
          -4 (-0.60 % of base) : 44417.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:GetData():ubyte:this (Tier1)
          -4 (-0.57 % of base) : 10496.dasm - System.String:Equals(System.String,int):ubyte:this (Tier1)
          -4 (-0.57 % of base) : 44389.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:FindNextEntry():this (Tier1)
          -4 (-0.57 % of base) : 6697.dasm - System.String:Equals(System.String,System.String,int):ubyte (Tier1)
          -4 (-0.55 % of base) : 44065.dasm - System.Threading.Tasks.Tests.Perf_AsyncMethods+<Yield>d__2:MoveNext():this (Tier1)
          -8 (-0.54 % of base) : 28970.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<SyncReadAsyncWithCancellationToken>d__9:MoveNext():this (Tier1-OSR)
          -4 (-0.47 % of base) : 43175.dasm - System.Threading.Tasks.Tests.Perf_AsyncMethods+<EmptyAsyncMethodInvocation>d__0:MoveNext():this (Tier1-OSR)
          -8 (-0.47 % of base) : 6126.dasm - System.IO.Tests.Perf_RandomAccess+<ReadAsync>d__16:MoveNext():this (Tier1)
          -4 (-0.46 % of base) : 41561.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantNodesOnly>d__172:MoveNext():ubyte:this (Tier1)
          -4 (-0.43 % of base) : 39192.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:MakeDeclaredBaseType():Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier1)
          -4 (-0.42 % of base) : 31291.dasm - Interop.ComWrappersTests+<ParallelRCWLookUp>d__4:MoveNext():this (Tier1)
          -4 (-0.41 % of base) : 32076.dasm - System.IO.Pipes.Tests.Perf_PipeTest+<ReadWrite>d__7:MoveNext():this (Tier1)
          -4 (-0.39 % of base) : 48179.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<SendAsyncThenReceiveAsync_SocketAsyncEventArgs>d__11:MoveNext():this (Tier1-OSR)


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: 495343368 (overridden on cmd)
Total bytes of diff: 495372096 (overridden on cmd)
Total bytes of delta: 28728 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1020 : 24791.dasm (88.24 % of base)
         292 : 541469.dasm (2.94 % of base)
         208 : 392766.dasm (1.91 % of base)
         208 : 390849.dasm (1.91 % of base)
         160 : 357092.dasm (2.98 % of base)
         160 : 357673.dasm (2.96 % of base)
         160 : 581308.dasm (2.98 % of base)
         160 : 581490.dasm (2.98 % of base)
         156 : 388957.dasm (2.04 % of base)
         152 : 150560.dasm (2.66 % of base)
         144 : 211026.dasm (2.68 % of base)
         128 : 298491.dasm (3.28 % of base)
         124 : 388379.dasm (1.61 % of base)
         112 : 250500.dasm (5.23 % of base)
         108 : 250531.dasm (4.80 % of base)
         108 : 391989.dasm (1.46 % of base)
         104 : 250537.dasm (4.68 % of base)
         104 : 391621.dasm (1.19 % of base)
         100 : 354614.dasm (1.62 % of base)
         100 : 388955.dasm (1.04 % of base)

Top file improvements (bytes):
        -184 : 265454.dasm (-2.87 % of base)
        -172 : 299306.dasm (-1.95 % of base)
        -172 : 275863.dasm (-1.95 % of base)
        -144 : 391401.dasm (-3.92 % of base)
        -144 : 309095.dasm (-1.89 % of base)
        -140 : 275855.dasm (-1.84 % of base)
        -140 : 299296.dasm (-1.84 % of base)
        -104 : 535134.dasm (-0.80 % of base)
        -104 : 387089.dasm (-2.43 % of base)
        -104 : 390582.dasm (-1.35 % of base)
         -96 : 595300.dasm (-0.77 % of base)
         -92 : 289535.dasm (-1.21 % of base)
         -92 : 391882.dasm (-1.96 % of base)
         -88 : 388189.dasm (-1.98 % of base)
         -88 : 392177.dasm (-1.83 % of base)
         -88 : 392579.dasm (-1.12 % of base)
         -80 : 309087.dasm (-1.34 % of base)
         -80 : 535172.dasm (-1.17 % of base)
         -72 : 140703.dasm (-1.29 % of base)
         -72 : 241738.dasm (-1.30 % of base)

91 total files with Code Size differences (42 improved, 49 regressed), 20 unchanged.

Top method regressions (bytes):
        1020 (88.24 % of base) : 24791.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Tier1-OSR)
         292 (2.94 % of base) : 541469.dasm - ILGEN_0x372a9ae6:Method_0xdc6ff1a4(byte,byte,int,long,ushort,double,long,ulong):int (FullOpts)
         208 (1.91 % of base) : 392766.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugInfoTableNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
         208 (1.91 % of base) : 390849.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugInfoTableNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
         160 (2.98 % of base) : 581308.dasm - StrSwitchFinalTest:Run():int:this (FullOpts)
         160 (2.98 % of base) : 581490.dasm - StrSwitchFinalTest:Run():int:this (FullOpts)
         160 (2.98 % of base) : 357092.dasm - StrSwitchFinalTest:Run():int:this (Tier0-FullOpts)
         160 (2.96 % of base) : 357673.dasm - StrSwitchFinalTest:Run():int:this (Tier0-FullOpts)
         156 (2.04 % of base) : 388957.dasm - Internal.JitInterface.InstructionSetFlags:ExpandInstructionSetByReverseImplicationHelper(int,Internal.JitInterface.InstructionSetFlags):Internal.JitInterface.InstructionSetFlags (Tier1)
         152 (2.66 % of base) : 150560.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Tier1)
         144 (2.68 % of base) : 211026.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Tier1)
         128 (3.28 % of base) : 298491.dasm - System.Globalization.CultureData:GetNFIValues(System.Globalization.NumberFormatInfo):this (Instrumented Tier1)
         124 (1.61 % of base) : 388379.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugInfoTableNode:CreateVarBlobForMethod(Internal.JitInterface.NativeVarInfo[],Internal.TypeSystem.TargetDetails):ubyte[] (Tier1)
         112 (5.23 % of base) : 250500.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier1-OSR)
         108 (4.80 % of base) : 250531.dasm - AssignRect:second_assignments(int[,],short[,]) (Tier1-OSR)
         108 (1.46 % of base) : 391989.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugInfoTableNode:CreateVarBlobForMethod(Internal.JitInterface.NativeVarInfo[],Internal.TypeSystem.TargetDetails):ubyte[] (Tier1)
         104 (4.68 % of base) : 250537.dasm - AssignRect:second_assignments(int[,],short[,]) (Tier1-OSR)
         104 (1.19 % of base) : 391621.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CalculateTypeLayout(Internal.TypeSystem.DefType,Internal.TypeSystem.Ecma.EcmaModule,byref):Internal.TypeSystem.FieldAndOffset[]:this (Tier1)
         100 (1.62 % of base) : 354614.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CreateValueFromKey(Internal.TypeSystem.Ecma.EcmaModule):ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayout:this (Tier1-OSR)
         100 (1.04 % of base) : 388955.dasm - Internal.JitInterface.InstructionSetFlags:ExpandInstructionSetByImplicationHelper(int,Internal.JitInterface.InstructionSetFlags):Internal.JitInterface.InstructionSetFlags (Tier1)

Top method improvements (bytes):
        -184 (-2.87 % of base) : 265454.dasm - System.Diagnostics.Tracing.EventPipePayloadDecoder:DecodePayload(byref,System.ReadOnlySpan`1[ubyte]):System.Object[] (Tier1)
        -172 (-1.95 % of base) : 299306.dasm - System.Reflection.PortableExecutable.PEHeader:.ctor(byref):this (Tier1)
        -172 (-1.95 % of base) : 275863.dasm - System.Reflection.PortableExecutable.PEHeader:.ctor(byref):this (Tier1)
        -144 (-3.92 % of base) : 391401.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,byref):ubyte:this (Tier1)
        -144 (-1.89 % of base) : 309095.dasm - System.Reflection.PortableExecutable.PEHeaders:.ctor(System.IO.Stream,int,ubyte):this (Tier1)
        -140 (-1.84 % of base) : 275855.dasm - System.Reflection.PortableExecutable.PEHeaders:.ctor(System.IO.Stream,int,ubyte):this (Tier1)
        -140 (-1.84 % of base) : 299296.dasm - System.Reflection.PortableExecutable.PEHeaders:.ctor(System.IO.Stream,int,ubyte):this (Tier1)
        -104 (-1.35 % of base) : 390582.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.AttributePresenceFilterNode:GetCustomAttributeEntries():System.Collections.Generic.List`1[ILCompiler.DependencyAnalysis.ReadyToRun.AttributePresenceFilterNode+CustomAttributeEntry]:this (Tier1-OSR)
        -104 (-2.43 % of base) : 387089.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,System.__Canon]:TryAddOrGetExisting(System.__Canon,byref):System.__Canon:this (Tier1)
        -104 (-0.80 % of base) : 535134.dasm - Runtime_34587:TestEntryPoint():int (FullOpts)
         -96 (-0.77 % of base) : 595300.dasm - Tracing.Tests.ProcessInfoValidation.ProcessInfoValidation:TestEntryPoint() (FullOpts)
         -92 (-1.96 % of base) : 391882.dasm - Internal.JitInterface.CorInfoImpl:getMethodAttribsInternal(Internal.TypeSystem.MethodDesc):uint:this (Tier1)
         -92 (-1.21 % of base) : 289535.dasm - System.Reflection.PortableExecutable.PEHeaders:.ctor(System.IO.Stream,int,ubyte):this (Tier1)
         -88 (-1.12 % of base) : 392579.dasm - ILCompiler.NativeAotNameMangler:ComputeMangledTypeName(Internal.TypeSystem.TypeDesc):System.String:this (Tier1)
         -88 (-1.98 % of base) : 388189.dasm - Internal.JitInterface.CorInfoImpl:getMethodAttribsInternal(Internal.TypeSystem.MethodDesc):uint:this (Tier1)
         -88 (-1.83 % of base) : 392177.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
         -80 (-1.17 % of base) : 535172.dasm - Runtime_34587:ValidateX86():ubyte (FullOpts)
         -80 (-1.34 % of base) : 309087.dasm - System.Diagnostics.StackTrace:ToString(int,System.Text.StringBuilder):this (Tier1)
         -72 (-1.29 % of base) : 140703.dasm - System.Reflection.InvokerEmitUtil:CreateInvokeDelegate_ObjSpanArgs(System.Reflection.MethodBase,ubyte):System.Reflection.InvokerEmitUtil+InvokeFunc_ObjSpanArgs (Tier1)
         -72 (-1.30 % of base) : 241738.dasm - System.Reflection.InvokerEmitUtil:CreateInvokeDelegate_ObjSpanArgs(System.Reflection.MethodBase,ubyte):System.Reflection.InvokerEmitUtil+InvokeFunc_ObjSpanArgs (Tier1)

Top method regressions (percentages):
          44 (122.22 % of base) : 529395.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
        1020 (88.24 % of base) : 24791.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Tier1-OSR)
          28 (77.78 % of base) : 529343.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
          28 (77.78 % of base) : 525400.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
          52 (44.83 % of base) : 524977.dasm - Test_10w5d.testout1:Func_0_2_6_2_2():double (FullOpts)
          36 (39.13 % of base) : 525441.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
          36 (34.62 % of base) : 540819.dasm - Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
          20 (25.00 % of base) : 409449.dasm - filter1:f4() (FullOpts)
          28 (16.28 % of base) : 405364.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          28 (16.28 % of base) : 405781.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          24 (15.00 % of base) : 300397.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper_NoCacheLookup(byref,ulong,System.Object) (FullOpts)
          28 (14.58 % of base) : 394269.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          32 (14.55 % of base) : 406585.dasm - testout1:Sub_Funclet_104():int (FullOpts)
          32 (14.55 % of base) : 406659.dasm - testout1:Sub_Funclet_181():int (FullOpts)
          20 (14.29 % of base) : 529342.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
          20 (14.29 % of base) : 525398.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
          28 (14.00 % of base) : 387487.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:ReadElementType(byref):ubyte (Tier1)
          24 (12.50 % of base) : 257042.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          24 (12.50 % of base) : 300667.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(ulong,System.Object):System.Object (Tier1)
          28 (12.50 % of base) : 406243.dasm - testout1:Sub_Funclet_181():int (FullOpts)

Top method improvements (percentages):
         -12 (-8.33 % of base) : 495466.dasm - BufferMemmoveUnrolling+<>c:<TestEntryPoint>b__0_2(ubyte[],ubyte[]):this (FullOpts)
         -44 (-7.38 % of base) : 518364.dasm - HelloWorld:Main():int (FullOpts)
         -12 (-7.32 % of base) : 1487.dasm - System.Threading.PortableThreadPool+WorkerThread:TakeActiveRequest(System.Threading.PortableThreadPool):ubyte (Instrumented Tier1)
          -4 (-6.67 % of base) : 535470.dasm - Runtime_56495:TestEntryPoint():int (FullOpts)
         -12 (-6.67 % of base) : 215095.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfClass(ulong,System.Object):System.Object (Tier1)
         -12 (-6.67 % of base) : 219259.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfClass(ulong,System.Object):System.Object (Tier1)
         -12 (-6.67 % of base) : 271689.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfClass(ulong,System.Object):System.Object (Tier1)
         -12 (-6.67 % of base) : 258098.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfClass(ulong,System.Object):System.Object (Tier1)
         -12 (-6.67 % of base) : 269157.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfClass(ulong,System.Object):System.Object (Tier1)
         -12 (-6.67 % of base) : 295778.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfClass(ulong,System.Object):System.Object (Tier1)
          -8 (-6.67 % of base) : 242454.dasm - Tests_len31_11:Test_tst_1(System.String):ubyte (FullOpts)
          -8 (-6.67 % of base) : 242516.dasm - Tests_len31_12:Test_tst_1(System.String):ubyte (FullOpts)
          -8 (-6.67 % of base) : 242578.dasm - Tests_len34_13:Test_tst_1(System.String):ubyte (FullOpts)
         -16 (-6.56 % of base) : 356534.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(ulong,System.Object):System.Object (Tier1)
          -8 (-6.45 % of base) : 385775.dasm - System.Reflection.Internal.MemoryBlock:PeekTaggedReference(int,ubyte):uint:this (Tier1)
          -8 (-6.45 % of base) : 241650.dasm - Tests_len0_0:Test_tst_30(System.String):ubyte (FullOpts)
         -20 (-6.33 % of base) : 518014.dasm - HelloWorld:Main():int (FullOpts)
          -4 (-6.25 % of base) : 242917.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -4 (-6.25 % of base) : 262445.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -4 (-6.25 % of base) : 270477.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (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: 58963136 (overridden on cmd)
Total bytes of diff: 58964780 (overridden on cmd)
Total bytes of delta: 1644 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         660 : 197764.dasm (750.00 % of base)
         144 : 92413.dasm (22.64 % of base)
         112 : 87833.dasm (5.57 % of base)
          56 : 140402.dasm (0.21 % of base)
          40 : 162233.dasm (2.48 % of base)
          36 : 169651.dasm (2.22 % of base)
          36 : 76149.dasm (8.91 % of base)
          32 : 241723.dasm (14.55 % of base)
          32 : 143014.dasm (0.44 % of base)
          28 : 48698.dasm (1.31 % of base)
          28 : 49567.dasm (10.94 % of base)
          28 : 77440.dasm (12.96 % of base)
          24 : 219023.dasm (3.66 % of base)
          24 : 141218.dasm (2.13 % of base)
          24 : 122011.dasm (42.86 % of base)
          24 : 125588.dasm (2.13 % of base)
          24 : 47633.dasm (0.53 % of base)
          24 : 169552.dasm (2.25 % of base)
          24 : 218865.dasm (1.21 % of base)
          20 : 241560.dasm (9.43 % of base)

Top file improvements (bytes):
         -48 : 26165.dasm (-1.80 % of base)
         -12 : 206490.dasm (-1.12 % of base)
         -12 : 26295.dasm (-2.08 % of base)
         -12 : 161092.dasm (-1.40 % of base)
         -12 : 203295.dasm (-1.18 % of base)
         -12 : 206489.dasm (-1.05 % of base)
         -12 : 131766.dasm (-1.91 % of base)
         -12 : 160445.dasm (-1.18 % of base)
          -8 : 26553.dasm (-0.27 % of base)
          -8 : 7733.dasm (-1.32 % of base)
          -8 : 137088.dasm (-0.45 % of base)
          -8 : 238843.dasm (-0.16 % of base)
          -8 : 238847.dasm (-0.23 % of base)
          -8 : 47774.dasm (-0.35 % of base)
          -8 : 83132.dasm (-0.94 % of base)
          -8 : 83941.dasm (-0.47 % of base)
          -8 : 137547.dasm (-0.45 % of base)
          -8 : 7732.dasm (-1.33 % of base)
          -8 : 84039.dasm (-1.32 % of base)
          -4 : 26241.dasm (-2.04 % of base)

69 total files with Code Size differences (37 improved, 32 regressed), 20 unchanged.

Top method regressions (bytes):
         660 (750.00 % of base) : 197764.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
         144 (22.64 % of base) : 92413.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
         112 (5.57 % of base) : 87833.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          56 (0.21 % of base) : 140402.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          40 (2.48 % of base) : 162233.dasm - System.Data.OleDb.OleDbCommand:ExecuteReaderInternal(int,System.String):System.Data.OleDb.OleDbDataReader:this (FullOpts)
          36 (8.91 % of base) : 76149.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          36 (2.22 % of base) : 169651.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
          32 (0.44 % of base) : 143014.dasm - Microsoft.CodeAnalysis.CommonCompiler:CompileAndEmit(Microsoft.CodeAnalysis.TouchedFileLogger,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISourceGenerator],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText],Microsoft.CodeAnalysis.AnalyzerConfigSet,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AnalyzerConfigOptionsResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.EmbeddedText],Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.ErrorLogger,System.Threading.CancellationToken,byref,byref,byref):this (FullOpts)
          32 (14.55 % of base) : 241723.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          28 (12.96 % of base) : 77440.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
          28 (10.94 % of base) : 49567.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          28 (1.31 % of base) : 48698.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
          24 (0.53 % of base) : 47633.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          24 (2.13 % of base) : 141218.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
          24 (2.25 % of base) : 169552.dasm - System.Data.ExpressionParser:ParseAggregateArgument(int):System.Data.AggregateNode:this (FullOpts)
          24 (3.66 % of base) : 219023.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
          24 (1.21 % of base) : 218865.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
          24 (42.86 % of base) : 122011.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
          24 (2.13 % of base) : 125588.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
          20 (3.79 % of base) : 56001.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetCorrespondingBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):int (FullOpts)

Top method improvements (bytes):
         -48 (-1.80 % of base) : 26165.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (FullOpts)
         -12 (-1.40 % of base) : 161092.dasm - Microsoft.CSharp.RuntimeBinder.ComInterop.ComTypeLibDesc:GetMemberNames():System.String[]:this (FullOpts)
         -12 (-2.08 % of base) : 26295.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]:CopyTo(System.Threading.PortableThreadPool+IOCompletionPoller+Event[],int):this (FullOpts)
         -12 (-1.12 % of base) : 206490.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.__Canon],System.__Canon):this (FullOpts)
         -12 (-1.05 % of base) : 206489.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.__Canon]]):this (FullOpts)
         -12 (-1.18 % of base) : 160445.dasm - System.Linq.Expressions.Compiler.CompilerScope:EmitVariableAccess(System.Linq.Expressions.Compiler.LambdaCompiler,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.ParameterExpression]):this (FullOpts)
         -12 (-1.91 % of base) : 131766.dasm - System.Speech.Internal.StringBlob:SerializeData():ushort[]:this (FullOpts)
         -12 (-1.18 % of base) : 203295.dasm - System.Xml.Serialization.XmlSchemaImporter:ImportAny(System.Xml.Schema.XmlSchemaAny,ubyte,System.String):System.Xml.Serialization.ElementAccessor[]:this (FullOpts)
          -8 (-0.35 % of base) : 47774.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeDeconstructInvocationExpression(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Binder+DeconstructionVariable]):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          -8 (-0.45 % of base) : 137088.dasm - Newtonsoft.Json.Converters.XmlNodeConverter:ReadAttributeElements(Newtonsoft.Json.JsonReader,System.Xml.XmlNamespaceManager):System.Collections.Generic.Dictionary`2[System.String,System.String]:this (FullOpts)
          -8 (-0.45 % of base) : 137547.dasm - Newtonsoft.Json.Linq.JsonPath.ArraySliceFilter+<ExecuteFilter>d__12:MoveNext():ubyte:this (FullOpts)
          -8 (-0.23 % of base) : 238847.dasm - R2RTest.BuildFolderSet:WriteCombinedLog(System.String):this (FullOpts)
          -8 (-0.16 % of base) : 238843.dasm - R2RTest.BuildFolderSet:WriteExecutableSizeStatistics(System.IO.StreamWriter):this (FullOpts)
          -8 (-1.33 % of base) : 7732.dasm - System.Numerics.Matrix4x4:CreatePerspectiveFieldOfView(float,float,float,float):System.Numerics.Matrix4x4 (FullOpts)
          -8 (-1.32 % of base) : 7733.dasm - System.Numerics.Matrix4x4:CreatePerspectiveFieldOfViewLeftHanded(float,float,float,float):System.Numerics.Matrix4x4 (FullOpts)
          -8 (-0.47 % of base) : 83941.dasm - System.Text.Json.Utf8JsonReader:ConsumeNextTokenFromLastNonCommentToken():ubyte:this (FullOpts)
          -8 (-0.94 % of base) : 83132.dasm - System.Text.Json.Utf8JsonReader:ReadSingleSegment():ubyte:this (FullOpts)
          -8 (-1.32 % of base) : 84039.dasm - System.Text.Json.Utf8JsonReader:SkipAllComments(byref):ubyte:this (FullOpts)
          -8 (-0.27 % of base) : 26553.dasm - System.TimeZoneInfo:TryCreateAdjustmentRules(System.String,byref,byref,byref,int):ubyte (FullOpts)
          -4 (-1.54 % of base) : 153797.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)

Top method regressions (percentages):
         660 (750.00 % of base) : 197764.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
          24 (42.86 % of base) : 122011.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
         144 (22.64 % of base) : 92413.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
          32 (14.55 % of base) : 241723.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          28 (12.96 % of base) : 77440.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
          12 (11.11 % of base) : 156112.dasm - System.Transactions.Oletx.OletxTransactionManager:ConvertIsolationLevelFromProxyValue(int):int (FullOpts)
          28 (10.94 % of base) : 49567.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          20 (9.43 % of base) : 241560.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
          36 (8.91 % of base) : 76149.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          16 (7.55 % of base) : 241649.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
          20 (7.04 % of base) : 92987.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
          16 (5.80 % of base) : 123813.dasm - System.Data.Odbc.OdbcHandle:ReleaseHandle():ubyte:this (FullOpts)
         112 (5.57 % of base) : 87833.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          12 (5.45 % of base) : 141420.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:IsMemberPublic(System.Reflection.MemberInfo):ubyte (FullOpts)
          12 (4.55 % of base) : 229839.dasm - Microsoft.Diagnostics.Tools.RuntimeClient.EventPipeClient:StopTracing(int,ulong):ulong (FullOpts)
           4 (4.35 % of base) : 84085.dasm - System.Text.Json.Utf8JsonReader:ThrowOnDangerousLineSeparator(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
          16 (4.21 % of base) : 72870.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
          16 (4.17 % of base) : 106714.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SingleLineLambdaContext:ProcessStatementTerminator(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext:this (FullOpts)
          12 (4.11 % of base) : 156248.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
          20 (3.79 % of base) : 56001.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetCorrespondingBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):int (FullOpts)

Top method improvements (percentages):
          -4 (-3.33 % of base) : 123855.dasm - System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
          -4 (-3.33 % of base) : 161833.dasm - System.Data.OleDb.OleDbParameter:set_SourceVersion(int):this (FullOpts)
         -12 (-2.08 % of base) : 26295.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]:CopyTo(System.Threading.PortableThreadPool+IOCompletionPoller+Event[],int):this (FullOpts)
          -4 (-2.04 % of base) : 26236.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 26241.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.96 % of base) : 25716.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
         -12 (-1.91 % of base) : 131766.dasm - System.Speech.Internal.StringBlob:SerializeData():ushort[]:this (FullOpts)
          -4 (-1.89 % of base) : 16890.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.85 % of base) : 17199.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.85 % of base) : 17215.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -48 (-1.80 % of base) : 26165.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (FullOpts)
          -4 (-1.67 % of base) : 17181.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.59 % of base) : 48694.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:IsReceiverRefReadOnly(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
          -4 (-1.54 % of base) : 153797.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 183471.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 238217.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 153802.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 238222.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 153027.dasm - Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.54 % of base) : 182715.dasm - Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)


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: 79562880 (overridden on cmd)
Total bytes of diff: 79594724 (overridden on cmd)
Total bytes of delta: 31844 (0.04 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         660 : 219396.dasm (687.50 % of base)
         344 : 153634.dasm (14.36 % of base)
         140 : 209509.dasm (2.17 % of base)
         128 : 82724.dasm (2.79 % of base)
         108 : 124037.dasm (2.53 % of base)
         100 : 150270.dasm (1.21 % of base)
         100 : 211419.dasm (1.02 % of base)
          96 : 209959.dasm (1.19 % of base)
          84 : 150288.dasm (1.27 % of base)
          80 : 188793.dasm (4.26 % of base)
          80 : 294377.dasm (2.74 % of base)
          76 : 287207.dasm (2.33 % of base)
          76 : 150292.dasm (1.03 % of base)
          72 : 190730.dasm (2.28 % of base)
          72 : 270604.dasm (3.17 % of base)
          72 : 196601.dasm (1.72 % of base)
          72 : 52291.dasm (4.66 % of base)
          68 : 180878.dasm (2.97 % of base)
          68 : 196467.dasm (5.04 % of base)
          68 : 219376.dasm (1.94 % of base)

Top file improvements (bytes):
        -144 : 196602.dasm (-1.87 % of base)
         -60 : 95603.dasm (-1.50 % of base)
         -56 : 300743.dasm (-0.66 % of base)
         -56 : 202365.dasm (-1.42 % of base)
         -52 : 213886.dasm (-0.98 % of base)
         -48 : 262466.dasm (-10.26 % of base)
         -48 : 289106.dasm (-10.43 % of base)
         -48 : 212334.dasm (-1.94 % of base)
         -48 : 290551.dasm (-4.33 % of base)
         -44 : 222534.dasm (-0.75 % of base)
         -44 : 247609.dasm (-0.80 % of base)
         -40 : 243676.dasm (-0.54 % of base)
         -40 : 227402.dasm (-2.34 % of base)
         -40 : 265616.dasm (-8.77 % of base)
         -40 : 222191.dasm (-2.34 % of base)
         -36 : 150086.dasm (-7.50 % of base)
         -36 : 129092.dasm (-1.79 % of base)
         -36 : 164581.dasm (-1.79 % of base)
         -36 : 218473.dasm (-1.09 % of base)
         -36 : 243710.dasm (-0.55 % of base)

79 total files with Code Size differences (38 improved, 41 regressed), 20 unchanged.

Top method regressions (bytes):
         660 (687.50 % of base) : 219396.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
         344 (14.36 % of base) : 153634.dasm - Microsoft.Build.Construction.SolutionFile:ParseAspNetCompilerProperty(Microsoft.Build.Construction.ProjectInSolution,System.String,System.String) (FullOpts)
         140 (2.17 % of base) : 209509.dasm - System.Xml.XmlTextReaderImpl+<SkipDtdAsync>d__568:MoveNext():this (FullOpts)
         128 (2.79 % of base) : 82724.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
         108 (2.53 % of base) : 124037.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+InferenceGraph:InferTypeArgumentsFromLambdaArgument(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol):ubyte:this (FullOpts)
         100 (1.21 % of base) : 150270.dasm - Newtonsoft.Json.JsonTextReader+<ParseValueAsync>d__8:MoveNext():this (FullOpts)
         100 (1.02 % of base) : 211419.dasm - System.Xml.DtdParser+<GetTokenAsync>d__173:MoveNext():this (FullOpts)
          96 (1.19 % of base) : 209959.dasm - System.Xml.XmlWellFormedWriter+<WriteEndAttributeAsync_SepcialAtt>d__132:MoveNext():this (FullOpts)
          84 (1.27 % of base) : 150288.dasm - Newtonsoft.Json.JsonTextReader+<ReadNumberValueAsync>d__38:MoveNext():this (FullOpts)
          80 (4.26 % of base) : 188793.dasm - System.Data.ProviderBase.DbConnectionFactory:PruneConnectionPoolGroups(System.Object):this (FullOpts)
          80 (2.74 % of base) : 294377.dasm - System.ServiceModel.Syndication.AtomPub10ServiceDocumentFormatter:ReadDocument(System.Xml.XmlReader):this (FullOpts)
          76 (1.03 % of base) : 150292.dasm - Newtonsoft.Json.JsonTextReader+<ReadStringValueAsync>d__37:MoveNext():this (FullOpts)
          76 (2.33 % of base) : 287207.dasm - System.Net.WebClient+<DownloadBitsAsync>d__150:MoveNext():this (FullOpts)
          72 (4.66 % of base) : 52291.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          72 (2.28 % of base) : 190730.dasm - System.DirectoryServices.ActiveDirectory.ActiveDirectorySchemaClass:GetPropertiesFromSchemaContainer(System.DirectoryServices.ActiveDirectory.DirectoryContext,System.DirectoryServices.DirectoryEntry,System.String,ubyte):System.Collections.Hashtable (FullOpts)
          72 (3.17 % of base) : 270604.dasm - System.Drawing.ColorTranslator:FromHtml(System.String):System.Drawing.Color (FullOpts)
          72 (1.72 % of base) : 196601.dasm - System.Management.PropertyData:MapWmiValueToValue(System.Object,int,ubyte):System.Object (FullOpts)
          68 (2.97 % of base) : 180878.dasm - System.Configuration.ConfigurationElement:UnMergeLockList(System.Configuration.ConfigurationLockCollection,System.Configuration.ConfigurationLockCollection,int):System.Configuration.ConfigurationLockCollection:this (FullOpts)
          68 (5.04 % of base) : 196467.dasm - System.Management.RelationshipQuery:BuildQuery():this (FullOpts)
          68 (1.94 % of base) : 219376.dasm - System.Xml.Serialization.XmlSerializationILGen:GenerateSerializerContract(System.Xml.Serialization.XmlMapping[],System.Type[],System.String,System.String[],System.String,System.String[],System.Collections.Generic.Dictionary`2[System.String,System.String]):this (FullOpts)

Top method improvements (bytes):
        -144 (-1.87 % of base) : 196602.dasm - System.Management.PropertyData:MapValueToWmiValue(System.Object,int,ubyte):System.Object (FullOpts)
         -60 (-1.50 % of base) : 95603.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:AdjustAssignmentTarget(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
         -56 (-1.42 % of base) : 202365.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
         -56 (-0.66 % of base) : 300743.dasm - TestRunner:DoWorkStress():int:this (FullOpts)
         -52 (-0.98 % of base) : 213886.dasm - System.Xml.Schema.XmlSchemaInference:FindMatchingElement(ubyte,System.Xml.XmlReader,System.Xml.Schema.XmlSchemaComplexType,byref,System.Xml.Schema.XmlSchema,ubyte):System.Xml.Schema.XmlSchemaElement:this (FullOpts)
         -48 (-10.26 % of base) : 262466.dasm - System.ComponentModel.LookupBindingPropertiesAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -48 (-4.33 % of base) : 290551.dasm - System.Reflection.Emit.MethodBuilderImpl:SetCustomAttributeCore(System.Reflection.ConstructorInfo,System.ReadOnlySpan`1[ubyte]):this (FullOpts)
         -48 (-10.43 % of base) : 289106.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)
         -48 (-1.94 % of base) : 212334.dasm - System.Xml.Schema.SchemaCollectionCompiler:CompileAttribute(System.Xml.Schema.XmlSchemaAttribute):this (FullOpts)
         -44 (-0.80 % of base) : 247609.dasm - PerfEventSourceListener:PrintPerfResults():this (FullOpts)
         -44 (-0.75 % of base) : 222534.dasm - System.Security.Cryptography.Pkcs.Pkcs12SafeContents:ReadBags(System.ReadOnlyMemory`1[ubyte]):System.Collections.Generic.List`1[System.Security.Cryptography.Pkcs.Pkcs12SafeBag] (FullOpts)
         -40 (-0.54 % of base) : 243676.dasm - R2RDump.Extensions:WriteTo(ILCompiler.Reflection.ReadyToRun.RuntimeFunction,System.IO.TextWriter,R2RDump.DumpModel) (FullOpts)
         -40 (-8.77 % of base) : 265616.dasm - System.Diagnostics.ActivityLink:op_Inequality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)
         -40 (-2.34 % of base) : 227402.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:IterationsFromParameters(byref):uint (FullOpts)
         -40 (-2.34 % of base) : 222191.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:IterationsFromParameters(byref):uint (FullOpts)
         -36 (-1.79 % of base) : 129092.dasm - Microsoft.Cci.NativeResourceWriter:SerializeWin32Resources(System.Reflection.Metadata.BlobBuilder,System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IWin32Resource],int) (FullOpts)
         -36 (-1.79 % of base) : 164581.dasm - Microsoft.Cci.NativeResourceWriter:SerializeWin32Resources(System.Reflection.Metadata.BlobBuilder,System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IWin32Resource],int) (FullOpts)
         -36 (-7.50 % of base) : 150086.dasm - Newtonsoft.Json.Converters.XmlNodeConverter:ValueAttributes(System.Collections.Generic.List`1[Newtonsoft.Json.Converters.IXmlNode]):ubyte:this (FullOpts)
         -36 (-0.55 % of base) : 243710.dasm - R2RDump.R2RDiff:ShowMethodDiff(System.Collections.Generic.Dictionary`2[System.String,int],System.Collections.Generic.Dictionary`2[System.String,int],System.String):this (FullOpts)
         -36 (-1.09 % of base) : 218473.dasm - System.Xml.Serialization.ReflectionXmlSerializationReader:GenerateLiteralMembersElementInternal(System.Xml.Serialization.MemberMapping[],ubyte,System.Object[]):ubyte:this (FullOpts)

Top method regressions (percentages):
         660 (687.50 % of base) : 219396.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
          24 (42.86 % of base) : 196706.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
          32 (15.38 % of base) : 282414.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
         344 (14.36 % of base) : 153634.dasm - Microsoft.Build.Construction.SolutionFile:ParseAspNetCompilerProperty(Microsoft.Build.Construction.ProjectInSolution,System.String,System.String) (FullOpts)
          12 (13.64 % of base) : 2700.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
          12 (13.04 % of base) : 286798.dasm - System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
           4 (12.50 % of base) : 272038.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
          12 (12.50 % of base) : 286797.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Net.Sockets.UdpReceiveResult):ubyte:this (FullOpts)
          12 (12.50 % of base) : 2688.dasm - System.SpanHelpers:IndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
          12 (11.11 % of base) : 299978.dasm - System.Transactions.Oletx.OletxTransactionManager:ConvertIsolationLevelFromProxyValue(int):int (FullOpts)
          12 (10.71 % of base) : 286799.dasm - System.Net.Sockets.UdpReceiveResult:op_Inequality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
          36 (10.23 % of base) : 35331.dasm - Microsoft.Diagnostics.Tracing.Ctf.CtfReader:ReallocateBuffer(int):ubyte[]:this (FullOpts)
          20 (10.00 % of base) : 282433.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
          32 (9.52 % of base) : 281740.dasm - System.Net.Http.WinHttpRequestState:PinReceiveBuffer(ubyte[]):this (FullOpts)
          12 (9.38 % of base) : 221666.dasm - Internal.Cryptography.PkcsHelpers:AreByteArraysEqual(ubyte[],ubyte[]):ubyte (FullOpts)
          12 (8.82 % of base) : 286796.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Object):ubyte:this (FullOpts)
          36 (8.57 % of base) : 86266.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          36 (8.41 % of base) : 257673.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,System.Nullable`1[int]],int):this (FullOpts)
          16 (8.00 % of base) : 282410.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
          44 (7.97 % of base) : 9747.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)

Top method improvements (percentages):
         -16 (-11.43 % of base) : 198340.dasm - System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
         -16 (-10.81 % of base) : 199696.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
         -48 (-10.43 % of base) : 289106.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)
         -48 (-10.26 % of base) : 262466.dasm - System.ComponentModel.LookupBindingPropertiesAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -32 (-9.41 % of base) : 266297.dasm - System.Diagnostics.Metrics.StringSequence3:Equals(System.Diagnostics.Metrics.StringSequence3):ubyte:this (FullOpts)
         -32 (-9.41 % of base) : 206773.dasm - System.Xml.XmlSqlBinaryReader+QName:Equals(System.Xml.XmlSqlBinaryReader+QName):ubyte:this (FullOpts)
          -8 (-9.09 % of base) : 720.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[double](double,double,System.String) (FullOpts)
         -28 (-8.86 % of base) : 206774.dasm - System.Xml.XmlSqlBinaryReader+QName:op_Equality(System.Xml.XmlSqlBinaryReader+QName,System.Xml.XmlSqlBinaryReader+QName):ubyte (FullOpts)
         -40 (-8.77 % of base) : 265616.dasm - System.Diagnostics.ActivityLink:op_Inequality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)
         -20 (-8.47 % of base) : 206768.dasm - System.Xml.XmlSqlBinaryReader+QName:MatchPrefix(System.String,System.String):ubyte:this (FullOpts)
         -32 (-8.16 % of base) : 269942.dasm - System.DirectoryServices.Protocols.LdapConnection:SameCredential(System.Net.NetworkCredential,System.Net.NetworkCredential):ubyte (FullOpts)
         -36 (-7.50 % of base) : 150086.dasm - Newtonsoft.Json.Converters.XmlNodeConverter:ValueAttributes(System.Collections.Generic.List`1[Newtonsoft.Json.Converters.IXmlNode]):ubyte:this (FullOpts)
         -12 (-7.50 % of base) : 274706.dasm - System.Linq.ParallelEnumerable:AsSequential[System.__Canon](System.Linq.ParallelQuery`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
         -20 (-7.14 % of base) : 160063.dasm - Microsoft.Build.BackEnd.ItemGroupIntrinsicTask+NestedMetadataTable:GetEscapedValueIfPresent(System.String,System.String):System.String:this (FullOpts)
          -8 (-7.14 % of base) : 198105.dasm - System.Net.Http.CreditWaiter:UnregisterAndOwnCompletion():ubyte:this (FullOpts)
         -20 (-6.94 % of base) : 131007.dasm - Microsoft.CodeAnalysis.SuppressionDescriptor:Equals(Microsoft.CodeAnalysis.SuppressionDescriptor):ubyte:this (FullOpts)
         -20 (-6.94 % of base) : 166423.dasm - Microsoft.CodeAnalysis.SuppressionDescriptor:Equals(Microsoft.CodeAnalysis.SuppressionDescriptor):ubyte:this (FullOpts)
         -16 (-6.90 % of base) : 301567.dasm - Internal.Microsoft.Extensions.DependencyModel.Dependency:Equals(Internal.Microsoft.Extensions.DependencyModel.Dependency):ubyte:this (FullOpts)
         -16 (-6.90 % of base) : 207851.dasm - System.Xml.XmlQualifiedName:Equals(System.String,System.String):ubyte:this (FullOpts)
         -16 (-6.90 % of base) : 206767.dasm - System.Xml.XmlSqlBinaryReader+QName:MatchNs(System.String,System.String):ubyte:this (FullOpts)


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: 310370552 (overridden on cmd)
Total bytes of diff: 310511260 (overridden on cmd)
Total bytes of delta: 140708 (0.05 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1300 : 89669.dasm (6.83 % of base)
        1208 : 57382.dasm (6.33 % of base)
        1084 : 598814.dasm (7.64 % of base)
         792 : 605443.dasm (5.04 % of base)
         704 : 65346.dasm (5.64 % of base)
         672 : 407945.dasm (4.53 % of base)
         640 : 409429.dasm (4.35 % of base)
         616 : 34985.dasm (4.03 % of base)
         592 : 409431.dasm (4.86 % of base)
         576 : 409433.dasm (4.85 % of base)
         560 : 409419.dasm (3.39 % of base)
         556 : 65345.dasm (4.21 % of base)
         552 : 409398.dasm (3.14 % of base)
         520 : 77554.dasm (3.40 % of base)
         520 : 90184.dasm (5.33 % of base)
         516 : 116749.dasm (8.81 % of base)
         516 : 227788.dasm (8.07 % of base)
         512 : 328074.dasm (8.00 % of base)
         512 : 231568.dasm (8.00 % of base)
         504 : 365980.dasm (7.89 % of base)

Top file improvements (bytes):
        -736 : 437069.dasm (-11.47 % of base)
        -356 : 493765.dasm (-1.64 % of base)
        -280 : 356121.dasm (-2.20 % of base)
        -276 : 152800.dasm (-2.92 % of base)
        -256 : 63508.dasm (-2.93 % of base)
        -244 : 89601.dasm (-2.80 % of base)
        -224 : 585006.dasm (-1.53 % of base)
        -216 : 460712.dasm (-2.70 % of base)
        -216 : 557593.dasm (-2.70 % of base)
        -212 : 164025.dasm (-1.65 % of base)
        -204 : 483530.dasm (-2.86 % of base)
        -180 : 358089.dasm (-1.72 % of base)
        -172 : 350934.dasm (-1.95 % of base)
        -172 : 407227.dasm (-1.95 % of base)
        -168 : 196116.dasm (-3.08 % of base)
        -164 : 232609.dasm (-2.06 % of base)
        -164 : 330722.dasm (-2.06 % of base)
        -164 : 367506.dasm (-2.06 % of base)
        -164 : 572789.dasm (-2.06 % of base)
        -164 : 214477.dasm (-2.06 % of base)

93 total files with Code Size differences (52 improved, 41 regressed), 20 unchanged.

Top method regressions (bytes):
        1300 (6.83 % of base) : 89669.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
        1208 (6.33 % of base) : 57382.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
        1084 (7.64 % of base) : 598814.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
         792 (5.04 % of base) : 605443.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
         704 (5.64 % of base) : 65346.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckValidNullableMethodOverride[System.ValueTuple`2[System.__Canon,ubyte]](Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Symbols.ReportMismatchInReturnType`1[System.ValueTuple`2[System.__Canon,ubyte]],Microsoft.CodeAnalysis.CSharp.Symbols.ReportMismatchInParameterType`1[System.ValueTuple`2[System.__Canon,ubyte]],System.ValueTuple`2[System.__Canon,ubyte],ubyte):ubyte (Tier1)
         672 (4.53 % of base) : 407945.dasm - System.Xml.Tests.TCXMLIntegrityBase:AddChildren():this (Tier1)
         640 (4.35 % of base) : 409429.dasm - System.Xml.Tests.TCReadValue:AddChildren():this (Tier1)
         616 (4.03 % of base) : 34985.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
         592 (4.86 % of base) : 409431.dasm - System.Xml.Tests.TCReadElementContentAsBase64:AddChildren():this (Tier1)
         576 (4.85 % of base) : 409433.dasm - System.Xml.Tests.TCReadElementContentAsBinHex:AddChildren():this (Tier1)
         560 (3.39 % of base) : 409419.dasm - System.Xml.Tests.TCRead2:AddChildren():this (Tier1)
         556 (4.21 % of base) : 65345.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:<CheckModifierMismatchOnImplementingMember>g__checkMethodOverride|100_0(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
         552 (3.14 % of base) : 409398.dasm - System.Xml.Tests.TCInvalidXML:AddChildren():this (Tier1)
         520 (3.40 % of base) : 77554.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
         520 (5.33 % of base) : 90184.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:Equals(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):ubyte:this (Tier1)
         516 (8.81 % of base) : 116749.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.ILEmitResolverBuilder:GenerateMethodBody(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite,System.Reflection.Emit.ILGenerator):Microsoft.Extensions.DependencyInjection.ServiceLookup.ILEmitResolverBuilder+ILEmitResolverBuilderRuntimeContext:this (Tier1)
         516 (8.07 % of base) : 227788.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         512 (8.00 % of base) : 328074.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         512 (8.00 % of base) : 231568.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         504 (7.89 % of base) : 365980.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)

Top method improvements (bytes):
        -736 (-11.47 % of base) : 437069.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
        -356 (-1.64 % of base) : 493765.dasm - System.Xml.XmlLoader:LoadNode(ubyte):System.Xml.XmlNode:this (Tier1-OSR)
        -280 (-2.20 % of base) : 356121.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -276 (-2.92 % of base) : 152800.dasm - System.Reflection.PortableExecutable.PEHeader:.ctor(byref):this (Tier1)
        -256 (-2.93 % of base) : 63508.dasm - System.Reflection.PortableExecutable.PEHeader:.ctor(byref):this (Tier1)
        -244 (-2.80 % of base) : 89601.dasm - System.Reflection.PortableExecutable.PEHeader:.ctor(byref):this (Tier1)
        -224 (-1.53 % of base) : 585006.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:EmitRegexDerivedTypeRunnerFactory(System.CodeDom.Compiler.IndentedTextWriter,System.Text.RegularExpressions.Generator.RegexGenerator+RegexMethod,System.Collections.Generic.Dictionary`2[System.String,System.String[]],ubyte) (Tier1)
        -216 (-2.70 % of base) : 460712.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -216 (-2.70 % of base) : 557593.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -212 (-1.65 % of base) : 164025.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -204 (-2.86 % of base) : 483530.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
        -180 (-1.72 % of base) : 358089.dasm - System.Net.Security.Tests.NegotiateStreamStreamToStreamTest+<NegotiateStream_StreamToStream_Authentication_EmptyCredentials_Fails>d__19:MoveNext():this (Tier1)
        -172 (-1.95 % of base) : 350934.dasm - System.Reflection.PortableExecutable.PEHeader:.ctor(byref):this (Tier1)
        -172 (-1.95 % of base) : 407227.dasm - System.Reflection.PortableExecutable.PEHeader:.ctor(byref):this (Tier1)
        -168 (-3.08 % of base) : 196116.dasm - System.Collections.Generic.SortedSet`1[int]:UnionWith(System.Collections.Generic.IEnumerable`1[int]):this (Tier1)
        -164 (-2.06 % of base) : 232609.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -164 (-2.06 % of base) : 330722.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -164 (-2.06 % of base) : 367506.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -164 (-2.06 % of base) : 572789.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -164 (-2.06 % of base) : 214477.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)

Top method regressions (percentages):
          20 (26.32 % of base) : 605639.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
          20 (26.32 % of base) : 90266.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
          20 (26.32 % of base) : 156391.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
          20 (26.32 % of base) : 56753.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
          24 (25.00 % of base) : 51897.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon]):this (Tier1)
          12 (25.00 % of base) : 332147.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
          12 (25.00 % of base) : 399694.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
          20 (20.83 % of base) : 50682.dasm - System.Collections.Immutable.ImmutableExtensions+FallbackWrapper`1[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
          20 (20.83 % of base) : 51129.dasm - System.Collections.Immutable.ImmutableExtensions+ListOfTWrapper`1[System.ValueTuple`3[int,int,System.__Canon]]:.ctor(System.Collections.Generic.IList`1[System.ValueTuple`3[int,int,System.__Canon]]):this (Tier1)
          20 (20.83 % of base) : 559854.dasm - System.Collections.Immutable.ImmutableStack`1+EnumeratorObject[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableStack`1[System.__Canon]):this (Tier1)
          20 (20.83 % of base) : 50270.dasm - System.Collections.Immutable.SecurePooledObject`1[System.__Canon]:.ctor(System.__Canon):this (Tier1)
          24 (20.69 % of base) : 51456.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],System.Func`2[System.Threading.CancellationToken,System.__Canon]):this (Tier1)
          24 (20.00 % of base) : 600926.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNativeIntegerOverflowingUnaryOperator(int,Microsoft.CodeAnalysis.ConstantValue):System.Object (Tier1)
          16 (20.00 % of base) : 88786.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
          32 (18.60 % of base) : 51136.dasm - System.Collections.Immutable.ImmutableList`1+Builder[System.ValueTuple`3[int,int,System.__Canon]]:.ctor(System.Collections.Immutable.ImmutableList`1[System.ValueTuple`3[int,int,System.__Canon]]):this (Tier1)
          20 (18.52 % of base) : 50475.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:this (Tier1)
          20 (18.52 % of base) : 50546.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
          20 (17.86 % of base) : 55238.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
          20 (17.86 % of base) : 51917.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):System.Collections.Immutable.ImmutableSortedDictionary`2[System.__Canon,System.__Canon]:this (Tier1)
          20 (17.86 % of base) : 56367.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2[System.__Canon,System.__Canon]:TryGetValue(System.__Canon,byref):ubyte:this (Tier1)

Top method improvements (percentages):
          -8 (-12.50 % of base) : 388254.dasm - System.Xml.XmlTextReaderImpl:GetResolver():System.Xml.XmlResolver:this (Tier1)
        -736 (-11.47 % of base) : 437069.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
          -8 (-10.00 % of base) : 54841.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:get_SourcePartialImplementation():Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:this (Tier1)
         -16 (-9.09 % of base) : 62302.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol+<>c:<.cctor>b__350_0(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte:this (Tier1)
         -16 (-8.89 % of base) : 88059.dasm - Roslyn.Utilities.FileNameUtilities:IndexOfFileName(System.String):int (Tier1)
         -16 (-8.89 % of base) : 577992.dasm - Roslyn.Utilities.FileNameUtilities:IndexOfFileName(System.String):int (Tier1)
         -16 (-8.89 % of base) : 62092.dasm - Roslyn.Utilities.FileNameUtilities:IndexOfFileName(System.String):int (Tier1)
         -12 (-8.82 % of base) : 155265.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (Tier1)
         -40 (-8.62 % of base) : 367828.dasm - System.Numerics.Tensors.TensorPrimitives:InvokeSpanSpanSpanIntoSpan[System.Runtime.InteropServices.NFloat,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[System.Runtime.InteropServices.NFloat]](System.ReadOnlySpan`1[System.Runtime.InteropServices.NFloat],System.ReadOnlySpan`1[System.Runtime.InteropServices.NFloat],System.ReadOnlySpan`1[System.Runtime.InteropServices.NFloat],System.Span`1[System.Runtime.InteropServices.NFloat]) (Tier1)
         -16 (-8.51 % of base) : 88929.dasm - Microsoft.CodeAnalysis.PEAssembly:ContainsNoPiaLocalTypes():ubyte:this (Tier1)
          -4 (-8.33 % of base) : 584695.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeFlowAnalysisAttributes(Microsoft.CodeAnalysis.CSharp.Symbols.MethodWellKnownAttributeData):int (Tier1)
         -20 (-7.81 % of base) : 59183.dasm - Microsoft.CodeAnalysis.ImmutableArrayExtensions:Count[Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[int]](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[int]],System.Func`2[Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[int],ubyte]):int (Tier1)
         -20 (-7.81 % of base) : 59179.dasm - Microsoft.CodeAnalysis.ImmutableArrayExtensions:Count[Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.Collections.Immutable.ImmutableArray`1[ubyte]]](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.Collections.Immutable.ImmutableArray`1[ubyte]]],System.Func`2[Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.Collections.Immutable.ImmutableArray`1[ubyte]],ubyte]):int (Tier1)
         -20 (-7.81 % of base) : 60720.dasm - Microsoft.CodeAnalysis.ImmutableArrayExtensions:Count[Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.ValueTuple`2[int,int]]](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.ValueTuple`2[int,int]]],System.Func`2[Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.ValueTuple`2[int,int]],ubyte]):int (Tier1)
         -20 (-7.81 % of base) : 60752.dasm - Microsoft.CodeAnalysis.ImmutableArrayExtensions:Count[Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.ValueTuple`2[System.ValueTuple`2[System.ValueTuple`2[System.ValueTuple`2[System.__Canon,System.__Canon],System.__Canon],System.__Canon],System.__Canon]]](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.ValueTuple`2[System.ValueTuple`2[System.ValueTuple`2[System.ValueTuple`2[System.__Canon,System.__Canon],System.__Canon],System.__Canon],System.__Canon]]],System.Func`2[Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.ValueTuple`2[System.ValueTuple`2[System.ValueTuple`2[System.ValueTuple`2[System.__Canon,System.__Canon],System.__Canon],System.__Canon],System.__Canon]],ubyte]):int (Tier1)
         -32 (-7.77 % of base) : 367590.dasm - System.Numerics.Tensors.TensorPrimitives:InvokeSpanSpanIntoSpan[System.Runtime.InteropServices.NFloat,System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[System.Runtime.InteropServices.NFloat]](System.ReadOnlySpan`1[System.Runtime.InteropServices.NFloat],System.ReadOnlySpan`1[System.Runtime.InteropServices.NFloat],System.Span`1[System.Runtime.InteropServices.NFloat]) (Tier1)
         -32 (-7.77 % of base) : 368078.dasm - System.Numerics.Tensors.TensorPrimitives:InvokeSpanSpanIntoSpan[System.Runtime.InteropServices.NFloat,System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[System.Runtime.InteropServices.NFloat]](System.ReadOnlySpan`1[System.Runtime.InteropServices.NFloat],System.ReadOnlySpan`1[System.Runtime.InteropServices.NFloat],System.Span`1[System.Runtime.InteropServices.NFloat]) (Tier1)
         -40 (-7.75 % of base) : 152754.dasm - System.Reflection.Internal.EncodingHelper:DecodeUtf8(ulong,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)
         -40 (-7.75 % of base) : 85736.dasm - System.Reflection.Internal.EncodingHelper:DecodeUtf8(ulong,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)
         -40 (-7.75 % of base) : 53181.dasm - System.Reflection.Internal.EncodingHelper:DecodeUtf8(ulong,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (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: 169001944 (overridden on cmd)
Total bytes of diff: 169134352 (overridden on cmd)
Total bytes of delta: 132408 (0.08 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         136 : 220120.dasm (3.56 % of base)
         128 : 19166.dasm (2.91 % of base)
         120 : 265189.dasm (1.03 % of base)
         116 : 274444.dasm (2.50 % of base)
         116 : 220837.dasm (3.44 % of base)
         108 : 254358.dasm (1.61 % of base)
         108 : 250646.dasm (1.61 % of base)
         108 : 267392.dasm (1.61 % of base)
         108 : 268052.dasm (1.60 % of base)
         100 : 253971.dasm (1.04 % of base)
         100 : 268859.dasm (1.04 % of base)
         100 : 274923.dasm (0.70 % of base)
         100 : 263735.dasm (0.70 % of base)
         100 : 250400.dasm (1.72 % of base)
         100 : 267369.dasm (1.72 % of base)
          96 : 66449.dasm (2.79 % of base)
          96 : 314882.dasm (1.19 % of base)
          96 : 152921.dasm (2.65 % of base)
          88 : 125915.dasm (3.13 % of base)
          84 : 267300.dasm (1.69 % of base)

Top file improvements (bytes):
        -148 : 145782.dasm (-2.09 % of base)
        -116 : 207135.dasm (-3.15 % of base)
         -92 : 269145.dasm (-1.00 % of base)
         -92 : 269387.dasm (-1.00 % of base)
         -84 : 203957.dasm (-1.24 % of base)
         -84 : 204407.dasm (-1.24 % of base)
         -72 : 126484.dasm (-2.32 % of base)
         -72 : 178003.dasm (-3.31 % of base)
         -72 : 297919.dasm (-1.80 % of base)
         -56 : 178047.dasm (-3.52 % of base)
         -52 : 95060.dasm (-1.04 % of base)
         -52 : 144638.dasm (-1.36 % of base)
         -52 : 208217.dasm (-1.59 % of base)
         -48 : 178641.dasm (-3.49 % of base)
         -48 : 185175.dasm (-4.33 % of base)
         -48 : 190146.dasm (-4.36 % of base)
         -48 : 190205.dasm (-4.11 % of base)
         -48 : 314611.dasm (-10.43 % of base)
         -48 : 84834.dasm (-10.26 % of base)
         -48 : 190055.dasm (-3.87 % of base)

84 total files with Code Size differences (39 improved, 45 regressed), 20 unchanged.

Top method regressions (bytes):
         136 (3.56 % of base) : 220120.dasm - System.Tests.TimeZoneInfoTests:ConvertTime_DateTime_LocalToLocal() (FullOpts)
         128 (2.91 % of base) : 19166.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
         120 (1.03 % of base) : 265189.dasm - System.Text.Json.Serialization.Tests.SerializerTests+<TestMultiContextSerialization>d__8`1[System.__Canon]:MoveNext():this (FullOpts)
         116 (3.44 % of base) : 220837.dasm - System.Tests.TimeZoneInfoTests:GetAmbiguousTimeOffsets_LocalAmbiguousOffsets() (FullOpts)
         116 (2.50 % of base) : 274444.dasm - System.Text.Json.Serialization.Tests.ReadValueTests:ReadClasses() (FullOpts)
         108 (1.61 % of base) : 254358.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<Number_AsCollectionElement_RoundTrip>d__22:MoveNext():this (FullOpts)
         108 (1.60 % of base) : 268052.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<Number_AsCollectionElement_RoundTrip>d__22:MoveNext():this (FullOpts)
         108 (1.61 % of base) : 250646.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<Number_AsRootType_RoundTrip>d__7:MoveNext():this (FullOpts)
         108 (1.61 % of base) : 267392.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<Number_AsRootType_RoundTrip>d__7:MoveNext():this (FullOpts)
         100 (0.70 % of base) : 274923.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<DictionaryOfString>d__29:MoveNext():this (FullOpts)
         100 (0.70 % of base) : 263735.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<DictionaryOfString>d__29:MoveNext():this (FullOpts)
         100 (1.04 % of base) : 253971.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<Disallow_ArbritaryStrings_On_AllowFloatingPointConstants>d__60:MoveNext():this (FullOpts)
         100 (1.04 % of base) : 268859.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<Disallow_ArbritaryStrings_On_AllowFloatingPointConstants>d__60:MoveNext():this (FullOpts)
         100 (1.72 % of base) : 250400.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<UnsupportedFormats>d__48:MoveNext():this (FullOpts)
         100 (1.72 % of base) : 267369.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<UnsupportedFormats>d__48:MoveNext():this (FullOpts)
          96 (2.79 % of base) : 66449.dasm - System.Collections.Concurrent.Tests.BlockingCollectionTests:Test4_Dispose() (FullOpts)
          96 (2.65 % of base) : 152921.dasm - System.Net.Http.Tests.HttpContentHeadersTest:InvalidHeaders_AddRequestAndResponseHeaders_Throw():this (FullOpts)
          96 (1.19 % of base) : 314882.dasm - System.Xml.XmlWellFormedWriter+<WriteEndAttributeAsync_SepcialAtt>d__132:MoveNext():this (FullOpts)
          88 (3.13 % of base) : 125915.dasm - System.IO.Compression.Tests.zip_CreateTests:CreateModeInvalidOperations() (FullOpts)
          84 (1.69 % of base) : 267300.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<FloatingPointConstants_IncompatibleNumber>d__46:MoveNext():this (FullOpts)

Top method improvements (bytes):
        -148 (-2.09 % of base) : 145782.dasm - System.Management.PropertyData:MapValueToWmiValue(System.Object,int,ubyte):System.Object (FullOpts)
        -116 (-3.15 % of base) : 207135.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
         -92 (-1.00 % of base) : 269145.dasm - System.Text.Json.Serialization.Tests.SimpleTestClass:Initialize():this (FullOpts)
         -92 (-1.00 % of base) : 269387.dasm - System.Text.Json.Serialization.Tests.SimpleTestClassWithFields:Initialize():this (FullOpts)
         -84 (-1.24 % of base) : 203957.dasm - DataContractJsonSerializerTests:DCJS_VerifyDateTimeForFormatStringDCJsonSerSettings() (FullOpts)
         -84 (-1.24 % of base) : 204407.dasm - DataContractJsonSerializerTests:DCJS_VerifyDateTimeForFormatStringDCJsonSerSettings() (FullOpts)
         -72 (-2.32 % of base) : 126484.dasm - System.IO.Compression.Tests.ZipFile_Extract:Windows_ZipWithInvalidFileNames():this (FullOpts)
         -72 (-1.80 % of base) : 297919.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31776_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -72 (-3.31 % of base) : 178003.dasm - System.Xml.XmlSchemaValidatorApiTests.TCXmlSchemaValidatorMisc:CreateSchema2(System.String) (FullOpts)
         -56 (-3.52 % of base) : 178047.dasm - System.Xml.XmlSchemaValidatorApiTests.TCXmlSchemaValidatorMisc:CreateSchema1(System.String) (FullOpts)
         -52 (-1.59 % of base) : 208217.dasm - DataContractSerializerTests:DCS_TypeWithPrimitiveKnownTypes() (FullOpts)
         -52 (-1.36 % of base) : 144638.dasm - System.Linq.Tests.TakeTests:MutableSourceNotList():this (FullOpts)
         -52 (-1.04 % of base) : 95060.dasm - System.Xml.Schema.XmlSchemaInference:FindMatchingElement(ubyte,System.Xml.XmlReader,System.Xml.Schema.XmlSchemaComplexType,byref,System.Xml.Schema.XmlSchema,ubyte):System.Xml.Schema.XmlSchemaElement:this (FullOpts)
         -48 (-10.26 % of base) : 84834.dasm - System.ComponentModel.LookupBindingPropertiesAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -48 (-4.33 % of base) : 185175.dasm - System.Reflection.Emit.MethodBuilderImpl:SetCustomAttributeCore(System.Reflection.ConstructorInfo,System.ReadOnlySpan`1[ubyte]):this (FullOpts)
         -48 (-3.87 % of base) : 190055.dasm - System.Reflection.Tests.ModuleTests:LoadMultiModuleFromDisk_GetModuleNull() (FullOpts)
         -48 (-4.11 % of base) : 190113.dasm - System.Reflection.Tests.ModuleTests:ModuleGetTypesReturnsNewObjectEachType() (FullOpts)
         -48 (-4.11 % of base) : 190205.dasm - System.Reflection.Tests.ModuleTests:MultiModule_AssemblyDefinedTypes_ReturnsDifferentObjectEachType() (FullOpts)
         -48 (-4.36 % of base) : 190146.dasm - System.Reflection.Tests.ModuleTests:MultiModule_AssemblyGetTypes() (FullOpts)
         -48 (-10.43 % of base) : 314611.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)

Top method regressions (percentages):
          24 (42.86 % of base) : 145915.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
          24 (20.69 % of base) : 5388.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          24 (20.69 % of base) : 43867.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          24 (20.69 % of base) : 49573.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          16 (19.05 % of base) : 146955.dasm - System.SpanTests.SpanTests+<>c__DisplayClass651_0:<SliceIntRangeChecksd>b__6():this (FullOpts)
          20 (15.62 % of base) : 146952.dasm - System.SpanTests.SpanTests+<>c__DisplayClass651_0:<SliceIntRangeChecksd>b__3():this (FullOpts)
          32 (15.38 % of base) : 157427.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          20 (15.15 % of base) : 146950.dasm - System.SpanTests.SpanTests+<>c__DisplayClass651_0:<SliceIntRangeChecksd>b__1():this (FullOpts)
          12 (15.00 % of base) : 146954.dasm - System.SpanTests.SpanTests+<>c__DisplayClass651_0:<SliceIntRangeChecksd>b__5():this (FullOpts)
          44 (13.41 % of base) : 197801.dasm - System.Runtime.Loader.Tests.AssemblyLoadContextTest+CollectibleWithOneAssemblyLoadedWithStrongReferenceToInstanceTest:FreeHandle():this (FullOpts)
          44 (13.41 % of base) : 197604.dasm - System.Runtime.Loader.Tests.AssemblyLoadContextTest+CollectibleWithOneAssemblyLoadedWithStrongReferenceToTypeTest:FreeHandle():this (FullOpts)
          40 (13.33 % of base) : 78697.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,int]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,int],int):this (FullOpts)
          16 (13.33 % of base) : 198897.dasm - System.Tests.StringTests+<>c__DisplayClass127_0:<CopyTo_Span>b__0():this (FullOpts)
          16 (13.33 % of base) : 218430.dasm - System.Tests.StringTests+<>c__DisplayClass26_0:<CopyTo_Span>b__0():this (FullOpts)
          28 (12.73 % of base) : 102576.dasm - System.DirectoryServices.Protocols.Tests.BerConversionExceptionTests:Ctor_Default():this (FullOpts)
          28 (12.73 % of base) : 102575.dasm - System.DirectoryServices.Protocols.Tests.DirectoryExceptionTests:Ctor_Default():this (FullOpts)
          28 (12.73 % of base) : 204809.dasm - System.Runtime.Serialization.Tests.InvalidDataContractExceptionTests:Ctor_Default():this (FullOpts)
          12 (11.11 % of base) : 313281.dasm - System.Transactions.Oletx.OletxTransactionManager:ConvertIsolationLevelFromProxyValue(int):int (FullOpts)
          32 (10.96 % of base) : 147055.dasm - System.SpanTests.ReplaceTests`1+<>c__DisplayClass5_0[System.__Canon]:<ArgumentValidation_Copy>b__1():this (FullOpts)
          28 (10.94 % of base) : 131518.dasm - System.IO.Packaging.Tests.Tests:T203A_FileFormatException():this (FullOpts)

Top method improvements (percentages):
         -16 (-11.43 % of base) : 164051.dasm - System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
         -16 (-10.81 % of base) : 154516.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
         -16 (-10.53 % of base) : 151280.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
         -48 (-10.43 % of base) : 314611.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)
         -48 (-10.26 % of base) : 84834.dasm - System.ComponentModel.LookupBindingPropertiesAttribute:Equals(System.Object):ubyte:this (FullOpts)
          -8 (-7.14 % of base) : 148153.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__0():this (FullOpts)
         -20 (-6.94 % of base) : 19565.dasm - Microsoft.CodeAnalysis.SuppressionDescriptor:Equals(Microsoft.CodeAnalysis.SuppressionDescriptor):ubyte:this (FullOpts)
          -8 (-6.90 % of base) : 148154.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__1():this (FullOpts)
         -12 (-6.82 % of base) : 72545.dasm - System.Collections.CaseInsensitiveHashCodeProvider:GetHashCode(System.Object):int:this (FullOpts)
         -20 (-6.76 % of base) : 84632.dasm - System.ComponentModel.DesignerAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -20 (-6.76 % of base) : 84555.dasm - System.ComponentModel.EditorAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -20 (-6.76 % of base) : 86162.dasm - System.ComponentModel.ProvidePropertyAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -16 (-6.56 % of base) : 223282.dasm - System.Security.Claims.ClaimsPrincipalTests+<>c:<Ctor_IIdentity_NonClaims>b__2_0(System.Security.Claims.Claim):ubyte:this (FullOpts)
          -4 (-6.25 % of base) : 148155.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__2():this (FullOpts)
          -4 (-6.25 % of base) : 146973.dasm - System.SpanTests.SpanTests+<>c__DisplayClass104_0:<CtorArrayIntIntNegativeStart>b__0():this (FullOpts)
          -4 (-6.25 % of base) : 148017.dasm - System.SpanTests.SpanTests+<>c__DisplayClass105_0:<CtorArrayIntIntStartTooLarge>b__0():this (FullOpts)
          -4 (-6.25 % of base) : 146733.dasm - System.SpanTests.SpanTests+<>c__DisplayClass106_0:<CtorArrayIntIntNegativeLength>b__0():this (FullOpts)
          -4 (-6.25 % of base) : 148247.dasm - System.SpanTests.SpanTests+<>c__DisplayClass107_0:<CtorArrayIntIntStartAndLengthTooLarge>b__0():this (FullOpts)
          -4 (-6.25 % of base) : 148249.dasm - System.SpanTests.SpanTests+<>c__DisplayClass107_0:<CtorArrayIntIntStartAndLengthTooLarge>b__2():this (FullOpts)
          -4 (-6.25 % of base) : 148250.dasm - System.SpanTests.SpanTests+<>c__DisplayClass107_0:<CtorArrayIntIntStartAndLengthTooLarge>b__3():this (FullOpts)


realworld.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: 15889988 (overridden on cmd)
Total bytes of diff: 15891260 (overridden on cmd)
Total bytes of delta: 1272 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         224 : 4502.dasm (58.95 % of base)
         108 : 20884.dasm (2.33 % of base)
          72 : 5865.dasm (4.79 % of base)
          64 : 8780.dasm (3.16 % of base)
          48 : 11679.dasm (3.33 % of base)
          36 : 26194.dasm (8.57 % of base)
          32 : 1433.dasm (3.48 % of base)
          32 : 21060.dasm (2.07 % of base)
          28 : 17601.dasm (0.91 % of base)
          28 : 10234.dasm (25.93 % of base)
          28 : 10192.dasm (2.24 % of base)
          28 : 10237.dasm (3.83 % of base)
          28 : 23566.dasm (5.88 % of base)
          24 : 18447.dasm (0.36 % of base)
          24 : 20703.dasm (1.52 % of base)
          24 : 21585.dasm (2.01 % of base)
          24 : 223.dasm (3.77 % of base)
          24 : 24315.dasm (2.88 % of base)
          24 : 24585.dasm (1.14 % of base)
          24 : 29717.dasm (3.90 % of base)

Top file improvements (bytes):
         -12 : 3170.dasm (-1.35 % of base)
          -8 : 12895.dasm (-0.25 % of base)
          -8 : 18738.dasm (-0.21 % of base)
          -8 : 1621.dasm (-0.35 % of base)
          -8 : 2851.dasm (-0.27 % of base)
          -8 : 31850.dasm (-0.35 % of base)
          -8 : 4872.dasm (-1.12 % of base)
          -4 : 100.dasm (-2.04 % of base)
          -4 : 12705.dasm (-0.45 % of base)
          -4 : 12760.dasm (-0.77 % of base)
          -4 : 14218.dasm (-0.74 % of base)
          -4 : 14293.dasm (-0.06 % of base)
          -4 : 17254.dasm (-2.08 % of base)
          -4 : 23047.dasm (-1.92 % of base)
          -4 : 10984.dasm (-0.57 % of base)
          -4 : 10605.dasm (-0.88 % of base)
          -4 : 12642.dasm (-0.29 % of base)
          -4 : 12744.dasm (-2.13 % of base)
          -4 : 12789.dasm (-0.33 % of base)
          -4 : 14297.dasm (-0.15 % of base)

65 total files with Code Size differences (35 improved, 30 regressed), 20 unchanged.

Top method regressions (bytes):
         224 (58.95 % of base) : 4502.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
         108 (2.33 % of base) : 20884.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
          72 (4.79 % of base) : 5865.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          64 (3.16 % of base) : 8780.dasm - FSharp.Compiler.ConstraintSolver:consistent@1992(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+TyparConstraint,FSharp.Compiler.TypedTree+TyparConstraint):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
          48 (3.33 % of base) : 11679.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
          36 (8.57 % of base) : 26194.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          32 (3.48 % of base) : 1433.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
          32 (2.07 % of base) : 21060.dasm - Microsoft.CodeAnalysis.MarshalAsAttributeDecoder`4[System.__Canon,System.__Canon,System.__Canon,short]:DecodeMarshalAsArray(byref,Microsoft.CodeAnalysis.CommonMessageProvider,ubyte) (FullOpts)
          28 (2.24 % of base) : 10192.dasm - FSharp.Compiler.AccessibilityLogic:IsPropInfoAccessible(FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.AccessibilityLogic+AccessorDomain,FSharp.Compiler.Infos+PropInfo):ubyte (FullOpts)
          28 (25.93 % of base) : 10234.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
          28 (3.83 % of base) : 10237.dasm - FSharp.Compiler.Infos+PropInfo:get_IsIndexer():ubyte:this (FullOpts)
          28 (0.91 % of base) : 17601.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
          28 (5.88 % of base) : 23566.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          24 (1.52 % of base) : 20703.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeStructLayoutAttribute[System.__Canon,System.__Canon,System.__Canon,short](byref,int,int,Microsoft.CodeAnalysis.CommonMessageProvider) (FullOpts)
          24 (0.36 % of base) : 18447.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          24 (1.14 % of base) : 24585.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
          24 (2.01 % of base) : 21585.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData:DecodeMemberNotNullWhenAttribute[System.__Canon](Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref) (FullOpts)
          24 (3.90 % of base) : 29717.dasm - Microsoft.PowerShell.Commands.RegistryProvider:GetHiveRoot(System.String):Microsoft.PowerShell.Commands.IRegistryWrapper:this (FullOpts)
          24 (3.77 % of base) : 223.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
          24 (2.88 % of base) : 24315.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:IndexOf(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],int,int,System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):int:this (FullOpts)

Top method improvements (bytes):
         -12 (-1.35 % of base) : 3170.dasm - System.Collections.Generic.Dictionary`2[Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+StructBox`1[System.__Canon],System.__Canon]:FindValue(Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+StructBox`1[System.__Canon]):byref:this (FullOpts)
          -8 (-0.21 % of base) : 18738.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:GetCustomAttribute(System.Reflection.Metadata.CustomAttributeHandle,byref,byref):ubyte:this (FullOpts)
          -8 (-0.25 % of base) : 12895.dasm - Microsoft.ML.Trainers.SdcaMulticlassTrainerBase`1[System.__Canon]:CheckConvergence(Microsoft.ML.Runtime.IProgressChannel,int,Microsoft.ML.Trainers.FloatLabelCursor+Factory,Microsoft.ML.Trainers.SdcaTrainerBase`3+DualsTableBase[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Trainers.SdcaTrainerBase`3+IdToIdxLookup[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Data.VBuffer`1[float][],Microsoft.ML.Data.VBuffer`1[float][],float[],float[],float[],float[],long,double[],byref,byref):ubyte:this (FullOpts)
          -8 (-1.12 % of base) : 4872.dasm - System.Collections.Generic.Dictionary`2[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:FindValue(FSharp.Compiler.Text.Position):byref:this (FullOpts)
          -8 (-0.35 % of base) : 1621.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-0.35 % of base) : 31850.dasm - System.Management.Automation.CommandPathSearch:ResolveCurrentDirectoryInLookupPaths():this (FullOpts)
          -8 (-0.27 % of base) : 2851.dasm - System.TimeZoneInfo:TryCreateAdjustmentRules(System.String,byref,byref,byref,int):ubyte (FullOpts)
          -4 (-0.88 % of base) : 10605.dasm - FSharp.Compiler.CompilerConfig:GetWarningNumber(FSharp.Compiler.Text.Range,System.String):Microsoft.FSharp.Core.FSharpOption`1[int] (FullOpts)
          -4 (-0.57 % of base) : 10568.dasm - FSharp.Compiler.Parser+_fsyacc_reductions@7366-478:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)
          -4 (-0.27 % of base) : 8421.dasm - FSharp.Compiler.PatternMatchCompilation:CompileFallThroughTree@1359(FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.TypedTreeOps+DisplayEnv,FSharp.Compiler.Import+ImportMap,Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.TypedTree+ValRef,Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.TypedTree+ValUseFlag,Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+TType],Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Text.Range,System.Tuple`2[FSharp.Compiler.TypedTree+Expr,FSharp.Compiler.TypedTree+TType]]]]],FSharp.Compiler.InfoReader+InfoReader,FSharp.Compiler.Text.Range,FSharp.Compiler.Text.Range,ubyte,FSharp.Compiler.PatternMatchCompilation+ActionOnFailure,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar],FSharp.Compiler.TypedTree+Val,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+Expr],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.TypedTreeOps+MatchBuilder,FSharp.Compiler.PatternMatchCompilation+TypedMatchClause[],int,Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.PatternMatchCompilation+SubExprOfInput,FSharp.Compiler.TypedTree+Expr],Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.PatternMatchCompilation+Pattern,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+DecisionTreeTest]],Microsoft.FSharp.Core.FSharpRef`1[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.PatternMatchCompilation+TypedMatchClause]],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.PatternMatchCompilation+Frontier],FSharp.Compiler.PatternMatchCompilation+Path,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.PatternMatchCompilation+RefutedSet],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+DecisionTreeCase]):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+DecisionTree] (FullOpts)
          -4 (-1.39 % of base) : 24255.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.64 % of base) : 23642.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:IsReceiverRefReadOnly(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
          -4 (-0.27 % of base) : 19905.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:FindMethodSymbolInSuperType(System.Reflection.Metadata.TypeDefinitionHandle,System.Reflection.Metadata.MethodDefinitionHandle):System.__Canon:this (FullOpts)
          -4 (-0.45 % of base) : 12705.dasm - Microsoft.ML.Data.RoleMappedSchema:MapFromNames(Microsoft.ML.DataViewSchema,System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[Microsoft.ML.Data.RoleMappedSchema+ColumnRole,System.String]],ubyte):System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[Microsoft.ML.DataViewSchema+Column]] (FullOpts)
          -4 (-0.19 % of base) : 29977.dasm - Microsoft.PowerShell.Commands.FileSystemProvider:InitializeDefaultDrives():System.Collections.ObjectModel.Collection`1[System.Management.Automation.PSDriveInfo]:this (FullOpts)
          -4 (-0.29 % of base) : 12642.dasm - System.Collections.Concurrent.BlockingCollection`1[System.__Canon]:TryAddWithNoTimeValidation(System.__Canon,int,System.Threading.CancellationToken):ubyte:this (FullOpts)
          -4 (-2.13 % of base) : 12744.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.96 % of base) : 219.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 100.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.13 % of base) : 4538.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)

Top method regressions (percentages):
         224 (58.95 % of base) : 4502.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
          28 (25.93 % of base) : 10234.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
          20 (9.80 % of base) : 22422.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
          20 (8.62 % of base) : 23559.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
          36 (8.57 % of base) : 26194.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          20 (7.94 % of base) : 23541.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
          28 (5.88 % of base) : 23566.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          12 (5.08 % of base) : 27470.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
          72 (4.79 % of base) : 5865.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          20 (4.67 % of base) : 24281.dasm - Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:.ctor(Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (FullOpts)
          16 (4.17 % of base) : 19491.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
           8 (4.08 % of base) : 20920.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AttributeDataExtensions:DecodeNotNullIfNotNullAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.String (FullOpts)
          20 (3.94 % of base) : 26130.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetCorrespondingBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):int (FullOpts)
          24 (3.90 % of base) : 29717.dasm - Microsoft.PowerShell.Commands.RegistryProvider:GetHiveRoot(System.String):Microsoft.PowerShell.Commands.IRegistryWrapper:this (FullOpts)
          28 (3.83 % of base) : 10237.dasm - FSharp.Compiler.Infos+PropInfo:get_IsIndexer():ubyte:this (FullOpts)
           8 (3.77 % of base) : 20923.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:DecodeMaybeNullWhenOrNotNullWhenOrDoesNotReturnIfAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.Nullable`1[ubyte] (FullOpts)
          24 (3.77 % of base) : 223.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
          12 (3.70 % of base) : 14244.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
          32 (3.48 % of base) : 1433.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
          48 (3.33 % of base) : 11679.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)

Top method improvements (percentages):
          -4 (-2.13 % of base) : 12744.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.13 % of base) : 4538.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.08 % of base) : 17254.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 100.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 3119.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.96 % of base) : 219.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.92 % of base) : 23047.dasm - System.Collections.Generic.HashSet`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.64 % of base) : 23642.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:IsReceiverRefReadOnly(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
          -4 (-1.41 % of base) : 32380.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -4 (-1.39 % of base) : 24255.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -12 (-1.35 % of base) : 3170.dasm - System.Collections.Generic.Dictionary`2[Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+StructBox`1[System.__Canon],System.__Canon]:FindValue(Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+StructBox`1[System.__Canon]):byref:this (FullOpts)
          -8 (-1.12 % of base) : 4872.dasm - System.Collections.Generic.Dictionary`2[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:FindValue(FSharp.Compiler.Text.Position):byref:this (FullOpts)
          -4 (-0.88 % of base) : 10605.dasm - FSharp.Compiler.CompilerConfig:GetWarningNumber(FSharp.Compiler.Text.Range,System.String):Microsoft.FSharp.Core.FSharpOption`1[int] (FullOpts)
          -4 (-0.85 % of base) : 14652.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetResult():this (FullOpts)
          -4 (-0.77 % of base) : 12760.dasm - System.Threading.ThreadLocal`1[System.__Canon]:GrowTable(byref,int) (FullOpts)
          -4 (-0.74 % of base) : 14218.dasm - System.DomainNameHelper:IdnEquivalent(System.String):System.String (FullOpts)
          -4 (-0.57 % of base) : 4816.dasm - System.String:Equals(System.String,int):ubyte:this (FullOpts)
          -4 (-0.57 % of base) : 10568.dasm - FSharp.Compiler.Parser+_fsyacc_reductions@7366-478:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)
          -4 (-0.57 % of base) : 10984.dasm - System.String:Equals(System.String,System.String,int):ubyte (FullOpts)
          -4 (-0.48 % of base) : 32212.dasm - System.Management.Automation.Internal.ObjectStream:RaiseEvents():this (FullOpts)


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: 3972708 (overridden on cmd)
Total bytes of diff: 3973164 (overridden on cmd)
Total bytes of delta: 456 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          96 : 12778.dasm (4.71 % of base)
          96 : 7161.dasm (4.71 % of base)
          40 : 12257.dasm (3.50 % of base)
          36 : 8222.dasm (7.69 % of base)
          36 : 13908.dasm (7.69 % of base)
          24 : 13884.dasm (6.67 % of base)
          24 : 8199.dasm (6.67 % of base)
          24 : 8200.dasm (5.61 % of base)
          24 : 13885.dasm (5.61 % of base)
          16 : 13180.dasm (3.25 % of base)
          16 : 1719.dasm (3.15 % of base)
          12 : 15101.dasm (0.44 % of base)
          12 : 11272.dasm (0.44 % of base)
          12 : 11190.dasm (1.28 % of base)
          12 : 8486.dasm (0.37 % of base)
           8 : 11013.dasm (1.59 % of base)
           8 : 14996.dasm (4.76 % of base)
           8 : 11261.dasm (0.51 % of base)
           8 : 7804.dasm (4.88 % of base)
           8 : 7869.dasm (1.61 % of base)

Top file improvements (bytes):
          -8 : 14311.dasm (-0.37 % of base)
          -8 : 11754.dasm (-0.41 % of base)
          -8 : 6510.dasm (-0.39 % of base)
          -8 : 8617.dasm (-0.36 % of base)
          -4 : 12074.dasm (-2.27 % of base)
          -4 : 12234.dasm (-1.64 % of base)
          -4 : 1248.dasm (-2.17 % of base)
          -4 : 2142.dasm (-1.02 % of base)
          -4 : 9825.dasm (-2.22 % of base)
          -4 : 14924.dasm (-1.61 % of base)
          -4 : 2644.dasm (-1.04 % of base)
          -4 : 4608.dasm (-2.17 % of base)
          -4 : 4633.dasm (-1.02 % of base)
          -4 : 11134.dasm (-0.83 % of base)
          -4 : 13179.dasm (-2.33 % of base)
          -4 : 4060.dasm (-0.33 % of base)
          -4 : 5816.dasm (-2.22 % of base)
          -4 : 5912.dasm (-0.83 % of base)
          -4 : 8445.dasm (-1.04 % of base)
          -4 : 14698.dasm (-0.83 % of base)

50 total files with Code Size differences (26 improved, 24 regressed), 20 unchanged.

Top method regressions (bytes):
          96 (4.71 % of base) : 12778.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
          96 (4.71 % of base) : 7161.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
          40 (3.50 % of base) : 12257.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (FullOpts)
          36 (7.69 % of base) : 8222.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
          36 (7.69 % of base) : 13908.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
          24 (5.61 % of base) : 8200.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
          24 (5.61 % of base) : 13885.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
          24 (6.67 % of base) : 13884.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
          24 (6.67 % of base) : 8199.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
          16 (3.25 % of base) : 13180.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (FullOpts)
          16 (3.15 % of base) : 1719.dasm - System.Collections.Generic.Dictionary`2[long,System.Runtime.InteropServices.GCHandle]:FindValue(long):byref:this (FullOpts)
          12 (0.44 % of base) : 15101.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
          12 (0.44 % of base) : 11272.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
          12 (0.37 % of base) : 8486.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
          12 (1.28 % of base) : 11190.dasm - System.Reflection.Runtime.MethodInfos.RuntimeNamedMethodInfo`1[System.Reflection.Runtime.MethodInfos.NativeFormat.NativeFormatMethodCommon]:MakeGenericMethod(System.Type[]):System.Reflection.MethodInfo:this (FullOpts)
           8 (0.51 % of base) : 11261.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeSearcher`1+<GetMatchingCustomAttributesIterator>d__2[System.__Canon]:MoveNext():ubyte:this (FullOpts)
           8 (1.61 % of base) : 7869.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
           8 (1.59 % of base) : 11013.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
           8 (4.76 % of base) : 14996.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
           8 (4.88 % of base) : 7804.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)

Top method improvements (bytes):
          -8 (-0.41 % of base) : 11754.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
          -8 (-0.39 % of base) : 6510.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
          -8 (-0.37 % of base) : 14311.dasm - System.TimeZoneInfo:TryCreateAdjustmentRules(System.String,byref,byref,byref,int):ubyte (FullOpts)
          -8 (-0.36 % of base) : 8617.dasm - System.TimeZoneInfo:TryCreateAdjustmentRules(System.String,byref,byref,byref,int):ubyte (FullOpts)
          -4 (-2.33 % of base) : 13179.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.17 % of base) : 1248.dasm - System.Collections.Generic.Dictionary`2+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.17 % of base) : 4608.dasm - System.Collections.Generic.Dictionary`2+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.22 % of base) : 9825.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.22 % of base) : 5816.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.22 % of base) : 7890.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.27 % of base) : 12074.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.64 % of base) : 12234.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -4 (-1.61 % of base) : 14924.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -4 (-1.64 % of base) : 6908.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -4 (-1.02 % of base) : 2142.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -4 (-1.02 % of base) : 4633.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -4 (-2.13 % of base) : 23441.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -4 (-1.04 % of base) : 2644.dasm - System.Globalization.CompareInfo:IndexOf(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -4 (-1.04 % of base) : 8445.dasm - System.Globalization.CompareInfo:IndexOf(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -4 (-0.33 % of base) : 4060.dasm - System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly:UncachedGetTypeCoreCaseSensitive(System.String):System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo:this (FullOpts)

Top method regressions (percentages):
          36 (7.69 % of base) : 8222.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
          36 (7.69 % of base) : 13908.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
          24 (6.67 % of base) : 13884.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
          24 (6.67 % of base) : 8199.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
          24 (5.61 % of base) : 8200.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
          24 (5.61 % of base) : 13885.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
           8 (4.88 % of base) : 7804.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
           8 (4.88 % of base) : 13318.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
           8 (4.76 % of base) : 14996.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
          96 (4.71 % of base) : 12778.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
          96 (4.71 % of base) : 7161.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
          40 (3.50 % of base) : 12257.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (FullOpts)
          16 (3.25 % of base) : 13180.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (FullOpts)
          16 (3.15 % of base) : 1719.dasm - System.Collections.Generic.Dictionary`2[long,System.Runtime.InteropServices.GCHandle]:FindValue(long):byref:this (FullOpts)
           8 (1.61 % of base) : 7869.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
           8 (1.59 % of base) : 11013.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
           4 (1.35 % of base) : 1307.dasm - System.Text.DecoderFallbackBuffer:ThrowLastBytesRecursive(ubyte[]) (FullOpts)
           4 (1.35 % of base) : 4833.dasm - System.Text.DecoderFallbackBuffer:ThrowLastBytesRecursive(ubyte[]) (FullOpts)
           4 (1.33 % of base) : 14638.dasm - System.Text.DecoderFallbackBuffer:ThrowLastBytesRecursive(ubyte[]) (FullOpts)
          12 (1.28 % of base) : 11190.dasm - System.Reflection.Runtime.MethodInfos.RuntimeNamedMethodInfo`1[System.Reflection.Runtime.MethodInfos.NativeFormat.NativeFormatMethodCommon]:MakeGenericMethod(System.Type[]):System.Reflection.MethodInfo:this (FullOpts)

Top method improvements (percentages):
          -4 (-2.33 % of base) : 13179.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.27 % of base) : 12074.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.22 % of base) : 9825.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.22 % of base) : 5816.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.22 % of base) : 7890.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.17 % of base) : 1248.dasm - System.Collections.Generic.Dictionary`2+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.17 % of base) : 4608.dasm - System.Collections.Generic.Dictionary`2+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.13 % of base) : 23441.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -4 (-1.64 % of base) : 12234.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -4 (-1.64 % of base) : 6908.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -4 (-1.61 % of base) : 14924.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -4 (-1.04 % of base) : 2644.dasm - System.Globalization.CompareInfo:IndexOf(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -4 (-1.04 % of base) : 8445.dasm - System.Globalization.CompareInfo:IndexOf(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -4 (-1.02 % of base) : 2142.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -4 (-1.02 % of base) : 4633.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -4 (-0.84 % of base) : 1544.dasm - System.String:Equals(System.String,int):ubyte:this (FullOpts)
          -4 (-0.84 % of base) : 5192.dasm - System.String:Equals(System.String,int):ubyte:this (FullOpts)
          -4 (-0.83 % of base) : 14698.dasm - System.String:Equals(System.String,int):ubyte:this (FullOpts)
          -4 (-0.83 % of base) : 11134.dasm - System.String:Equals(System.String,System.String,int):ubyte (FullOpts)
          -4 (-0.83 % of base) : 5912.dasm - System.String:Equals(System.String,System.String,int):ubyte (FullOpts)



windows x64

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

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

Overall (+4,026,349 bytes)

Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 41,787,647 +391,910
benchmarks.run.windows.x64.checked.mch 8,747,647 -77
benchmarks.run_pgo.windows.x64.checked.mch 34,738,461 +652,832
benchmarks.run_tiered.windows.x64.checked.mch 12,661,708 -210
coreclr_tests.run.windows.x64.checked.mch 392,888,034 +516,889
libraries.crossgen2.windows.x64.checked.mch 39,442,225 +1,697
libraries.pmi.windows.x64.checked.mch 61,193,053 +196,137
libraries_tests.run.windows.x64.Release.mch 279,857,552 +1,784,757
librariestestsnotieredcompilation.run.windows.x64.Release.mch 133,433,111 +481,035
realworld.run.windows.x64.checked.mch 14,169,724 +1,032
smoke_tests.nativeaot.windows.x64.checked.mch 5,092,017 +347

FullOpts (+4,026,349 bytes)

Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 27,128,922 +391,910
benchmarks.run.windows.x64.checked.mch 8,747,286 -77
benchmarks.run_pgo.windows.x64.checked.mch 20,503,484 +652,832
benchmarks.run_tiered.windows.x64.checked.mch 3,476,442 -210
coreclr_tests.run.windows.x64.checked.mch 119,345,042 +516,889
libraries.crossgen2.windows.x64.checked.mch 39,441,036 +1,697
libraries.pmi.windows.x64.checked.mch 61,079,534 +196,137
libraries_tests.run.windows.x64.Release.mch 101,489,236 +1,784,757
librariestestsnotieredcompilation.run.windows.x64.Release.mch 123,009,741 +481,035
realworld.run.windows.x64.checked.mch 13,780,019 +1,032
smoke_tests.nativeaot.windows.x64.checked.mch 5,091,108 +347

Example diffs

aspnet.run.windows.x64.checked.mch

-15 (-15.15%) : 53577.dasm - Npgsql.NpgsqlCommand:g_ValidateParameterCount|980(Npgsql.NpgsqlBatchCommand) (Tier1)

@@ -9,7 +9,7 @@
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6,  5.00)     ref  ->  rcx         class-hnd single-def <Npgsql.NpgsqlBatchCommand>
+;  V00 arg0         [V00,T00] (  5,  4   )     ref  ->  rcx         class-hnd single-def <Npgsql.NpgsqlBatchCommand>
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V02 tmp1         [V02,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V03 tmp2         [V03,T01] (  3,  6   )     ref  ->  rax         class-hnd single-def "dup spill" <System.Collections.Generic.List`1[Npgsql.NpgsqlParameter]>
@@ -42,15 +42,10 @@ G_M9795_IG03:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byre
                        ;; size=9 bbWeight=1 PerfScore 3.25
 G_M9795_IG04:        ; bbWeight=1.00, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [rax+0x10], 0
-       jle      SHORT G_M9795_IG05
-       call     [Npgsql.NpgsqlBatchCommand:get_PositionalParameters():System.Collections.Generic.List`1[Npgsql.NpgsqlParameter]:this]
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-       cmp      dword ptr [rax+0x10], 0xFFFF
-       jg       SHORT G_M9795_IG07
-                       ;; size=21 bbWeight=1.00 PerfScore 11.00
+       jg       SHORT G_M9795_IG06
+                       ;; size=6 bbWeight=1.00 PerfScore 4.00
 G_M9795_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-       ; gcrRegs -[rax]
+       ; gcrRegs -[rax rcx]
        add      rsp, 40
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
@@ -61,13 +56,9 @@ G_M9795_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0002 {r
        ; gcr arg pop 0
        cmp      dword ptr [rax+0x10], 0xFFFF
        jle      SHORT G_M9795_IG05
-                       ;; size=15 bbWeight=0 PerfScore 0.00
-G_M9795_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax]
        mov      ecx, 0x48A7
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
-       ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      rcx, rax
        ; gcrRegs +[rcx]
@@ -75,9 +66,9 @@ G_M9795_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        int3     
-                       ;; size=30 bbWeight=0 PerfScore 0.00
+                       ;; size=45 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 99, prolog size 4, PerfScore 23.00, instruction count 25, allocated bytes for code 99 (MethodHash=b1ddd9bc) for method Npgsql.NpgsqlCommand:<ProcessRawQuery>g__ValidateParameterCount|98_0(Npgsql.NpgsqlBatchCommand) (Tier1)
+; Total bytes of code 84, prolog size 4, PerfScore 16.00, instruction count 22, allocated bytes for code 84 (MethodHash=b1ddd9bc) for method Npgsql.NpgsqlCommand:<ProcessRawQuery>g__ValidateParameterCount|98_0(Npgsql.NpgsqlBatchCommand) (Tier1)
 ; ============================================================
 
 Unwind Info:

-15 (-15.15%) : 65726.dasm - Npgsql.NpgsqlCommand:g_ValidateParameterCount|980(Npgsql.NpgsqlBatchCommand) (Tier1)

@@ -9,7 +9,7 @@
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6,  5.00)     ref  ->  rcx         class-hnd single-def <Npgsql.NpgsqlBatchCommand>
+;  V00 arg0         [V00,T00] (  5,  4   )     ref  ->  rcx         class-hnd single-def <Npgsql.NpgsqlBatchCommand>
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V02 tmp1         [V02,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V03 tmp2         [V03,T01] (  3,  6   )     ref  ->  rax         class-hnd single-def "dup spill" <System.Collections.Generic.List`1[Npgsql.NpgsqlParameter]>
@@ -42,15 +42,10 @@ G_M9795_IG03:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byre
                        ;; size=9 bbWeight=1 PerfScore 3.25
 G_M9795_IG04:        ; bbWeight=1.00, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [rax+0x10], 0
-       jle      SHORT G_M9795_IG05
-       call     [Npgsql.NpgsqlBatchCommand:get_PositionalParameters():System.Collections.Generic.List`1[Npgsql.NpgsqlParameter]:this]
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-       cmp      dword ptr [rax+0x10], 0xFFFF
-       jg       SHORT G_M9795_IG07
-                       ;; size=21 bbWeight=1.00 PerfScore 11.00
+       jg       SHORT G_M9795_IG06
+                       ;; size=6 bbWeight=1.00 PerfScore 4.00
 G_M9795_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-       ; gcrRegs -[rax]
+       ; gcrRegs -[rax rcx]
        add      rsp, 40
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
@@ -61,13 +56,9 @@ G_M9795_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0002 {r
        ; gcr arg pop 0
        cmp      dword ptr [rax+0x10], 0xFFFF
        jle      SHORT G_M9795_IG05
-                       ;; size=15 bbWeight=0 PerfScore 0.00
-G_M9795_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax]
        mov      ecx, 0x48A7
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
-       ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      rcx, rax
        ; gcrRegs +[rcx]
@@ -75,9 +66,9 @@ G_M9795_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        int3     
-                       ;; size=30 bbWeight=0 PerfScore 0.00
+                       ;; size=45 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 99, prolog size 4, PerfScore 23.00, instruction count 25, allocated bytes for code 99 (MethodHash=b1ddd9bc) for method Npgsql.NpgsqlCommand:<ProcessRawQuery>g__ValidateParameterCount|98_0(Npgsql.NpgsqlBatchCommand) (Tier1)
+; Total bytes of code 84, prolog size 4, PerfScore 16.00, instruction count 22, allocated bytes for code 84 (MethodHash=b1ddd9bc) for method Npgsql.NpgsqlCommand:<ProcessRawQuery>g__ValidateParameterCount|98_0(Npgsql.NpgsqlBatchCommand) (Tier1)
 ; ============================================================
 
 Unwind Info:

-2 (-9.52%) : 102341.dasm - System.Text.StringBuilder+ChunkEnumerator:ChunkCount(System.Text.StringBuilder):int (Tier1)

@@ -20,22 +20,20 @@ G_M20204_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rcx]
        xor      eax, eax
        test     rcx, rcx
-       jne      SHORT G_M20204_IG04
+       je       SHORT G_M20204_IG04
                        ;; size=7 bbWeight=1 PerfScore 1.50
-G_M20204_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-       ; gcrRegs -[rcx]
-       ret      
-                       ;; size=1 bbWeight=1 PerfScore 1.00
-G_M20204_IG04:        ; bbWeight=1.01, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rcx]
+G_M20204_IG03:        ; bbWeight=1.01, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        inc      eax
        mov      rcx, gword ptr [rcx+0x10]
        test     rcx, rcx
-       jne      SHORT G_M20204_IG04
-       jmp      SHORT G_M20204_IG03
-                       ;; size=13 bbWeight=1.01 PerfScore 5.56
+       jne      SHORT G_M20204_IG03
+                       ;; size=11 bbWeight=1.01 PerfScore 3.54
+G_M20204_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+       ; gcrRegs -[rcx]
+       ret      
+                       ;; size=1 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 21, prolog size 0, PerfScore 8.06, instruction count 9, allocated bytes for code 21 (MethodHash=3038b113) for method System.Text.StringBuilder+ChunkEnumerator:ChunkCount(System.Text.StringBuilder):int (Tier1)
+; Total bytes of code 19, prolog size 0, PerfScore 6.04, instruction count 8, allocated bytes for code 19 (MethodHash=3038b113) for method System.Text.StringBuilder+ChunkEnumerator:ChunkCount(System.Text.StringBuilder):int (Tier1)
 ; ============================================================
 
 Unwind Info:

+24 (+23.30%) : 93010.dasm - System.Collections.Generic.Stack1[System.Collections.Generic.KeyValuePair2[System.Canon,System.Canon]]:TryPop(byref):ubyte:this (Tier1)

@@ -9,7 +9,7 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  7,  5.80)     ref  ->  rbx         this class-hnd single-def <System.Collections.Generic.Stack`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]>
+;  V00 this         [V00,T00] (  8,  6.40)     ref  ->  rbx         this class-hnd single-def <System.Collections.Generic.Stack`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]>
 ;  V01 arg1         [V01,T01] (  4,  3   )   byref  ->  rdx         single-def
 ;  V02 loc0         [V02,T03] (  4,  3.20)     int  ->  rcx        
 ;  V03 loc1         [V03,T05] (  3,  2.60)     ref  ->   r8         class-hnd exact single-def <<unknown class>>
@@ -19,9 +19,9 @@
 ;* V07 tmp2         [V07    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04.key (fldOffset=0x0)" P-INDEP
 ;* V08 tmp3         [V08    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04.value (fldOffset=0x8)" P-INDEP
 ;  V09 cse0         [V09,T06] (  3,  1.80)   byref  ->  rbp         "CSE - moderate"
-;* V10 rat0         [V10,T04] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V10 rat0         [V10,T04] (  2,  2.40)    long  ->  rax         "Spilling to split statement for tree"
 ;* V11 rat1         [V11,T07] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V12 rat2         [V12,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V12 rat2         [V12,T02] (  2,  2.40)    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 40
 
@@ -31,9 +31,10 @@ G_M7797_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
        push     rbp
        push     rbx
        sub      rsp, 40
+       mov      qword ptr [rsp+0x20], rcx
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-                       ;; size=11 bbWeight=1 PerfScore 4.50
+                       ;; size=16 bbWeight=1 PerfScore 5.50
 G_M7797_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref, isz
        ; byrRegs +[rdx]
        mov      ecx, dword ptr [rbx+0x10]
@@ -41,7 +42,7 @@ G_M7797_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, b
        mov      r8, gword ptr [rbx+0x08]
        ; gcrRegs +[r8]
        cmp      dword ptr [r8+0x08], ecx
-       jbe      SHORT G_M7797_IG04
+       jbe      SHORT G_M7797_IG05
                        ;; size=15 bbWeight=1 PerfScore 8.25
 G_M7797_IG03:        ; bbWeight=0.60, gcrefRegs=0108 {rbx r8}, byrefRegs=0004 {rdx}, byref, isz
        inc      dword ptr [rbx+0x14]
@@ -58,15 +59,24 @@ G_M7797_IG03:        ; bbWeight=0.60, gcrefRegs=0108 {rbx r8}, byrefRegs=0004 {r
        ; gcrRegs -[r8]
        ; byrRegs -[rdx]
        call     CORINFO_HELP_ASSIGN_BYREF
-       jmp      SHORT G_M7797_IG06
-                       ;; size=35 bbWeight=0.60 PerfScore 6.15
-G_M7797_IG04:        ; bbWeight=0.40, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref
-       ; byrRegs -[rbp rsi rdi] +[rdx]
+       mov      rax, qword ptr [rbx]
+       mov      rax, qword ptr [rax+0x30]
+       mov      rax, qword ptr [rax]
+       mov      rax, qword ptr [rax+0x20]
+       test     rax, rax
+       jne      SHORT G_M7797_IG07
+                       ;; size=52 bbWeight=0.60 PerfScore 10.49
+G_M7797_IG04:        ; bbWeight=0.12, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
+       ; byrRegs -[rsi rdi]
+       jmp      SHORT G_M7797_IG07
+                       ;; size=2 bbWeight=0.12 PerfScore 0.24
+G_M7797_IG05:        ; bbWeight=0.40, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref
+       ; byrRegs -[rbp] +[rdx]
        xor      eax, eax
        mov      qword ptr [rdx], rax
        mov      qword ptr [rdx+0x08], rax
                        ;; size=9 bbWeight=0.40 PerfScore 0.90
-G_M7797_IG05:        ; bbWeight=0.40, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M7797_IG06:        ; bbWeight=0.40, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
        ; byrRegs -[rdx]
        add      rsp, 40
        pop      rbx
@@ -75,14 +85,14 @@ G_M7797_IG05:        ; bbWeight=0.40, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b
        pop      rdi
        ret      
                        ;; size=9 bbWeight=0.40 PerfScore 1.30
-G_M7797_IG06:        ; bbWeight=0.60, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, gcvars, byref
+G_M7797_IG07:        ; bbWeight=0.60, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, gcvars, byref
        ; byrRegs +[rbp]
        xor      eax, eax
        mov      qword ptr [rbp], rax
        mov      qword ptr [rbp+0x08], rax
        mov      eax, 1
                        ;; size=15 bbWeight=0.60 PerfScore 1.50
-G_M7797_IG07:        ; bbWeight=0.60, epilog, nogc, extend
+G_M7797_IG08:        ; bbWeight=0.60, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
@@ -91,7 +101,7 @@ G_M7797_IG07:        ; bbWeight=0.60, epilog, nogc, extend
        ret      
                        ;; size=9 bbWeight=0.60 PerfScore 1.95
 
-; Total bytes of code 103, prolog size 8, PerfScore 24.55, instruction count 40, allocated bytes for code 103 (MethodHash=2125e18a) for method System.Collections.Generic.Stack`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
+; Total bytes of code 127, prolog size 13, PerfScore 30.13, instruction count 47, allocated bytes for code 127 (MethodHash=2125e18a) for method System.Collections.Generic.Stack`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:

+24 (+23.30%) : 102350.dasm - System.Collections.Generic.Stack1[System.Collections.Generic.KeyValuePair2[System.Canon,System.Canon]]:TryPop(byref):ubyte:this (Tier1)

@@ -9,7 +9,7 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  7,  5.83)     ref  ->  rbx         this class-hnd single-def <System.Collections.Generic.Stack`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]>
+;  V00 this         [V00,T00] (  8,  6.44)     ref  ->  rbx         this class-hnd single-def <System.Collections.Generic.Stack`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]>
 ;  V01 arg1         [V01,T01] (  4,  3.01)   byref  ->  rdx         single-def
 ;  V02 loc0         [V02,T03] (  4,  3.22)     int  ->  rcx        
 ;  V03 loc1         [V03,T05] (  3,  2.61)     ref  ->   r8         class-hnd exact single-def <<unknown class>>
@@ -19,9 +19,9 @@
 ;* V07 tmp2         [V07    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04.key (fldOffset=0x0)" P-INDEP
 ;* V08 tmp3         [V08    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04.value (fldOffset=0x8)" P-INDEP
 ;  V09 cse0         [V09,T06] (  3,  1.83)   byref  ->  rbp         "CSE - moderate"
-;* V10 rat0         [V10,T04] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V10 rat0         [V10,T04] (  2,  2.44)    long  ->  rax         "Spilling to split statement for tree"
 ;* V11 rat1         [V11,T07] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V12 rat2         [V12,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V12 rat2         [V12,T02] (  2,  2.44)    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 40
 
@@ -31,9 +31,10 @@ G_M7797_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
        push     rbp
        push     rbx
        sub      rsp, 40
+       mov      qword ptr [rsp+0x20], rcx
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-                       ;; size=11 bbWeight=1 PerfScore 4.50
+                       ;; size=16 bbWeight=1 PerfScore 5.50
 G_M7797_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref, isz
        ; byrRegs +[rdx]
        mov      ecx, dword ptr [rbx+0x10]
@@ -41,7 +42,7 @@ G_M7797_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, b
        mov      r8, gword ptr [rbx+0x08]
        ; gcrRegs +[r8]
        cmp      dword ptr [r8+0x08], ecx
-       jbe      SHORT G_M7797_IG04
+       jbe      SHORT G_M7797_IG05
                        ;; size=15 bbWeight=1 PerfScore 8.25
 G_M7797_IG03:        ; bbWeight=0.61, gcrefRegs=0108 {rbx r8}, byrefRegs=0004 {rdx}, byref, isz
        inc      dword ptr [rbx+0x14]
@@ -58,15 +59,24 @@ G_M7797_IG03:        ; bbWeight=0.61, gcrefRegs=0108 {rbx r8}, byrefRegs=0004 {r
        ; gcrRegs -[r8]
        ; byrRegs -[rdx]
        call     CORINFO_HELP_ASSIGN_BYREF
-       jmp      SHORT G_M7797_IG06
-                       ;; size=35 bbWeight=0.61 PerfScore 6.26
-G_M7797_IG04:        ; bbWeight=0.40, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref
-       ; byrRegs -[rbp rsi rdi] +[rdx]
+       mov      rax, qword ptr [rbx]
+       mov      rax, qword ptr [rax+0x30]
+       mov      rax, qword ptr [rax]
+       mov      rax, qword ptr [rax+0x20]
+       test     rax, rax
+       jne      SHORT G_M7797_IG07
+                       ;; size=52 bbWeight=0.61 PerfScore 10.68
+G_M7797_IG04:        ; bbWeight=0.12, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
+       ; byrRegs -[rsi rdi]
+       jmp      SHORT G_M7797_IG07
+                       ;; size=2 bbWeight=0.12 PerfScore 0.24
+G_M7797_IG05:        ; bbWeight=0.40, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref
+       ; byrRegs -[rbp] +[rdx]
        xor      eax, eax
        mov      qword ptr [rdx], rax
        mov      qword ptr [rdx+0x08], rax
                        ;; size=9 bbWeight=0.40 PerfScore 0.90
-G_M7797_IG05:        ; bbWeight=0.40, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M7797_IG06:        ; bbWeight=0.40, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
        ; byrRegs -[rdx]
        add      rsp, 40
        pop      rbx
@@ -75,14 +85,14 @@ G_M7797_IG05:        ; bbWeight=0.40, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b
        pop      rdi
        ret      
                        ;; size=9 bbWeight=0.40 PerfScore 1.30
-G_M7797_IG06:        ; bbWeight=0.61, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, gcvars, byref
+G_M7797_IG07:        ; bbWeight=0.61, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, gcvars, byref
        ; byrRegs +[rbp]
        xor      eax, eax
        mov      qword ptr [rbp], rax
        mov      qword ptr [rbp+0x08], rax
        mov      eax, 1
                        ;; size=15 bbWeight=0.61 PerfScore 1.53
-G_M7797_IG07:        ; bbWeight=0.61, epilog, nogc, extend
+G_M7797_IG08:        ; bbWeight=0.61, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
@@ -91,7 +101,7 @@ G_M7797_IG07:        ; bbWeight=0.61, epilog, nogc, extend
        ret      
                        ;; size=9 bbWeight=0.61 PerfScore 1.98
 
-; Total bytes of code 103, prolog size 8, PerfScore 24.72, instruction count 40, allocated bytes for code 103 (MethodHash=2125e18a) for method System.Collections.Generic.Stack`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
+; Total bytes of code 127, prolog size 13, PerfScore 30.39, instruction count 47, allocated bytes for code 127 (MethodHash=2125e18a) for method System.Collections.Generic.Stack`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:

+25 (+33.78%) : 53801.dasm - System.Collections.Immutable.ImmutableSortedDictionary2[System.__Canon,System.ValueTuple2[System.Canon,int]]:TryGetValue(System.Canon,byref):ubyte:this (Tier1)

@@ -9,13 +9,13 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  5,  5   )     ref  ->  rbx         this class-hnd single-def <System.Collections.Immutable.ImmutableSortedDictionary`2[System.__Canon,System.ValueTuple`2[System.__Canon,int]]>
-;  V01 arg1         [V01,T01] (  4,  4   )     ref  ->  rdx         class-hnd single-def <System.__Canon>
+;  V01 arg1         [V01,T01] (  5,  4   )     ref  ->  rdx         class-hnd single-def <System.__Canon>
 ;  V02 arg2         [V02,T03] (  3,  3   )   byref  ->   r9         single-def
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V05 rat0         [V05,T04] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V05 rat0         [V05,T04] (  2,  4   )    long  ->  rcx         "Spilling to split statement for tree"
 ;* V06 rat1         [V06,T05] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V07 rat2         [V07,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V07 rat2         [V07,T02] (  2,  4   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 48
 
@@ -30,11 +30,36 @@ G_M40636_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=16 bbWeight=1 PerfScore 2.75
 G_M40636_IG02:        ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0200 {r9}, byref, isz
        ; gcrRegs +[rdx]
-       cmp      dword ptr [rbx], ebx
+       mov      rcx, qword ptr [rbx]
+       mov      rcx, qword ptr [rcx+0x30]
+       mov      rcx, qword ptr [rcx]
+       mov      rcx, qword ptr [rcx+0x98]
+       test     rcx, rcx
+       je       SHORT G_M40636_IG06
+                       ;; size=22 bbWeight=1 PerfScore 9.25
+G_M40636_IG03:        ; bbWeight=0.80, gcrefRegs=000C {rdx rbx}, byrefRegs=0200 {r9}, byref, isz
+       test     rdx, rdx
+       je       SHORT G_M40636_IG07
+                       ;; size=5 bbWeight=0.80 PerfScore 1.00
+G_M40636_IG04:        ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0200 {r9}, byref
+       mov      rcx, gword ptr [rbx+0x08]
+       ; gcrRegs +[rcx]
+       mov      r8, gword ptr [rbx+0x10]
+       ; gcrRegs +[r8]
+       cmp      dword ptr [rcx], ecx
+                       ;; size=10 bbWeight=1 PerfScore 7.00
+G_M40636_IG05:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 48
+       pop      rbx
+       tail.jmp [System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.ValueTuple`2[System.__Canon,int]]:TryGetValue(System.__Canon,System.Collections.Generic.IComparer`1[System.__Canon],byref):ubyte:this]
+       ; gcr arg pop 0
+                       ;; size=11 bbWeight=1 PerfScore 2.75
+G_M40636_IG06:        ; bbWeight=0.20, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0200 {r9}, gcvars, byref, isz
+       ; gcrRegs -[rcx r8]
        test     rdx, rdx
        jne      SHORT G_M40636_IG04
-                       ;; size=7 bbWeight=1 PerfScore 4.25
-G_M40636_IG03:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+                       ;; size=5 bbWeight=0.20 PerfScore 0.25
+G_M40636_IG07:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        ; byrRegs -[r9]
        mov      ecx, 0x671
@@ -49,23 +74,8 @@ G_M40636_IG03:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcr arg pop 0
        int3     
                        ;; size=30 bbWeight=0 PerfScore 0.00
-G_M40636_IG04:        ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0200 {r9}, byref
-       ; gcrRegs +[rdx]
-       ; byrRegs +[r9]
-       mov      rcx, gword ptr [rbx+0x08]
-       ; gcrRegs +[rcx]
-       mov      r8, gword ptr [rbx+0x10]
-       ; gcrRegs +[r8]
-       cmp      dword ptr [rcx], ecx
-                       ;; size=10 bbWeight=1 PerfScore 7.00
-G_M40636_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 48
-       pop      rbx
-       tail.jmp [System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.ValueTuple`2[System.__Canon,int]]:TryGetValue(System.__Canon,System.Collections.Generic.IComparer`1[System.__Canon],byref):ubyte:this]
-       ; gcr arg pop 0
-                       ;; size=11 bbWeight=1 PerfScore 2.75
 
-; Total bytes of code 74, prolog size 16, PerfScore 16.75, instruction count 20, allocated bytes for code 74 (MethodHash=7e776143) for method System.Collections.Immutable.ImmutableSortedDictionary`2[System.__Canon,System.ValueTuple`2[System.__Canon,int]]:TryGetValue(System.__Canon,byref):ubyte:this (Tier1)
+; Total bytes of code 99, prolog size 16, PerfScore 23.00, instruction count 27, allocated bytes for code 99 (MethodHash=7e776143) for method System.Collections.Immutable.ImmutableSortedDictionary`2[System.__Canon,System.ValueTuple`2[System.__Canon,int]]:TryGetValue(System.__Canon,byref):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:

benchmarks.run.windows.x64.checked.mch

-47 (-4.26%) : 20092.dasm - System.Collections.Generic.Dictionary2[System.ReadOnlyMemory1[ushort],System.Collections.Immutable.ImmutableArray1[System.__Canon]]:TryInsert(System.ReadOnlyMemory1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon],ubyte):ubyte:this (FullOpts)

@@ -12,24 +12,24 @@
 ;  V01 arg1         [V01,T01] ( 13, 26   )   byref  ->  rsi         ld-addr-op single-def
 ;* V02 arg2         [V02    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Collections.Immutable.ImmutableArray`1[System.__Canon]>
 ;  V03 arg3         [V03,T13] (  4,  3   )   ubyte  ->  [rsp+0xC8]  single-def
-;  V04 loc0         [V04,T00] ( 16, 30   )     ref  ->  r14         class-hnd <<unknown class>>
-;  V05 loc1         [V05,T10] (  5,  5.50)     ref  ->  r15         class-hnd single-def <<unknown class>>
-;  V06 loc2         [V06,T09] (  8, 12.50)     int  ->  r13        
-;  V07 loc3         [V07,T03] (  7, 25   )     int  ->  r12        
+;  V04 loc0         [V04,T00] ( 16, 30   )     ref  ->  r15         class-hnd <<unknown class>>
+;  V05 loc1         [V05,T10] (  5,  5.50)     ref  ->  r13         class-hnd single-def <<unknown class>>
+;  V06 loc2         [V06,T09] (  8, 12.50)     int  ->  r12        
+;  V07 loc3         [V07,T03] (  7, 25   )     int  ->  rdi        
 ;  V08 loc4         [V08,T25] (  5,  3.50)   byref  ->  [rsp+0x28] 
 ;  V09 loc5         [V09,T02] (  9, 26   )     int  ->  [rsp+0x64] 
-;  V10 loc6         [V10,T26] (  6,  3   )     int  ->  r12        
-;  V11 loc7         [V11,T31] (  5,  2.50)   byref  ->  r14         single-def
-;  V12 loc8         [V12,T39] (  3,  1.50)     int  ->  r12        
+;  V10 loc6         [V10,T26] (  6,  3   )     int  ->  rbp        
+;  V11 loc7         [V11,T31] (  5,  2.50)   byref  ->  r15         single-def
+;  V12 loc8         [V12,T39] (  3,  1.50)     int  ->  rbp        
 ;  V13 OutArgs      [V13    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref   
-;  V15 tmp2         [V15,T33] (  3,  2   )     int  ->  r13        
+;  V15 tmp2         [V15,T33] (  3,  2   )     int  ->  r12        
 ;* V16 tmp3         [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp4         [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V18 tmp5         [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp6         [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp7         [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V21 tmp8         [V21,T40] (  3,  1.50)     int  ->  r13         "Inline return value spill temp"
+;  V21 tmp8         [V21,T40] (  3,  1.50)     int  ->  r12         "Inline return value spill temp"
 ;* V22 tmp9         [V22    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
 ;  V23 tmp10        [V23,T14] (  4,  4   )     ref  ->  [rsp+0x20]  class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
 ;  V24 tmp11        [V24,T12] (  3,  6   )     int  ->  rcx         "Inlining Arg"
@@ -46,10 +46,10 @@
 ;* V35 tmp22        [V35    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp23        [V36    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V37 tmp24        [V37    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V38 tmp25        [V38,T38] (  3,  1.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V38 tmp25        [V38,T38] (  3,  1.50)     ref  ->  r15         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V39 tmp26        [V39,T28] (  3,  3   )     int  ->  rcx         "Inlining Arg"
-;  V40 tmp27        [V40,T34] (  2,  2   )    long  ->  r15         "Inlining Arg"
-;  V41 tmp28        [V41,T32] (  4,  2   )     int  ->  r15         "Inline stloc first use temp"
+;  V40 tmp27        [V40,T34] (  2,  2   )    long  ->  r13         "Inlining Arg"
+;  V41 tmp28        [V41,T32] (  4,  2   )     int  ->  r13         "Inline stloc first use temp"
 ;* V42 tmp29        [V42    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V43 tmp30        [V43    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V44 tmp31        [V44    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -61,8 +61,8 @@
 ;  V50 tmp37        [V50,T20] (  2,  4   )     int  ->   r9         "field V31._index (fldOffset=0x8)" P-INDEP
 ;  V51 tmp38        [V51,T21] (  2,  4   )     int  ->  rdx         "field V31._length (fldOffset=0xc)" P-INDEP
 ;  V52 tmp39        [V52,T18] (  2,  4   )     ref  ->  r11         "field V32._object (fldOffset=0x0)" P-INDEP
-;  V53 tmp40        [V53,T22] (  2,  4   )     int  ->  rbp         "field V32._index (fldOffset=0x8)" P-INDEP
-;  V54 tmp41        [V54,T23] (  2,  4   )     int  ->  rdi         "field V32._length (fldOffset=0xc)" P-INDEP
+;  V53 tmp40        [V53,T22] (  2,  4   )     int  ->  r14         "field V32._index (fldOffset=0x8)" P-INDEP
+;  V54 tmp41        [V54,T23] (  2,  4   )     int  ->  rbp         "field V32._length (fldOffset=0xc)" P-INDEP
 ;* V55 tmp42        [V55    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlyMemory`1[ushort]>
 ;  V56 tmp43        [V56,T35] (  2,  2   )     int  ->  rcx         "argument with side effect"
 ;  V57 tmp44        [V57    ] (  4, 10   )  struct (16) [rsp+0x50]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ReadOnlyMemory`1[ushort]>
@@ -80,7 +80,7 @@
 ;  V69 cse4         [V69,T43] (  3,  1.50)     int  ->  rcx         "CSE - conservative"
 ;  V70 cse5         [V70,T04] ( 10, 23   )     int  ->  [rsp+0x34]  hoist multi-def "CSE - aggressive"
 ;  V71 cse6         [V71,T11] ( 13,  6.50)     ref  ->  rdx         multi-def "CSE - aggressive"
-;  V72 cse7         [V72,T27] (  6,  3   )     int  ->  r10         multi-def "CSE - moderate"
+;  V72 cse7         [V72,T27] (  6,  3   )     int  ->  rbx         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 104
 
@@ -107,11 +107,11 @@ G_M51248_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=51 bbWeight=1 PerfScore 14.08
 G_M51248_IG02:        ; bbWeight=1, gcVars=0000000000010000 {V48}, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, gcvars, byref, isz
        cmp      gword ptr [rbx+0x08], 0
-       mov      rbp, gword ptr [rsp+0xC0]
-       ; gcrRegs +[rbp]
+       mov      r14, gword ptr [rsp+0xC0]
+       ; gcrRegs +[r14]
        jne      SHORT G_M51248_IG04
                        ;; size=15 bbWeight=1 PerfScore 5.00
-G_M51248_IG03:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0028 {rbx rbp}, byrefRegs=0040 {rsi}, gcvars, byref
+G_M51248_IG03:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0040 {rsi}, gcvars, byref
        ; GC ptr vars -{V48}
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -120,11 +120,11 @@ G_M51248_IG03:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=002
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
                        ;; size=11 bbWeight=0.50 PerfScore 1.75
-G_M51248_IG04:        ; bbWeight=1, gcrefRegs=0028 {rbx rbp}, byrefRegs=0040 {rsi}, byref, isz
+G_M51248_IG04:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0040 {rsi}, byref, isz
        cmp      gword ptr [rbx+0x08], 0
        jne      SHORT G_M51248_IG06
                        ;; size=7 bbWeight=1 PerfScore 4.00
-G_M51248_IG05:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0040 {rsi}, byref
+G_M51248_IG05:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0040 {rsi}, byref
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        mov      rcx, rdx
@@ -133,13 +133,13 @@ G_M51248_IG05:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0040
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
                        ;; size=19 bbWeight=0.50 PerfScore 1.75
-G_M51248_IG06:        ; bbWeight=1, gcrefRegs=0028 {rbx rbp}, byrefRegs=0040 {rsi}, byref, isz
-       mov      r14, gword ptr [rbx+0x10]
-       ; gcrRegs +[r14]
-       test     r14, r14
+G_M51248_IG06:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0040 {rsi}, byref, isz
+       mov      r15, gword ptr [rbx+0x10]
+       ; gcrRegs +[r15]
+       test     r15, r15
        jne      SHORT G_M51248_IG08
                        ;; size=9 bbWeight=1 PerfScore 3.25
-G_M51248_IG07:        ; bbWeight=0.50, gcrefRegs=4028 {rbx rbp r14}, byrefRegs=0040 {rsi}, byref
+G_M51248_IG07:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040 {rsi}, byref
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
@@ -148,34 +148,34 @@ G_M51248_IG07:        ; bbWeight=0.50, gcrefRegs=4028 {rbx rbp r14}, byrefRegs=0
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
                        ;; size=26 bbWeight=0.50 PerfScore 1.75
-G_M51248_IG08:        ; bbWeight=1, gcrefRegs=4028 {rbx rbp r14}, byrefRegs=0040 {rsi}, byref, isz
-       mov      r15, gword ptr [rbx+0x18]
-       ; gcrRegs +[r15]
-       test     r15, r15
+G_M51248_IG08:        ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040 {rsi}, byref, isz
+       mov      r13, gword ptr [rbx+0x18]
+       ; gcrRegs +[r13]
+       test     r13, r13
        je       SHORT G_M51248_IG11
                        ;; size=9 bbWeight=1 PerfScore 3.25
-G_M51248_IG09:        ; bbWeight=0.50, gcrefRegs=C028 {rbx rbp r14 r15}, byrefRegs=0040 {rsi}, byref, nogc
+G_M51248_IG09:        ; bbWeight=0.50, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0040 {rsi}, byref, nogc
        vmovdqu  xmm0, xmmword ptr [rsi]
        vmovdqu  xmmword ptr [rsp+0x50], xmm0
                        ;; size=10 bbWeight=0.50 PerfScore 2.50
 G_M51248_IG10:        ; bbWeight=0.50, isz, extend
-       mov      rcx, r15
+       mov      rcx, r13
        ; gcrRegs +[rcx]
        lea      rdx, [rsp+0x50]
        mov      r11, 0xD1FFAB1E      ; code for <unknown method>
        call     [r11]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      r13d, eax
+       mov      r12d, eax
        jmp      SHORT G_M51248_IG13
                        ;; size=26 bbWeight=0.50 PerfScore 3.12
-G_M51248_IG11:        ; bbWeight=0.50, gcrefRegs=C028 {rbx rbp r14 r15}, byrefRegs=0040 {rsi}, byref, isz
+G_M51248_IG11:        ; bbWeight=0.50, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0040 {rsi}, byref, isz
        cmp      gword ptr [rsi], 0
        jne      SHORT G_M51248_IG12
-       xor      r13d, r13d
+       xor      r12d, r12d
        jmp      SHORT G_M51248_IG13
                        ;; size=11 bbWeight=0.50 PerfScore 3.12
-G_M51248_IG12:        ; bbWeight=0.50, gcrefRegs=C028 {rbx rbp r14 r15}, byrefRegs=0040 {rsi}, byref
+G_M51248_IG12:        ; bbWeight=0.50, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0040 {rsi}, byref
        mov      rcx, gword ptr [rsi]
        ; gcrRegs +[rcx]
        call     <unknown method>
@@ -186,17 +186,17 @@ G_M51248_IG12:        ; bbWeight=0.50, gcrefRegs=C028 {rbx rbp r14 r15}, byrefRe
        mov      r8d, dword ptr [rsi+0x0C]
        call     [<unknown method>]
        ; gcr arg pop 0
-       mov      r13d, eax
+       mov      r12d, eax
                        ;; size=26 bbWeight=0.50 PerfScore 5.25
-G_M51248_IG13:        ; bbWeight=1, gcrefRegs=C028 {rbx rbp r14 r15}, byrefRegs=0040 {rsi}, byref, isz
-       xor      r12d, r12d
+G_M51248_IG13:        ; bbWeight=1, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0040 {rsi}, byref, isz
+       xor      edi, edi
        mov      r8, gword ptr [rbx+0x08]
        ; gcrRegs +[r8]
        mov      gword ptr [rsp+0x20], r8
        ; GC ptr vars +{V23}
        mov      ecx, dword ptr [r8+0x08]
        mov      r10, qword ptr [rbx+0x30]
-       mov      r9d, r13d
+       mov      r9d, r12d
        imul     r10, r9
        shr      r10, 32
        inc      r10
@@ -204,13 +204,13 @@ G_M51248_IG13:        ; bbWeight=1, gcrefRegs=C028 {rbx rbp r14 r15}, byrefRegs=
        imul     r10, r9
        shr      r10, 32
        mov      dword ptr [rsp+0x60], r10d
-       mov      eax, r13d
+       mov      eax, r12d
        xor      edx, edx
        div      edx:eax, ecx
        cmp      edx, r10d
        je       SHORT G_M51248_IG15
-                       ;; size=62 bbWeight=1 PerfScore 40.75
-G_M51248_IG14:        ; bbWeight=0.50, gcVars=0000000000004000 {V23}, gcrefRegs=C028 {rbx rbp r14 r15}, byrefRegs=0040 {rsi}, gcvars, byref
+                       ;; size=61 bbWeight=1 PerfScore 40.75
+G_M51248_IG14:        ; bbWeight=0.50, gcVars=0000000000004000 {V23}, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0040 {rsi}, gcvars, byref
        ; gcrRegs -[r8]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
@@ -220,36 +220,39 @@ G_M51248_IG14:        ; bbWeight=0.50, gcVars=0000000000004000 {V23}, gcrefRegs=
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
                        ;; size=19 bbWeight=0.50 PerfScore 1.75
-G_M51248_IG15:        ; bbWeight=1, gcrefRegs=C028 {rbx rbp r14 r15}, byrefRegs=0040 {rsi}, byref
+G_M51248_IG15:        ; bbWeight=1, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0040 {rsi}, byref
        mov      r10d, dword ptr [rsp+0x60]
        mov      r8, gword ptr [rsp+0x20]
        ; gcrRegs +[r8]
        cmp      r10d, dword ptr [r8+0x08]
-       jae      G_M51248_IG44
+       jae      G_M51248_IG41
        mov      ecx, r10d
        lea      rax, bword ptr [r8+4*rcx+0x10]
        ; byrRegs +[rax]
+       mov      bword ptr [rsp+0x28], rax
+       ; GC ptr vars +{V08}
        mov      r8d, dword ptr [rax]
        ; gcrRegs -[r8]
        dec      r8d
-       test     r15, r15
-       jne      G_M51248_IG28
-       mov      r15d, dword ptr [r14+0x08]
-       ; gcrRegs -[r15]
-                       ;; size=47 bbWeight=1 PerfScore 12.75
-G_M51248_IG16:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=4028 {rbx rbp r14}, byrefRegs=0041 {rax rsi}, gcvars, byref, isz
+       test     r13, r13
+       jne      G_M51248_IG26
+       mov      r13d, dword ptr [r15+0x08]
+       ; gcrRegs -[r13]
+                       ;; size=52 bbWeight=1 PerfScore 13.75
+G_M51248_IG16:        ; bbWeight=4, gcVars=0000000002000000 {V08}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040 {rsi}, gcvars, byref, isz
+       ; byrRegs -[rax]
        ; GC ptr vars -{V23}
-       cmp      r15d, r8d
-       jbe      G_M51248_IG36
+       cmp      r13d, r8d
+       jbe      G_M51248_IG33
        mov      ecx, r8d
        shl      rcx, 5
-       cmp      dword ptr [r14+rcx+0x10], r13d
-       jne      SHORT G_M51248_IG22
+       cmp      dword ptr [r15+rcx+0x10], r12d
+       jne      SHORT G_M51248_IG18
                        ;; size=23 bbWeight=4 PerfScore 24.00
-G_M51248_IG17:        ; bbWeight=2, gcrefRegs=4028 {rbx rbp r14}, byrefRegs=0041 {rax rsi}, byref, isz
-       mov      gword ptr [rsp+0xC0], rbp
+G_M51248_IG17:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040 {rsi}, byref, isz
+       mov      gword ptr [rsp+0xC0], r14
        ; GC ptr vars +{V48}
...

-22 (-3.32%) : 5804.dasm - System.Collections.Generic.Dictionary`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory+ServiceDescriptorCacheItem]:FindValue(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier):byref:this (FullOpts)

@@ -10,23 +10,23 @@
 ;
 ;  V00 this         [V00,T08] ( 11,  7   )     ref  ->  rsi         this class-hnd single-def <System.Collections.Generic.Dictionary`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory+ServiceDescriptorCacheItem]>
 ;  V01 arg1         [V01,T01] ( 10, 21   )   byref  ->  rbx         ld-addr-op single-def
-;  V02 loc0         [V02,T00] ( 11, 31   )   byref  ->  [rsp+0x20] 
+;  V02 loc0         [V02,T00] ( 11, 31   )   byref  ->  r13        
 ;  V03 loc1         [V03,T28] (  3,  2   )   byref  ->  rax        
 ;  V04 loc2         [V04,T14] (  4,  3.50)     ref  ->  rdi         class-hnd single-def <<unknown class>>
-;  V05 loc3         [V05,T17] (  4,  5.50)     int  ->  rdi        
-;  V06 loc4         [V06,T02] (  6, 13.50)     int  ->  rbp        
-;  V07 loc5         [V07,T09] (  3,  8.50)     ref  ->  rsi         class-hnd exact single-def <<unknown class>>
-;  V08 loc6         [V08,T04] (  4, 12.50)     int  ->  r14        
-;  V09 loc7         [V09,T18] (  4,  5.50)     int  ->  rbp        
-;  V10 loc8         [V10,T03] (  6, 13.50)     int  ->  r14        
+;  V05 loc3         [V05,T17] (  4,  5.50)     int  ->  rbp        
+;  V06 loc4         [V06,T02] (  6, 13.50)     int  ->  rdi        
+;  V07 loc5         [V07,T09] (  3,  8.50)     ref  ->  r14         class-hnd exact single-def <<unknown class>>
+;  V08 loc6         [V08,T04] (  4, 12.50)     int  ->  r15        
+;  V09 loc7         [V09,T18] (  4,  5.50)     int  ->  r12        
+;  V10 loc8         [V10,T03] (  6, 13.50)     int  ->  rbp        
 ;  V11 loc9         [V11,T10] (  3,  8.50)     ref  ->  rsi         class-hnd exact single-def <<unknown class>>
-;  V12 loc10        [V12,T05] (  4, 12.50)     int  ->  r15        
+;  V12 loc10        [V12,T05] (  4, 12.50)     int  ->  r14        
 ;  V13 OutArgs      [V13    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V15 tmp2         [V15,T33] (  3,  1.50)     int  ->  rdi         "Inline return value spill temp"
+;  V15 tmp2         [V15,T33] (  3,  1.50)     int  ->  rbp         "Inline return value spill temp"
 ;* V16 tmp3         [V16    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V17 tmp4         [V17    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V18 tmp5         [V18,T31] (  3,  1.50)     ref  ->  rbp         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V18 tmp5         [V18,T31] (  3,  1.50)     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V19 tmp6         [V19,T24] (  3,  3   )     int  ->  rcx         "Inlining Arg"
 ;  V20 tmp7         [V20,T29] (  2,  2   )    long  ->  r15         "Inlining Arg"
 ;  V21 tmp8         [V21,T26] (  4,  2   )     int  ->  r15         "Inline stloc first use temp"
@@ -46,14 +46,14 @@
 ;* V35 tmp22        [V35    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
 ;  V36 tmp23        [V36,T32] (  3,  1.50)     ref  ->  r13         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V37 tmp24        [V37,T25] (  3,  3   )     int  ->  rcx         "Inlining Arg"
-;  V38 tmp25        [V38,T30] (  2,  2   )    long  ->  r15         "Inlining Arg"
-;  V39 tmp26        [V39,T27] (  4,  2   )     int  ->  r15         "Inline stloc first use temp"
+;  V38 tmp25        [V38,T30] (  2,  2   )    long  ->  r14         "Inlining Arg"
+;  V39 tmp26        [V39,T27] (  4,  2   )     int  ->  r14         "Inline stloc first use temp"
 ;* V40 tmp27        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V41 tmp28        [V41    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V42 tmp29        [V42    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V43 tmp30        [V43    ] (  0,  0   )     ref  ->  zero-ref    "field V01.<ServiceKey>k__BackingField (fldOffset=0x0)" P-INDEP
 ;* V44 tmp31        [V44    ] (  0,  0   )     ref  ->  zero-ref    "field V01.<ServiceType>k__BackingField (fldOffset=0x8)" P-INDEP
-;  V45 tmp32        [V45,T11] (  4,  8   )     ref  ->  rbp         "field V26.<ServiceKey>k__BackingField (fldOffset=0x0)" P-INDEP
+;  V45 tmp32        [V45,T11] (  4,  8   )     ref  ->  rdi         "field V26.<ServiceKey>k__BackingField (fldOffset=0x0)" P-INDEP
 ;  V46 tmp33        [V46,T15] (  3,  6   )     ref  ->  rcx         "field V26.<ServiceType>k__BackingField (fldOffset=0x8)" P-INDEP
 ;* V47 tmp34        [V47    ] (  0,  0   )     ref  ->  zero-ref    "field V27.<ServiceKey>k__BackingField (fldOffset=0x0)" P-INDEP
 ;* V48 tmp35        [V48    ] (  0,  0   )     ref  ->  zero-ref    "field V27.<ServiceType>k__BackingField (fldOffset=0x8)" P-INDEP
@@ -68,9 +68,9 @@
 ;  V57 tmp44        [V57,T22] (  3,  3   )     ref  ->  rcx         single-def "argument with side effect"
 ;  V58 tmp45        [V58,T23] (  3,  3   )     ref  ->  rcx         single-def "argument with side effect"
 ;  V59 cse0         [V59,T34] (  3,  1.50)     int  ->  r14         "CSE - moderate"
-;  V60 cse1         [V60,T35] (  3,  1.50)     int  ->  r14         "CSE - moderate"
-;  V61 cse2         [V61,T06] (  3, 12   )     int  ->  r15         "CSE - aggressive"
-;  V62 cse3         [V62,T07] (  3, 12   )     int  ->  r13         "CSE - aggressive"
+;  V60 cse1         [V60,T35] (  3,  1.50)     int  ->  rbp         "CSE - moderate"
+;  V61 cse2         [V61,T06] (  3, 12   )     int  ->  rsi         "CSE - aggressive"
+;  V62 cse3         [V62,T07] (  3, 12   )     int  ->  r15         "CSE - aggressive"
 ;  V63 cse4         [V63,T19] (  8,  4   )     ref  ->  rdx         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 72
@@ -98,7 +98,7 @@ G_M32100_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=47 bbWeight=1 PerfScore 14.33
 G_M32100_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref
        cmp      gword ptr [rsi+0x08], 0
-       je       G_M32100_IG25
+       je       G_M32100_IG23
                        ;; size=11 bbWeight=1 PerfScore 4.00
 G_M32100_IG03:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
        cmp      gword ptr [rsi+0x10], 0
@@ -125,7 +125,7 @@ G_M32100_IG04:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx
        call     [rax+0x18]<unknown method>
        ; gcrRegs -[rcx rdi]
        ; gcr arg pop 0
-       mov      edi, eax
+       mov      ebp, eax
        jmp      SHORT G_M32100_IG06
                        ;; size=37 bbWeight=0.50 PerfScore 9.25
 G_M32100_IG05:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref
@@ -136,7 +136,7 @@ G_M32100_IG05:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx
        call     [rax+0x18]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       imul     edi, eax, 397
+       imul     ebp, eax, 397
        mov      rcx, gword ptr [rbx]
        ; gcrRegs +[rcx]
        mov      rax, qword ptr [rcx]
@@ -144,22 +144,22 @@ G_M32100_IG05:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx
        call     [rax+0x18]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       xor      edi, eax
+       xor      ebp, eax
                        ;; size=35 bbWeight=0.50 PerfScore 10.12
 G_M32100_IG06:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rbp, gword ptr [rsi+0x08]
-       ; gcrRegs +[rbp]
-       mov      r14d, dword ptr [rbp+0x08]
+       mov      rdi, gword ptr [rsi+0x08]
+       ; gcrRegs +[rdi]
+       mov      r14d, dword ptr [rdi+0x08]
        mov      ecx, r14d
        mov      r15, qword ptr [rsi+0x30]
-       mov      r13d, edi
+       mov      r13d, ebp
        imul     r15, r13
        shr      r15, 32
        inc      r15
        mov      r13d, ecx
        imul     r15, r13
        shr      r15, 32
-       mov      eax, edi
+       mov      eax, ebp
        xor      edx, edx
        div      edx:eax, ecx
        cmp      edx, r15d
@@ -172,47 +172,49 @@ G_M32100_IG06:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
                        ;; size=70 bbWeight=0.50 PerfScore 21.12
-G_M32100_IG07:        ; bbWeight=0.50, gcrefRegs=0060 {rbp rsi}, byrefRegs=0008 {rbx}, byref
+G_M32100_IG07:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref
        cmp      r15d, r14d
-       jae      G_M32100_IG26
+       jae      G_M32100_IG24
        mov      ecx, r15d
-       mov      ebp, dword ptr [rbp+4*rcx+0x10]
-       ; gcrRegs -[rbp]
-       mov      rsi, gword ptr [rsi+0x10]
-       xor      r14d, r14d
-       dec      ebp
+       mov      edi, dword ptr [rdi+4*rcx+0x10]
+       ; gcrRegs -[rdi]
+       mov      r14, gword ptr [rsi+0x10]
+       ; gcrRegs +[r14]
+       xor      r15d, r15d
+       dec      edi
                        ;; size=25 bbWeight=0.50 PerfScore 3.00
-G_M32100_IG08:        ; bbWeight=4, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
-       mov      r15d, dword ptr [rsi+0x08]
-       cmp      r15d, ebp
-       jbe      G_M32100_IG25
-       mov      ecx, ebp
+G_M32100_IG08:        ; bbWeight=4, gcrefRegs=4000 {r14}, byrefRegs=0008 {rbx}, byref, isz
+       ; gcrRegs -[rsi]
+       mov      esi, dword ptr [r14+0x08]
+       cmp      esi, edi
+       jbe      G_M32100_IG23
+       mov      ecx, edi
        lea      rcx, [rcx+4*rcx]
-       lea      r13, bword ptr [rsi+8*rcx+0x10]
+       lea      r13, bword ptr [r14+8*rcx+0x10]
        ; byrRegs +[r13]
-       cmp      dword ptr [r13], edi
+       cmp      dword ptr [r13], ebp
        jne      SHORT G_M32100_IG12
-                       ;; size=30 bbWeight=4 PerfScore 36.00
-G_M32100_IG09:        ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=2008 {rbx r13}, byref, isz
-       mov      rbp, gword ptr [r13+0x08]
-       ; gcrRegs +[rbp]
+                       ;; size=29 bbWeight=4 PerfScore 36.00
+G_M32100_IG09:        ; bbWeight=2, gcrefRegs=4000 {r14}, byrefRegs=2008 {rbx r13}, byref, isz
+       mov      rdi, gword ptr [r13+0x08]
+       ; gcrRegs +[rdi]
        mov      rcx, gword ptr [r13+0x10]
        ; gcrRegs +[rcx]
        mov      r12, gword ptr [rbx]
        ; gcrRegs +[r12]
        mov      rdx, gword ptr [rbx+0x08]
        ; gcrRegs +[rdx]
-       test     rbp, rbp
+       test     rdi, rdi
        jne      SHORT G_M32100_IG10
        test     r12, r12
        jne      SHORT G_M32100_IG12
        call     [System.Type:op_Equality(System.Type,System.Type):ubyte]
-       ; gcrRegs -[rcx rdx rbp r12]
+       ; gcrRegs -[rcx rdx rdi r12]
        ; gcr arg pop 0
        jmp      SHORT G_M32100_IG11
                        ;; size=33 bbWeight=2 PerfScore 31.00
-G_M32100_IG10:        ; bbWeight=2, gcrefRegs=1066 {rcx rdx rbp rsi r12}, byrefRegs=2008 {rbx r13}, byref, isz
-       ; gcrRegs +[rcx rdx rbp r12]
+G_M32100_IG10:        ; bbWeight=2, gcrefRegs=5086 {rcx rdx rdi r12 r14}, byrefRegs=2008 {rbx r13}, byref, isz
+       ; gcrRegs +[rcx rdx rdi r12]
        test     r12, r12
        je       SHORT G_M32100_IG12
        call     [System.Type:op_Equality(System.Type,System.Type):ubyte]
@@ -220,29 +222,29 @@ G_M32100_IG10:        ; bbWeight=2, gcrefRegs=1066 {rcx rdx rbp rsi r12}, byrefR
        ; gcr arg pop 0
        test     eax, eax
        je       SHORT G_M32100_IG12
-       mov      rcx, rbp
+       mov      rcx, rdi
        ; gcrRegs +[rcx]
        mov      rdx, r12
        ; gcrRegs +[rdx]
-       mov      rax, qword ptr [rbp]
+       mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x10]<unknown method>
-       ; gcrRegs -[rcx rdx rbp r12]
+       ; gcrRegs -[rcx rdx rdi r12]
        ; gcr arg pop 0
-                       ;; size=32 bbWeight=2 PerfScore 26.00
-G_M32100_IG11:        ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=2008 {rbx r13}, byref
+                       ;; size=31 bbWeight=2 PerfScore 26.00
+G_M32100_IG11:        ; bbWeight=2, gcrefRegs=4000 {r14}, byrefRegs=2008 {rbx r13}, byref
        test     eax, eax
-       jne      G_M32100_IG23
+       jne      G_M32100_IG21
                        ;; size=8 bbWeight=2 PerfScore 2.50
-G_M32100_IG12:        ; bbWeight=4, gcrefRegs=0040 {rsi}, byrefRegs=2008 {rbx r13}, byref, isz
-       mov      ebp, dword ptr [r13+0x04]
-       inc      r14d
-       cmp      r15d, r14d
-       jb       G_M32100_IG27
+G_M32100_IG12:        ; bbWeight=4, gcrefRegs=4000 {r14}, byrefRegs=2008 {rbx r13}, byref, isz
+       mov      edi, dword ptr [r13+0x04]
+       inc      r15d
+       cmp      esi, r15d
+       jb       G_M32100_IG25
        jmp      SHORT G_M32100_IG08
                        ;; size=18 bbWeight=4 PerfScore 22.00
 G_M32100_IG13:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, nogc
-       ; gcrRegs +[rdi]
+       ; gcrRegs -[r14] +[rsi rdi]
        ; byrRegs -[r13]
        vmovdqu  xmm0, xmmword ptr [rbx]
        vmovdqu  xmmword ptr [rsp+0x38], xmm0
@@ -255,23 +257,23 @@ G_M32100_IG14:        ; bbWeight=0.50, isz, extend
        call     [r11]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      ebp, eax
+       mov      r12d, eax
        mov      r13, gword ptr [rsi+0x08]
        ; gcrRegs +[r13]
-       mov      r14d, dword ptr [r13+0x08]
-       mov      ecx, r14d
-       mov      r15, qword ptr [rsi+0x30]
-       mov      r12d, ebp
-       imul     r15, r12
-       shr      r15, 32
-       inc      r15
...

-28 (-2.96%) : 6789.dasm - System.Collections.Generic.Dictionary`2[ushort,System.Canon]:TryInsert(ushort,System.Canon,ubyte):ubyte:this (FullOpts)

@@ -18,9 +18,9 @@
 ;  V07 loc3         [V07,T01] (  7, 25   )     int  ->  [rsp+0x44] 
 ;  V08 loc4         [V08,T18] (  5,  3.50)   byref  ->  [rsp+0x30] 
 ;  V09 loc5         [V09,T00] (  9, 26   )     int  ->  [rsp+0x40] 
-;  V10 loc6         [V10,T19] (  6,  3   )     int  ->  r13        
+;  V10 loc6         [V10,T19] (  6,  3   )     int  ->  rbp        
 ;  V11 loc7         [V11,T24] (  5,  2.50)   byref  ->  rcx         single-def
-;  V12 loc8         [V12,T30] (  3,  1.50)     int  ->  r13        
+;  V12 loc8         [V12,T30] (  3,  1.50)     int  ->  rbp        
 ;  V13 OutArgs      [V13    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref   
 ;  V15 tmp2         [V15,T26] (  3,  2   )     int  ->  r12        
@@ -46,8 +46,8 @@
 ;* V35 tmp22        [V35    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
 ;  V36 tmp23        [V36,T29] (  3,  1.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V37 tmp24        [V37,T21] (  3,  3   )     int  ->  rcx         "Inlining Arg"
-;  V38 tmp25        [V38,T27] (  2,  2   )    long  ->  r15         "Inlining Arg"
-;  V39 tmp26        [V39,T25] (  4,  2   )     int  ->  r15         "Inline stloc first use temp"
+;  V38 tmp25        [V38,T27] (  2,  2   )    long  ->  r13         "Inlining Arg"
+;  V39 tmp26        [V39,T25] (  4,  2   )     int  ->  r13         "Inline stloc first use temp"
 ;* V40 tmp27        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V41 tmp28        [V41    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V42 tmp29        [V42    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -56,13 +56,13 @@
 ;  V45 tmp32        [V45,T23] (  3,  3   )     int  ->  rcx         "index expr"
 ;  V46 cse0         [V46,T05] (  4, 14   )   byref  ->  rcx         "CSE - aggressive"
 ;  V47 cse1         [V47,T06] (  4, 14   )   byref  ->  [rsp+0x20]  spill-single-def "CSE - aggressive"
-;  V48 cse2         [V48,T31] (  3,  1.50)     int  ->  rbp         "CSE - moderate"
+;  V48 cse2         [V48,T31] (  3,  1.50)     int  ->  r15         "CSE - moderate"
 ;  V49 cse3         [V49,T32] (  3,  1.50)     int  ->  rcx         "CSE - moderate"
 ;  V50 cse4         [V50,T33] (  3,  1.50)     int  ->  rcx         "CSE - moderate"
 ;  V51 cse5         [V51,T02] ( 10, 23   )     int  ->  [rsp+0x38]  hoist multi-def "CSE - aggressive"
 ;  V52 cse6         [V52,T09] (  8,  6.50)     int  ->  r13         multi-def "CSE - moderate"
 ;  V53 cse7         [V53,T08] ( 13,  6.50)     ref  ->  rdx         multi-def "CSE - aggressive"
-;  V54 cse8         [V54,T20] (  6,  3   )     int  ->   r9         multi-def "CSE - moderate"
+;  V54 cse8         [V54,T20] (  6,  3   )     int  ->  rbx         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 72
 
@@ -189,6 +189,8 @@ G_M24144_IG13:        ; bbWeight=1, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=
        mov      ecx, r9d
        lea      rax, bword ptr [r10+4*rcx+0x10]
        ; byrRegs +[rax]
+       mov      bword ptr [rsp+0x30], rax
+       ; GC ptr vars +{V08}
        mov      r10d, dword ptr [rax]
        ; gcrRegs -[r10]
        dec      r10d
@@ -196,8 +198,9 @@ G_M24144_IG13:        ; bbWeight=1, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=
        jne      G_M24144_IG22
        mov      r15d, dword ptr [r14+0x08]
        ; gcrRegs -[r15]
-                       ;; size=47 bbWeight=1 PerfScore 12.75
-G_M24144_IG14:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0001 {rax}, gcvars, byref, isz
+                       ;; size=52 bbWeight=1 PerfScore 13.75
+G_M24144_IG14:        ; bbWeight=4, gcVars=0000000000040000 {V08}, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; byrRegs -[rax]
        ; GC ptr vars -{V22}
        cmp      r15d, r10d
        jbe      G_M24144_IG27
@@ -208,27 +211,28 @@ G_M24144_IG14:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=4088 {
        cmp      dword ptr [rcx+0x08], r12d
        jne      SHORT G_M24144_IG16
                        ;; size=27 bbWeight=4 PerfScore 28.00
-G_M24144_IG15:        ; bbWeight=2, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0003 {rax rcx}, byref, isz
+G_M24144_IG15:        ; bbWeight=2, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0002 {rcx}, byref, isz
        movzx    rdx, word  ptr [rcx+0x10]
        cmp      edx, r13d
        je       SHORT G_M24144_IG17
                        ;; size=9 bbWeight=2 PerfScore 6.50
-G_M24144_IG16:        ; bbWeight=4, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0003 {rax rcx}, byref, isz
+G_M24144_IG16:        ; bbWeight=4, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0002 {rcx}, byref, isz
        mov      r10d, dword ptr [rcx+0x0C]
        mov      r8d, dword ptr [rsp+0x44]
        inc      r8d
-       cmp      r15d, r8d
        mov      dword ptr [rsp+0x44], r8d
+       cmp      r15d, r8d
        jb       G_M24144_IG36
        jmp      SHORT G_M24144_IG14
                        ;; size=28 bbWeight=4 PerfScore 30.00
-G_M24144_IG17:        ; bbWeight=0.50, gcrefRegs=4080 {rdi r14}, byrefRegs=0000 {}, byref, isz
+G_M24144_IG17:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4080 {rdi r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rbx]
-       ; byrRegs -[rax rcx]
-       movzx    r9, bpl
-       cmp      r9d, 1
+       ; byrRegs -[rcx]
+       ; GC ptr vars -{V08}
+       movzx    rbx, bpl
+       cmp      ebx, 1
        jne      SHORT G_M24144_IG19
-                       ;; size=10 bbWeight=0.50 PerfScore 0.75
+                       ;; size=9 bbWeight=0.50 PerfScore 0.75
 G_M24144_IG18:        ; bbWeight=0.50, gcrefRegs=4080 {rdi r14}, byrefRegs=0000 {}, byref
        cmp      r10d, r15d
        jae      G_M24144_IG35
@@ -244,9 +248,9 @@ G_M24144_IG18:        ; bbWeight=0.50, gcrefRegs=4080 {rdi r14}, byrefRegs=0000
        jmp      G_M24144_IG33
                        ;; size=34 bbWeight=0.50 PerfScore 3.12
 G_M24144_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       cmp      r9d, 2
+       cmp      ebx, 2
        je       G_M24144_IG37
-                       ;; size=10 bbWeight=0.50 PerfScore 0.62
+                       ;; size=9 bbWeight=0.50 PerfScore 0.62
 G_M24144_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
@@ -262,81 +266,74 @@ G_M24144_IG21:        ; bbWeight=0.50, epilog, nogc, extend
        pop      r15
        ret      
                        ;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M24144_IG22:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0001 {rax}, gcvars, byref, isz
+G_M24144_IG22:        ; bbWeight=4, gcVars=0000000000040000 {V08}, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx rdi r14-r15]
-       ; byrRegs +[rax]
+       ; GC ptr vars +{V08}
        mov      edx, dword ptr [r14+0x08]
-       mov      r11d, edx
-       mov      dword ptr [rsp+0x38], r11d
-       cmp      r11d, r10d
+       mov      r9d, edx
+       mov      dword ptr [rsp+0x38], r9d
+       cmp      r9d, r10d
        jbe      SHORT G_M24144_IG25
        mov      dword ptr [rsp+0x40], r10d
        mov      edx, r10d
        lea      rdx, [rdx+2*rdx]
-       lea      r9, bword ptr [r14+8*rdx+0x10]
-       ; byrRegs +[r9]
-       mov      bword ptr [rsp+0x20], r9
+       lea      r11, bword ptr [r14+8*rdx+0x10]
+       ; byrRegs +[r11]
+       mov      bword ptr [rsp+0x20], r11
        ; GC ptr vars +{V47}
-       cmp      dword ptr [r9+0x08], r12d
+       cmp      dword ptr [r11+0x08], r12d
        jne      SHORT G_M24144_IG24
                        ;; size=45 bbWeight=4 PerfScore 49.00
-G_M24144_IG23:        ; bbWeight=2, gcVars=0000000000000040 {V47}, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0201 {rax r9}, gcvars, byref, isz
-       mov      bword ptr [rsp+0x30], rax
-       ; GC ptr vars +{V08}
-       movzx    rdx, word  ptr [r9+0x10]
+G_M24144_IG23:        ; bbWeight=2, gcVars=0000000000040040 {V08 V47}, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0800 {r11}, gcvars, byref, isz
+       movzx    rdx, word  ptr [r11+0x10]
        mov      r8d, r13d
        mov      rcx, r15
        ; gcrRegs +[rcx]
        mov      r11, 0xD1FFAB1E      ; code for <unknown method>
+       ; byrRegs -[r11]
        call     [r11]<unknown method>
        ; gcrRegs -[rcx]
-       ; byrRegs -[rax r9]
        ; gcr arg pop 0
        test     eax, eax
-       mov      rax, bword ptr [rsp+0x30]
-       ; byrRegs +[rax]
-       mov      r9, bword ptr [rsp+0x20]
-       ; byrRegs +[r9]
+       mov      r11, bword ptr [rsp+0x20]
+       ; byrRegs +[r11]
        jne      SHORT G_M24144_IG26
-                       ;; size=43 bbWeight=2 PerfScore 20.00
-G_M24144_IG24:        ; bbWeight=4, gcVars=0000000000000040 {V47}, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0201 {rax r9}, gcvars, byref, isz
-       ; GC ptr vars -{V08}
-       mov      r10d, dword ptr [r9+0x0C]
-       mov      ecx, r10d
+                       ;; size=33 bbWeight=2 PerfScore 16.00
+G_M24144_IG24:        ; bbWeight=4, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0800 {r11}, byref, isz
+       mov      r10d, dword ptr [r11+0x0C]
        mov      r8d, dword ptr [rsp+0x44]
        inc      r8d
        cmp      dword ptr [rsp+0x38], r8d
-       mov      dword ptr [rsp+0x44], r8d
-       mov      r10d, ecx
        jb       G_M24144_IG36
+       mov      dword ptr [rsp+0x44], r8d
        jmp      SHORT G_M24144_IG22
-                       ;; size=36 bbWeight=4 PerfScore 39.00
-G_M24144_IG25:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0001 {rax}, gcvars, byref, isz
+                       ;; size=30 bbWeight=4 PerfScore 37.00
+G_M24144_IG25:        ; bbWeight=2, gcVars=0000000000040000 {V08}, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[r15]
-       ; byrRegs -[r9]
+       ; byrRegs -[r11]
        ; GC ptr vars -{V47}
        mov      r15d, dword ptr [rsp+0x38]
        jmp      SHORT G_M24144_IG27
                        ;; size=7 bbWeight=2 PerfScore 6.00
-G_M24144_IG26:        ; bbWeight=0.50, gcrefRegs=4080 {rdi r14}, byrefRegs=0000 {}, byref
+G_M24144_IG26:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4080 {rdi r14}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rbx]
-       ; byrRegs -[rax]
-       movzx    r9, bpl
-       cmp      r9d, 1
+       ; GC ptr vars -{V08}
+       movzx    rbx, bpl
+       cmp      ebx, 1
        mov      r10d, dword ptr [rsp+0x40]
        mov      r15d, dword ptr [rsp+0x38]
        je       G_M24144_IG18
-       cmp      r9d, 2
+       cmp      ebx, 2
        je       G_M24144_IG37
        jmp      G_M24144_IG20
-                       ;; size=39 bbWeight=0.50 PerfScore 3.38
-G_M24144_IG27:        ; bbWeight=0.50, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0001 {rax}, byref, isz
+                       ;; size=37 bbWeight=0.50 PerfScore 3.38
+G_M24144_IG27:        ; bbWeight=0.50, gcVars=0000000000040000 {V08}, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx]
-       ; byrRegs +[rax]
+       ; GC ptr vars +{V08}
        cmp      dword ptr [rbx+0x40], 0
        jle      SHORT G_M24144_IG29
        mov      ecx, dword ptr [rbx+0x3C]
-       mov      r13d, ecx
+       mov      ebp, ecx
        cmp      ecx, r15d
        jae      G_M24144_IG35
        lea      rcx, [rcx+2*rcx]
@@ -345,21 +342,15 @@ G_M24144_IG27:        ; bbWeight=0.50, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0
        add      ecx, -3
        cmp      ecx, -1
        jge      SHORT G_M24144_IG28
-       mov      bword ptr [rsp+0x30], rax
-       ; GC ptr vars +{V08}
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
-       ; byrRegs -[rax]
        ; gcr arg pop 0
-       mov      rax, bword ptr [rsp+0x30]
-       ; byrRegs +[rax]
-                       ;; size=76 bbWeight=0.50 PerfScore 8.62
-G_M24144_IG28:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0001 {rax}, gcvars, byref
-       ; GC ptr vars -{V08}
+                       ;; size=65 bbWeight=0.50 PerfScore 7.62
+G_M24144_IG28:        ; bbWeight=0.50, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref
        mov      ecx, dword ptr [rbx+0x3C]
        cmp      ecx, r15d
        jae      G_M24144_IG35
@@ -371,14 +362,14 @@ G_M24144_IG28:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=408
        dec      dword ptr [rbx+0x40]
        jmp      G_M24144_IG32
                        ;; size=37 bbWeight=0.50 PerfScore 6.12
-G_M24144_IG29:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0001 {rax}, byref, isz
...

+19 (+6.60%) : 25734.dasm - System.Collections.IterateForEach`1[System.Canon]:FrozenSet():System.Canon:this (FullOpts)

@@ -24,10 +24,10 @@
 ;  V13 tmp8         [V13,T02] (  3,  6   )     ref  ->  rax         single-def "argument with side effect"
 ;  V14 PSPSym       [V14,T10] (  1,  1   )    long  ->  [rbp-0x30]  do-not-enreg[V] "PSPSym"
 ;* V15 cse0         [V15,T11] (  0,  0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;  V16 cse1         [V16,T09] (  5,  2.20)    long  ->  rax         hoist multi-def "CSE - aggressive"
-;* V17 rat0         [V17,T05] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V16 cse1         [V16,T09] (  6,  3.20)    long  ->  rax         hoist multi-def "CSE - aggressive"
+;  V17 rat0         [V17,T05] (  2,  4   )    long  ->  rdx         "Spilling to split statement for tree"
 ;* V18 rat1         [V18,T08] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V19 rat2         [V19,T03] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V19 rat2         [V19,T03] (  2,  4   )    long  ->  rdx         "fgMakeTemp is creating a new local variable"
 ;  V20 rat3         [V20,T04] (  3,  5.60)    long  ->   r8         "fgMakeTemp is creating a new local variable"
 ;  V21 rat4         [V21,T12] (  3,  0   )    long  ->  rax         "Spilling to split statement for tree"
 ;  V22 rat5         [V22,T13] (  3,  0   )    long  ->   r8         "fgMakeTemp is creating a new local variable"
@@ -67,8 +67,14 @@ G_M17622_IG03:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      rcx, gword ptr [rbp+0x10]
        ; gcrRegs +[rcx]
        mov      rax, qword ptr [rcx]
+       mov      rdx, rax
+       mov      rdx, qword ptr [rdx+0x38]
+       mov      rdx, qword ptr [rdx]
+       mov      rdx, qword ptr [rdx+0x20]
+       test     rdx, rdx
+       jne      SHORT G_M17622_IG05
        jmp      SHORT G_M17622_IG05
-                       ;; size=9 bbWeight=1 PerfScore 5.00
+                       ;; size=28 bbWeight=1 PerfScore 12.50
 G_M17622_IG04:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx rbx]
        mov      edx, dword ptr [rbp-0x18]
@@ -192,7 +198,7 @@ G_M17622_IG19:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 288, prolog size 33, PerfScore 160.45, instruction count 88, allocated bytes for code 288 (MethodHash=5937bb29) for method System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
+; Total bytes of code 307, prolog size 33, PerfScore 167.95, instruction count 94, allocated bytes for code 307 (MethodHash=5937bb29) for method System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+15 (+7.08%) : 9124.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)

@@ -20,9 +20,9 @@
 ;  V09 tmp7         [V09,T05] (  4,  4   )     int  ->  r10         "Inline stloc first use temp"
 ;  V10 tmp8         [V10,T10] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
 ;  V11 PSPSym       [V11,T09] (  1,  1   )    long  ->  [rbp-0x10]  do-not-enreg[V] "PSPSym"
-;* V12 rat0         [V12,T04] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V12 rat0         [V12,T04] (  2,  4   )    long  ->  rax         "Spilling to split statement for tree"
 ;* V13 rat1         [V13,T08] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V14 rat2         [V14,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V14 rat2         [V14,T02] (  2,  4   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 48
 
@@ -39,8 +39,12 @@ G_M44994_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
                        ;; size=26 bbWeight=1 PerfScore 5.75
 G_M44994_IG02:        ; bbWeight=1, gcVars=0000000000000009 {V00 V01}, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rcx rdx]
-       cmp      dword ptr [rcx], ecx
-                       ;; size=2 bbWeight=1 PerfScore 3.00
+       mov      rax, qword ptr [rcx]
+       mov      rax, qword ptr [rax+0x38]
+       mov      rax, qword ptr [rax]
+       mov      rax, qword ptr [rax+0x68]
+       test     rax, rax
+                       ;; size=17 bbWeight=1 PerfScore 8.25
 G_M44994_IG03:        ; bbWeight=1, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref, isz
        mov      r8, rdx
        ; gcrRegs +[r8]
@@ -144,7 +148,7 @@ G_M44994_IG12:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 212, prolog size 26, PerfScore 42.38, instruction count 61, allocated bytes for code 212 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
+; Total bytes of code 227, prolog size 26, PerfScore 47.62, instruction count 65, allocated bytes for code 227 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+24 (+13.56%) : 24513.dasm - System.Collections.IterateForEach`1[System.Canon]:ImmutableStack():System.Canon:this (FullOpts)

@@ -8,10 +8,10 @@
 ; 0 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  3,  3   )     ref  ->  rbx         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+;  V00 this         [V00,T02] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
 ;  V01 loc0         [V01,T05] (  3,  4   )     ref  ->  rsi         ld-addr-op class-hnd <System.__Canon>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
-;  V03 loc2         [V03    ] ( 10, 31   )  struct (16) [rsp+0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]>
+;  V03 loc2         [V03    ] ( 10, 31   )  struct (16) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]>
 ;* V04 loc3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.__Canon>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
@@ -20,12 +20,12 @@
 ;* V09 tmp4         [V09,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
 ;  V10 tmp5         [V10,T01] (  2,  8   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
 ;  V11 tmp6         [V11,T00] (  2, 32   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
-;  V12 tmp7         [V12    ] (  2,  3   )     ref  ->  [rsp+0x28]  do-not-enreg[X] addr-exposed "field V03._originalStack (fldOffset=0x0)" P-DEP
-;  V13 tmp8         [V13    ] (  9, 29   )     ref  ->  [rsp+0x30]  do-not-enreg[X] addr-exposed "field V03._remainingStack (fldOffset=0x8)" P-DEP
+;  V12 tmp7         [V12    ] (  2,  3   )     ref  ->  [rsp+0x20]  do-not-enreg[X] addr-exposed "field V03._originalStack (fldOffset=0x0)" P-DEP
+;  V13 tmp8         [V13    ] (  9, 29   )     ref  ->  [rsp+0x28]  do-not-enreg[X] addr-exposed "field V03._remainingStack (fldOffset=0x8)" P-DEP
 ;* V14 cse0         [V14,T08] (  0,  0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;* V15 rat0         [V15,T04] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V15 rat0         [V15,T04] (  2,  4   )    long  ->  rcx         "Spilling to split statement for tree"
 ;* V16 rat1         [V16,T06] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V17 rat2         [V17,T03] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V17 rat2         [V17,T03] (  2,  4   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 56
 
@@ -34,28 +34,35 @@ G_M64146_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rbx
        sub      rsp, 56
        xor      eax, eax
+       mov      qword ptr [rsp+0x20], rax
        mov      qword ptr [rsp+0x28], rax
-       mov      qword ptr [rsp+0x30], rax
+       mov      qword ptr [rsp+0x30], rcx
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-                       ;; size=21 bbWeight=1 PerfScore 4.75
+                       ;; size=26 bbWeight=1 PerfScore 5.75
 G_M64146_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        xor      rsi, rsi
        ; gcrRegs +[rsi]
        mov      rcx, gword ptr [rbx+0xA0]
        ; gcrRegs +[rcx]
-       lea      rdx, [rsp+0x28]
+       lea      rdx, [rsp+0x20]
        cmp      dword ptr [rcx], ecx
        call     [System.Collections.Immutable.ImmutableStack`1[System.__Canon]:GetEnumerator():System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]:this]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
+       mov      rcx, qword ptr [rbx]
+       mov      rcx, qword ptr [rcx+0x38]
+       mov      rcx, qword ptr [rcx]
+       mov      rcx, qword ptr [rcx+0x20]
+       test     rcx, rcx
+       jne      SHORT G_M64146_IG04
        jmp      SHORT G_M64146_IG04
-                       ;; size=24 bbWeight=1 PerfScore 10.75
+                       ;; size=43 bbWeight=1 PerfScore 20.00
 G_M64146_IG03:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rsi]
-       cmp      gword ptr [rsp+0x30], 0
+       cmp      gword ptr [rsp+0x28], 0
        je       SHORT G_M64146_IG10
-       mov      rcx, gword ptr [rsp+0x30]
+       mov      rcx, gword ptr [rsp+0x28]
        ; gcrRegs +[rcx]
        cmp      dword ptr [rcx], ecx
        call     [System.Collections.Immutable.ImmutableStack`1[System.__Canon]:Peek():System.__Canon:this]
@@ -66,31 +73,31 @@ G_M64146_IG03:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
                        ;; size=24 bbWeight=2 PerfScore 20.50
 G_M64146_IG04:        ; bbWeight=8, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
-       cmp      gword ptr [rsp+0x30], 0
+       cmp      gword ptr [rsp+0x28], 0
        jne      SHORT G_M64146_IG06
                        ;; size=8 bbWeight=8 PerfScore 24.00
 G_M64146_IG05:        ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
-       mov      rcx, gword ptr [rsp+0x28]
+       mov      rcx, gword ptr [rsp+0x20]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rsp+0x30], rcx
+       mov      gword ptr [rsp+0x28], rcx
        jmp      SHORT G_M64146_IG07
                        ;; size=12 bbWeight=2 PerfScore 8.00
 G_M64146_IG06:        ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx]
-       mov      rcx, gword ptr [rsp+0x30]
+       mov      rcx, gword ptr [rsp+0x28]
        ; gcrRegs +[rcx]
        cmp      gword ptr [rcx+0x10], 0
        je       SHORT G_M64146_IG07
-       mov      rcx, gword ptr [rsp+0x30]
+       mov      rcx, gword ptr [rsp+0x28]
        cmp      dword ptr [rcx], ecx
        call     [System.Collections.Immutable.ImmutableStack`1[System.__Canon]:Pop():System.Collections.Immutable.ImmutableStack`1[System.__Canon]:this]
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rsp+0x30], rax
+       mov      gword ptr [rsp+0x28], rax
                        ;; size=30 bbWeight=2 PerfScore 26.00
 G_M64146_IG07:        ; bbWeight=8, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
-       mov      rcx, gword ptr [rsp+0x30]
+       mov      rcx, gword ptr [rsp+0x28]
        ; gcrRegs +[rcx]
        cmp      gword ptr [rcx+0x10], 0
        jne      SHORT G_M64146_IG03
@@ -127,7 +134,7 @@ G_M64146_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {
        int3     
                        ;; size=36 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 177, prolog size 18, PerfScore 136.50, instruction count 47, allocated bytes for code 177 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
+; Total bytes of code 201, prolog size 23, PerfScore 146.75, instruction count 54, allocated bytes for code 201 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

benchmarks.run_pgo.windows.x64.checked.mch

-4 (-14.29%) : 69017.dasm - Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)

@@ -21,27 +21,23 @@ G_M32701_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
        ; byrRegs +[rcx]
        movzx    rax, byte  ptr [rcx+0x08]
        cmp      eax, 20
-       jne      SHORT G_M32701_IG04
+       je       SHORT G_M32701_IG05
                        ;; size=9 bbWeight=1 PerfScore 3.25
-G_M32701_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M32701_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rcx]
-       mov      eax, 1
-       jmp      SHORT G_M32701_IG05
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M32701_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        cmp      eax, 29
-       je       SHORT G_M32701_IG03
-       jmp      SHORT G_M32701_IG06
-                       ;; size=7 bbWeight=0.50 PerfScore 1.62
-G_M32701_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+       je       SHORT G_M32701_IG05
+       xor      eax, eax
+                       ;; size=7 bbWeight=0.50 PerfScore 0.75
+G_M32701_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        ret      
                        ;; size=1 bbWeight=1 PerfScore 1.00
-G_M32701_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-       xor      eax, eax
-       jmp      SHORT G_M32701_IG05
-                       ;; size=4 bbWeight=0.50 PerfScore 1.12
+G_M32701_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       mov      eax, 1
+       jmp      SHORT G_M32701_IG04
+                       ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 28, prolog size 0, PerfScore 7.00, instruction count 11, allocated bytes for code 28 (MethodHash=ed408042) for method Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
+; Total bytes of code 24, prolog size 0, PerfScore 5.00, instruction count 9, allocated bytes for code 24 (MethodHash=ed408042) for method Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:

-4 (-11.11%) : 7634.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)

@@ -17,50 +17,40 @@
 ;
 ; Lcl frame size = 0
 
-G_M57887_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M57887_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
                        ;; size=0 bbWeight=1 PerfScore 0.00
 G_M57887_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx]
        mov      rax, gword ptr [rcx+0x18]
        ; gcrRegs +[rax]
        test     rax, rax
+       je       SHORT G_M57887_IG03
+       test     dl, dl
        jne      SHORT G_M57887_IG05
-                       ;; size=9 bbWeight=1 PerfScore 3.25
+       mov      eax, dword ptr [rax+0x5C]
+       ; gcrRegs -[rax]
+       and      eax, 7
+       cmp      eax, 6
+       je       SHORT G_M57887_IG05
+                       ;; size=24 bbWeight=1 PerfScore 8.00
 G_M57887_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax rcx]
+       ; gcrRegs -[rcx]
        xor      rax, rax
        ; gcrRegs +[rax]
                        ;; size=2 bbWeight=0 PerfScore 0.00
 G_M57887_IG04:        ; bbWeight=0, epilog, nogc, extend
        ret      
                        ;; size=1 bbWeight=0 PerfScore 0.00
-G_M57887_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rcx]
-       test     dl, dl
-       je       SHORT G_M57887_IG07
-                       ;; size=4 bbWeight=1 PerfScore 1.25
-G_M57887_IG06:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
-       jmp      SHORT G_M57887_IG08
-                       ;; size=2 bbWeight=0 PerfScore 0.00
-G_M57887_IG07:        ; bbWeight=1, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rax]
-       mov      eax, dword ptr [rax+0x5C]
-       ; gcrRegs -[rax]
-       and      eax, 7
-       cmp      eax, 6
-       je       SHORT G_M57887_IG08
-       jmp      SHORT G_M57887_IG03
-                       ;; size=13 bbWeight=1 PerfScore 5.50
-G_M57887_IG08:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
+G_M57887_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax] +[rcx]
        mov      rax, gword ptr [rcx+0x18]
        ; gcrRegs +[rax]
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M57887_IG09:        ; bbWeight=0, epilog, nogc, extend
+G_M57887_IG06:        ; bbWeight=0, epilog, nogc, extend
        ret      
                        ;; size=1 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 36, prolog size 0, PerfScore 10.00, instruction count 15, allocated bytes for code 36 (MethodHash=f3d51de0) for method System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
+; Total bytes of code 32, prolog size 0, PerfScore 8.00, instruction count 13, allocated bytes for code 32 (MethodHash=f3d51de0) for method System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
 ; ============================================================
 
 Unwind Info:

-2 (-9.09%) : 75842.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)

@@ -32,15 +32,14 @@ G_M23529_IG04:        ; bbWeight=1, epilog, nogc, extend
 G_M23529_IG05:        ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax]
        cmp      qword ptr [rdx], rcx
-       jne      SHORT G_M23529_IG06
-       jmp      SHORT G_M23529_IG03
-                       ;; size=7 bbWeight=0.33 PerfScore 2.00
+       je       SHORT G_M23529_IG03
+                       ;; size=5 bbWeight=0.33 PerfScore 1.33
 G_M23529_IG06:        ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, epilog, nogc
        tail.jmp [System.Runtime.CompilerServices.CastHelpers:ChkCastClassSpecial(ulong,System.Object):System.Object]
        ; gcr arg pop 0
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 22, prolog size 0, PerfScore 4.50, instruction count 8, allocated bytes for code 22 (MethodHash=3733a416) for method System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
+; Total bytes of code 20, prolog size 0, PerfScore 3.83, instruction count 7, allocated bytes for code 20 (MethodHash=3733a416) for method System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
 ; ============================================================
 
 Unwind Info:

+22 (+27.50%) : 8592.dasm - System.Diagnostics.Stopwatch:QueryPerformanceCounter():long (Tier1)

@@ -8,7 +8,7 @@
 ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00    ] (  2,  2   )    long  ->  [rbp-0x08]  do-not-enreg[X] addr-exposed ld-addr-op
+;  V00 loc0         [V00    ] (  3,  2   )    long  ->  [rbp-0x08]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V01 loc1         [V01    ] (  0,  0   )     int  ->  zero-ref   
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -23,38 +23,44 @@ G_M20471_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=10 bbWeight=1 PerfScore 1.75
 G_M20471_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [(reloc)], 0
-       je       SHORT G_M20471_IG04
-                       ;; size=9 bbWeight=1 PerfScore 4.00
-G_M20471_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       call     CORINFO_HELP_POLL_GC
-                       ;; size=5 bbWeight=0 PerfScore 0.00
-G_M20471_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       jne      SHORT G_M20471_IG06
        lea      rcx, [rbp-0x08]
        mov      rax, 0xD1FFAB1E      ; function address
-                       ;; size=14 bbWeight=1 PerfScore 0.75
-G_M20471_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+                       ;; size=23 bbWeight=1 PerfScore 4.75
+G_M20471_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        call     rax ; <unknown method>
        test     eax, eax
-       jne      SHORT G_M20471_IG07
+       je       SHORT G_M20471_IG08
                        ;; size=6 bbWeight=1 PerfScore 4.25
-G_M20471_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M20471_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      rax, qword ptr [rbp-0x08]
+                       ;; size=4 bbWeight=1 PerfScore 1.00
+G_M20471_IG05:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 48
+       pop      rbp
+       ret      
+                       ;; size=6 bbWeight=1 PerfScore 1.75
+G_M20471_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       call     CORINFO_HELP_POLL_GC
+       lea      rcx, [rbp-0x08]
+       mov      rax, 0xD1FFAB1E      ; function address
+                       ;; size=19 bbWeight=0 PerfScore 0.00
+G_M20471_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       call     rax ; <unknown method>
+       test     eax, eax
+       jne      SHORT G_M20471_IG04
+                       ;; size=6 bbWeight=0 PerfScore 0.00
+G_M20471_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
-                       ;; size=26 bbWeight=0 PerfScore 0.00
-G_M20471_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rax, qword ptr [rbp-0x08]
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M20471_IG08:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 48
-       pop      rbp
-       ret      
-                       ;; size=6 bbWeight=1 PerfScore 1.75
+       jmp      SHORT G_M20471_IG04
+                       ;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 80, prolog size 10, PerfScore 13.50, instruction count 18, allocated bytes for code 80 (MethodHash=15e9b008) for method System.Diagnostics.Stopwatch:QueryPerformanceCounter():long (Tier1)
+; Total bytes of code 102, prolog size 10, PerfScore 13.50, instruction count 24, allocated bytes for code 102 (MethodHash=15e9b008) for method System.Diagnostics.Stopwatch:QueryPerformanceCounter():long (Tier1)
 ; ============================================================
 
 Unwind Info:

+25 (+34.72%) : 67610.dasm - System.Collections.Immutable.ImmutableArray1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray1+Builder[System.__Canon]):this (Tier1)

@@ -9,13 +9,13 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
-;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->  rdx         class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
+;  V01 arg1         [V01,T00] (  6,  5   )     ref  ->  rdx         class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V04 tmp2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.__Canon[]>
-;* V05 rat0         [V05,T03] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V05 rat0         [V05,T03] (  2,  4   )    long  ->   r8         "Spilling to split statement for tree"
 ;* V06 rat1         [V06,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V07 rat2         [V07,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V07 rat2         [V07,T02] (  2,  4   )    long  ->   r8         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 48
 
@@ -28,11 +28,35 @@ G_M61315_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=13 bbWeight=1 PerfScore 2.50
 G_M61315_IG02:        ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rdx]
-       cmp      dword ptr [rbx], ebx
+       mov      r8, qword ptr [rbx]
+       mov      r8, qword ptr [r8+0x38]
+       mov      r8, qword ptr [r8]
+       mov      r8, qword ptr [r8+0x88]
+       test     r8, r8
+       je       SHORT G_M61315_IG06
+                       ;; size=22 bbWeight=1 PerfScore 9.25
+G_M61315_IG03:        ; bbWeight=0.80, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
+       test     rdx, rdx
+       je       SHORT G_M61315_IG07
+                       ;; size=5 bbWeight=0.80 PerfScore 1.00
+G_M61315_IG04:        ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref
+       mov      r8d, dword ptr [rdx+0x10]
+       mov      rdx, gword ptr [rdx+0x08]
+       mov      rcx, rbx
+       ; gcrRegs +[rcx]
+                       ;; size=11 bbWeight=1 PerfScore 4.25
+G_M61315_IG05:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 48
+       pop      rbx
+       tail.jmp [System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.__Canon[],int):this]
+       ; gcr arg pop 0
+                       ;; size=11 bbWeight=1 PerfScore 2.75
+G_M61315_IG06:        ; bbWeight=0.20, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rcx]
        test     rdx, rdx
        jne      SHORT G_M61315_IG04
-                       ;; size=7 bbWeight=1 PerfScore 4.25
-G_M61315_IG03:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+                       ;; size=5 bbWeight=0.20 PerfScore 0.25
+G_M61315_IG07:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        mov      ecx, 959
        mov      rdx, 0xD1FFAB1E
@@ -46,21 +70,8 @@ G_M61315_IG03:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcr arg pop 0
        int3     
                        ;; size=30 bbWeight=0 PerfScore 0.00
-G_M61315_IG04:        ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rdx]
-       mov      r8d, dword ptr [rdx+0x10]
-       mov      rdx, gword ptr [rdx+0x08]
-       mov      rcx, rbx
-       ; gcrRegs +[rcx]
-                       ;; size=11 bbWeight=1 PerfScore 4.25
-G_M61315_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 48
-       pop      rbx
-       tail.jmp [System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.__Canon[],int):this]
-       ; gcr arg pop 0
-                       ;; size=11 bbWeight=1 PerfScore 2.75
 
-; Total bytes of code 72, prolog size 13, PerfScore 13.75, instruction count 19, allocated bytes for code 72 (MethodHash=e419107c) for method System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
+; Total bytes of code 97, prolog size 13, PerfScore 20.00, instruction count 26, allocated bytes for code 97 (MethodHash=e419107c) for method System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
 ; ============================================================
 
 Unwind Info:

+25 (+37.31%) : 67641.dasm - System.Collections.Immutable.ImmutableHashSet1[System.__Canon]:Union(System.Collections.Generic.IEnumerable1[System.Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.Canon]:this (Tier1)

@@ -8,13 +8,13 @@
 ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]>
-;  V01 arg1         [V01,T01] (  4,  4   )     ref  ->  rdx         class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.__Canon]>
+;  V00 this         [V00,T01] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]>
+;  V01 arg1         [V01,T00] (  5,  4   )     ref  ->  rdx         class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.__Canon]>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V04 rat0         [V04,T03] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V04 rat0         [V04,T03] (  2,  4   )    long  ->  rcx         "Spilling to split statement for tree"
 ;* V05 rat1         [V05,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V06 rat2         [V06,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V06 rat2         [V06,T02] (  2,  4   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 48
 
@@ -27,11 +27,34 @@ G_M52093_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=13 bbWeight=1 PerfScore 2.50
 G_M52093_IG02:        ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rdx]
-       cmp      dword ptr [rbx], ebx
+       mov      rcx, qword ptr [rbx]
+       mov      rcx, qword ptr [rcx+0x38]
+       mov      rcx, qword ptr [rcx]
+       mov      rcx, qword ptr [rcx+0x80]
+       test     rcx, rcx
+       je       SHORT G_M52093_IG06
+                       ;; size=22 bbWeight=1 PerfScore 9.25
+G_M52093_IG03:        ; bbWeight=0.80, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
+       test     rdx, rdx
+       je       SHORT G_M52093_IG07
+                       ;; size=5 bbWeight=0.80 PerfScore 1.00
+G_M52093_IG04:        ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref
+       mov      rcx, rbx
+       ; gcrRegs +[rcx]
+       xor      r8d, r8d
+                       ;; size=6 bbWeight=1 PerfScore 0.50
+G_M52093_IG05:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 48
+       pop      rbx
+       tail.jmp [System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon],ubyte):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this]
+       ; gcr arg pop 0
+                       ;; size=11 bbWeight=1 PerfScore 2.75
+G_M52093_IG06:        ; bbWeight=0.20, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rcx]
        test     rdx, rdx
        jne      SHORT G_M52093_IG04
-                       ;; size=7 bbWeight=1 PerfScore 4.25
-G_M52093_IG03:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+                       ;; size=5 bbWeight=0.20 PerfScore 0.25
+G_M52093_IG07:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        mov      ecx, 0x48B
        mov      rdx, 0xD1FFAB1E
@@ -45,20 +68,8 @@ G_M52093_IG03:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcr arg pop 0
        int3     
                        ;; size=30 bbWeight=0 PerfScore 0.00
-G_M52093_IG04:        ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rdx]
-       mov      rcx, rbx
-       ; gcrRegs +[rcx]
-       xor      r8d, r8d
-                       ;; size=6 bbWeight=1 PerfScore 0.50
-G_M52093_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 48
-       pop      rbx
-       tail.jmp [System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon],ubyte):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this]
-       ; gcr arg pop 0
-                       ;; size=11 bbWeight=1 PerfScore 2.75
 
-; Total bytes of code 67, prolog size 13, PerfScore 10.00, instruction count 18, allocated bytes for code 67 (MethodHash=22173482) for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
+; Total bytes of code 92, prolog size 13, PerfScore 16.25, instruction count 25, allocated bytes for code 92 (MethodHash=22173482) for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
 ; ============================================================
 
 Unwind Info:

benchmarks.run_tiered.windows.x64.checked.mch

-47 (-4.26%) : 41509.dasm - System.Collections.Generic.Dictionary2[System.ReadOnlyMemory1[ushort],System.Collections.Immutable.ImmutableArray1[System.__Canon]]:TryInsert(System.ReadOnlyMemory1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon],ubyte):ubyte:this (Tier1)

@@ -12,24 +12,24 @@
 ;  V01 arg1         [V01,T01] ( 13, 26   )   byref  ->  rsi         ld-addr-op single-def
 ;* V02 arg2         [V02    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Collections.Immutable.ImmutableArray`1[System.__Canon]>
 ;  V03 arg3         [V03,T13] (  4,  3   )   ubyte  ->  [rsp+0xC8]  single-def
-;  V04 loc0         [V04,T00] ( 16, 30   )     ref  ->  r14         class-hnd <<unknown class>>
-;  V05 loc1         [V05,T10] (  5,  5.50)     ref  ->  r15         class-hnd single-def <<unknown class>>
-;  V06 loc2         [V06,T09] (  8, 12.50)     int  ->  r13        
-;  V07 loc3         [V07,T03] (  7, 25   )     int  ->  r12        
+;  V04 loc0         [V04,T00] ( 16, 30   )     ref  ->  r15         class-hnd <<unknown class>>
+;  V05 loc1         [V05,T10] (  5,  5.50)     ref  ->  r13         class-hnd single-def <<unknown class>>
+;  V06 loc2         [V06,T09] (  8, 12.50)     int  ->  r12        
+;  V07 loc3         [V07,T03] (  7, 25   )     int  ->  rdi        
 ;  V08 loc4         [V08,T25] (  5,  3.50)   byref  ->  [rsp+0x28] 
 ;  V09 loc5         [V09,T02] (  9, 26   )     int  ->  [rsp+0x64] 
-;  V10 loc6         [V10,T26] (  6,  3   )     int  ->  r12        
-;  V11 loc7         [V11,T31] (  5,  2.50)   byref  ->  r14         single-def
-;  V12 loc8         [V12,T39] (  3,  1.50)     int  ->  r12        
+;  V10 loc6         [V10,T26] (  6,  3   )     int  ->  rbp        
+;  V11 loc7         [V11,T31] (  5,  2.50)   byref  ->  r15         single-def
+;  V12 loc8         [V12,T39] (  3,  1.50)     int  ->  rbp        
 ;  V13 OutArgs      [V13    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref   
-;  V15 tmp2         [V15,T33] (  3,  2   )     int  ->  r13        
+;  V15 tmp2         [V15,T33] (  3,  2   )     int  ->  r12        
 ;* V16 tmp3         [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp4         [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V18 tmp5         [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp6         [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp7         [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V21 tmp8         [V21,T40] (  3,  1.50)     int  ->  r13         "Inline return value spill temp"
+;  V21 tmp8         [V21,T40] (  3,  1.50)     int  ->  r12         "Inline return value spill temp"
 ;* V22 tmp9         [V22    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
 ;  V23 tmp10        [V23,T14] (  4,  4   )     ref  ->  [rsp+0x20]  class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
 ;  V24 tmp11        [V24,T12] (  3,  6   )     int  ->  rcx         "Inlining Arg"
@@ -46,10 +46,10 @@
 ;* V35 tmp22        [V35    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp23        [V36    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V37 tmp24        [V37    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V38 tmp25        [V38,T38] (  3,  1.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V38 tmp25        [V38,T38] (  3,  1.50)     ref  ->  r15         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V39 tmp26        [V39,T28] (  3,  3   )     int  ->  rcx         "Inlining Arg"
-;  V40 tmp27        [V40,T34] (  2,  2   )    long  ->  r15         "Inlining Arg"
-;  V41 tmp28        [V41,T32] (  4,  2   )     int  ->  r15         "Inline stloc first use temp"
+;  V40 tmp27        [V40,T34] (  2,  2   )    long  ->  r13         "Inlining Arg"
+;  V41 tmp28        [V41,T32] (  4,  2   )     int  ->  r13         "Inline stloc first use temp"
 ;* V42 tmp29        [V42    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V43 tmp30        [V43    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V44 tmp31        [V44    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -61,8 +61,8 @@
 ;  V50 tmp37        [V50,T20] (  2,  4   )     int  ->   r9         "field V31._index (fldOffset=0x8)" P-INDEP
 ;  V51 tmp38        [V51,T21] (  2,  4   )     int  ->  rdx         "field V31._length (fldOffset=0xc)" P-INDEP
 ;  V52 tmp39        [V52,T18] (  2,  4   )     ref  ->  r11         "field V32._object (fldOffset=0x0)" P-INDEP
-;  V53 tmp40        [V53,T22] (  2,  4   )     int  ->  rbp         "field V32._index (fldOffset=0x8)" P-INDEP
-;  V54 tmp41        [V54,T23] (  2,  4   )     int  ->  rdi         "field V32._length (fldOffset=0xc)" P-INDEP
+;  V53 tmp40        [V53,T22] (  2,  4   )     int  ->  r14         "field V32._index (fldOffset=0x8)" P-INDEP
+;  V54 tmp41        [V54,T23] (  2,  4   )     int  ->  rbp         "field V32._length (fldOffset=0xc)" P-INDEP
 ;* V55 tmp42        [V55    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlyMemory`1[ushort]>
 ;  V56 tmp43        [V56,T35] (  2,  2   )     int  ->  rcx         "argument with side effect"
 ;  V57 tmp44        [V57    ] (  4, 10   )  struct (16) [rsp+0x50]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ReadOnlyMemory`1[ushort]>
@@ -80,7 +80,7 @@
 ;  V69 cse4         [V69,T43] (  3,  1.50)     int  ->  rcx         "CSE - conservative"
 ;  V70 cse5         [V70,T04] ( 10, 23   )     int  ->  [rsp+0x34]  hoist multi-def "CSE - aggressive"
 ;  V71 cse6         [V71,T11] ( 13,  6.50)     ref  ->  rdx         multi-def "CSE - aggressive"
-;  V72 cse7         [V72,T27] (  6,  3   )     int  ->  r10         multi-def "CSE - moderate"
+;  V72 cse7         [V72,T27] (  6,  3   )     int  ->  rbx         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 104
 
@@ -107,11 +107,11 @@ G_M51248_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=51 bbWeight=1 PerfScore 14.08
 G_M51248_IG02:        ; bbWeight=1, gcVars=0000000000010000 {V48}, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, gcvars, byref, isz
        cmp      gword ptr [rbx+0x08], 0
-       mov      rbp, gword ptr [rsp+0xC0]
-       ; gcrRegs +[rbp]
+       mov      r14, gword ptr [rsp+0xC0]
+       ; gcrRegs +[r14]
        jne      SHORT G_M51248_IG04
                        ;; size=15 bbWeight=1 PerfScore 5.00
-G_M51248_IG03:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0028 {rbx rbp}, byrefRegs=0040 {rsi}, gcvars, byref
+G_M51248_IG03:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0040 {rsi}, gcvars, byref
        ; GC ptr vars -{V48}
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -120,11 +120,11 @@ G_M51248_IG03:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=002
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
                        ;; size=11 bbWeight=0.50 PerfScore 1.75
-G_M51248_IG04:        ; bbWeight=1, gcrefRegs=0028 {rbx rbp}, byrefRegs=0040 {rsi}, byref, isz
+G_M51248_IG04:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0040 {rsi}, byref, isz
        cmp      gword ptr [rbx+0x08], 0
        jne      SHORT G_M51248_IG06
                        ;; size=7 bbWeight=1 PerfScore 4.00
-G_M51248_IG05:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0040 {rsi}, byref
+G_M51248_IG05:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0040 {rsi}, byref
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        mov      rcx, rdx
@@ -133,13 +133,13 @@ G_M51248_IG05:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0040
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
                        ;; size=19 bbWeight=0.50 PerfScore 1.75
-G_M51248_IG06:        ; bbWeight=1, gcrefRegs=0028 {rbx rbp}, byrefRegs=0040 {rsi}, byref, isz
-       mov      r14, gword ptr [rbx+0x10]
-       ; gcrRegs +[r14]
-       test     r14, r14
+G_M51248_IG06:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0040 {rsi}, byref, isz
+       mov      r15, gword ptr [rbx+0x10]
+       ; gcrRegs +[r15]
+       test     r15, r15
        jne      SHORT G_M51248_IG08
                        ;; size=9 bbWeight=1 PerfScore 3.25
-G_M51248_IG07:        ; bbWeight=0.50, gcrefRegs=4028 {rbx rbp r14}, byrefRegs=0040 {rsi}, byref
+G_M51248_IG07:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040 {rsi}, byref
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
@@ -148,34 +148,34 @@ G_M51248_IG07:        ; bbWeight=0.50, gcrefRegs=4028 {rbx rbp r14}, byrefRegs=0
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
                        ;; size=26 bbWeight=0.50 PerfScore 1.75
-G_M51248_IG08:        ; bbWeight=1, gcrefRegs=4028 {rbx rbp r14}, byrefRegs=0040 {rsi}, byref, isz
-       mov      r15, gword ptr [rbx+0x18]
-       ; gcrRegs +[r15]
-       test     r15, r15
+G_M51248_IG08:        ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040 {rsi}, byref, isz
+       mov      r13, gword ptr [rbx+0x18]
+       ; gcrRegs +[r13]
+       test     r13, r13
        je       SHORT G_M51248_IG11
                        ;; size=9 bbWeight=1 PerfScore 3.25
-G_M51248_IG09:        ; bbWeight=0.50, gcrefRegs=C028 {rbx rbp r14 r15}, byrefRegs=0040 {rsi}, byref, nogc
+G_M51248_IG09:        ; bbWeight=0.50, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0040 {rsi}, byref, nogc
        vmovdqu  xmm0, xmmword ptr [rsi]
        vmovdqu  xmmword ptr [rsp+0x50], xmm0
                        ;; size=10 bbWeight=0.50 PerfScore 2.50
 G_M51248_IG10:        ; bbWeight=0.50, isz, extend
-       mov      rcx, r15
+       mov      rcx, r13
        ; gcrRegs +[rcx]
        lea      rdx, [rsp+0x50]
        mov      r11, 0xD1FFAB1E      ; code for <unknown method>
        call     [r11]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      r13d, eax
+       mov      r12d, eax
        jmp      SHORT G_M51248_IG13
                        ;; size=26 bbWeight=0.50 PerfScore 3.12
-G_M51248_IG11:        ; bbWeight=0.50, gcrefRegs=C028 {rbx rbp r14 r15}, byrefRegs=0040 {rsi}, byref, isz
+G_M51248_IG11:        ; bbWeight=0.50, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0040 {rsi}, byref, isz
        cmp      gword ptr [rsi], 0
        jne      SHORT G_M51248_IG12
-       xor      r13d, r13d
+       xor      r12d, r12d
        jmp      SHORT G_M51248_IG13
                        ;; size=11 bbWeight=0.50 PerfScore 3.12
-G_M51248_IG12:        ; bbWeight=0.50, gcrefRegs=C028 {rbx rbp r14 r15}, byrefRegs=0040 {rsi}, byref
+G_M51248_IG12:        ; bbWeight=0.50, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0040 {rsi}, byref
        mov      rcx, gword ptr [rsi]
        ; gcrRegs +[rcx]
        call     <unknown method>
@@ -186,17 +186,17 @@ G_M51248_IG12:        ; bbWeight=0.50, gcrefRegs=C028 {rbx rbp r14 r15}, byrefRe
        mov      r8d, dword ptr [rsi+0x0C]
        call     [<unknown method>]
        ; gcr arg pop 0
-       mov      r13d, eax
+       mov      r12d, eax
                        ;; size=26 bbWeight=0.50 PerfScore 5.25
-G_M51248_IG13:        ; bbWeight=1, gcrefRegs=C028 {rbx rbp r14 r15}, byrefRegs=0040 {rsi}, byref, isz
-       xor      r12d, r12d
+G_M51248_IG13:        ; bbWeight=1, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0040 {rsi}, byref, isz
+       xor      edi, edi
        mov      r8, gword ptr [rbx+0x08]
        ; gcrRegs +[r8]
        mov      gword ptr [rsp+0x20], r8
        ; GC ptr vars +{V23}
        mov      ecx, dword ptr [r8+0x08]
        mov      r10, qword ptr [rbx+0x30]
-       mov      r9d, r13d
+       mov      r9d, r12d
        imul     r10, r9
        shr      r10, 32
        inc      r10
@@ -204,13 +204,13 @@ G_M51248_IG13:        ; bbWeight=1, gcrefRegs=C028 {rbx rbp r14 r15}, byrefRegs=
        imul     r10, r9
        shr      r10, 32
        mov      dword ptr [rsp+0x60], r10d
-       mov      eax, r13d
+       mov      eax, r12d
        xor      edx, edx
        div      edx:eax, ecx
        cmp      edx, r10d
        je       SHORT G_M51248_IG15
-                       ;; size=62 bbWeight=1 PerfScore 40.75
-G_M51248_IG14:        ; bbWeight=0.50, gcVars=0000000000004000 {V23}, gcrefRegs=C028 {rbx rbp r14 r15}, byrefRegs=0040 {rsi}, gcvars, byref
+                       ;; size=61 bbWeight=1 PerfScore 40.75
+G_M51248_IG14:        ; bbWeight=0.50, gcVars=0000000000004000 {V23}, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0040 {rsi}, gcvars, byref
        ; gcrRegs -[r8]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
@@ -220,36 +220,39 @@ G_M51248_IG14:        ; bbWeight=0.50, gcVars=0000000000004000 {V23}, gcrefRegs=
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
                        ;; size=19 bbWeight=0.50 PerfScore 1.75
-G_M51248_IG15:        ; bbWeight=1, gcrefRegs=C028 {rbx rbp r14 r15}, byrefRegs=0040 {rsi}, byref
+G_M51248_IG15:        ; bbWeight=1, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0040 {rsi}, byref
        mov      r10d, dword ptr [rsp+0x60]
        mov      r8, gword ptr [rsp+0x20]
        ; gcrRegs +[r8]
        cmp      r10d, dword ptr [r8+0x08]
-       jae      G_M51248_IG44
+       jae      G_M51248_IG41
        mov      ecx, r10d
        lea      rax, bword ptr [r8+4*rcx+0x10]
        ; byrRegs +[rax]
+       mov      bword ptr [rsp+0x28], rax
+       ; GC ptr vars +{V08}
        mov      r8d, dword ptr [rax]
        ; gcrRegs -[r8]
        dec      r8d
-       test     r15, r15
-       jne      G_M51248_IG28
-       mov      r15d, dword ptr [r14+0x08]
-       ; gcrRegs -[r15]
-                       ;; size=47 bbWeight=1 PerfScore 12.75
-G_M51248_IG16:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=4028 {rbx rbp r14}, byrefRegs=0041 {rax rsi}, gcvars, byref, isz
+       test     r13, r13
+       jne      G_M51248_IG26
+       mov      r13d, dword ptr [r15+0x08]
+       ; gcrRegs -[r13]
+                       ;; size=52 bbWeight=1 PerfScore 13.75
+G_M51248_IG16:        ; bbWeight=4, gcVars=0000000002000000 {V08}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040 {rsi}, gcvars, byref, isz
+       ; byrRegs -[rax]
        ; GC ptr vars -{V23}
-       cmp      r15d, r8d
-       jbe      G_M51248_IG36
+       cmp      r13d, r8d
+       jbe      G_M51248_IG33
        mov      ecx, r8d
        shl      rcx, 5
-       cmp      dword ptr [r14+rcx+0x10], r13d
-       jne      SHORT G_M51248_IG22
+       cmp      dword ptr [r15+rcx+0x10], r12d
+       jne      SHORT G_M51248_IG18
                        ;; size=23 bbWeight=4 PerfScore 24.00
-G_M51248_IG17:        ; bbWeight=2, gcrefRegs=4028 {rbx rbp r14}, byrefRegs=0041 {rax rsi}, byref, isz
-       mov      gword ptr [rsp+0xC0], rbp
+G_M51248_IG17:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040 {rsi}, byref, isz
+       mov      gword ptr [rsp+0xC0], r14
        ; GC ptr vars +{V48}
...

-38 (-2.80%) : 26373.dasm - System.Collections.Generic.Dictionary2[System.ValueTuple2[System.Canon,System.Canon],ubyte]:TryInsert(System.ValueTuple`2[System.Canon,System.Canon],ubyte,ubyte):ubyte:this (Tier1)

@@ -10,22 +10,22 @@
 ;
 ;  V00 this         [V00,T04] ( 25, 16.50)     ref  ->  rbx         this class-hnd single-def <System.Collections.Generic.Dictionary`2[System.ValueTuple`2[System.__Canon,System.__Canon],ubyte]>
 ;  V01 arg1         [V01,T05] (  9, 15   )   byref  ->  rsi         ld-addr-op single-def
-;  V02 arg2         [V02,T19] (  4,  3   )   ubyte  ->  [rsp+0xE0]  single-def
-;  V03 arg3         [V03,T17] (  6,  4   )   ubyte  ->  rdi         single-def
-;  V04 loc0         [V04,T00] ( 16, 33   )     ref  ->  r14         class-hnd <<unknown class>>
-;  V05 loc1         [V05,T13] (  5,  5.50)     ref  ->  r15         class-hnd single-def <<unknown class>>
-;  V06 loc2         [V06,T09] (  8, 12.50)     int  ->  r12        
+;  V02 arg2         [V02,T19] (  4,  3   )   ubyte  ->  r14         single-def
+;  V03 arg3         [V03,T17] (  6,  4   )   ubyte  ->  rbp         single-def
+;  V04 loc0         [V04,T00] ( 16, 33   )     ref  ->  r15         class-hnd <<unknown class>>
+;  V05 loc1         [V05,T13] (  5,  5.50)     ref  ->  r13         class-hnd single-def <<unknown class>>
+;  V06 loc2         [V06,T09] (  8, 12.50)     int  ->  rdi        
 ;  V07 loc3         [V07,T03] (  7, 25   )     int  ->  [rsp+0x7C] 
 ;  V08 loc4         [V08,T26] (  5,  3.50)   byref  ->  [rsp+0x28] 
 ;  V09 loc5         [V09,T02] (  9, 26   )     int  ->  [rsp+0x78] 
-;  V10 loc6         [V10,T27] (  6,  3   )     int  ->  r13        
-;  V11 loc7         [V11,T33] (  5,  2.50)   byref  ->  r14         single-def
-;  V12 loc8         [V12,T42] (  3,  1.50)     int  ->  r13        
+;  V10 loc6         [V10,T27] (  6,  3   )     int  ->  rbp        
+;  V11 loc7         [V11,T33] (  5,  2.50)   byref  ->  r15         single-def
+;  V12 loc8         [V12,T42] (  3,  1.50)     int  ->  rbp        
 ;  V13 OutArgs      [V13    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref   
 ;* V15 tmp2         [V15    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;  V16 tmp3         [V16,T37] (  3,  2   )    long  ->  rax         "Indirect call through function pointer"
-;  V17 tmp4         [V17,T38] (  3,  2   )     int  ->  r12        
+;  V17 tmp4         [V17,T38] (  3,  2   )     int  ->  rdi        
 ;* V18 tmp5         [V18    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;  V19 tmp6         [V19,T06] (  4, 12   )    long  ->  [rsp+0x70]  "VirtualCall with runtime lookup"
 ;* V20 tmp7         [V20    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
@@ -50,10 +50,10 @@
 ;* V39 tmp26        [V39    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V40 tmp27        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V41 tmp28        [V41    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V42 tmp29        [V42,T41] (  3,  1.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V42 tmp29        [V42,T41] (  3,  1.50)     ref  ->  r15         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V43 tmp30        [V43,T28] (  3,  3   )     int  ->  rcx         "Inlining Arg"
-;  V44 tmp31        [V44,T39] (  2,  2   )    long  ->  r15         "Inlining Arg"
-;  V45 tmp32        [V45,T36] (  4,  2   )     int  ->  r15         "Inline stloc first use temp"
+;  V44 tmp31        [V44,T39] (  2,  2   )    long  ->  r13         "Inlining Arg"
+;  V45 tmp32        [V45,T36] (  4,  2   )     int  ->  r13         "Inline stloc first use temp"
 ;* V46 tmp33        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp34        [V47    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V48 tmp35        [V48    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -72,13 +72,13 @@
 ;* V61 tmp48        [V61,T25] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
 ;  V62 tmp49        [V62,T52] (  2,  0   )    long  ->  rcx         "argument with side effect"
 ;  V63 tmp50        [V63,T53] (  2,  0   )    long  ->  rcx         "argument with side effect"
-;  V64 cse0         [V64,T43] (  3,  1.50)     int  ->  rdi         "CSE - moderate"
+;  V64 cse0         [V64,T43] (  3,  1.50)     int  ->  r12         "CSE - moderate"
 ;  V65 cse1         [V65,T07] (  4, 14   )    long  ->  [rsp+0x40]  spill-single-def "CSE - aggressive"
 ;  V66 cse2         [V66,T08] (  4, 14   )    long  ->  [rsp+0x38]  spill-single-def "CSE - aggressive"
 ;  V67 cse3         [V67,T44] (  3,  1.50)     int  ->  rcx         "CSE - conservative"
 ;  V68 cse4         [V68,T45] (  3,  1.50)     int  ->  rcx         "CSE - conservative"
 ;  V69 cse5         [V69,T01] ( 10, 26   )     int  ->  [rsp+0x34]  multi-def "CSE - aggressive"
-;  V70 cse6         [V70,T15] ( 12,  6.80)    long  ->  r13         multi-def "CSE - moderate"
+;  V70 cse6         [V70,T15] ( 12,  6.80)    long  ->  r12         multi-def "CSE - moderate"
 ;  V71 cse7         [V71,T16] ( 13,  6.50)     ref  ->  rdx         multi-def "CSE - moderate"
 ;  V72 rat0         [V72,T34] (  3,  2.20)    long  ->  rcx         "Spilling to split statement for tree"
 ;  V73 rat1         [V73,T31] (  3,  2.80)    long  ->  r11         "fgMakeTemp is creating a new local variable"
@@ -115,8 +115,8 @@ G_M4176_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcrRegs +[rbx]
        mov      rsi, rdx
        ; byrRegs +[rsi]
-       mov      ebp, r8d
-       mov      edi, r9d
+       mov      r14d, r8d
+       mov      ebp, r9d
                        ;; size=64 bbWeight=1 PerfScore 15.83
 G_M4176_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
        cmp      gword ptr [rbx+0x08], 0
@@ -144,12 +144,12 @@ G_M4176_IG05:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}
        ; gcr arg pop 0
                        ;; size=19 bbWeight=0.50 PerfScore 1.75
 G_M4176_IG06:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
-       mov      r14, gword ptr [rbx+0x10]
-       ; gcrRegs +[r14]
-       test     r14, r14
+       mov      r15, gword ptr [rbx+0x10]
+       ; gcrRegs +[r15]
+       test     r15, r15
        jne      SHORT G_M4176_IG08
                        ;; size=9 bbWeight=1 PerfScore 3.25
-G_M4176_IG07:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0040 {rsi}, byref
+G_M4176_IG07:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0040 {rsi}, byref
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
@@ -158,70 +158,70 @@ G_M4176_IG07:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0040 {
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
                        ;; size=26 bbWeight=0.50 PerfScore 1.75
-G_M4176_IG08:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0040 {rsi}, byref, isz
-       mov      r15, gword ptr [rbx+0x18]
-       ; gcrRegs +[r15]
-       test     r15, r15
+G_M4176_IG08:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0040 {rsi}, byref, isz
+       mov      r13, gword ptr [rbx+0x18]
+       ; gcrRegs +[r13]
+       test     r13, r13
        je       SHORT G_M4176_IG14
                        ;; size=9 bbWeight=1 PerfScore 3.25
-G_M4176_IG09:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040 {rsi}, byref, isz
-       mov      r13, qword ptr [rbx]
-       mov      rcx, r13
+G_M4176_IG09:        ; bbWeight=0.50, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0040 {rsi}, byref, isz
+       mov      r12, qword ptr [rbx]
+       mov      rcx, r12
        mov      rdx, qword ptr [rcx+0x38]
        mov      rdx, qword ptr [rdx]
        mov      r11, qword ptr [rdx+0x20]
        test     r11, r11
        je       SHORT G_M4176_IG11
                        ;; size=22 bbWeight=0.50 PerfScore 4.75
-G_M4176_IG10:        ; bbWeight=0.40, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040 {rsi}, byref, isz
+G_M4176_IG10:        ; bbWeight=0.40, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0040 {rsi}, byref, isz
        jmp      SHORT G_M4176_IG12
                        ;; size=2 bbWeight=0.40 PerfScore 0.80
-G_M4176_IG11:        ; bbWeight=0.10, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040 {rsi}, byref
+G_M4176_IG11:        ; bbWeight=0.10, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0040 {rsi}, byref
        mov      rdx, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        ; gcr arg pop 0
        mov      r11, rax
                        ;; size=18 bbWeight=0.10 PerfScore 0.15
-G_M4176_IG12:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040 {rsi}, byref, nogc
+G_M4176_IG12:        ; bbWeight=0.50, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0040 {rsi}, byref, nogc
        vmovdqu  xmm0, xmmword ptr [rsi]
        vmovdqu  xmmword ptr [rsp+0x58], xmm0
                        ;; size=10 bbWeight=0.50 PerfScore 2.50
 G_M4176_IG13:        ; bbWeight=0.50, isz, extend
-       mov      rcx, r15
+       mov      rcx, r13
        ; gcrRegs +[rcx]
        lea      rdx, [rsp+0x58]
        call     [r11]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      r12d, eax
+       mov      edi, eax
        jmp      SHORT G_M4176_IG18
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
-G_M4176_IG14:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040 {rsi}, byref, isz
-       mov      r13, qword ptr [rbx]
-       mov      rcx, r13
+                       ;; size=15 bbWeight=0.50 PerfScore 3.00
+G_M4176_IG14:        ; bbWeight=0.50, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0040 {rsi}, byref, isz
+       mov      r12, qword ptr [rbx]
+       mov      rcx, r12
        mov      rdx, qword ptr [rcx+0x38]
        mov      rdx, qword ptr [rdx]
        mov      rax, qword ptr [rdx+0x30]
        test     rax, rax
        je       SHORT G_M4176_IG16
                        ;; size=22 bbWeight=0.50 PerfScore 4.75
-G_M4176_IG15:        ; bbWeight=0.40, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040 {rsi}, byref, isz
+G_M4176_IG15:        ; bbWeight=0.40, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0040 {rsi}, byref, isz
        jmp      SHORT G_M4176_IG17
                        ;; size=2 bbWeight=0.40 PerfScore 0.80
-G_M4176_IG16:        ; bbWeight=0.10, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040 {rsi}, byref
+G_M4176_IG16:        ; bbWeight=0.10, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0040 {rsi}, byref
        mov      rdx, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        ; gcr arg pop 0
                        ;; size=15 bbWeight=0.10 PerfScore 0.12
-G_M4176_IG17:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040 {rsi}, byref
+G_M4176_IG17:        ; bbWeight=0.50, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0040 {rsi}, byref
        mov      rcx, rsi
        ; byrRegs +[rcx]
        call     rax
        ; byrRegs -[rcx]
        ; gcr arg pop 0
-       mov      r12d, eax
-                       ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M4176_IG18:        ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040 {rsi}, byref, isz
+       mov      edi, eax
+                       ;; size=7 bbWeight=0.50 PerfScore 1.75
+G_M4176_IG18:        ; bbWeight=1, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0040 {rsi}, byref, isz
        xor      r8d, r8d
        mov      dword ptr [rsp+0x7C], r8d
        mov      r10, gword ptr [rbx+0x08]
@@ -230,7 +230,7 @@ G_M4176_IG18:        ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040
        ; GC ptr vars +{V31}
        mov      ecx, dword ptr [r10+0x08]
        mov      r9, qword ptr [rbx+0x30]
-       mov      r11d, r12d
+       mov      r11d, edi
        imul     r9, r11
        shr      r9, 32
        inc      r9
@@ -238,13 +238,13 @@ G_M4176_IG18:        ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040
        imul     r9, r11
        shr      r9, 32
        mov      dword ptr [rsp+0x6C], r9d
-       mov      eax, r12d
+       mov      eax, edi
        xor      edx, edx
        div      edx:eax, ecx
        cmp      edx, r9d
        je       SHORT G_M4176_IG20
-                       ;; size=67 bbWeight=1 PerfScore 41.75
-G_M4176_IG19:        ; bbWeight=0.50, gcVars=0000000000200000 {V31}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040 {rsi}, gcvars, byref
+                       ;; size=66 bbWeight=1 PerfScore 41.75
+G_M4176_IG19:        ; bbWeight=0.50, gcVars=0000000000200000 {V31}, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0040 {rsi}, gcvars, byref
        ; gcrRegs -[r10]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
@@ -254,7 +254,7 @@ G_M4176_IG19:        ; bbWeight=0.50, gcVars=0000000000200000 {V31}, gcrefRegs=C
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
                        ;; size=19 bbWeight=0.50 PerfScore 1.75
-G_M4176_IG20:        ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040 {rsi}, byref
+G_M4176_IG20:        ; bbWeight=1, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0040 {rsi}, byref
        mov      r9d, dword ptr [rsp+0x6C]
        mov      r10, gword ptr [rsp+0x20]
        ; gcrRegs +[r10]
@@ -268,48 +268,48 @@ G_M4176_IG20:        ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0040
        mov      r10d, dword ptr [rax]
        ; gcrRegs -[r10]
        dec      r10d
-       test     r15, r15
+       test     r13, r13
        jne      G_M4176_IG35
                        ;; size=48 bbWeight=1 PerfScore 11.75
-G_M4176_IG21:        ; bbWeight=4, gcVars=0000000004000000 {V08}, gcrefRegs=4008 {rbx r14}, byrefRegs=0040 {rsi}, gcvars, byref, isz
-       ; gcrRegs -[r15]
+G_M4176_IG21:        ; bbWeight=4, gcVars=0000000004000000 {V08}, gcrefRegs=8008 {rbx r15}, byrefRegs=0040 {rsi}, gcvars, byref, isz
+       ; gcrRegs -[r13]
        ; byrRegs -[rax]
        ; GC ptr vars -{V31}
-       mov      r15d, dword ptr [r14+0x08]
-       cmp      r15d, r10d
+       mov      r13d, dword ptr [r15+0x08]
+       cmp      r13d, r10d
        jbe      G_M4176_IG45
        mov      dword ptr [rsp+0x78], r10d
        mov      r9d, r10d
        shl      r9, 5
        mov      qword ptr [rsp+0x40], r9
-       cmp      dword ptr [r14+r9+0x10], r12d
+       cmp      dword ptr [r15+r9+0x10], edi
        jne      SHORT G_M4176_IG29
                        ;; size=37 bbWeight=4 PerfScore 40.00
-G_M4176_IG22:        ; bbWeight=2, gcrefRegs=4008 {rbx r14}, byrefRegs=0040 {rsi}, byref, isz
-       mov      rcx, qword ptr [r13+0x38]
+G_M4176_IG22:        ; bbWeight=2, gcrefRegs=8008 {rbx r15}, byrefRegs=0040 {rsi}, byref, isz
+       mov      rcx, qword ptr [r12+0x38]
        mov      rcx, qword ptr [rcx]
...

-19 (-2.71%) : 41974.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.Canon,System.Canon]:FindValue(System.__Canon):byref:this (Tier1)

@@ -10,17 +10,17 @@
 ;
 ;  V00 this         [V00,T09] ( 13,  8.50)     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T10] (  8,  8.50)     ref  ->  rsi         ld-addr-op class-hnd single-def <System.__Canon>
-;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  [rsp+0x28] 
+;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  r15        
 ;  V03 loc1         [V03,T35] (  3,  2   )   byref  ->  rax        
 ;  V04 loc2         [V04,T18] (  4,  3.50)     ref  ->  rbp         class-hnd single-def <<unknown class>>
-;  V05 loc3         [V05,T14] (  3,  5   )     int  ->  rbp         single-def
-;  V06 loc4         [V06,T03] (  6, 13.50)     int  ->  r14        
-;  V07 loc5         [V07    ] (  4, 12.50)  struct (16) [rsp+0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[System.__Canon,System.__Canon]]>
-;  V08 loc6         [V08,T05] (  4, 12.50)     int  ->  r15        
-;  V09 loc7         [V09,T16] (  3,  4.50)     ref  ->  r13         class-hnd single-def <System.Collections.Generic.EqualityComparer`1[System.__Canon]>
+;  V05 loc3         [V05,T14] (  3,  5   )     int  ->  r14         single-def
+;  V06 loc4         [V06,T03] (  6, 13.50)     int  ->  r15        
+;  V07 loc5         [V07    ] (  4, 12.50)  struct (16) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[System.__Canon,System.__Canon]]>
+;  V08 loc6         [V08,T05] (  4, 12.50)     int  ->  r13        
+;  V09 loc7         [V09,T16] (  3,  4.50)     ref  ->  r12         class-hnd single-def <System.Collections.Generic.EqualityComparer`1[System.__Canon]>
 ;  V10 loc8         [V10,T15] (  3,  5   )     int  ->  r14         single-def
 ;  V11 loc9         [V11,T04] (  6, 13.50)     int  ->  r15        
-;  V12 loc10        [V12    ] (  4, 12.50)  struct (16) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[System.__Canon,System.__Canon]]>
+;  V12 loc10        [V12    ] (  4, 12.50)  struct (16) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[System.__Canon,System.__Canon]]>
 ;  V13 loc11        [V13,T06] (  4, 12.50)     int  ->  r13        
 ;  V14 OutArgs      [V14    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V15 tmp1         [V15    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
@@ -57,10 +57,10 @@
 ;* V46 tmp32        [V46,T48] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V47 tmp33        [V47    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V48 tmp34        [V48,T49] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
-;  V49 tmp35        [V49    ] (  2,  4.50)     ref  ->  [rsp+0x40]  do-not-enreg[X] addr-exposed "field V07._items (fldOffset=0x0)" P-DEP
-;  V50 tmp36        [V50    ] (  4, 12.50)     int  ->  [rsp+0x48]  do-not-enreg[X] addr-exposed "field V07._length (fldOffset=0x8)" P-DEP
-;  V51 tmp37        [V51    ] (  2,  4.50)     ref  ->  [rsp+0x30]  do-not-enreg[X] addr-exposed "field V12._items (fldOffset=0x0)" P-DEP
-;  V52 tmp38        [V52    ] (  4, 12.50)     int  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed "field V12._length (fldOffset=0x8)" P-DEP
+;  V49 tmp35        [V49    ] (  2,  4.50)     ref  ->  [rsp+0x30]  do-not-enreg[X] addr-exposed "field V07._items (fldOffset=0x0)" P-DEP
+;  V50 tmp36        [V50    ] (  4, 12.50)     int  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed "field V07._length (fldOffset=0x8)" P-DEP
+;  V51 tmp37        [V51    ] (  2,  4.50)     ref  ->  [rsp+0x20]  do-not-enreg[X] addr-exposed "field V12._items (fldOffset=0x0)" P-DEP
+;  V52 tmp38        [V52    ] (  4, 12.50)     int  ->  [rsp+0x28]  do-not-enreg[X] addr-exposed "field V12._length (fldOffset=0x8)" P-DEP
 ;  V53 tmp39        [V53,T40] (  2,  1   )     ref  ->  rcx         single-def "field V29._items (fldOffset=0x0)" P-INDEP
 ;  V54 tmp40        [V54,T42] (  2,  1   )     int  ->  rdx         single-def "field V29._length (fldOffset=0x8)" P-INDEP
 ;  V55 tmp41        [V55,T41] (  2,  1   )     ref  ->  rcx         single-def "field V39._items (fldOffset=0x0)" P-INDEP
@@ -71,23 +71,23 @@
 ;  V60 tmp46        [V60,T28] (  3,  3   )     int  ->  rax         "index expr"
 ;  V61 tmp47        [V61,T29] (  3,  3   )     int  ->  rdx         "index expr"
 ;  V62 tmp48        [V62,T02] (  2, 16   )    long  ->  rdx         "argument with side effect"
-;  V63 cse0         [V63,T11] (  4,  9   )    long  ->  r12         hoist multi-def "CSE - aggressive"
+;  V63 cse0         [V63,T11] (  4,  9   )    long  ->  registers   hoist multi-def "CSE - aggressive"
 ;  V64 cse1         [V64,T12] ( 11,  5.80)    long  ->  rdi         "CSE - moderate"
 ;* V65 rat0         [V65,T17] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
 ;* V66 rat1         [V66,T39] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
 ;* V67 rat2         [V67,T13] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;  V68 rat3         [V68,T36] (  3,  2   )    long  ->  rcx         "runtime lookup"
 ;  V69 rat4         [V69,T30] (  3,  2.80)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V70 rat5         [V70,T37] (  3,  2   )    long  ->  r12         "runtime lookup"
-;  V71 rat6         [V71,T31] (  3,  2.80)    long  ->  r12         "fgMakeTemp is creating a new local variable"
+;  V70 rat5         [V70,T37] (  3,  2   )    long  ->  rbp         "runtime lookup"
+;  V71 rat6         [V71,T31] (  3,  2.80)    long  ->  rbp         "fgMakeTemp is creating a new local variable"
 ;  V72 rat7         [V72,T32] (  3,  2.80)    long  ->  r11         "fgMakeTemp is creating a new local variable"
-;  V73 rat8         [V73,T38] (  3,  2   )    long  ->  r12         "runtime lookup"
-;  V74 rat9         [V74,T33] (  3,  2.80)    long  ->  r12         "fgMakeTemp is creating a new local variable"
+;  V73 rat8         [V73,T38] (  3,  2   )    long  ->  rax         "runtime lookup"
+;  V74 rat9         [V74,T33] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;  V75 rat10        [V75,T08] (  3, 11.20)    long  ->  r11         "fgMakeTemp is creating a new local variable"
 ;* V76 rat11        [V76,T44] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
 ;* V77 rat12        [V77,T34] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 88
+; Lcl frame size = 72
 
 G_M65447_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
@@ -98,11 +98,11 @@ G_M65447_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 88
+       sub      rsp, 72
        vzeroupper 
        vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rsp+0x30], ymm4
-       mov      qword ptr [rsp+0x50], rcx
+       vmovdqu  ymmword ptr [rsp+0x20], ymm4
+       mov      qword ptr [rsp+0x40], rcx
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      rsi, rdx
@@ -127,11 +127,11 @@ G_M65447_IG03:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        call     [rax+0x18]<unknown method>
        ; gcrRegs -[rcx rbp]
        ; gcr arg pop 0
-       mov      ebp, eax
+       mov      r14d, eax
        mov      rcx, gword ptr [rbx+0x38]
        ; gcrRegs +[rcx]
        mov      edx, dword ptr [rbx+0x40]
-       mov      eax, ebp
+       mov      eax, r14d
        imul     rax, qword ptr [rbx+0x20]
        shr      rax, 32
        inc      rax
@@ -145,14 +145,14 @@ G_M65447_IG03:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        and      edx, 0x3FFF
        cmp      edx, dword ptr [rcx+0x08]
        jae      G_M65447_IG32
-       mov      r14d, dword ptr [rcx+4*rdx+0x10]
-                       ;; size=96 bbWeight=0.50 PerfScore 18.12
+       mov      r15d, dword ptr [rcx+4*rdx+0x10]
+                       ;; size=98 bbWeight=0.50 PerfScore 18.12
 G_M65447_IG04:        ; bbWeight=0.50, nogc, extend
        vmovdqu  xmm0, xmmword ptr [rbx+0x48]
-       vmovdqu  xmmword ptr [rsp+0x40], xmm0
+       vmovdqu  xmmword ptr [rsp+0x30], xmm0
                        ;; size=11 bbWeight=0.50 PerfScore 2.50
 G_M65447_IG05:        ; bbWeight=0.50, isz, extend
-       xor      r15d, r15d
+       xor      r13d, r13d
        mov      rcx, qword ptr [rdi+0x38]
        ; gcrRegs -[rcx]
        mov      rcx, qword ptr [rcx]
@@ -174,49 +174,49 @@ G_M65447_IG08:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        call     [System.Collections.Generic.EqualityComparer`1[System.__Canon]:get_Default():System.Collections.Generic.EqualityComparer`1[System.__Canon]]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      r13, rax
-       ; gcrRegs +[r13]
-       dec      r14d
+       mov      r12, rax
+       ; gcrRegs +[r12]
+       dec      r15d
        mov      rcx, qword ptr [rdi+0x38]
        mov      rcx, qword ptr [rcx]
-       mov      r12, qword ptr [rcx+0x40]
-       test     r12, r12
+       mov      rbp, qword ptr [rcx+0x40]
+       test     rbp, rbp
        je       SHORT G_M65447_IG10
                        ;; size=28 bbWeight=0.50 PerfScore 5.38
-G_M65447_IG09:        ; bbWeight=0.40, gcrefRegs=2048 {rbx rsi r13}, byrefRegs=0000 {}, byref, isz
+G_M65447_IG09:        ; bbWeight=0.40, gcrefRegs=1048 {rbx rsi r12}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        jmp      SHORT G_M65447_IG11
                        ;; size=2 bbWeight=0.40 PerfScore 0.80
-G_M65447_IG10:        ; bbWeight=0.10, gcrefRegs=2048 {rbx rsi r13}, byrefRegs=0000 {}, byref
+G_M65447_IG10:        ; bbWeight=0.10, gcrefRegs=1048 {rbx rsi r12}, byrefRegs=0000 {}, byref
        mov      rcx, rdi
        mov      rdx, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        ; gcr arg pop 0
-       mov      r12, rax
+       mov      rbp, rax
                        ;; size=21 bbWeight=0.10 PerfScore 0.18
-G_M65447_IG11:        ; bbWeight=4, gcrefRegs=2048 {rbx rsi r13}, byrefRegs=0000 {}, byref, isz
-       cmp      r14d, dword ptr [rsp+0x48]
+G_M65447_IG11:        ; bbWeight=4, gcrefRegs=1048 {rbx rsi r12}, byrefRegs=0000 {}, byref, isz
+       cmp      r15d, dword ptr [rsp+0x38]
        jae      G_M65447_IG31
-       mov      rdx, r12
-       lea      rcx, [rsp+0x40]
-       mov      r8d, r14d
+       mov      rdx, rbp
+       lea      rcx, [rsp+0x30]
+       mov      r8d, r15d
        call     [Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[System.__Canon,System.__Canon]]:get_Item(int):byref:this]
        ; byrRegs +[rax]
        ; gcr arg pop 0
-       mov      r14, rax
-       ; byrRegs +[r14]
-       cmp      dword ptr [r14+0x10], ebp
+       mov      r15, rax
+       ; byrRegs +[r15]
+       cmp      dword ptr [r15+0x10], r14d
        jne      SHORT G_M65447_IG13
                        ;; size=37 bbWeight=4 PerfScore 45.00
-G_M65447_IG12:        ; bbWeight=2, gcrefRegs=2048 {rbx rsi r13}, byrefRegs=4000 {r14}, byref
+G_M65447_IG12:        ; bbWeight=2, gcrefRegs=1048 {rbx rsi r12}, byrefRegs=8000 {r15}, byref
        ; byrRegs -[rax]
-       mov      rdx, gword ptr [r14]
+       mov      rdx, gword ptr [r15]
        ; gcrRegs +[rdx]
-       mov      rcx, r13
+       mov      rcx, r12
        ; gcrRegs +[rcx]
        mov      r8, rsi
        ; gcrRegs +[r8]
-       mov      rax, qword ptr [r13]
+       mov      rax, qword ptr [r12]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x20]<unknown method>
        ; gcrRegs -[rcx rdx r8]
@@ -224,16 +224,16 @@ G_M65447_IG12:        ; bbWeight=2, gcrefRegs=2048 {rbx rsi r13}, byrefRegs=4000
        test     eax, eax
        jne      G_M65447_IG29
                        ;; size=28 bbWeight=2 PerfScore 21.50
-G_M65447_IG13:        ; bbWeight=4, gcrefRegs=2048 {rbx rsi r13}, byrefRegs=4000 {r14}, byref, isz
-       mov      r14d, dword ptr [r14+0x14]
-       ; byrRegs -[r14]
-       inc      r15d
-       cmp      r15d, dword ptr [rsp+0x48]
+G_M65447_IG13:        ; bbWeight=4, gcrefRegs=1048 {rbx rsi r12}, byrefRegs=8000 {r15}, byref, isz
+       mov      r15d, dword ptr [r15+0x14]
+       ; byrRegs -[r15]
+       inc      r13d
+       cmp      r13d, dword ptr [rsp+0x38]
        ja       G_M65447_IG34
        jmp      SHORT G_M65447_IG11
                        ;; size=20 bbWeight=4 PerfScore 29.00
 G_M65447_IG14:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r13] +[rbp]
+       ; gcrRegs -[r12] +[rbp]
        mov      rcx, qword ptr [rdi+0x38]
        mov      rcx, qword ptr [rcx]
        mov      r11, qword ptr [rcx+0x38]
@@ -280,7 +280,7 @@ G_M65447_IG17:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0
                        ;; size=81 bbWeight=0.50 PerfScore 14.62
 G_M65447_IG18:        ; bbWeight=0.50, nogc, extend
        vmovdqu  xmm0, xmmword ptr [rbx+0x48]
-       vmovdqu  xmmword ptr [rsp+0x30], xmm0
+       vmovdqu  xmmword ptr [rsp+0x20], xmm0
                        ;; size=11 bbWeight=0.50 PerfScore 2.50
 G_M65447_IG19:        ; bbWeight=0.50, isz, extend
        xor      r13d, r13d
@@ -288,8 +288,8 @@ G_M65447_IG19:        ; bbWeight=0.50, isz, extend
        mov      rcx, qword ptr [rdi+0x38]
        ; gcrRegs -[rcx]
        mov      rcx, qword ptr [rcx]
-       mov      r12, qword ptr [rcx+0x40]
-       test     r12, r12
+       mov      rax, qword ptr [rcx+0x40]
+       test     rax, rax
        je       SHORT G_M65447_IG21
                        ;; size=22 bbWeight=0.50 PerfScore 3.88
 G_M65447_IG20:        ; bbWeight=0.40, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
@@ -300,44 +300,44 @@ G_M65447_IG21:        ; bbWeight=0.10, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0
        mov      rdx, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        ; gcr arg pop 0
+                       ;; size=18 bbWeight=0.10 PerfScore 0.15
+G_M65447_IG22:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
        mov      r12, rax
-                       ;; size=21 bbWeight=0.10 PerfScore 0.18
-G_M65447_IG22:        ; bbWeight=4, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
-       cmp      r15d, dword ptr [rsp+0x38]
-       jae      G_M65447_IG31
+                       ;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M65447_IG23:        ; bbWeight=4, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+       cmp      r15d, dword ptr [rsp+0x28]
+       jae      SHORT G_M65447_IG31
        mov      rdx, r12
-       lea      rcx, [rsp+0x30]
+       lea      rcx, [rsp+0x20]
        mov      r8d, r15d
...

+24 (+6.58%) : 47234.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)

@@ -10,20 +10,20 @@
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <LinqBenchmarks>
-;  V01 loc0         [V01,T20] (  2,  4   )     ref  ->  rbp         class-hnd <System.Collections.Generic.List`1[Product]>
-;  V02 loc1         [V02,T16] (  3, 17   )     int  ->  rdi        
-;  V03 loc2         [V03,T14] (  3, 24   )     int  ->  rsi        
-;  V04 loc3         [V04,T06] (  9, 66   )     ref  ->  rbx         class-hnd exact <System.Collections.Generic.List`1[Product]>
-;  V05 loc4         [V05,T22] (  4,  1.03)  struct (24) [rsp+0xC8]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+;  V01 loc0         [V01,T21] (  2,  4   )     ref  ->  rbp         class-hnd <System.Collections.Generic.List`1[Product]>
+;  V02 loc1         [V02,T17] (  3, 17   )     int  ->  rdi        
+;  V03 loc2         [V03,T15] (  3, 24   )     int  ->  rsi        
+;  V04 loc3         [V04,T07] (  9, 66   )     ref  ->  rbx         class-hnd exact <System.Collections.Generic.List`1[Product]>
+;  V05 loc4         [V05,T23] (  4,  1.03)  struct (24) [rsp+0xD8]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
 ;* V06 loc5         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Product>
-;  V07 loc6         [V07,T23] (  1,  1   )  struct (24) [rsp+0xA8]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+;  V07 loc6         [V07,T24] (  1,  1   )  struct (24) [rsp+0xB8]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
 ;* V08 loc7         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Product>
 ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T18] (  3, 12   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[Product]>
-;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    "OSR entry state var"
+;  V10 tmp1         [V10,T19] (  3, 12   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[Product]>
+;  V11 tmp2         [V11,T05] (  3, 72.01)     int  ->  r14         "OSR entry state var"
 ;* V12 tmp3         [V12    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
-;  V13 tmp4         [V13,T13] (  3, 24   )     ref  ->  rcx         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V14 tmp5         [V14,T10] (  4, 32   )     int  ->  rdx         "Inline stloc first use temp"
+;  V13 tmp4         [V13,T14] (  3, 24   )     ref  ->  rcx         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V14 tmp5         [V14,T11] (  4, 32   )     int  ->  rdx         "Inline stloc first use temp"
 ;  V15 tmp6         [V15,T03] (  3, 80   )   ubyte  ->  rdx         "Inline return value spill temp"
 ;* V16 tmp7         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
 ;* V17 tmp8         [V17    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
@@ -32,50 +32,52 @@
 ;* V20 tmp11        [V20    ] (  0,  0   )     ref  ->  zero-ref    "field V12._list (fldOffset=0x0)" P-INDEP
 ;* V21 tmp12        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V12._current (fldOffset=0x8)" P-INDEP
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V12._index (fldOffset=0x10)" P-INDEP
-;  V23 tmp14        [V23,T21] (  2,  4   )     int  ->  r13         "field V12._version (fldOffset=0x14)" P-INDEP
+;  V23 tmp14        [V23,T22] (  2,  4   )     int  ->  r12         "field V12._version (fldOffset=0x14)" P-INDEP
 ;* V24 tmp15        [V24    ] (  0,  0   )     ref  ->  zero-ref    "field V17._list (fldOffset=0x0)" P-INDEP
 ;* V25 tmp16        [V25    ] (  0,  0   )     ref  ->  zero-ref    "field V17._current (fldOffset=0x8)" P-INDEP
 ;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V17._index (fldOffset=0x10)" P-INDEP
-;* V27 tmp18        [V27,T17] (  0,  0   )     int  ->  zero-ref    "field V17._version (fldOffset=0x14)" P-INDEP
-;  V28 tmp19        [V28,T02] (  5, 82.01)     ref  ->  r14         "V05.[000..008)"
-;  V29 tmp20        [V29,T09] (  5, 40   )     ref  ->   r8         "V05.[008..016)"
-;  V30 tmp21        [V30,T07] (  8, 50.01)     int  ->  r15         "V05.[016..020)"
-;  V31 tmp22        [V31,T05] (  3, 66.01)     int  ->  r13         "V05.[020..024)"
+;* V27 tmp18        [V27,T18] (  0,  0   )     int  ->  zero-ref    "field V17._version (fldOffset=0x14)" P-INDEP
+;  V28 tmp19        [V28,T02] (  5, 82.01)     ref  ->  r15         "V05.[000..008)"
+;  V29 tmp20        [V29,T10] (  5, 40   )     ref  ->   r8         "V05.[008..016)"
+;  V30 tmp21        [V30,T08] (  8, 50.01)     int  ->  r13         "V05.[016..020)"
+;  V31 tmp22        [V31,T06] (  3, 66.01)     int  ->  r12         "V05.[020..024)"
 ;  V32 tmp23        [V32,T01] (  4, 88   )     ref  ->  rbx         "V07.[000..008)"
 ;* V33 tmp24        [V33    ] (  0,  0   )     ref  ->  zero-ref    "V07.[008..016)"
 ;  V34 tmp25        [V34,T00] (  6,104   )     int  ->  rcx         "V07.[016..020)"
-;* V35 tmp26        [V35,T19] (  0,  0   )     int  ->  zero-ref    "V07.[020..024)"
-;  V36 tmp27        [V36,T08] (  3, 48   )     ref  ->  rdx         "arr expr"
-;  V37 tmp28        [V37,T12] (  2, 32   )     ref  ->  rax         "arr expr"
-;  V38 cse0         [V38,T11] (  2, 16   )     int  ->  rdx         multi-def "CSE - aggressive"
-;  V39 cse1         [V39,T15] (  3, 24   )     int  ->  rdx         "CSE - moderate"
+;* V35 tmp26        [V35,T20] (  0,  0   )     int  ->  zero-ref    "V07.[020..024)"
+;  V36 tmp27        [V36,T09] (  3, 48   )     ref  ->  rdx         "arr expr"
+;  V37 tmp28        [V37,T13] (  2, 32   )     ref  ->  rax         "arr expr"
+;  V38 cse0         [V38,T12] (  2, 16   )     int  ->  rdx         multi-def "CSE - aggressive"
+;  V39 cse1         [V39,T16] (  3, 24   )     int  ->  rdx         "CSE - moderate"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 40
 
 G_M25128_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 88
-       mov      qword ptr [rsp+0x128], r15
-       mov      qword ptr [rsp+0x120], r14
-       mov      qword ptr [rsp+0x118], r13
-       mov      qword ptr [rsp+0x110], rdi
-       mov      qword ptr [rsp+0x108], rsi
-       mov      qword ptr [rsp+0x100], rbx
-       mov      rbp, gword ptr [rsp+0xF0]
+       sub      rsp, 104
+       mov      qword ptr [rsp+0x138], r15
+       mov      qword ptr [rsp+0x130], r14
+       mov      qword ptr [rsp+0x128], r13
+       mov      qword ptr [rsp+0x120], r12
+       mov      qword ptr [rsp+0x118], rdi
+       mov      qword ptr [rsp+0x110], rsi
+       mov      qword ptr [rsp+0x108], rbx
+       mov      rbp, gword ptr [rsp+0x100]
        ; gcrRegs +[rbp]
-       mov      edi, dword ptr [rsp+0xEC]
-       mov      esi, dword ptr [rsp+0xE8]
-       mov      rbx, gword ptr [rsp+0xE0]
+       mov      edi, dword ptr [rsp+0xFC]
+       mov      esi, dword ptr [rsp+0xF8]
+       mov      rbx, gword ptr [rsp+0xF0]
        ; gcrRegs +[rbx]
-                       ;; size=82 bbWeight=0.01 PerfScore 0.14
+                       ;; size=90 bbWeight=0.01 PerfScore 0.15
 G_M25128_IG02:        ; bbWeight=0.01, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
-       mov      r14, gword ptr [rsp+0xC8]
-       ; gcrRegs +[r14]
-       mov      r15d, dword ptr [rsp+0xD8]
-       mov      r13d, dword ptr [rsp+0xDC]
-       jmp      SHORT G_M25128_IG06
-                       ;; size=26 bbWeight=0.01 PerfScore 0.05
-G_M25128_IG03:        ; bbWeight=2, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx r14]
+       xor      r14d, r14d
+       mov      r15, gword ptr [rsp+0xD8]
+       ; gcrRegs +[r15]
+       mov      r13d, dword ptr [rsp+0xE8]
+       mov      r12d, dword ptr [rsp+0xEC]
+       jmp      SHORT G_M25128_IG04
+                       ;; size=29 bbWeight=0.01 PerfScore 0.05
+G_M25128_IG03:        ; bbWeight=2, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx r15]
        mov      rcx, 0xD1FFAB1E      ; System.Collections.Generic.List`1[Product]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -84,16 +86,21 @@ G_M25128_IG03:        ; bbWeight=2, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rbx]
        mov      rax, 0xD1FFAB1E
        mov      gword ptr [rbx+0x08], rax
-       mov      r13d, dword ptr [rbp+0x14]
-       mov      r14, rbp
-       ; gcrRegs +[r14]
-       xor      r15d, r15d
-       jmp      SHORT G_M25128_IG06
-                       ;; size=44 bbWeight=2 PerfScore 14.50
-G_M25128_IG04:        ; bbWeight=8, gcrefRegs=4128 {rbx rbp r8 r14}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax] +[r8]
+       mov      r12d, dword ptr [rbp+0x14]
+       mov      r15, rbp
+       ; gcrRegs +[r15]
+       xor      r13d, r13d
+                       ;; size=42 bbWeight=2 PerfScore 10.50
+G_M25128_IG04:        ; bbWeight=8, gcrefRegs=8028 {rbx rbp r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rax]
+       test     r14d, r14d
+       je       SHORT G_M25128_IG07
+       jmp      SHORT G_M25128_IG07
+                       ;; size=7 bbWeight=8 PerfScore 26.00
+G_M25128_IG05:        ; bbWeight=8, gcrefRegs=8128 {rbx rbp r8 r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[r8]
        cmp      dword ptr [r8+0x1C], 0
-       jne      SHORT G_M25128_IG06
+       jne      SHORT G_M25128_IG07
        mov      edx, dword ptr [rbx+0x14]
        inc      edx
        mov      dword ptr [rbx+0x14], edx
@@ -101,16 +108,16 @@ G_M25128_IG04:        ; bbWeight=8, gcrefRegs=4128 {rbx rbp r8 r14}, byrefRegs=0
        ; gcrRegs +[rcx]
        mov      edx, dword ptr [rbx+0x10]
        cmp      dword ptr [rcx+0x08], edx
-       jbe      SHORT G_M25128_IG05
+       jbe      SHORT G_M25128_IG06
        lea      eax, [rdx+0x01]
        mov      dword ptr [rbx+0x10], eax
        movsxd   rdx, edx
        call     CORINFO_HELP_ARRADDR_ST
        ; gcrRegs -[rcx r8]
        ; gcr arg pop 0
-       jmp      SHORT G_M25128_IG06
+       jmp      SHORT G_M25128_IG07
                        ;; size=43 bbWeight=8 PerfScore 160.00
-G_M25128_IG05:        ; bbWeight=8, gcrefRegs=4128 {rbx rbp r8 r14}, byrefRegs=0000 {}, byref
+G_M25128_IG06:        ; bbWeight=8, gcrefRegs=8128 {rbx rbp r8 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs +[r8]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -120,103 +127,105 @@ G_M25128_IG05:        ; bbWeight=8, gcrefRegs=4128 {rbx rbp r8 r14}, byrefRegs=0
        ; gcrRegs -[rcx rdx r8]
        ; gcr arg pop 0
                        ;; size=12 bbWeight=8 PerfScore 28.00
-G_M25128_IG06:        ; bbWeight=64, gcrefRegs=4028 {rbx rbp r14}, byrefRegs=0000 {}, byref
-       cmp      r13d, dword ptr [r14+0x14]
-       jne      G_M25128_IG20
-                       ;; size=10 bbWeight=64 PerfScore 256.00
-G_M25128_IG07:        ; bbWeight=8, gcrefRegs=4028 {rbx rbp r14}, byrefRegs=0000 {}, byref, isz
-       mov      edx, dword ptr [r14+0x10]
-       cmp      r15d, edx
-       jae      SHORT G_M25128_IG08
-       mov      rdx, gword ptr [r14+0x08]
+G_M25128_IG07:        ; bbWeight=64, gcrefRegs=8028 {rbx rbp r15}, byrefRegs=0000 {}, byref
+       mov      r14d, 1
+       cmp      r12d, dword ptr [r15+0x14]
+       jne      G_M25128_IG21
+                       ;; size=16 bbWeight=64 PerfScore 272.00
+G_M25128_IG08:        ; bbWeight=8, gcrefRegs=8028 {rbx rbp r15}, byrefRegs=0000 {}, byref, isz
+       mov      edx, dword ptr [r15+0x10]
+       cmp      r13d, edx
+       jae      SHORT G_M25128_IG09
+       mov      rdx, gword ptr [r15+0x08]
        ; gcrRegs +[rdx]
-       cmp      r15d, dword ptr [rdx+0x08]
-       jae      SHORT G_M25128_IG19
-       mov      ecx, r15d
+       cmp      r13d, dword ptr [rdx+0x08]
+       jae      SHORT G_M25128_IG20
+       mov      ecx, r13d
        mov      r8, gword ptr [rdx+8*rcx+0x10]
        ; gcrRegs +[r8]
-       inc      r15d
+       inc      r13d
        mov      edx, 1
        ; gcrRegs -[rdx]
-       jmp      SHORT G_M25128_IG09
+       jmp      SHORT G_M25128_IG10
                        ;; size=37 bbWeight=8 PerfScore 112.00
-G_M25128_IG08:        ; bbWeight=8, gcrefRegs=4028 {rbx rbp r14}, byrefRegs=0000 {}, byref
+G_M25128_IG09:        ; bbWeight=8, gcrefRegs=8028 {rbx rbp r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r8]
-       lea      r15d, [rdx+0x01]
+       lea      r13d, [rdx+0x01]
        xor      r8, r8
        ; gcrRegs +[r8]
        xor      edx, edx
                        ;; size=9 bbWeight=8 PerfScore 8.00
-G_M25128_IG09:        ; bbWeight=64, gcrefRegs=4128 {rbx rbp r8 r14}, byrefRegs=0000 {}, byref, isz
+G_M25128_IG10:        ; bbWeight=64, gcrefRegs=8128 {rbx rbp r8 r15}, byrefRegs=0000 {}, byref, isz
        test     edx, edx
-       jne      SHORT G_M25128_IG04
+       jne      SHORT G_M25128_IG05
                        ;; size=4 bbWeight=64 PerfScore 80.00
-G_M25128_IG10:        ; bbWeight=8, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r8 r14]
+G_M25128_IG11:        ; bbWeight=8, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[r8 r15]
        mov      ecx, dword ptr [rbx+0x14]
        xor      ecx, ecx
-       jmp      SHORT G_M25128_IG12
+       jmp      SHORT G_M25128_IG13
                        ;; size=7 bbWeight=8 PerfScore 34.00
-G_M25128_IG11:        ; bbWeight=8, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
+G_M25128_IG12:        ; bbWeight=8, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
        inc      edi
                        ;; size=2 bbWeight=8 PerfScore 2.00
-G_M25128_IG12:        ; bbWeight=64, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+G_M25128_IG13:        ; bbWeight=64, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
        cmp      ecx, dword ptr [rbx+0x10]
-       jae      SHORT G_M25128_IG14
+       jae      SHORT G_M25128_IG15
                        ;; size=5 bbWeight=64 PerfScore 256.00
-G_M25128_IG13:        ; bbWeight=8, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+G_M25128_IG14:        ; bbWeight=8, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
        mov      rax, gword ptr [rbx+0x08]
        ; gcrRegs +[rax]
        cmp      ecx, dword ptr [rax+0x08]
-       jae      SHORT G_M25128_IG19
+       jae      SHORT G_M25128_IG20
        inc      ecx
        mov      eax, 1
        ; gcrRegs -[rax]
...

+13 (+7.39%) : 8673.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)

@@ -10,117 +10,123 @@
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <LinqBenchmarks>
-;  V01 loc0         [V01,T09] (  2,  4   )     ref  ->  rdx         class-hnd <System.Collections.Generic.List`1[Product]>
-;  V02 loc1         [V02,T08] (  3, 17   )     int  ->  rcx        
-;  V03 loc2         [V03,T06] (  3, 24   )     int  ->  rax        
-;  V04 loc3         [V04,T11] (  4,  1.03)  struct (24) [rsp+0x70]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+;  V01 loc0         [V01,T11] (  2,  4   )     ref  ->  rdx         class-hnd <System.Collections.Generic.List`1[Product]>
+;  V02 loc1         [V02,T10] (  3, 17   )     int  ->  rcx        
+;  V03 loc2         [V03,T08] (  3, 24   )     int  ->  rax        
+;  V04 loc3         [V04,T13] (  4,  1.03)  struct (24) [rsp+0x80]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
 ;* V05 loc4         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Product>
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V07 tmp1         [V07    ] (  0,  0   )     int  ->  zero-ref    "OSR entry state var"
+;* V07 tmp1         [V07,T03] (  0,  0   )     int  ->  zero-ref    "OSR entry state var"
 ;* V08 tmp2         [V08    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
-;  V09 tmp3         [V09,T01] (  3, 80   )   ubyte  ->  rbx         "Inline return value spill temp"
+;  V09 tmp3         [V09,T00] (  3, 80   )   ubyte  ->  rsi         "Inline return value spill temp"
 ;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
 ;* V11 tmp5         [V11    ] (  0,  0   )     ref  ->  zero-ref    "field V08._list (fldOffset=0x0)" P-INDEP
 ;* V12 tmp6         [V12    ] (  0,  0   )     ref  ->  zero-ref    "field V08._current (fldOffset=0x8)" P-INDEP
 ;* V13 tmp7         [V13    ] (  0,  0   )     int  ->  zero-ref    "field V08._index (fldOffset=0x10)" P-INDEP
-;  V14 tmp8         [V14,T10] (  2,  4   )     int  ->   r9         "field V08._version (fldOffset=0x14)" P-INDEP
-;  V15 tmp9         [V15,T00] (  5, 82.01)     ref  ->   r8         "V04.[000..008)"
-;  V16 tmp10        [V16,T05] (  3, 24   )     ref  ->  r11         "V04.[008..016)"
-;  V17 tmp11        [V17,T03] (  8, 50.01)     int  ->  r10         "V04.[016..020)"
+;  V14 tmp8         [V14,T12] (  2,  4   )     int  ->   r9         "field V08._version (fldOffset=0x14)" P-INDEP
+;  V15 tmp9         [V15,T06] (  5, 26.01)     ref  ->   r8         "V04.[000..008)"
+;  V16 tmp10        [V16,T07] (  3, 24   )     ref  ->  rbx         "V04.[008..016)"
+;  V17 tmp11        [V17,T04] (  8, 50.01)     int  ->  r10         "V04.[016..020)"
 ;  V18 tmp12        [V18,T02] (  3, 66.01)     int  ->   r9         "V04.[020..024)"
-;  V19 tmp13        [V19,T04] (  3, 48   )     ref  ->  r11         "arr expr"
-;  V20 cse0         [V20,T07] (  3, 24   )     int  ->  r11         "CSE - aggressive"
+;  V19 tmp13        [V19,T05] (  3, 48   )     ref  ->  rbx         "arr expr"
+;  V20 cse0         [V20,T01] (  2, 72   )     int  ->  r11         hoist "CSE - aggressive"
+;  V21 cse1         [V21,T09] (  3, 24   )     int  ->  rbx         "CSE - aggressive"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 40
 
 G_M51974_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 40
-       mov      qword ptr [rsp+0xC8], rbx
-       mov      rdx, gword ptr [rsp+0x90]
+       sub      rsp, 56
+       mov      qword ptr [rsp+0xD8], rsi
+       mov      qword ptr [rsp+0xD0], rbx
+       mov      rdx, gword ptr [rsp+0xA0]
        ; gcrRegs +[rdx]
-       mov      ecx, dword ptr [rsp+0x8C]
-       mov      eax, dword ptr [rsp+0x88]
-                       ;; size=34 bbWeight=0.01 PerfScore 0.07
+       mov      ecx, dword ptr [rsp+0x9C]
+       mov      eax, dword ptr [rsp+0x98]
+                       ;; size=42 bbWeight=0.01 PerfScore 0.08
 G_M51974_IG02:        ; bbWeight=0.01, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
-       mov      r8, gword ptr [rsp+0x70]
+       mov      r8, gword ptr [rsp+0x80]
        ; gcrRegs +[r8]
-       mov      r10d, dword ptr [rsp+0x80]
-       mov      r9d, dword ptr [rsp+0x84]
-       jmp      SHORT G_M51974_IG05
-                       ;; size=23 bbWeight=0.01 PerfScore 0.05
-G_M51974_IG03:        ; bbWeight=2, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
+       mov      r10d, dword ptr [rsp+0x90]
+       mov      r9d, dword ptr [rsp+0x94]
+       jmp      SHORT G_M51974_IG04
+                       ;; size=26 bbWeight=0.01 PerfScore 0.05
+G_M51974_IG03:        ; bbWeight=2, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r8]
        mov      r9d, dword ptr [rdx+0x14]
        mov      r8, rdx
        ; gcrRegs +[r8]
        xor      r10d, r10d
-       jmp      SHORT G_M51974_IG05
-                       ;; size=12 bbWeight=2 PerfScore 9.00
-G_M51974_IG04:        ; bbWeight=8, gcrefRegs=0904 {rdx r8 r11}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[r11]
-       cmp      dword ptr [r11+0x1C], 0
-       jne      SHORT G_M51974_IG05
+                       ;; size=10 bbWeight=2 PerfScore 5.00
+G_M51974_IG04:        ; bbWeight=8, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
+       mov      r11d, dword ptr [r8+0x14]
+       jmp      SHORT G_M51974_IG06
+                       ;; size=6 bbWeight=8 PerfScore 32.00
+G_M51974_IG05:        ; bbWeight=8, gcrefRegs=010C {rdx rbx r8}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[rbx]
+       cmp      dword ptr [rbx+0x1C], 0
+       jne      SHORT G_M51974_IG06
        inc      ecx
-                       ;; size=9 bbWeight=8 PerfScore 34.00
-G_M51974_IG05:        ; bbWeight=64, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r11]
-       cmp      r9d, dword ptr [r8+0x14]
-       jne      SHORT G_M51974_IG13
-                       ;; size=6 bbWeight=64 PerfScore 256.00
-G_M51974_IG06:        ; bbWeight=8, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
-       mov      r11d, dword ptr [r8+0x10]
-       cmp      r10d, r11d
-       jae      SHORT G_M51974_IG07
-       mov      r11, gword ptr [r8+0x08]
-       ; gcrRegs +[r11]
-       cmp      r10d, dword ptr [r11+0x08]
-       jae      SHORT G_M51974_IG12
-       mov      ebx, r10d
-       mov      r11, gword ptr [r11+8*rbx+0x10]
+                       ;; size=8 bbWeight=8 PerfScore 34.00
+G_M51974_IG06:        ; bbWeight=64, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rbx]
+       cmp      r9d, r11d
+       jne      SHORT G_M51974_IG14
+                       ;; size=5 bbWeight=64 PerfScore 80.00
+G_M51974_IG07:        ; bbWeight=8, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
+       mov      ebx, dword ptr [r8+0x10]
+       cmp      r10d, ebx
+       jae      SHORT G_M51974_IG08
+       mov      rbx, gword ptr [r8+0x08]
+       ; gcrRegs +[rbx]
+       cmp      r10d, dword ptr [rbx+0x08]
+       jae      SHORT G_M51974_IG13
+       mov      esi, r10d
+       mov      rbx, gword ptr [rbx+8*rsi+0x10]
        inc      r10d
-       mov      ebx, 1
-       jmp      SHORT G_M51974_IG08
+       mov      esi, 1
+       jmp      SHORT G_M51974_IG09
                        ;; size=37 bbWeight=8 PerfScore 112.00
-G_M51974_IG07:        ; bbWeight=8, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[r11]
-       lea      r10d, [r11+0x01]
-       xor      r11, r11
-       ; gcrRegs +[r11]
-       xor      ebx, ebx
-                       ;; size=9 bbWeight=8 PerfScore 8.00
-G_M51974_IG08:        ; bbWeight=64, gcrefRegs=0904 {rdx r8 r11}, byrefRegs=0000 {}, byref, isz
-       test     ebx, ebx
-       jne      SHORT G_M51974_IG04
+G_M51974_IG08:        ; bbWeight=8, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx]
+       lea      r10d, [rbx+0x01]
+       xor      rbx, rbx
+       ; gcrRegs +[rbx]
+       xor      esi, esi
+                       ;; size=8 bbWeight=8 PerfScore 8.00
+G_M51974_IG09:        ; bbWeight=64, gcrefRegs=010C {rdx rbx r8}, byrefRegs=0000 {}, byref, isz
+       test     esi, esi
+       jne      SHORT G_M51974_IG05
                        ;; size=4 bbWeight=64 PerfScore 80.00
-G_M51974_IG09:        ; bbWeight=8, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r8 r11]
+G_M51974_IG10:        ; bbWeight=8, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rbx r8]
        inc      eax
        cmp      eax, 0xD1FFAB1E
        jl       SHORT G_M51974_IG03
                        ;; size=9 bbWeight=8 PerfScore 12.00
-G_M51974_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M51974_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        xor      eax, eax
        cmp      ecx, 0xD1FFAB1E
        sete     al
                        ;; size=11 bbWeight=1 PerfScore 1.50
-G_M51974_IG11:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 200
+G_M51974_IG12:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 208
        pop      rbx
+       pop      rsi
        pop      rbp
        ret      
-                       ;; size=10 bbWeight=1 PerfScore 2.25
-G_M51974_IG12:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=11 bbWeight=1 PerfScore 2.75
+G_M51974_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M51974_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M51974_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
        ; gcr arg pop 0
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 176, prolog size 34, PerfScore 514.87, instruction count 47, allocated bytes for code 176 (MethodHash=877634f9) for method LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
+; Total bytes of code 189, prolog size 42, PerfScore 367.38, instruction count 50, allocated bytes for code 189 (MethodHash=877634f9) for method LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
@@ -128,14 +134,16 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x0C
-  CountOfUnwindCodes: 6
+  SizeOfProlog      : 0x14
+  CountOfUnwindCodes: 8
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x0C UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rbx (3)
-      Scaled Small Offset: 25 * 8 = 200 = 0x000C8
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
+    CodeOffset: 0x14 UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rbx (3)
+      Scaled Small Offset: 26 * 8 = 208 = 0x000D0
+    CodeOffset: 0x0C UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rsi (6)
+      Scaled Small Offset: 27 * 8 = 216 = 0x000D8
+    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
     CodeOffset: 0x00 UnwindOp: UWOP_ALLOC_LARGE (1)     OpInfo: 0 - Scaled small  
       Size: 21 * 8 = 168 = 0x000A8
     CodeOffset: 0x00 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+18 (+11.54%) : 31594.dasm - PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)

@@ -10,110 +10,116 @@
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <PerfLabTests.LowLevelPerf>
-;  V01 loc0         [V01,T09] (  2,  4   )     ref  ->  rdx         class-hnd <System.Collections.Generic.List`1[int]>
-;  V02 loc1         [V02,T08] (  2,  9   )     int  ->  rcx        
-;  V03 loc2         [V03,T05] (  3, 24   )     int  ->  rax        
-;  V04 loc3         [V04,T11] (  4,  1.03)  struct (24) [rsp+0x70]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[int]>
+;  V01 loc0         [V01,T11] (  2,  4   )     ref  ->  rdx         class-hnd <System.Collections.Generic.List`1[int]>
+;  V02 loc1         [V02,T10] (  2,  9   )     int  ->  rcx        
+;  V03 loc2         [V03,T07] (  3, 24   )     int  ->  rax        
+;  V04 loc3         [V04,T13] (  4,  1.03)  struct (24) [rsp+0x80]  do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[int]>
 ;* V05 loc4         [V05    ] (  0,  0   )     int  ->  zero-ref   
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V07 tmp1         [V07    ] (  0,  0   )     int  ->  zero-ref    "OSR entry state var"
+;* V07 tmp1         [V07,T03] (  0,  0   )     int  ->  zero-ref    "OSR entry state var"
 ;* V08 tmp2         [V08    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[int]>
-;  V09 tmp3         [V09,T01] (  3, 80   )   ubyte  ->  rbx         "Inline return value spill temp"
+;  V09 tmp3         [V09,T00] (  3, 80   )   ubyte  ->  rsi         "Inline return value spill temp"
 ;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[int]>
 ;* V11 tmp5         [V11    ] (  0,  0   )     ref  ->  zero-ref    "field V08._list (fldOffset=0x0)" P-INDEP
 ;* V12 tmp6         [V12    ] (  0,  0   )     int  ->  zero-ref    "field V08._index (fldOffset=0x8)" P-INDEP
-;  V13 tmp7         [V13,T10] (  2,  4   )     int  ->   r9         "field V08._version (fldOffset=0xc)" P-INDEP
+;  V13 tmp7         [V13,T12] (  2,  4   )     int  ->   r9         "field V08._version (fldOffset=0xc)" P-INDEP
 ;* V14 tmp8         [V14    ] (  0,  0   )     int  ->  zero-ref    "field V08._current (fldOffset=0x10)" P-INDEP
-;  V15 tmp9         [V15,T00] (  5, 82.01)     ref  ->   r8         "V04.[000..008)"
-;  V16 tmp10        [V16,T03] (  8, 50.01)     int  ->  r10         "V04.[008..012)"
+;  V15 tmp9         [V15,T06] (  5, 26.01)     ref  ->   r8         "V04.[000..008)"
+;  V16 tmp10        [V16,T04] (  8, 50.01)     int  ->  r10         "V04.[008..012)"
 ;  V17 tmp11        [V17,T02] (  3, 66.01)     int  ->   r9         "V04.[012..016)"
-;  V18 tmp12        [V18,T06] (  3, 24   )     int  ->  r11         "V04.[016..020)"
-;  V19 tmp13        [V19,T04] (  3, 48   )     ref  ->  r11         "arr expr"
-;  V20 cse0         [V20,T07] (  3, 24   )     int  ->  r11         "CSE - aggressive"
+;  V18 tmp12        [V18,T08] (  3, 24   )     int  ->  rbx         "V04.[016..020)"
+;  V19 tmp13        [V19,T05] (  3, 48   )     ref  ->  rbx         "arr expr"
+;  V20 cse0         [V20,T01] (  2, 72   )     int  ->  r11         hoist "CSE - aggressive"
+;  V21 cse1         [V21,T09] (  3, 24   )     int  ->  rbx         "CSE - aggressive"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 40
 
 G_M6486_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 40
-       mov      qword ptr [rsp+0xC8], rbx
-       mov      rdx, gword ptr [rsp+0x90]
+       sub      rsp, 56
+       mov      qword ptr [rsp+0xD8], rsi
+       mov      qword ptr [rsp+0xD0], rbx
+       mov      rdx, gword ptr [rsp+0xA0]
        ; gcrRegs +[rdx]
-       mov      ecx, dword ptr [rsp+0x8C]
-       mov      eax, dword ptr [rsp+0x88]
-                       ;; size=34 bbWeight=0.01 PerfScore 0.07
+       mov      ecx, dword ptr [rsp+0x9C]
+       mov      eax, dword ptr [rsp+0x98]
+                       ;; size=42 bbWeight=0.01 PerfScore 0.08
 G_M6486_IG02:        ; bbWeight=0.01, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
-       mov      r8, gword ptr [rsp+0x70]
+       mov      r8, gword ptr [rsp+0x80]
        ; gcrRegs +[r8]
-       mov      r10d, dword ptr [rsp+0x78]
-       mov      r9d, dword ptr [rsp+0x7C]
-       jmp      SHORT G_M6486_IG05
-                       ;; size=17 bbWeight=0.01 PerfScore 0.05
-G_M6486_IG03:        ; bbWeight=2, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
+       mov      r10d, dword ptr [rsp+0x88]
+       mov      r9d, dword ptr [rsp+0x8C]
+       jmp      SHORT G_M6486_IG04
+                       ;; size=26 bbWeight=0.01 PerfScore 0.05
+G_M6486_IG03:        ; bbWeight=2, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r8]
        mov      r9d, dword ptr [rdx+0x14]
        mov      r8, rdx
        ; gcrRegs +[r8]
        xor      r10d, r10d
-       jmp      SHORT G_M6486_IG05
-                       ;; size=12 bbWeight=2 PerfScore 9.00
-G_M6486_IG04:        ; bbWeight=8, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
-       mov      ecx, r11d
-                       ;; size=3 bbWeight=8 PerfScore 2.00
-G_M6486_IG05:        ; bbWeight=64, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
-       cmp      r9d, dword ptr [r8+0x14]
-       jne      SHORT G_M6486_IG13
-                       ;; size=6 bbWeight=64 PerfScore 256.00
-G_M6486_IG06:        ; bbWeight=8, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
-       mov      r11d, dword ptr [r8+0x10]
-       cmp      r10d, r11d
-       jae      SHORT G_M6486_IG07
-       mov      r11, gword ptr [r8+0x08]
-       ; gcrRegs +[r11]
-       cmp      r10d, dword ptr [r11+0x08]
-       jae      SHORT G_M6486_IG12
-       mov      ebx, r10d
-       mov      r11d, dword ptr [r11+4*rbx+0x10]
-       ; gcrRegs -[r11]
+                       ;; size=10 bbWeight=2 PerfScore 5.00
+G_M6486_IG04:        ; bbWeight=8, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
+       mov      r11d, dword ptr [r8+0x14]
+       jmp      SHORT G_M6486_IG06
+                       ;; size=6 bbWeight=8 PerfScore 32.00
+G_M6486_IG05:        ; bbWeight=8, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
+       mov      ecx, ebx
+                       ;; size=2 bbWeight=8 PerfScore 2.00
+G_M6486_IG06:        ; bbWeight=64, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
+       cmp      r9d, r11d
+       jne      SHORT G_M6486_IG14
+                       ;; size=5 bbWeight=64 PerfScore 80.00
+G_M6486_IG07:        ; bbWeight=8, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
+       mov      ebx, dword ptr [r8+0x10]
+       cmp      r10d, ebx
+       jae      SHORT G_M6486_IG08
+       mov      rbx, gword ptr [r8+0x08]
+       ; gcrRegs +[rbx]
+       cmp      r10d, dword ptr [rbx+0x08]
+       jae      SHORT G_M6486_IG13
+       mov      esi, r10d
+       mov      ebx, dword ptr [rbx+4*rsi+0x10]
+       ; gcrRegs -[rbx]
        inc      r10d
-       mov      ebx, 1
-       jmp      SHORT G_M6486_IG08
-                       ;; size=37 bbWeight=8 PerfScore 112.00
-G_M6486_IG07:        ; bbWeight=8, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
-       lea      r10d, [r11+0x01]
-       xor      r11d, r11d
+       mov      esi, 1
+       jmp      SHORT G_M6486_IG09
+                       ;; size=36 bbWeight=8 PerfScore 112.00
+G_M6486_IG08:        ; bbWeight=8, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
+       lea      r10d, [rbx+0x01]
        xor      ebx, ebx
-                       ;; size=9 bbWeight=8 PerfScore 8.00
-G_M6486_IG08:        ; bbWeight=64, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
-       test     ebx, ebx
-       jne      SHORT G_M6486_IG04
+       xor      esi, esi
+                       ;; size=8 bbWeight=8 PerfScore 8.00
+G_M6486_IG09:        ; bbWeight=64, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
+       test     esi, esi
+       jne      SHORT G_M6486_IG05
                        ;; size=4 bbWeight=64 PerfScore 80.00
-G_M6486_IG09:        ; bbWeight=8, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
+G_M6486_IG10:        ; bbWeight=8, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[r8]
        inc      eax
        cmp      eax, dword ptr [(reloc)]      ; static handle
        jl       SHORT G_M6486_IG03
                        ;; size=10 bbWeight=8 PerfScore 34.00
-G_M6486_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M6486_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        mov      eax, ecx
                        ;; size=2 bbWeight=1 PerfScore 0.25
-G_M6486_IG11:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 200
+G_M6486_IG12:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 208
        pop      rbx
+       pop      rsi
        pop      rbp
        ret      
-                       ;; size=10 bbWeight=1 PerfScore 2.25
-G_M6486_IG12:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=11 bbWeight=1 PerfScore 2.75
+G_M6486_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M6486_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M6486_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
        ; gcr arg pop 0
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 156, prolog size 34, PerfScore 503.62, instruction count 43, allocated bytes for code 156 (MethodHash=b0f1e6a9) for method PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
+; Total bytes of code 174, prolog size 42, PerfScore 356.13, instruction count 46, allocated bytes for code 174 (MethodHash=b0f1e6a9) for method PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
@@ -121,14 +127,16 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x0C
-  CountOfUnwindCodes: 6
+  SizeOfProlog      : 0x14
+  CountOfUnwindCodes: 8
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x0C UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rbx (3)
-      Scaled Small Offset: 25 * 8 = 200 = 0x000C8
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
+    CodeOffset: 0x14 UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rbx (3)
+      Scaled Small Offset: 26 * 8 = 208 = 0x000D0
+    CodeOffset: 0x0C UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rsi (6)
+      Scaled Small Offset: 27 * 8 = 216 = 0x000D8
+    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
     CodeOffset: 0x00 UnwindOp: UWOP_ALLOC_LARGE (1)     OpInfo: 0 - Scaled small  
       Size: 21 * 8 = 168 = 0x000A8
     CodeOffset: 0x00 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

coreclr_tests.run.windows.x64.checked.mch

-12 (-13.48%) : 476520.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)

@@ -36,69 +36,49 @@
 ;
 ; Lcl frame size = 40
 
-G_M34829_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M34829_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        sub      rsp, 40
                        ;; size=4 bbWeight=1 PerfScore 0.25
 G_M34829_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        movzx    rcx, cx
        cmp      ecx, 256
-       jb       SHORT G_M34829_IG05
+       jae      SHORT G_M34829_IG09
                        ;; size=11 bbWeight=1 PerfScore 1.50
-G_M34829_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategory(int):int]
-       ; gcr arg pop 0
-                       ;; size=6 bbWeight=0 PerfScore 0.00
-G_M34829_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       add      eax, -8
-       cmp      eax, 16
-       ja       SHORT G_M34829_IG08
-       lea      rcx, [reloc @RWD00]
-       mov      ecx, dword ptr [rcx+4*rax]
-       lea      rdx, G_M34829_IG02
-       add      rcx, rdx
-       jmp      rcx
-                       ;; size=30 bbWeight=1 PerfScore 7.25
-G_M34829_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M34829_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      eax, ecx
        mov      rcx, 0xD1FFAB1E      ; static handle
        movzx    rax, byte  ptr [rax+rcx]
        and      eax, 31
-       jmp      SHORT G_M34829_IG04
-                       ;; size=21 bbWeight=0.50 PerfScore 2.38
-G_M34829_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+                       ;; size=19 bbWeight=0.50 PerfScore 1.38
+G_M34829_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       add      eax, -8
+       cmp      eax, 16
+       ja       SHORT G_M34829_IG07
+       mov      ecx, 0x1FC7D
+       bt       ecx, eax
+       jae      SHORT G_M34829_IG07
+                       ;; size=18 bbWeight=1 PerfScore 3.25
+G_M34829_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M34829_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M34829_IG06:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 40
        ret      
                        ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M34829_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M34829_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        mov      eax, 1
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M34829_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+G_M34829_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 40
        ret      
                        ;; size=5 bbWeight=0.50 PerfScore 0.62
-RWD00      dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
+G_M34829_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategory(int):int]
+       ; gcr arg pop 0
+       jmp      SHORT G_M34829_IG04
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-
-; Total bytes of code 89, prolog size 4, PerfScore 12.88, instruction count 24, allocated bytes for code 89 (MethodHash=b88877f2) for method System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
+; Total bytes of code 77, prolog size 4, PerfScore 7.88, instruction count 22, allocated bytes for code 77 (MethodHash=b88877f2) for method System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:

-43 (-10.31%) : 499461.dasm - Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)

@@ -132,78 +132,22 @@ G_M40374_IG02:        ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        cmp      rsi, rbx
-       je       SHORT G_M40374_IG05
+       je       SHORT G_M40374_IG07
                        ;; size=130 bbWeight=1 PerfScore 36.00
-G_M40374_IG03:        ; bbWeight=0.44, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
+G_M40374_IG03:        ; bbWeight=0.44, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        test     rsi, rsi
-       je       G_M40374_IG21
-                       ;; size=9 bbWeight=0.44 PerfScore 0.55
-G_M40374_IG04:        ; bbWeight=0.44, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M40374_IG14
-                       ;; size=2 bbWeight=0.44 PerfScore 0.87
-G_M40374_IG05:        ; bbWeight=0.50, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rsi]
-       cmp      rdi, rbx
-       je       SHORT G_M40374_IG08
-                       ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M40374_IG06:        ; bbWeight=0.44, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref
-       test     rdi, rdi
-       je       G_M40374_IG21
-                       ;; size=9 bbWeight=0.44 PerfScore 0.55
-G_M40374_IG07:        ; bbWeight=0.44, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref
-       jmp      G_M40374_IG17
-                       ;; size=5 bbWeight=0.44 PerfScore 0.87
-G_M40374_IG08:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rdi]
-       cmp      rbp, rbx
-       je       SHORT G_M40374_IG13
-                       ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M40374_IG09:        ; bbWeight=0.44, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
-       test     rbp, rbp
-       je       G_M40374_IG21
-                       ;; size=9 bbWeight=0.44 PerfScore 0.55
-G_M40374_IG10:        ; bbWeight=0.44, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
-       test     rbx, rbx
-       je       G_M40374_IG21
-                       ;; size=9 bbWeight=0.44 PerfScore 0.55
-G_M40374_IG11:        ; bbWeight=0.44, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
-       mov      r8d, dword ptr [rbp+0x08]
-       cmp      r8d, dword ptr [rbx+0x08]
-       jne      G_M40374_IG21
-                       ;; size=14 bbWeight=0.44 PerfScore 2.62
-G_M40374_IG12:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
-       lea      rcx, bword ptr [rbp+0x0C]
-       ; byrRegs +[rcx]
-       mov      r8d, dword ptr [rbp+0x08]
-       add      r8d, r8d
-       lea      rdx, bword ptr [rbx+0x0C]
-       ; byrRegs +[rdx]
-       call     [<unknown method>]
-       ; gcrRegs -[rbx rbp]
-       ; byrRegs -[rcx rdx]
-       ; gcr arg pop 0
-       test     eax, eax
-       je       G_M40374_IG21
-                       ;; size=29 bbWeight=0.50 PerfScore 3.75
-G_M40374_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       xor      ecx, ecx
-       cmp      r14d, 2
-       setne    cl
-       test     cl, cl
-       jne      SHORT G_M40374_IG21
-       jmp      SHORT G_M40374_IG20
-                       ;; size=15 bbWeight=0.50 PerfScore 2.38
-G_M40374_IG14:        ; bbWeight=0.44, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx rbp rsi rdi]
-       test     rbx, rbx
-       je       SHORT G_M40374_IG21
+       je       SHORT G_M40374_IG12
                        ;; size=5 bbWeight=0.44 PerfScore 0.55
-G_M40374_IG15:        ; bbWeight=0.44, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M40374_IG04:        ; bbWeight=0.44, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+       test     rbx, rbx
+       je       SHORT G_M40374_IG12
+                       ;; size=5 bbWeight=0.44 PerfScore 0.55
+G_M40374_IG05:        ; bbWeight=0.44, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      r8d, dword ptr [rsi+0x08]
        cmp      r8d, dword ptr [rbx+0x08]
-       jne      SHORT G_M40374_IG21
+       jne      SHORT G_M40374_IG12
                        ;; size=10 bbWeight=0.44 PerfScore 2.62
-G_M40374_IG16:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M40374_IG06:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        lea      rcx, bword ptr [rsi+0x0C]
        ; byrRegs +[rcx]
        mov      r8d, dword ptr [rsi+0x08]
@@ -215,19 +159,26 @@ G_M40374_IG16:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRe
        ; byrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M40374_IG21
-       jmp      G_M40374_IG05
-                       ;; size=30 bbWeight=0.50 PerfScore 4.75
-G_M40374_IG17:        ; bbWeight=0.44, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref, isz
-       test     rbx, rbx
-       je       SHORT G_M40374_IG21
+       je       SHORT G_M40374_IG12
+                       ;; size=25 bbWeight=0.50 PerfScore 3.75
+G_M40374_IG07:        ; bbWeight=0.50, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref, isz
+       cmp      rdi, rbx
+       je       SHORT G_M40374_IG14
+                       ;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M40374_IG08:        ; bbWeight=0.44, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref, isz
+       test     rdi, rdi
+       je       SHORT G_M40374_IG12
                        ;; size=5 bbWeight=0.44 PerfScore 0.55
-G_M40374_IG18:        ; bbWeight=0.44, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref, isz
+G_M40374_IG09:        ; bbWeight=0.44, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref, isz
+       test     rbx, rbx
+       je       SHORT G_M40374_IG12
+                       ;; size=5 bbWeight=0.44 PerfScore 0.55
+G_M40374_IG10:        ; bbWeight=0.44, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref, isz
        mov      r8d, dword ptr [rdi+0x08]
        cmp      r8d, dword ptr [rbx+0x08]
-       jne      SHORT G_M40374_IG21
+       jne      SHORT G_M40374_IG12
                        ;; size=10 bbWeight=0.44 PerfScore 2.62
-G_M40374_IG19:        ; bbWeight=0.50, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref, isz
+G_M40374_IG11:        ; bbWeight=0.50, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref, isz
        lea      rcx, bword ptr [rdi+0x0C]
        ; byrRegs +[rcx]
        mov      r8d, dword ptr [rdi+0x08]
@@ -239,20 +190,10 @@ G_M40374_IG19:        ; bbWeight=0.50, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0
        ; byrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M40374_IG21
-       jmp      G_M40374_IG08
-                       ;; size=30 bbWeight=0.50 PerfScore 4.75
-G_M40374_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       jne      SHORT G_M40374_IG14
+                       ;; size=25 bbWeight=0.50 PerfScore 3.75
+G_M40374_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx rbp]
-       mov      rcx, 0xD1FFAB1E
-       ; gcrRegs +[rcx]
-       call     [<unknown method>]
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-       xor      eax, eax
-       jmp      SHORT G_M40374_IG22
-                       ;; size=20 bbWeight=0.50 PerfScore 2.75
-G_M40374_IG21:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        call     [<unknown method>]
@@ -260,7 +201,7 @@ G_M40374_IG21:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ; gcr arg pop 0
        mov      eax, 1
                        ;; size=21 bbWeight=0.50 PerfScore 1.75
-G_M40374_IG22:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M40374_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        add      rsp, 40
        pop      rbx
        pop      rbp
@@ -270,8 +211,54 @@ G_M40374_IG22:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        pop      r15
        ret      
                        ;; size=13 bbWeight=1 PerfScore 4.25
+G_M40374_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs +[rbx rbp]
+       cmp      rbp, rbx
+       je       SHORT G_M40374_IG19
+                       ;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M40374_IG15:        ; bbWeight=0.44, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+       test     rbp, rbp
+       je       SHORT G_M40374_IG12
+                       ;; size=5 bbWeight=0.44 PerfScore 0.55
+G_M40374_IG16:        ; bbWeight=0.44, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+       test     rbx, rbx
+       je       SHORT G_M40374_IG12
+                       ;; size=5 bbWeight=0.44 PerfScore 0.55
+G_M40374_IG17:        ; bbWeight=0.44, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+       mov      r8d, dword ptr [rbp+0x08]
+       cmp      r8d, dword ptr [rbx+0x08]
+       jne      SHORT G_M40374_IG12
+                       ;; size=10 bbWeight=0.44 PerfScore 2.62
+G_M40374_IG18:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+       lea      rcx, bword ptr [rbp+0x0C]
+       ; byrRegs +[rcx]
+       mov      r8d, dword ptr [rbp+0x08]
+       add      r8d, r8d
+       lea      rdx, bword ptr [rbx+0x0C]
+       ; byrRegs +[rdx]
+       call     [<unknown method>]
+       ; gcrRegs -[rbx rbp]
+       ; byrRegs -[rcx rdx]
+       ; gcr arg pop 0
+       test     eax, eax
+       je       SHORT G_M40374_IG12
+                       ;; size=25 bbWeight=0.50 PerfScore 3.75
+G_M40374_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       xor      ecx, ecx
+       cmp      r14d, 2
+       setne    cl
+       test     cl, cl
+       jne      SHORT G_M40374_IG12
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
+       call     [<unknown method>]
+       ; gcrRegs -[rcx]
+       ; gcr arg pop 0
+       xor      eax, eax
+       jmp      SHORT G_M40374_IG13
+                       ;; size=33 bbWeight=0.50 PerfScore 4.12
 
-; Total bytes of code 417, prolog size 12, PerfScore 82.75, instruction count 112, allocated bytes for code 417 (MethodHash=6fa76249) for method Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
+; Total bytes of code 374, prolog size 12, PerfScore 78.00, instruction count 107, allocated bytes for code 374 (MethodHash=6fa76249) for method Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
 ; ============================================================
 
 Unwind Info:

-43 (-10.31%) : 498398.dasm - Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)

@@ -132,78 +132,22 @@ G_M40374_IG02:        ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        cmp      rsi, rbx
-       je       SHORT G_M40374_IG05
+       je       SHORT G_M40374_IG07
                        ;; size=130 bbWeight=1 PerfScore 36.00
-G_M40374_IG03:        ; bbWeight=0.44, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
+G_M40374_IG03:        ; bbWeight=0.44, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        test     rsi, rsi
-       je       G_M40374_IG21
-                       ;; size=9 bbWeight=0.44 PerfScore 0.55
-G_M40374_IG04:        ; bbWeight=0.44, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M40374_IG14
-                       ;; size=2 bbWeight=0.44 PerfScore 0.87
-G_M40374_IG05:        ; bbWeight=0.50, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rsi]
-       cmp      rdi, rbx
-       je       SHORT G_M40374_IG08
-                       ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M40374_IG06:        ; bbWeight=0.44, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref
-       test     rdi, rdi
-       je       G_M40374_IG21
-                       ;; size=9 bbWeight=0.44 PerfScore 0.55
-G_M40374_IG07:        ; bbWeight=0.44, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref
-       jmp      G_M40374_IG17
-                       ;; size=5 bbWeight=0.44 PerfScore 0.87
-G_M40374_IG08:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rdi]
-       cmp      rbp, rbx
-       je       SHORT G_M40374_IG13
-                       ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M40374_IG09:        ; bbWeight=0.44, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
-       test     rbp, rbp
-       je       G_M40374_IG21
-                       ;; size=9 bbWeight=0.44 PerfScore 0.55
-G_M40374_IG10:        ; bbWeight=0.44, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
-       test     rbx, rbx
-       je       G_M40374_IG21
-                       ;; size=9 bbWeight=0.44 PerfScore 0.55
-G_M40374_IG11:        ; bbWeight=0.44, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
-       mov      r8d, dword ptr [rbp+0x08]
-       cmp      r8d, dword ptr [rbx+0x08]
-       jne      G_M40374_IG21
-                       ;; size=14 bbWeight=0.44 PerfScore 2.62
-G_M40374_IG12:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
-       lea      rcx, bword ptr [rbp+0x0C]
-       ; byrRegs +[rcx]
-       mov      r8d, dword ptr [rbp+0x08]
-       add      r8d, r8d
-       lea      rdx, bword ptr [rbx+0x0C]
-       ; byrRegs +[rdx]
-       call     [<unknown method>]
-       ; gcrRegs -[rbx rbp]
-       ; byrRegs -[rcx rdx]
-       ; gcr arg pop 0
-       test     eax, eax
-       je       G_M40374_IG21
-                       ;; size=29 bbWeight=0.50 PerfScore 3.75
-G_M40374_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       xor      ecx, ecx
-       cmp      r14d, 2
-       setne    cl
-       test     cl, cl
-       jne      SHORT G_M40374_IG21
-       jmp      SHORT G_M40374_IG20
-                       ;; size=15 bbWeight=0.50 PerfScore 2.38
-G_M40374_IG14:        ; bbWeight=0.44, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx rbp rsi rdi]
-       test     rbx, rbx
-       je       SHORT G_M40374_IG21
+       je       SHORT G_M40374_IG12
                        ;; size=5 bbWeight=0.44 PerfScore 0.55
-G_M40374_IG15:        ; bbWeight=0.44, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M40374_IG04:        ; bbWeight=0.44, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+       test     rbx, rbx
+       je       SHORT G_M40374_IG12
+                       ;; size=5 bbWeight=0.44 PerfScore 0.55
+G_M40374_IG05:        ; bbWeight=0.44, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      r8d, dword ptr [rsi+0x08]
        cmp      r8d, dword ptr [rbx+0x08]
-       jne      SHORT G_M40374_IG21
+       jne      SHORT G_M40374_IG12
                        ;; size=10 bbWeight=0.44 PerfScore 2.62
-G_M40374_IG16:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M40374_IG06:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        lea      rcx, bword ptr [rsi+0x0C]
        ; byrRegs +[rcx]
        mov      r8d, dword ptr [rsi+0x08]
@@ -215,19 +159,26 @@ G_M40374_IG16:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRe
        ; byrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M40374_IG21
-       jmp      G_M40374_IG05
-                       ;; size=30 bbWeight=0.50 PerfScore 4.75
-G_M40374_IG17:        ; bbWeight=0.44, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref, isz
-       test     rbx, rbx
-       je       SHORT G_M40374_IG21
+       je       SHORT G_M40374_IG12
+                       ;; size=25 bbWeight=0.50 PerfScore 3.75
+G_M40374_IG07:        ; bbWeight=0.50, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref, isz
+       cmp      rdi, rbx
+       je       SHORT G_M40374_IG14
+                       ;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M40374_IG08:        ; bbWeight=0.44, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref, isz
+       test     rdi, rdi
+       je       SHORT G_M40374_IG12
                        ;; size=5 bbWeight=0.44 PerfScore 0.55
-G_M40374_IG18:        ; bbWeight=0.44, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref, isz
+G_M40374_IG09:        ; bbWeight=0.44, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref, isz
+       test     rbx, rbx
+       je       SHORT G_M40374_IG12
+                       ;; size=5 bbWeight=0.44 PerfScore 0.55
+G_M40374_IG10:        ; bbWeight=0.44, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref, isz
        mov      r8d, dword ptr [rdi+0x08]
        cmp      r8d, dword ptr [rbx+0x08]
-       jne      SHORT G_M40374_IG21
+       jne      SHORT G_M40374_IG12
                        ;; size=10 bbWeight=0.44 PerfScore 2.62
-G_M40374_IG19:        ; bbWeight=0.50, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref, isz
+G_M40374_IG11:        ; bbWeight=0.50, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref, isz
        lea      rcx, bword ptr [rdi+0x0C]
        ; byrRegs +[rcx]
        mov      r8d, dword ptr [rdi+0x08]
@@ -239,20 +190,10 @@ G_M40374_IG19:        ; bbWeight=0.50, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0
        ; byrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M40374_IG21
-       jmp      G_M40374_IG08
-                       ;; size=30 bbWeight=0.50 PerfScore 4.75
-G_M40374_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       jne      SHORT G_M40374_IG14
+                       ;; size=25 bbWeight=0.50 PerfScore 3.75
+G_M40374_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx rbp]
-       mov      rcx, 0xD1FFAB1E
-       ; gcrRegs +[rcx]
-       call     [<unknown method>]
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-       xor      eax, eax
-       jmp      SHORT G_M40374_IG22
-                       ;; size=20 bbWeight=0.50 PerfScore 2.75
-G_M40374_IG21:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        call     [<unknown method>]
@@ -260,7 +201,7 @@ G_M40374_IG21:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ; gcr arg pop 0
        mov      eax, 1
                        ;; size=21 bbWeight=0.50 PerfScore 1.75
-G_M40374_IG22:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M40374_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        add      rsp, 40
        pop      rbx
        pop      rbp
@@ -270,8 +211,54 @@ G_M40374_IG22:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        pop      r15
        ret      
                        ;; size=13 bbWeight=1 PerfScore 4.25
+G_M40374_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs +[rbx rbp]
+       cmp      rbp, rbx
+       je       SHORT G_M40374_IG19
+                       ;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M40374_IG15:        ; bbWeight=0.44, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+       test     rbp, rbp
+       je       SHORT G_M40374_IG12
+                       ;; size=5 bbWeight=0.44 PerfScore 0.55
+G_M40374_IG16:        ; bbWeight=0.44, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+       test     rbx, rbx
+       je       SHORT G_M40374_IG12
+                       ;; size=5 bbWeight=0.44 PerfScore 0.55
+G_M40374_IG17:        ; bbWeight=0.44, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+       mov      r8d, dword ptr [rbp+0x08]
+       cmp      r8d, dword ptr [rbx+0x08]
+       jne      SHORT G_M40374_IG12
+                       ;; size=10 bbWeight=0.44 PerfScore 2.62
+G_M40374_IG18:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+       lea      rcx, bword ptr [rbp+0x0C]
+       ; byrRegs +[rcx]
+       mov      r8d, dword ptr [rbp+0x08]
+       add      r8d, r8d
+       lea      rdx, bword ptr [rbx+0x0C]
+       ; byrRegs +[rdx]
+       call     [<unknown method>]
+       ; gcrRegs -[rbx rbp]
+       ; byrRegs -[rcx rdx]
+       ; gcr arg pop 0
+       test     eax, eax
+       je       SHORT G_M40374_IG12
+                       ;; size=25 bbWeight=0.50 PerfScore 3.75
+G_M40374_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       xor      ecx, ecx
+       cmp      r14d, 2
+       setne    cl
+       test     cl, cl
+       jne      SHORT G_M40374_IG12
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
+       call     [<unknown method>]
+       ; gcrRegs -[rcx]
+       ; gcr arg pop 0
+       xor      eax, eax
+       jmp      SHORT G_M40374_IG13
+                       ;; size=33 bbWeight=0.50 PerfScore 4.12
 
-; Total bytes of code 417, prolog size 12, PerfScore 82.75, instruction count 112, allocated bytes for code 417 (MethodHash=6fa76249) for method Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
+; Total bytes of code 374, prolog size 12, PerfScore 78.00, instruction count 107, allocated bytes for code 374 (MethodHash=6fa76249) for method Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
 ; ============================================================
 
 Unwind Info:

+23 (+121.05%) : 507723.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)

@@ -8,8 +8,9 @@
 ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )   float  ->  zero-ref   
+;  V00 loc0         [V00,T00] (  4,  3.50)   float  ->  mm0         single-def
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V02 cse0         [V02,T01] (  3,  2.50)   float  ->  mm1         "CSE - aggressive"
 ;
 ; Lcl frame size = 40
 
@@ -17,17 +18,27 @@ G_M53663_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        sub      rsp, 40
        vzeroupper 
                        ;; size=7 bbWeight=1 PerfScore 1.25
-G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        call     [Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float]
        ; gcr arg pop 0
-       nop      
-                       ;; size=7 bbWeight=1 PerfScore 3.25
-G_M53663_IG03:        ; bbWeight=1, epilog, nogc, extend
+       vmovss   xmm1, dword ptr [reloc @RWD00]
+       vucomiss xmm1, xmm0
+       jbe      SHORT G_M53663_IG04
+                       ;; size=20 bbWeight=1 PerfScore 9.00
+G_M53663_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        add      rsp, 40
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
+G_M53663_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       vucomiss xmm0, xmm1
+       jp       SHORT G_M53663_IG03
+       jne      SHORT G_M53663_IG03
+       jmp      SHORT G_M53663_IG03
+                       ;; size=10 bbWeight=0.50 PerfScore 3.00
+RWD00      dd  41200000h       ;        10
 
-; Total bytes of code 19, prolog size 7, PerfScore 5.75, instruction count 6, allocated bytes for code 19 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+
+; Total bytes of code 42, prolog size 7, PerfScore 14.50, instruction count 12, allocated bytes for code 42 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
 ; ============================================================
 
 Unwind Info:

+29 (+152.63%) : 503779.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)

@@ -8,11 +8,11 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T00] (  2,  2   )   float  ->  mm0         single-def
+;  V00 loc0         [V00,T00] (  5,  4   )   float  ->  mm0         single-def
 ;* V01 loc1         [V01    ] (  0,  0   )   float  ->  zero-ref   
 ;* V02 loc2         [V02    ] (  0,  0   )   float  ->  zero-ref   
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 cse0         [V04,T01] (  0,  0   )   float  ->  zero-ref    "CSE - aggressive"
+;  V04 cse0         [V04,T01] (  4,  3   )   float  ->  mm1         "CSE - aggressive"
 ;
 ; Lcl frame size = 40
 
@@ -20,17 +20,29 @@ G_M53663_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        sub      rsp, 40
        vzeroupper 
                        ;; size=7 bbWeight=1 PerfScore 1.25
-G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        call     [Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float]
        ; gcr arg pop 0
-       nop      
-                       ;; size=7 bbWeight=1 PerfScore 3.25
-G_M53663_IG03:        ; bbWeight=1, epilog, nogc, extend
+       vmovss   xmm1, dword ptr [reloc @RWD00]
+       vucomiss xmm1, xmm0
+       jbe      SHORT G_M53663_IG04
+                       ;; size=20 bbWeight=1 PerfScore 9.00
+G_M53663_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        add      rsp, 40
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
+G_M53663_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       vucomiss xmm0, xmm1
+       jp       SHORT G_M53663_IG03
+       jne      SHORT G_M53663_IG03
+       vucomiss xmm0, xmm1
+       jbe      SHORT G_M53663_IG03
+       jmp      SHORT G_M53663_IG03
+                       ;; size=16 bbWeight=0.50 PerfScore 4.50
+RWD00      dd  41200000h       ;        10
 
-; Total bytes of code 19, prolog size 7, PerfScore 5.75, instruction count 6, allocated bytes for code 19 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+
+; Total bytes of code 48, prolog size 7, PerfScore 16.00, instruction count 14, allocated bytes for code 48 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
 ; ============================================================
 
 Unwind Info:

+37 (+194.74%) : 507775.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_1():float (FullOpts)

@@ -8,9 +8,10 @@
 ; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )   float  ->  zero-ref   
+;  V00 loc0         [V00,T00] (  6,  4.50)   float  ->  mm0         single-def
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T00] (  2,  4   )   float  ->  mm0         "Single return block return value"
+;  V02 tmp1         [V02,T01] (  2,  4   )   float  ->  mm0         "Single return block return value"
+;  V03 cse0         [V03,T02] (  5,  3.50)   float  ->  mm1         "CSE - aggressive"
 ;
 ; Lcl frame size = 40
 
@@ -18,17 +19,34 @@ G_M53791_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        sub      rsp, 40
        vzeroupper 
                        ;; size=7 bbWeight=1 PerfScore 1.25
-G_M53791_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53791_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        call     [Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float]
        ; gcr arg pop 0
-       nop      
-                       ;; size=7 bbWeight=1 PerfScore 3.25
-G_M53791_IG03:        ; bbWeight=1, epilog, nogc, extend
+       vmovss   xmm1, dword ptr [reloc @RWD00]
+       vucomiss xmm0, xmm1
+       jbe      SHORT G_M53791_IG04
+                       ;; size=20 bbWeight=1 PerfScore 9.00
+G_M53791_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M53791_IG05
+                       ;; size=2 bbWeight=1 PerfScore 2.00
+G_M53791_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       vucomiss xmm1, xmm0
+       ja       SHORT G_M53791_IG03
+       vucomiss xmm0, xmm1
+       jp       SHORT G_M53791_IG03
+       jne      SHORT G_M53791_IG03
+       vucomiss xmm1, xmm0
+       jbe      SHORT G_M53791_IG03
+       jmp      SHORT G_M53791_IG03
+                       ;; size=22 bbWeight=0.50 PerfScore 6.00
+G_M53791_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        add      rsp, 40
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
+RWD00      dd  41200000h       ;        10
 
-; Total bytes of code 19, prolog size 7, PerfScore 5.75, instruction count 6, allocated bytes for code 19 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+
+; Total bytes of code 56, prolog size 7, PerfScore 19.50, instruction count 17, allocated bytes for code 56 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
 ; ============================================================
 
 Unwind Info:

libraries.crossgen2.windows.x64.checked.mch

-6 (-3.85%) : 28457.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.Canon,System.Canon]:MoveNext():ubyte:this (FullOpts)

@@ -30,13 +30,13 @@ G_M65302_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rbx, rcx
        ; byrRegs +[rbx]
                        ;; size=9 bbWeight=1 PerfScore 2.50
-G_M65302_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M65302_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        mov      eax, dword ptr [rbx+0x08]
        mov      rcx, gword ptr [rbx]
        ; gcrRegs +[rcx]
        cmp      eax, dword ptr [rcx+0x44]
-       jne      G_M65302_IG10
-                       ;; size=15 bbWeight=1 PerfScore 8.00
+       jne      SHORT G_M65302_IG10
+                       ;; size=11 bbWeight=1 PerfScore 8.00
 G_M65302_IG03:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        ; gcrRegs -[rcx]
        mov      eax, dword ptr [rbx+0x0C]
@@ -78,9 +78,8 @@ G_M65302_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        lea      rcx, bword ptr [rax+8*rcx+0x10]
        ; byrRegs +[rcx]
        cmp      dword ptr [rcx+0x14], -1
-       jge      SHORT G_M65302_IG07
-       jmp      SHORT G_M65302_IG03
-                       ;; size=38 bbWeight=2 PerfScore 38.00
+       jl       SHORT G_M65302_IG03
+                       ;; size=36 bbWeight=2 PerfScore 34.00
 G_M65302_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref
        ; gcrRegs -[rax]
        mov      rdx, gword ptr [rcx]
@@ -116,7 +115,7 @@ G_M65302_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 156, prolog size 9, PerfScore 124.25, instruction count 50, allocated bytes for code 156 (MethodHash=336400e9) for method System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 150, prolog size 9, PerfScore 120.25, instruction count 49, allocated bytes for code 150 (MethodHash=336400e9) for method System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-14 (-3.67%) : 96234.dasm - Microsoft.CodeAnalysis.VisualBasic.DefinitelyAssignedWalker:ProcessState(System.Collections.Generic.HashSet1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState,System.Nullable1[Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState]):this (FullOpts)

@@ -13,32 +13,29 @@
 ;  V01 arg1         [V01,T07] (  3,  4   )     ref  ->  rdi         class-hnd single-def <System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.VisualBasic.Symbol]>
 ;  V02 arg2         [V02,T06] (  3,  6   )   byref  ->   r8         ld-addr-op single-def
 ;  V03 arg3         [V03,T01] (  4, 12   )   byref  ->  rbx         ld-addr-op single-def
-;  V04 loc0         [V04,T03] (  7, 10   )     ref  ->  [rbp-0x48]  must-init class-hnd EH-live single-def <<unknown class>>
+;  V04 loc0         [V04,T03] (  7, 10   )     ref  ->  [rbp-0x40]  must-init class-hnd EH-live single-def <<unknown class>>
 ;  V05 loc1         [V05,T00] (  6, 16   )     int  ->  r14        
-;  V06 loc2         [V06    ] (  3,  6   )  struct (24) [rbp-0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState>
-;  V07 loc3         [V07,T05] (  4,  8   )     ref  ->  r15         class-hnd <Microsoft.CodeAnalysis.VisualBasic.Symbol>
+;  V06 loc2         [V06    ] (  3,  6   )  struct (24) [rbp-0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState>
+;  V07 loc3         [V07,T05] (  4,  8   )     ref  ->  r14         class-hnd <Microsoft.CodeAnalysis.VisualBasic.Symbol>
 ;  V08 OutArgs      [V08    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V09 tmp1         [V09,T08] (  2,  4   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V10 tmp2         [V10,T09] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
 ;  V11 tmp3         [V11,T02] (  3, 12   )     ref  ->  rcx         "arr expr"
 ;  V12 PSPSym       [V12,T10] (  1,  1   )    long  ->  [rbp-0x50]  do-not-enreg[V] "PSPSym"
 ;
-; Lcl frame size = 72
+; Lcl frame size = 80
 
 G_M59801_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       push     r15
        push     r14
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 72
+       sub      rsp, 80
        lea      rbp, [rsp+0x70]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x48], rax
        xorps    xmm4, xmm4
        movaps   xmmword ptr [rbp-0x40], xmm4
-       mov      qword ptr [rbp-0x30], rax
+       movaps   xmmword ptr [rbp-0x30], xmm4
        mov      qword ptr [rbp-0x50], rsp
        mov      rsi, rcx
        ; gcrRegs +[rsi]
@@ -46,7 +43,7 @@ G_M59801_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcrRegs +[rdi]
        mov      rbx, r9
        ; byrRegs +[rbx]
-                       ;; size=47 bbWeight=1 PerfScore 13.08
+                       ;; size=39 bbWeight=1 PerfScore 11.83
 G_M59801_IG02:        ; bbWeight=1, gcVars=0000000000000008 {V04}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0108 {rbx r8}, gcvars, byref
        ; byrRegs +[r8]
        ; GC ptr vars +{V03 V04}
@@ -64,16 +61,16 @@ G_M59801_IG02:        ; bbWeight=1, gcVars=0000000000000008 {V04}, gcrefRegs=00C
        ; gcr arg pop 0
        mov      rcx, rax
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x48], rcx
+       mov      gword ptr [rbp-0x40], rcx
        lea      r11, [(reloc)]
        call     [r11]<unknown method>
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        test     eax, eax
-       je       G_M59801_IG09
+       je       G_M59801_IG10
                        ;; size=47 bbWeight=1 PerfScore 13.00
 G_M59801_IG03:        ; bbWeight=4, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref
-       mov      rcx, gword ptr [rbp-0x48]
+       mov      rcx, gword ptr [rbp-0x40]
        ; gcrRegs +[rcx]
        lea      r11, [(reloc)]      ; function address
        call     [r11]<unknown method>
@@ -90,7 +87,7 @@ G_M59801_IG04:        ; bbWeight=2, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rb
        ; gcrRegs -[rdx]
        cmp      byte  ptr [rbx], 0
        je       SHORT G_M59801_IG05
-       lea      rdx, [rbp-0x40]
+       lea      rdx, [rbp-0x38]
        mov      rcx, rbx
        ; byrRegs +[rcx]
        call     [<unknown method>]
@@ -98,31 +95,31 @@ G_M59801_IG04:        ; bbWeight=2, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rb
        ; gcr arg pop 0
        cmp      r14d, -1
        je       SHORT G_M59801_IG05
-       lea      rcx, [rbp-0x40]
+       lea      rcx, [rbp-0x38]
        xor      edx, edx
        call     [<unknown method>]
        ; gcr arg pop 0
        test     eax, eax
        jne      SHORT G_M59801_IG05
-       lea      rcx, [rbp-0x40]
+       lea      rcx, [rbp-0x38]
        mov      edx, r14d
        call     [<unknown method>]
        ; gcr arg pop 0
-       jmp      SHORT G_M59801_IG08
+       jmp      SHORT G_M59801_IG09
                        ;; size=55 bbWeight=2 PerfScore 39.50
 G_M59801_IG05:        ; bbWeight=2, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
        mov      rax, qword ptr [(reloc)]      ; const ptr
        mov      rcx, gword ptr [rsi+rax]
        ; gcrRegs +[rcx]
        cmp      r14d, dword ptr [rcx+0x08]
-       jae      SHORT G_M59801_IG07
+       jae      SHORT G_M59801_IG08
        mov      r11d, r14d
        shl      r11, 4
-       mov      r15, gword ptr [rcx+r11+0x10]
-       ; gcrRegs +[r15]
-       test     r15, r15
+       mov      r14, gword ptr [rcx+r11+0x10]
+       ; gcrRegs +[r14]
+       test     r14, r14
        je       SHORT G_M59801_IG06
-       mov      rcx, r15
+       mov      rcx, r14
        lea      r11, [(reloc)]      ; function address
        call     [r11]<unknown method>
        ; gcrRegs -[rcx]
@@ -131,16 +128,16 @@ G_M59801_IG05:        ; bbWeight=2, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rb
        je       SHORT G_M59801_IG06
        mov      rcx, rdi
        ; gcrRegs +[rcx]
-       mov      rdx, r15
+       mov      rdx, r14
        ; gcrRegs +[rdx]
        lea      r11, [(reloc)]      ; function address
        cmp      dword ptr [rcx], ecx
        call     [r11]<unknown method>
-       ; gcrRegs -[rcx rdx r15]
+       ; gcrRegs -[rcx rdx r14]
        ; gcr arg pop 0
                        ;; size=70 bbWeight=2 PerfScore 48.00
-G_M59801_IG06:        ; bbWeight=4, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rcx, gword ptr [rbp-0x48]
+G_M59801_IG06:        ; bbWeight=4, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref
+       mov      rcx, gword ptr [rbp-0x40]
        ; gcrRegs +[rcx]
        lea      r11, [(reloc)]      ; function address
        call     [r11]<unknown method>
@@ -148,25 +145,27 @@ G_M59801_IG06:        ; bbWeight=4, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rb
        ; gcr arg pop 0
        test     eax, eax
        jne      G_M59801_IG03
-       jmp      SHORT G_M59801_IG09
-                       ;; size=24 bbWeight=4 PerfScore 31.00
-G_M59801_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+                       ;; size=22 bbWeight=4 PerfScore 23.00
+G_M59801_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rsi rdi]
        ; byrRegs -[rbx]
+       jmp      SHORT G_M59801_IG10
+                       ;; size=2 bbWeight=1 PerfScore 2.00
+G_M59801_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [CORINFO_HELP_RNGCHKFAIL]
        ; gcr arg pop 0
                        ;; size=6 bbWeight=0 PerfScore 0.00
-G_M59801_IG08:        ; bbWeight=2, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
+G_M59801_IG09:        ; bbWeight=2, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
        ; gcrRegs +[rsi rdi]
        ; byrRegs +[rbx]
        test     eax, eax
        je       SHORT G_M59801_IG06
        jmp      SHORT G_M59801_IG05
                        ;; size=6 bbWeight=2 PerfScore 6.50
-G_M59801_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M59801_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi rdi]
        ; byrRegs -[rbx]
-       mov      rcx, gword ptr [rbp-0x48]
+       mov      rcx, gword ptr [rbp-0x40]
        ; gcrRegs +[rcx]
        lea      r11, [(reloc)]      ; function address
        ; GC ptr vars -{V03 V04}
@@ -175,33 +174,31 @@ G_M59801_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcr arg pop 0
        nop      
                        ;; size=15 bbWeight=1 PerfScore 4.75
-G_M59801_IG10:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 72
+G_M59801_IG11:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 80
        pop      rbx
        pop      rsi
        pop      rdi
        pop      r14
-       pop      r15
        pop      rbp
        ret      
-                       ;; size=13 bbWeight=1 PerfScore 4.25
-G_M59801_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+                       ;; size=11 bbWeight=1 PerfScore 3.75
+G_M59801_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
        push     rbp
-       push     r15
        push     r14
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 40
+       sub      rsp, 48
        mov      rbp, qword ptr [rcx+0x20]
        mov      qword ptr [rsp+0x20], rbp
        lea      rbp, [rbp+0x70]
-                       ;; size=25 bbWeight=0 PerfScore 0.00
-G_M59801_IG12:        ; bbWeight=0, gcVars=0000000000000008 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=23 bbWeight=0 PerfScore 0.00
+G_M59801_IG13:        ; bbWeight=0, gcVars=0000000000000008 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
        ; GC ptr vars +{V03 V04}
-       cmp      gword ptr [rbp-0x48], 0
-       je       SHORT G_M59801_IG13
-       mov      rcx, gword ptr [rbp-0x48]
+       cmp      gword ptr [rbp-0x40], 0
+       je       SHORT G_M59801_IG14
+       mov      rcx, gword ptr [rbp-0x40]
        ; gcrRegs +[rcx]
        lea      r11, [(reloc)]      ; function address
        ; GC ptr vars -{V03 V04}
@@ -209,21 +206,20 @@ G_M59801_IG12:        ; bbWeight=0, gcVars=0000000000000008 {V04}, gcrefRegs=000
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
                        ;; size=21 bbWeight=0 PerfScore 0.00
-G_M59801_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M59801_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0 PerfScore 0.00
-G_M59801_IG14:        ; bbWeight=0, funclet epilog, nogc, extend
-       add      rsp, 40
+G_M59801_IG15:        ; bbWeight=0, funclet epilog, nogc, extend
+       add      rsp, 48
        pop      rbx
        pop      rsi
        pop      rdi
        pop      r14
-       pop      r15
        pop      rbp
        ret      
-                       ;; size=13 bbWeight=0 PerfScore 0.00
+                       ;; size=11 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 381, prolog size 47, PerfScore 211.08, instruction count 117, allocated bytes for code 381 (MethodHash=f2561666) for method Microsoft.CodeAnalysis.VisualBasic.DefinitelyAssignedWalker:ProcessState(System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState,System.Nullable`1[Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState]):this (FullOpts)
+; Total bytes of code 367, prolog size 39, PerfScore 203.33, instruction count 111, allocated bytes for code 367 (MethodHash=f2561666) for method Microsoft.CodeAnalysis.VisualBasic.DefinitelyAssignedWalker:ProcessState(System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState,System.Nullable`1[Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -231,35 +227,33 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x0C
-  CountOfUnwindCodes: 7
+  SizeOfProlog      : 0x0A
...

-25 (-3.29%) : 104279.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase:GetFilesCore(Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFileReference]:this (FullOpts)

@@ -9,25 +9,25 @@
 ; 0 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] (  7,  7.50)     ref  ->  rdi         this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase>
-;  V01 arg1         [V01,T01] (  6, 14   )   byref  ->  rsi         ld-addr-op single-def
-;  V02 arg2         [V02,T05] (  6,  5   )   byref  ->  rbx         single-def
+;  V00 this         [V00,T03] (  7,  7.50)     ref  ->  r14         this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase>
+;  V01 arg1         [V01,T01] (  6, 14   )   byref  ->  rbx         ld-addr-op single-def
+;  V02 arg2         [V02,T05] (  6,  5   )   byref  ->  rsi         single-def
 ;  V03 loc0         [V03,T04] (  7,  7   )     ref  ->  [rbp-0x38]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V04 loc1         [V04    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.ModuleSymbol]>
 ;  V05 loc2         [V05,T07] (  6,  6   )     int  ->  r15         single-def
 ;  V06 loc3         [V06,T00] (  9, 16.50)     int  ->  r13        
 ;  V07 loc4         [V07,T06] (  6,  6.50)     ref  ->  [rbp-0x40]  must-init class-hnd EH-live single-def <<unknown class>>
-;  V08 loc5         [V08,T08] (  3,  6   )     ref  ->  r14         class-hnd <<unknown class>>
+;  V08 loc5         [V08,T08] (  3,  6   )     ref  ->  rdi         class-hnd <<unknown class>>
 ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T09] (  3,  6   )     ref  ->  r14         class-hnd exact single-def "Single-def Box Helper" <System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.IFileReference]>
+;  V10 tmp1         [V10,T09] (  3,  6   )     ref  ->  rbx         class-hnd exact single-def "Single-def Box Helper" <System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.IFileReference]>
 ;* V11 tmp2         [V11    ] (  0,  0   )  struct ( 8) zero-ref    single-def "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.IFileReference]>
-;  V12 tmp3         [V12,T13] (  2,  2   )     ref  ->  rsi         class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.DiagnosticBag>
-;  V13 tmp4         [V13,T11] (  3,  3   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.VisualBasic.VBDiagnostic>
+;  V12 tmp3         [V12,T13] (  2,  2   )     ref  ->  rdi         class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.DiagnosticBag>
+;  V13 tmp4         [V13,T11] (  3,  3   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.VisualBasic.VBDiagnostic>
 ;* V14 tmp5         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAssemblySymbol>
-;  V15 tmp6         [V15,T12] (  3,  3   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.DiagnosticInfo>
-;  V16 tmp7         [V16,T14] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def "finalizable newobj spill" <<unknown class>>
+;  V15 tmp6         [V15,T12] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.DiagnosticInfo>
+;  V16 tmp7         [V16,T14] (  2,  2   )     ref  ->  r14         class-hnd exact single-def "finalizable newobj spill" <<unknown class>>
 ;* V17 tmp8         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.Location>
-;  V18 tmp9         [V18,T10] (  5,  5.50)     ref  ->  r14         single-def "field V04.array (fldOffset=0x0)" P-INDEP
+;  V18 tmp9         [V18,T10] (  5,  5.50)     ref  ->  rdi         single-def "field V04.array (fldOffset=0x0)" P-INDEP
 ;  V19 tmp10        [V19,T16] (  2,  1   )     ref  ->   r8         "field V11.array (fldOffset=0x0)" P-INDEP
 ;  V20 tmp11        [V20,T02] (  4, 16   )     ref  ->  rax         "argument with side effect"
 ;  V21 tmp12        [V21,T15] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
@@ -48,17 +48,17 @@ G_M43962_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        xor      eax, eax
        mov      qword ptr [rbp-0x40], rax
        mov      qword ptr [rbp-0x50], rsp
-       mov      rdi, rcx
-       ; gcrRegs +[rdi]
-       mov      rsi, rdx
-       ; byrRegs +[rsi]
-       mov      rbx, r8
+       mov      r14, rcx
+       ; gcrRegs +[r14]
+       mov      rbx, rdx
        ; byrRegs +[rbx]
+       mov      rsi, r8
+       ; byrRegs +[rsi]
                        ;; size=38 bbWeight=1 PerfScore 10.75
-G_M43962_IG02:        ; bbWeight=1, gcVars=0000000000000040 {V07}, gcrefRegs=0080 {rdi}, byrefRegs=0048 {rbx rsi}, gcvars, byref
+G_M43962_IG02:        ; bbWeight=1, gcVars=0000000000000040 {V07}, gcrefRegs=4000 {r14}, byrefRegs=0048 {rbx rsi}, gcvars, byref
        ; GC ptr vars +{V06 V07}
        mov      rdx, qword ptr [(reloc)]      ; System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.IFileReference]
-       mov      rcx, rbx
+       mov      rcx, rsi
        ; byrRegs +[rcx]
        call     [<unknown method>]
        ; byrRegs -[rcx]
@@ -66,7 +66,7 @@ G_M43962_IG02:        ; bbWeight=1, gcVars=0000000000000040 {V07}, gcrefRegs=008
        test     eax, eax
        je       G_M43962_IG15
                        ;; size=24 bbWeight=1 PerfScore 6.50
-G_M43962_IG03:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0048 {rbx rsi}, byref
+G_M43962_IG03:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0048 {rbx rsi}, byref
        mov      rcx, qword ptr [(reloc)]      ; <unknown class>
        call     [<unknown method>]
        ; gcrRegs +[rax]
@@ -74,32 +74,32 @@ G_M43962_IG03:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0048 {rbx
        mov      gword ptr [rbp-0x38], rax
        ; GC ptr vars +{V03}
                        ;; size=17 bbWeight=0.50 PerfScore 3.00
-G_M43962_IG04:        ; bbWeight=0.50, gcVars=0000000000000050 {V03 V07}, gcrefRegs=0080 {rdi}, byrefRegs=0048 {rbx rsi}, gcvars, byref, isz
+G_M43962_IG04:        ; bbWeight=0.50, gcVars=0000000000000050 {V03 V07}, gcrefRegs=4000 {r14}, byrefRegs=0048 {rbx rsi}, gcvars, byref, isz
        ; gcrRegs -[rax]
        ; GC ptr vars -{V06}
        mov      rdx, qword ptr [(reloc)]      ; const ptr
-       mov      rdx, gword ptr [rdi+rdx]
+       mov      rdx, gword ptr [r14+rdx]
        ; gcrRegs +[rdx]
-       mov      r14, gword ptr [rdx+0x98]
-       ; gcrRegs +[r14]
-       mov      r15d, dword ptr [r14+0x08]
+       mov      rdi, gword ptr [rdx+0x98]
+       ; gcrRegs +[rdi]
+       mov      r15d, dword ptr [rdi+0x08]
        dec      r15d
        mov      r13d, 1
        test     r15d, r15d
        jle      SHORT G_M43962_IG06
        test     r15d, r15d
-       jl       G_M43962_IG09
-       cmp      dword ptr [r14+0x08], r15d
-       jle      G_M43962_IG09
-                       ;; size=55 bbWeight=0.50 PerfScore 7.50
+       jl       SHORT G_M43962_IG07
+       cmp      dword ptr [rdi+0x08], r15d
+       jle      SHORT G_M43962_IG07
+                       ;; size=47 bbWeight=0.50 PerfScore 7.50
 G_M43962_IG05:        ; bbWeight=3.96, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref, isz
        ; gcrRegs -[rdx]
        mov      edx, r13d
-       mov      rdx, gword ptr [r14+8*rdx+0x10]
+       mov      rdx, gword ptr [rdi+8*rdx+0x10]
        ; gcrRegs +[rdx]
-       mov      r8, gword ptr [rsi+0x20]
+       mov      r8, gword ptr [rbx+0x20]
        ; gcrRegs +[r8]
-       mov      rcx, rdi
+       mov      rcx, r14
        ; gcrRegs +[rcx]
        call     [Microsoft.CodeAnalysis.VisualBasic.Emit.PEModuleBuilder:Translate(Microsoft.CodeAnalysis.VisualBasic.Symbols.ModuleSymbol,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.Cci.IModuleReference:this]
        ; gcrRegs -[rcx rdx r8] +[rax]
@@ -122,118 +122,25 @@ G_M43962_IG05:        ; bbWeight=3.96, gcrefRegs=4080 {rdi r14}, byrefRegs=0048
        cmp      r13d, r15d
        jle      SHORT G_M43962_IG05
                        ;; size=57 bbWeight=3.96 PerfScore 79.20
-G_M43962_IG06:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0048 {rbx rsi}, byref
-       ; gcrRegs -[r14]
-       mov      rcx, rsi
+G_M43962_IG06:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0048 {rbx rsi}, byref, isz
+       ; gcrRegs -[rdi]
+       mov      rcx, rbx
        ; byrRegs +[rcx]
        call     [<unknown method>]
        ; byrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       je       G_M43962_IG10
-                       ;; size=17 bbWeight=0.50 PerfScore 2.25
-G_M43962_IG07:        ; bbWeight=0.50, gcVars=0000000000000010 {V03}, gcrefRegs=0080 {rdi}, byrefRegs=0048 {rbx rsi}, gcvars, byref
-       ; GC ptr vars -{V07}
-       mov      rcx, gword ptr [rbp-0x38]
-       ; gcrRegs +[rcx]
-       lea      r11, [(reloc)]      ; function address
-       cmp      dword ptr [rcx], ecx
-       call     [r11]<unknown method>
-       ; gcrRegs -[rcx] +[rax]
-       ; gcr arg pop 0
-       mov      r8, rax
-       ; gcrRegs +[r8]
-       mov      rcx, qword ptr [(reloc)]      ; <unknown method>
-       mov      rdx, rbx
-       ; byrRegs +[rdx]
-       call     [<unknown method>]
-       ; gcrRegs -[rax r8]
-       ; byrRegs -[rdx]
-       ; gcr arg pop 0
-       test     eax, eax
-       je       G_M43962_IG14
-       mov      rcx, gword ptr [rbx]
-       ; gcrRegs +[rcx]
-       cmp      dword ptr [rcx+0x08], 0
-       jle      G_M43962_IG14
-       mov      rcx, qword ptr [(reloc)]      ; const ptr
-       ; gcrRegs -[rcx]
-       mov      rcx, gword ptr [rdi+rcx]
-       ; gcrRegs +[rcx]
-       cmp      dword ptr [rcx], ecx
-       call     [Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAssemblySymbol:get_HashAlgorithm():int:this]
-       ; gcrRegs -[rcx rdi]
-       ; gcr arg pop 0
-       mov      ecx, eax
-       call     [<unknown method>]
-       ; gcr arg pop 0
-       test     eax, eax
-       jne      G_M43962_IG14
-       mov      rsi, gword ptr [rsi+0x20]
-       ; gcrRegs +[rsi]
-       ; byrRegs -[rsi]
-       call     [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
-       ; byrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rdi, gword ptr [rax+0x0460]
+       jne      G_M43962_IG12
+       jmp      SHORT G_M43962_IG08
+                       ;; size=19 bbWeight=0.50 PerfScore 3.25
+G_M43962_IG07:        ; bbWeight=0.04, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref, isz
        ; gcrRegs +[rdi]
-       call     [CORINFO_HELP_READYTORUN_NEW]
-       ; gcrRegs +[rax]
-       ; byrRegs -[rax]
-       ; gcr arg pop 0
-       mov      r14, rax
-       ; gcrRegs +[r14]
-       mov      rcx, r14
-       ; gcrRegs +[rcx]
-       mov      rdx, rdi
-       ; gcrRegs +[rdx]
-       mov      r8d, 0x915F
-       call     [<unknown method>]
-       ; gcrRegs -[rax rcx rdx rdi]
-       ; gcr arg pop 0
-       call     [CORINFO_HELP_READYTORUN_NEW]
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
-       call     [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
-       ; gcrRegs -[rax]
-       ; byrRegs +[rax]
-       ; gcr arg pop 0
-       mov      r8, gword ptr [rax]
-       ; gcrRegs +[r8]
-       mov      rdx, r14
-       ; gcrRegs +[rdx]
-       mov      rcx, rdi
-       ; gcrRegs +[rcx]
-       xor      r9d, r9d
-       call     [<unknown method>]
-       ; gcrRegs -[rcx rdx r8 r14]
-       ; byrRegs -[rax]
-       ; gcr arg pop 0
-       mov      rcx, rsi
-       ; gcrRegs +[rcx]
-       mov      rdx, rdi
-       ; gcrRegs +[rdx]
-       lea      r11, [(reloc)]      ; function address
-                       ;; size=181 bbWeight=0.50 PerfScore 30.88
-G_M43962_IG08:        ; bbWeight=0.50, extend
-       cmp      dword ptr [rcx], ecx
-       call     [r11]<unknown method>
-       ; gcrRegs -[rcx rdx rsi rdi]
-       ; gcr arg pop 0
-       jmp      G_M43962_IG14
-                       ;; size=10 bbWeight=0.50 PerfScore 4.00
-G_M43962_IG09:        ; bbWeight=0.04, gcVars=0000000000000050 {V03 V07}, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, gcvars, byref, isz
-       ; gcrRegs +[rdi r14]
-       ; byrRegs +[rsi]
-       ; GC ptr vars +{V06 V07}
        mov      edx, r13d
-       mov      rdx, gword ptr [r14+8*rdx+0x10]
+       mov      rdx, gword ptr [rdi+8*rdx+0x10]
        ; gcrRegs +[rdx]
-       mov      r8, gword ptr [rsi+0x20]
+       mov      r8, gword ptr [rbx+0x20]
        ; gcrRegs +[r8]
-       mov      rcx, rdi
+       mov      rcx, r14
        ; gcrRegs +[rcx]
        call     [Microsoft.CodeAnalysis.VisualBasic.Emit.PEModuleBuilder:Translate(Microsoft.CodeAnalysis.VisualBasic.Symbols.ModuleSymbol,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.Cci.IModuleReference:this]
        ; gcrRegs -[rcx rdx r8] +[rax]
@@ -254,22 +161,22 @@ G_M43962_IG09:        ; bbWeight=0.04, gcVars=0000000000000050 {V03 V07}, gcrefR
        ; gcr arg pop 0
        inc      r13d
        cmp      r13d, r15d
-       jle      SHORT G_M43962_IG09
-       jmp      G_M43962_IG06
...

+20 (+17.54%) : 231707.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)

@@ -8,7 +8,7 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  5,  3   )     int  ->  rbx         single-def
+;  V00 arg0         [V00,T00] (  7,  3   )     int  ->  rbx         single-def
 ;  V01 arg1         [V01,T01] (  4,  2   )     ref  ->  rsi         class-hnd single-def <System.String>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  0   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -28,7 +28,7 @@ G_M8758_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=12 bbWeight=1 PerfScore 3.75
 G_M8758_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        cmp      ebx, 250
-       jne      SHORT G_M8758_IG04
+       jne      SHORT G_M8758_IG06
                        ;; size=8 bbWeight=1 PerfScore 1.25
 G_M8758_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 32
@@ -83,10 +83,18 @@ G_M8758_IG05:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byre
        call     [CORINFO_HELP_THROW]
        ; gcrRegs -[rcx rdi]
        ; gcr arg pop 0
-       int3     
-                       ;; size=39 bbWeight=0 PerfScore 0.00
+                       ;; size=38 bbWeight=0 PerfScore 0.00
+G_M8758_IG06:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[rsi]
+       lea      eax, [rbx-0x1C3]
+       cmp      eax, 1
+       jbe      SHORT G_M8758_IG04
+       cmp      ebx, 552
+       je       SHORT G_M8758_IG04
+       jmp      SHORT G_M8758_IG04
+                       ;; size=21 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 114, prolog size 7, PerfScore 7.75, instruction count 34, allocated bytes for code 114 (MethodHash=cf4bddc9) for method System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 134, prolog size 7, PerfScore 7.75, instruction count 39, allocated bytes for code 134 (MethodHash=cf4bddc9) for method System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
 ; ============================================================
 
 Unwind Info:

+30 (+24.59%) : 231870.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)

@@ -8,7 +8,7 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6,  4   )     int  ->  rbx         single-def
+;  V00 arg0         [V00,T00] (  9,  4   )     int  ->  rbx         single-def
 ;  V01 arg1         [V01,T01] (  4,  2   )     ref  ->  rsi         class-hnd single-def <System.String>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  0   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -28,9 +28,9 @@ G_M20631_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=12 bbWeight=1 PerfScore 3.75
 G_M20631_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        cmp      ebx, 452
-       jg       SHORT G_M20631_IG04
+       jg       SHORT G_M20631_IG07
        cmp      ebx, 250
-       jne      SHORT G_M20631_IG04
+       jne      SHORT G_M20631_IG06
                        ;; size=16 bbWeight=1 PerfScore 2.50
 G_M20631_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 32
@@ -85,10 +85,23 @@ G_M20631_IG05:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
        call     [CORINFO_HELP_THROW]
        ; gcrRegs -[rcx rdi]
        ; gcr arg pop 0
-       int3     
-                       ;; size=39 bbWeight=0 PerfScore 0.00
+                       ;; size=38 bbWeight=0 PerfScore 0.00
+G_M20631_IG06:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[rsi]
+       lea      eax, [rbx-0x1C3]
+       cmp      eax, 1
+       jbe      SHORT G_M20631_IG04
+       jmp      SHORT G_M20631_IG04
+                       ;; size=13 bbWeight=0 PerfScore 0.00
+G_M20631_IG07:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+       cmp      ebx, 552
+       je       SHORT G_M20631_IG04
+       cmp      ebx, 554
+       je       SHORT G_M20631_IG04
+       jmp      SHORT G_M20631_IG04
+                       ;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 122, prolog size 7, PerfScore 9.00, instruction count 36, allocated bytes for code 122 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 152, prolog size 7, PerfScore 9.00, instruction count 44, allocated bytes for code 152 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
 ; ============================================================
 
 Unwind Info:

+22 (+78.57%) : 199506.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)

@@ -8,35 +8,64 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  3,  3   )     int  ->  rcx         single-def
+;  V00 arg0         [V00,T01] (  4,  3.50)     int  ->  rcx         single-def
 ;  V01 loc0         [V01,T02] (  3,  2   )   ubyte  ->  rax        
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 rat0         [V03,T00] (  3,  6   )     int  ->  rcx         "ReplaceWithLclVar is creating a new local variable"
+;  V03 rat0         [V03,T00] (  3,  6   )     int  ->  rax         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 0
 
 G_M3102_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
                        ;; size=0 bbWeight=1 PerfScore 0.00
 G_M3102_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       add      ecx, -2
-       cmp      ecx, 19
-       ja       SHORT G_M3102_IG04
-       mov      eax, 0x3C003
-       bt       eax, ecx
-       jae      SHORT G_M3102_IG04
-                       ;; size=18 bbWeight=1 PerfScore 3.25
+       lea      eax, [rcx-0x02]
+       cmp      eax, 19
+       ja       SHORT G_M3102_IG03
+       lea      rcx, [reloc @RWD00]
+       mov      ecx, dword ptr [rcx+4*rax]
+       lea      rdx, G_M3102_IG02
+       add      rcx, rdx
+       jmp      rcx
+                       ;; size=30 bbWeight=1 PerfScore 7.50
 G_M3102_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       mov      eax, 1
+       add      ecx, -101
+       cmp      ecx, 2
+       jbe      SHORT G_M3102_IG05
        jmp      SHORT G_M3102_IG05
+                       ;; size=10 bbWeight=0.50 PerfScore 1.75
+G_M3102_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       mov      eax, 1
+       jmp      SHORT G_M3102_IG06
                        ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M3102_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M3102_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M3102_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M3102_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        ret      
                        ;; size=1 bbWeight=1 PerfScore 1.00
+RWD00      dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
 
-; Total bytes of code 28, prolog size 0, PerfScore 5.50, instruction count 10, allocated bytes for code 28 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
+
+; Total bytes of code 50, prolog size 0, PerfScore 11.50, instruction count 16, allocated bytes for code 50 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:

libraries.pmi.windows.x64.checked.mch

-47 (-14.83%) : 275811.dasm - System.Diagnostics.ActivityContext:op_Inequality(System.Diagnostics.ActivityContext,System.Diagnostics.ActivityContext):ubyte (FullOpts)

@@ -12,7 +12,7 @@
 ;  V01 arg1         [V01,T01] (  7, 14   )   byref  ->  rdx         single-def
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Diagnostics.ActivityContext>
-;  V04 tmp2         [V04,T08] (  3,  2   )   ubyte  ->  r14         "Inline return value spill temp"
+;  V04 tmp2         [V04,T08] (  3,  2   )   ubyte  ->  rax         "Inline return value spill temp"
 ;* V05 tmp3         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Diagnostics.ActivitySpanId>
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Diagnostics.ActivityContext>
 ;* V07 tmp5         [V07    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Diagnostics.ActivitySpanId>
@@ -54,13 +54,13 @@
 ;  V43 tmp41        [V43,T13] (  2,  1.50)     int  ->  rsi         "V03.[008..012)"
 ;  V44 tmp42        [V44,T14] (  2,  1.50)   ubyte  ->  rdi         "V03.[012..013)"
 ;  V45 tmp43        [V45,T03] (  6,  3.37)     ref  ->  rbp         single-def "V03.[016..024)"
-;  V46 tmp44        [V46,T02] (  6,  3.87)     ref  ->  r14         single-def "V03.[024..032)"
-;  V47 tmp45        [V47,T04] (  6,  3.37)     ref  ->  r15         single-def "V06.[000..008)"
-;  V48 tmp46        [V48,T15] (  2,  1.50)     int  ->  r13         "V06.[008..012)"
-;  V49 tmp47        [V49,T16] (  2,  1.50)   ubyte  ->  r12         "V06.[012..013)"
-;  V50 tmp48        [V50,T07] (  5,  2.87)     ref  ->  [rsp+0x20]  spill-single-def "V06.[016..024)"
+;  V46 tmp44        [V46,T02] (  6,  3.87)     ref  ->   r8         single-def "V03.[024..032)"
+;  V47 tmp45        [V47,T04] (  6,  3.37)     ref  ->  r14         single-def "V06.[000..008)"
+;  V48 tmp46        [V48,T15] (  2,  1.50)     int  ->  r15         "V06.[008..012)"
+;  V49 tmp47        [V49,T16] (  2,  1.50)   ubyte  ->  r13         "V06.[012..013)"
+;  V50 tmp48        [V50,T07] (  5,  2.87)     ref  ->  r12         single-def "V06.[016..024)"
 ;  V51 tmp49        [V51,T05] (  5,  3.37)     ref  ->  rdx         single-def "V06.[024..032)"
-;  V52 cse0         [V52,T12] (  4,  1.87)     int  ->  r14         "CSE - moderate"
+;  V52 cse0         [V52,T12] (  4,  1.87)     int  ->  rsi         "CSE - moderate"
 ;
 ; Lcl frame size = 40
 
@@ -83,154 +83,90 @@ G_M40484_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx},
        movzx    rdi, byte  ptr [rcx+0x0C]
        mov      rbp, gword ptr [rcx+0x10]
        ; gcrRegs +[rbp]
-       mov      r14, gword ptr [rcx+0x18]
-       ; gcrRegs +[r14]
-       mov      r15, gword ptr [rdx]
-       ; gcrRegs +[r15]
-       mov      r13d, dword ptr [rdx+0x08]
-       movzx    r12, byte  ptr [rdx+0x0C]
-       mov      rax, gword ptr [rdx+0x10]
-       ; gcrRegs +[rax]
-       mov      r8, rax
+       mov      r8, gword ptr [rcx+0x18]
        ; gcrRegs +[r8]
-       mov      gword ptr [rsp+0x20], r8
-       ; GC ptr vars +{V50}
+       mov      r14, gword ptr [rdx]
+       ; gcrRegs +[r14]
+       mov      r15d, dword ptr [rdx+0x08]
+       movzx    r13, byte  ptr [rdx+0x0C]
+       mov      r12, gword ptr [rdx+0x10]
+       ; gcrRegs +[r12]
        mov      rdx, gword ptr [rdx+0x18]
        ; gcrRegs +[rdx]
        ; byrRegs -[rdx]
-       cmp      r14, rdx
-       je       SHORT G_M40484_IG06
-                       ;; size=52 bbWeight=1 PerfScore 22.50
-G_M40484_IG03:        ; bbWeight=0.44, gcVars=0000000000000080 {V50}, gcrefRegs=C12C {rdx rbx rbp r8 r14 r15}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax]
+       cmp      r8, rdx
+       je       SHORT G_M40484_IG07
+                       ;; size=44 bbWeight=1 PerfScore 21.25
+G_M40484_IG03:        ; bbWeight=0.44, gcrefRegs=512C {rdx rbx rbp r8 r12 r14}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rcx]
-       test     r14, r14
-       je       G_M40484_IG19
-                       ;; size=9 bbWeight=0.44 PerfScore 0.55
-G_M40484_IG04:        ; bbWeight=0.44, gcrefRegs=C12C {rdx rbx rbp r8 r14 r15}, byrefRegs=0000 {}, byref
-       jmp      G_M40484_IG17
-                       ;; size=5 bbWeight=0.44 PerfScore 0.87
-G_M40484_IG05:        ; bbWeight=0.50, gcrefRegs=C02C {rdx rbx rbp r14 r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[r8]
-       lea      rcx, bword ptr [r14+0x0C]
+       test     r8, r8
+       je       SHORT G_M40484_IG12
+                       ;; size=5 bbWeight=0.44 PerfScore 0.55
+G_M40484_IG04:        ; bbWeight=0.44, gcrefRegs=512C {rdx rbx rbp r8 r12 r14}, byrefRegs=0000 {}, byref, isz
+       test     rdx, rdx
+       je       SHORT G_M40484_IG12
+                       ;; size=5 bbWeight=0.44 PerfScore 0.55
+G_M40484_IG05:        ; bbWeight=0.44, gcrefRegs=512C {rdx rbx rbp r8 r12 r14}, byrefRegs=0000 {}, byref, isz
+       mov      ecx, dword ptr [r8+0x08]
+       cmp      ecx, dword ptr [rdx+0x08]
+       jne      SHORT G_M40484_IG12
+                       ;; size=9 bbWeight=0.44 PerfScore 2.62
+G_M40484_IG06:        ; bbWeight=0.50, gcrefRegs=512C {rdx rbx rbp r8 r12 r14}, byrefRegs=0000 {}, byref, isz
+       lea      rcx, bword ptr [r8+0x0C]
        ; byrRegs +[rcx]
        add      rdx, 12
        ; gcrRegs -[rdx]
        ; byrRegs +[rdx]
-       mov      eax, dword ptr [r14+0x08]
-       add      eax, eax
-       mov      r8d, eax
-       call     [<unknown method>]
-       ; gcrRegs -[r14]
-       ; byrRegs -[rcx rdx]
-       ; gcr arg pop 0
-       test     eax, eax
-       mov      r8, gword ptr [rsp+0x20]
-       ; gcrRegs +[r8]
-       je       G_M40484_IG19
-                       ;; size=36 bbWeight=0.50 PerfScore 4.25
-G_M40484_IG06:        ; bbWeight=0.50, gcrefRegs=8128 {rbx rbp r8 r15}, byrefRegs=0000 {}, byref, isz
-       cmp      rbp, r8
-       je       SHORT G_M40484_IG11
-                       ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M40484_IG07:        ; bbWeight=0.44, gcrefRegs=8128 {rbx rbp r8 r15}, byrefRegs=0000 {}, byref
-       test     rbp, rbp
-       je       G_M40484_IG19
-                       ;; size=9 bbWeight=0.44 PerfScore 0.55
-G_M40484_IG08:        ; bbWeight=0.44, gcrefRegs=8128 {rbx rbp r8 r15}, byrefRegs=0000 {}, byref
-       test     r8, r8
-       je       G_M40484_IG19
-                       ;; size=9 bbWeight=0.44 PerfScore 0.55
-G_M40484_IG09:        ; bbWeight=0.44, gcrefRegs=8128 {rbx rbp r8 r15}, byrefRegs=0000 {}, byref
-       mov      edx, dword ptr [rbp+0x08]
-       cmp      edx, dword ptr [r8+0x08]
-       jne      G_M40484_IG19
-                       ;; size=13 bbWeight=0.44 PerfScore 2.62
-G_M40484_IG10:        ; bbWeight=0.50, gcrefRegs=8128 {rbx rbp r8 r15}, byrefRegs=0000 {}, byref, isz
-       lea      rcx, bword ptr [rbp+0x0C]
-       ; byrRegs +[rcx]
-       lea      rdx, bword ptr [r8+0x0C]
-       ; byrRegs +[rdx]
-       mov      r8d, dword ptr [rbp+0x08]
+       mov      r8d, dword ptr [r8+0x08]
        ; gcrRegs -[r8]
        add      r8d, r8d
-       ; GC ptr vars -{V50}
        call     [<unknown method>]
-       ; gcrRegs -[rbp]
        ; byrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M40484_IG19
-                       ;; size=25 bbWeight=0.50 PerfScore 3.75
-G_M40484_IG11:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
-       cmp      esi, r13d
-       jne      SHORT G_M40484_IG19
-       cmp      rbx, r15
-       je       SHORT G_M40484_IG16
-                       ;; size=10 bbWeight=0.50 PerfScore 1.25
-G_M40484_IG12:        ; bbWeight=0.44, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
-       test     rbx, rbx
-       je       SHORT G_M40484_IG19
+       je       SHORT G_M40484_IG12
+                       ;; size=25 bbWeight=0.50 PerfScore 3.62
+G_M40484_IG07:        ; bbWeight=0.50, gcrefRegs=5028 {rbx rbp r12 r14}, byrefRegs=0000 {}, byref, isz
+       cmp      rbp, r12
+       je       SHORT G_M40484_IG15
+                       ;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M40484_IG08:        ; bbWeight=0.44, gcrefRegs=5028 {rbx rbp r12 r14}, byrefRegs=0000 {}, byref, isz
+       test     rbp, rbp
+       je       SHORT G_M40484_IG12
                        ;; size=5 bbWeight=0.44 PerfScore 0.55
-G_M40484_IG13:        ; bbWeight=0.44, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
-       test     r15, r15
-       je       SHORT G_M40484_IG19
+G_M40484_IG09:        ; bbWeight=0.44, gcrefRegs=5028 {rbx rbp r12 r14}, byrefRegs=0000 {}, byref, isz
+       test     r12, r12
+       je       SHORT G_M40484_IG12
                        ;; size=5 bbWeight=0.44 PerfScore 0.55
-G_M40484_IG14:        ; bbWeight=0.44, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
-       mov      r14d, dword ptr [rbx+0x08]
-       cmp      r14d, dword ptr [r15+0x08]
-       jne      SHORT G_M40484_IG19
+G_M40484_IG10:        ; bbWeight=0.44, gcrefRegs=5028 {rbx rbp r12 r14}, byrefRegs=0000 {}, byref, isz
+       mov      edx, dword ptr [rbp+0x08]
+       cmp      edx, dword ptr [r12+0x08]
+       jne      SHORT G_M40484_IG12
                        ;; size=10 bbWeight=0.44 PerfScore 2.62
-G_M40484_IG15:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
-       mov      ecx, 1
-       call     [System.Diagnostics.Debug:Assert(ubyte)]
-       ; gcr arg pop 0
-       xor      ecx, ecx
-       cmp      dword ptr [r15+0x08], r14d
-       sete     cl
-       call     [System.Diagnostics.Debug:Assert(ubyte)]
-       ; gcr arg pop 0
-       lea      rcx, bword ptr [rbx+0x0C]
+G_M40484_IG11:        ; bbWeight=0.50, gcrefRegs=5028 {rbx rbp r12 r14}, byrefRegs=0000 {}, byref, isz
+       lea      rcx, bword ptr [rbp+0x0C]
        ; byrRegs +[rcx]
-       lea      rdx, bword ptr [r15+0x0C]
+       lea      rdx, bword ptr [r12+0x0C]
        ; byrRegs +[rdx]
-       add      r14d, r14d
-       mov      r8d, r14d
+       mov      r8d, dword ptr [rbp+0x08]
+       add      r8d, r8d
        call     [<unknown method>]
-       ; gcrRegs -[rbx r15]
+       ; gcrRegs -[rbp r12]
        ; byrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M40484_IG19
-                       ;; size=50 bbWeight=0.50 PerfScore 8.12
-G_M40484_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       xor      r14d, r14d
-       cmp      dil, r12b
-       sete     r14b
-       jmp      SHORT G_M40484_IG20
-                       ;; size=12 bbWeight=0.50 PerfScore 1.75
-G_M40484_IG17:        ; bbWeight=0.44, gcVars=0000000000000080 {V50}, gcrefRegs=C12C {rdx rbx rbp r8 r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rdx rbx rbp r8 r14-r15]
-       ; GC ptr vars +{V50}
-       test     rdx, rdx
-       je       SHORT G_M40484_IG19
-                       ;; size=5 bbWeight=0.44 PerfScore 0.55
-G_M40484_IG18:        ; bbWeight=0.44, gcrefRegs=C12C {rdx rbx rbp r8 r14 r15}, byrefRegs=0000 {}, byref
-       mov      ecx, dword ptr [r14+0x08]
-       cmp      ecx, dword ptr [rdx+0x08]
-       je       G_M40484_IG05
-                       ;; size=13 bbWeight=0.44 PerfScore 2.62
-G_M40484_IG19:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rdx rbx rbp r8 r14-r15]
-       ; GC ptr vars -{V50}
-       xor      r14d, r14d
-                       ;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M40484_IG20:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       jne      SHORT G_M40484_IG15
+                       ;; size=26 bbWeight=0.50 PerfScore 3.75
+G_M40484_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx r14]
        xor      eax, eax
-       test     r14d, r14d
+                       ;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M40484_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       test     eax, eax
        sete     al
+       movzx    rax, al
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M40484_IG21:        ; bbWeight=1, epilog, nogc, extend
+G_M40484_IG14:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
@@ -242,8 +178,56 @@ G_M40484_IG21:        ; bbWeight=1, epilog, nogc, extend
        pop      r15
        ret      
                        ;; size=17 bbWeight=1 PerfScore 5.25
+G_M40484_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs +[rbx r14]
+       cmp      esi, r15d
+       jne      SHORT G_M40484_IG12
+       cmp      rbx, r14
...

-12 (-13.48%) : 250822.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)

@@ -36,69 +36,49 @@
 ;
 ; Lcl frame size = 40
 
-G_M34829_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M34829_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        sub      rsp, 40
                        ;; size=4 bbWeight=1 PerfScore 0.25
 G_M34829_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        movzx    rcx, cx
        cmp      ecx, 256
-       jb       SHORT G_M34829_IG05
+       jae      SHORT G_M34829_IG09
                        ;; size=11 bbWeight=1 PerfScore 1.50
-G_M34829_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategory(int):int]
-       ; gcr arg pop 0
-                       ;; size=6 bbWeight=0 PerfScore 0.00
-G_M34829_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       add      eax, -8
-       cmp      eax, 16
-       ja       SHORT G_M34829_IG08
-       lea      rcx, [reloc @RWD00]
-       mov      ecx, dword ptr [rcx+4*rax]
-       lea      rdx, G_M34829_IG02
-       add      rcx, rdx
-       jmp      rcx
-                       ;; size=30 bbWeight=1 PerfScore 7.25
-G_M34829_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M34829_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      eax, ecx
        mov      rcx, 0xD1FFAB1E      ; static handle
        movzx    rax, byte  ptr [rax+rcx]
        and      eax, 31
-       jmp      SHORT G_M34829_IG04
-                       ;; size=21 bbWeight=0.50 PerfScore 2.38
-G_M34829_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+                       ;; size=19 bbWeight=0.50 PerfScore 1.38
+G_M34829_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       add      eax, -8
+       cmp      eax, 16
+       ja       SHORT G_M34829_IG07
+       mov      ecx, 0x1FC7D
+       bt       ecx, eax
+       jae      SHORT G_M34829_IG07
+                       ;; size=18 bbWeight=1 PerfScore 3.25
+G_M34829_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M34829_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M34829_IG06:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 40
        ret      
                        ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M34829_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M34829_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        mov      eax, 1
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M34829_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+G_M34829_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 40
        ret      
                        ;; size=5 bbWeight=0.50 PerfScore 0.62
-RWD00      dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
+G_M34829_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategory(int):int]
+       ; gcr arg pop 0
+       jmp      SHORT G_M34829_IG04
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-
-; Total bytes of code 89, prolog size 4, PerfScore 12.88, instruction count 24, allocated bytes for code 89 (MethodHash=b88877f2) for method System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
+; Total bytes of code 77, prolog size 4, PerfScore 7.88, instruction count 22, allocated bytes for code 77 (MethodHash=b88877f2) for method System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:

-32 (-11.11%) : 275862.dasm - System.Diagnostics.ActivityLink:op_Equality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)

@@ -71,8 +71,8 @@
 ;  V60 tmp58        [V60,T05] (  5,  2.87)     ref  ->  r13         single-def "V05.[000..008)"
 ;  V61 tmp59        [V61,T14] (  2,  1.50)     int  ->  r12         "V05.[008..012)"
 ;  V62 tmp60        [V62,T15] (  2,  1.50)   ubyte  ->  [rsp+0x34]  spill-single-def "V05.[012..013)"
-;  V63 tmp61        [V63,T03] (  6,  3.37)     ref  ->  [rsp+0x28]  single-def "V05.[016..024)"
-;  V64 tmp62        [V64,T02] (  6,  3.87)     ref  ->   r9         single-def "V05.[024..032)"
+;  V63 tmp61        [V63,T03] (  6,  3.37)     ref  ->  [rsp+0x28]  spill-single-def "V05.[016..024)"
+;  V64 tmp62        [V64,T02] (  6,  3.87)     ref  ->   r8         single-def "V05.[024..032)"
 ;* V65 tmp63        [V65    ] (  0,  0   )     ref  ->  zero-ref    single-def "V06.[000..008)"
 ;* V66 tmp64        [V66    ] (  0,  0   )     int  ->  zero-ref    "V06.[008..012)"
 ;* V67 tmp65        [V67    ] (  0,  0   )   ubyte  ->  zero-ref    "V06.[012..013)"
@@ -114,134 +114,82 @@ G_M28508_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=000C {rdx rbx},
        mov      dword ptr [rsp+0x34], eax
        mov      r10, gword ptr [rbx+0x18]
        ; gcrRegs +[r10]
-       mov      r9, gword ptr [rbx+0x20]
-       ; gcrRegs +[r9]
-       cmp      r9, rdx
-       je       SHORT G_M28508_IG05
-                       ;; size=52 bbWeight=1 PerfScore 24.25
-G_M28508_IG03:        ; bbWeight=0.44, gcrefRegs=A6C4 {rdx rsi rdi r9 r10 r13 r15}, byrefRegs=0008 {rbx}, byref
-       test     r9, r9
-       je       G_M28508_IG20
-                       ;; size=9 bbWeight=0.44 PerfScore 0.55
-G_M28508_IG04:        ; bbWeight=0.44, gcrefRegs=A6C4 {rdx rsi rdi r9 r10 r13 r15}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rax, r10
-       ; gcrRegs +[rax]
-       jmp      SHORT G_M28508_IG16
-                       ;; size=5 bbWeight=0.44 PerfScore 0.98
-G_M28508_IG05:        ; bbWeight=0.50, gcrefRegs=A4C0 {rsi rdi r10 r13 r15}, byrefRegs=0008 {rbx}, byref, isz
-       ; gcrRegs -[rax rdx r9]
+       mov      gword ptr [rsp+0x28], r10
+       ; GC ptr vars +{V63}
+       mov      r8, gword ptr [rbx+0x20]
+       ; gcrRegs +[r8]
+       cmp      r8, rdx
+       je       SHORT G_M28508_IG07
+                       ;; size=57 bbWeight=1 PerfScore 25.25
+G_M28508_IG03:        ; bbWeight=0.44, gcVars=0000000000000008 {V63}, gcrefRegs=A1C4 {rdx rsi rdi r8 r13 r15}, byrefRegs=0008 {rbx}, gcvars, byref, isz
+       ; gcrRegs -[r10]
+       test     r8, r8
+       je       SHORT G_M28508_IG12
+                       ;; size=5 bbWeight=0.44 PerfScore 0.55
+G_M28508_IG04:        ; bbWeight=0.44, gcrefRegs=A1C4 {rdx rsi rdi r8 r13 r15}, byrefRegs=0008 {rbx}, byref, isz
+       test     rdx, rdx
+       je       SHORT G_M28508_IG12
+                       ;; size=5 bbWeight=0.44 PerfScore 0.55
+G_M28508_IG05:        ; bbWeight=0.44, gcrefRegs=A1C4 {rdx rsi rdi r8 r13 r15}, byrefRegs=0008 {rbx}, byref, isz
+       mov      ecx, dword ptr [r8+0x08]
+       cmp      ecx, dword ptr [rdx+0x08]
+       jne      SHORT G_M28508_IG12
+                       ;; size=9 bbWeight=0.44 PerfScore 2.62
+G_M28508_IG06:        ; bbWeight=0.50, gcrefRegs=A1C4 {rdx rsi rdi r8 r13 r15}, byrefRegs=0008 {rbx}, byref, isz
+       lea      rcx, bword ptr [r8+0x0C]
+       ; byrRegs +[rcx]
+       add      rdx, 12
+       ; gcrRegs -[rdx]
+       ; byrRegs +[rdx]
+       mov      r8d, dword ptr [r8+0x08]
+       ; gcrRegs -[r8]
+       add      r8d, r8d
+       call     [<unknown method>]
+       ; byrRegs -[rcx rdx]
+       ; gcr arg pop 0
+       test     eax, eax
+       je       SHORT G_M28508_IG12
+                       ;; size=25 bbWeight=0.50 PerfScore 3.62
+G_M28508_IG07:        ; bbWeight=0.50, gcrefRegs=A0C0 {rsi rdi r13 r15}, byrefRegs=0008 {rbx}, byref, isz
+       mov      r10, gword ptr [rsp+0x28]
+       ; gcrRegs +[r10]
        cmp      r10, r15
-       je       SHORT G_M28508_IG10
-                       ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M28508_IG06:        ; bbWeight=0.44, gcrefRegs=A4C0 {rsi rdi r10 r13 r15}, byrefRegs=0008 {rbx}, byref
+       je       SHORT G_M28508_IG14
+                       ;; size=10 bbWeight=0.50 PerfScore 1.12
+G_M28508_IG08:        ; bbWeight=0.44, gcrefRegs=A4C0 {rsi rdi r10 r13 r15}, byrefRegs=0008 {rbx}, byref, isz
        test     r10, r10
-       je       G_M28508_IG20
-                       ;; size=9 bbWeight=0.44 PerfScore 0.55
-G_M28508_IG07:        ; bbWeight=0.44, gcrefRegs=A4C0 {rsi rdi r10 r13 r15}, byrefRegs=0008 {rbx}, byref
+       je       SHORT G_M28508_IG12
+                       ;; size=5 bbWeight=0.44 PerfScore 0.55
+G_M28508_IG09:        ; bbWeight=0.44, gcrefRegs=A4C0 {rsi rdi r10 r13 r15}, byrefRegs=0008 {rbx}, byref, isz
        test     r15, r15
-       je       G_M28508_IG20
-                       ;; size=9 bbWeight=0.44 PerfScore 0.55
-G_M28508_IG08:        ; bbWeight=0.44, gcrefRegs=A4C0 {rsi rdi r10 r13 r15}, byrefRegs=0008 {rbx}, byref
+       je       SHORT G_M28508_IG12
+                       ;; size=5 bbWeight=0.44 PerfScore 0.55
+G_M28508_IG10:        ; bbWeight=0.44, gcrefRegs=A4C0 {rsi rdi r10 r13 r15}, byrefRegs=0008 {rbx}, byref, isz
        mov      edx, dword ptr [r10+0x08]
        cmp      edx, dword ptr [r15+0x08]
-       jne      G_M28508_IG20
-                       ;; size=14 bbWeight=0.44 PerfScore 2.62
-G_M28508_IG09:        ; bbWeight=0.50, gcrefRegs=A4C0 {rsi rdi r10 r13 r15}, byrefRegs=0008 {rbx}, byref, isz
+       jne      SHORT G_M28508_IG12
+                       ;; size=10 bbWeight=0.44 PerfScore 2.62
+G_M28508_IG11:        ; bbWeight=0.50, gcrefRegs=A4C0 {rsi rdi r10 r13 r15}, byrefRegs=0008 {rbx}, byref, isz
        lea      rcx, bword ptr [r10+0x0C]
        ; byrRegs +[rcx]
        lea      rdx, bword ptr [r15+0x0C]
        ; byrRegs +[rdx]
        mov      r8d, dword ptr [r10+0x08]
        add      r8d, r8d
+       ; GC ptr vars -{V63}
        call     [<unknown method>]
        ; gcrRegs -[r10 r15]
        ; byrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M28508_IG20
+       jne      SHORT G_M28508_IG14
                        ;; size=25 bbWeight=0.50 PerfScore 3.75
-G_M28508_IG10:        ; bbWeight=0.50, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
-       cmp      r12d, ebp
-       jne      SHORT G_M28508_IG20
-       cmp      r13, rdi
-       je       SHORT G_M28508_IG15
-                       ;; size=10 bbWeight=0.50 PerfScore 1.25
-G_M28508_IG11:        ; bbWeight=0.44, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
-       test     r13, r13
-       je       SHORT G_M28508_IG20
-                       ;; size=5 bbWeight=0.44 PerfScore 0.55
-G_M28508_IG12:        ; bbWeight=0.44, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
-       test     rdi, rdi
-       je       SHORT G_M28508_IG20
-                       ;; size=5 bbWeight=0.44 PerfScore 0.55
-G_M28508_IG13:        ; bbWeight=0.44, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
-       mov      ecx, dword ptr [r13+0x08]
-       cmp      ecx, dword ptr [rdi+0x08]
-       jne      SHORT G_M28508_IG20
-                       ;; size=9 bbWeight=0.44 PerfScore 2.62
-G_M28508_IG14:        ; bbWeight=0.50, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rcx, r13
-       ; gcrRegs +[rcx]
-       mov      rdx, rdi
-       ; gcrRegs +[rdx]
-       call     [System.String:EqualsHelper(System.String,System.String):ubyte]
-       ; gcrRegs -[rcx rdx rdi r13]
-       ; gcr arg pop 0
-       test     eax, eax
-       je       SHORT G_M28508_IG20
-                       ;; size=16 bbWeight=0.50 PerfScore 2.38
-G_M28508_IG15:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
-       cmp      byte  ptr [rsp+0x34], r14b
-       jne      SHORT G_M28508_IG20
-       jmp      SHORT G_M28508_IG19
-                       ;; size=9 bbWeight=0.50 PerfScore 2.50
-G_M28508_IG16:        ; bbWeight=0.44, gcrefRegs=A2C5 {rax rdx rsi rdi r9 r13 r15}, byrefRegs=0008 {rbx}, byref, isz
-       ; gcrRegs +[rax rdx rdi r9 r13 r15]
-       test     rdx, rdx
-       je       SHORT G_M28508_IG20
-                       ;; size=5 bbWeight=0.44 PerfScore 0.55
-G_M28508_IG17:        ; bbWeight=0.44, gcrefRegs=A2C5 {rax rdx rsi rdi r9 r13 r15}, byrefRegs=0008 {rbx}, byref, isz
-       mov      r8d, dword ptr [r9+0x08]
-       cmp      r8d, dword ptr [rdx+0x08]
-       mov      gword ptr [rsp+0x28], rax
-       ; GC ptr vars +{V63}
-       jne      SHORT G_M28508_IG20
-                       ;; size=15 bbWeight=0.44 PerfScore 3.05
-G_M28508_IG18:        ; bbWeight=0.50, gcVars=0000000000000008 {V63}, gcrefRegs=A2C4 {rdx rsi rdi r9 r13 r15}, byrefRegs=0008 {rbx}, gcvars, byref, isz
-       ; gcrRegs -[rax]
-       lea      rcx, bword ptr [r9+0x0C]
-       ; byrRegs +[rcx]
-       add      rdx, 12
-       ; gcrRegs -[rdx]
-       ; byrRegs +[rdx]
-       mov      r8d, dword ptr [r9+0x08]
-       add      r8d, r8d
-       call     [<unknown method>]
-       ; gcrRegs -[r9]
-       ; byrRegs -[rcx rdx]
-       ; gcr arg pop 0
-       test     eax, eax
-       je       SHORT G_M28508_IG20
-       mov      rax, gword ptr [rsp+0x28]
-       ; gcrRegs +[rax]
-       mov      r10, rax
-       ; gcrRegs +[r10]
-       jmp      G_M28508_IG05
-                       ;; size=38 bbWeight=0.50 PerfScore 5.25
-G_M28508_IG19:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, gcvars, byref, isz
-       ; gcrRegs -[rax rdi r10 r13 r15]
-       ; GC ptr vars -{V63}
-       xor      eax, eax
-       cmp      rsi, gword ptr [rbx]
-       sete     al
-       jmp      SHORT G_M28508_IG21
-                       ;; size=10 bbWeight=0.50 PerfScore 3.12
-G_M28508_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi]
+G_M28508_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rsi rdi r13]
        ; byrRegs -[rbx]
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M28508_IG21:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M28508_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        add      rsp, 56
        pop      rbx
        pop      rbp
@@ -253,8 +201,48 @@ G_M28508_IG21:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        pop      r15
        ret      
                        ;; size=17 bbWeight=1 PerfScore 5.25
+G_M28508_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, gcvars, byref, isz
+       ; gcrRegs +[rsi rdi r13]
+       ; byrRegs +[rbx]
+       cmp      r12d, ebp
+       jne      SHORT G_M28508_IG12
+       cmp      r13, rdi
+       je       SHORT G_M28508_IG19
+                       ;; size=10 bbWeight=0.50 PerfScore 1.25
+G_M28508_IG15:        ; bbWeight=0.44, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
+       test     r13, r13
+       je       SHORT G_M28508_IG12
+                       ;; size=5 bbWeight=0.44 PerfScore 0.55
+G_M28508_IG16:        ; bbWeight=0.44, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
+       test     rdi, rdi
+       je       SHORT G_M28508_IG12
+                       ;; size=5 bbWeight=0.44 PerfScore 0.55
+G_M28508_IG17:        ; bbWeight=0.44, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
+       mov      ecx, dword ptr [r13+0x08]
+       cmp      ecx, dword ptr [rdi+0x08]
+       jne      SHORT G_M28508_IG12
+                       ;; size=9 bbWeight=0.44 PerfScore 2.62
+G_M28508_IG18:        ; bbWeight=0.50, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref, isz
+       mov      rcx, r13
+       ; gcrRegs +[rcx]
+       mov      rdx, rdi
+       ; gcrRegs +[rdx]
+       call     [System.String:EqualsHelper(System.String,System.String):ubyte]
+       ; gcrRegs -[rcx rdx rdi r13]
+       ; gcr arg pop 0
+       test     eax, eax
+       je       SHORT G_M28508_IG12
+                       ;; size=16 bbWeight=0.50 PerfScore 2.38
+G_M28508_IG19:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
+       cmp      byte  ptr [rsp+0x34], r14b
+       jne      SHORT G_M28508_IG12
+       xor      eax, eax
+       cmp      rsi, gword ptr [rbx]
+       sete     al
+       jmp      SHORT G_M28508_IG13
+                       ;; size=17 bbWeight=0.50 PerfScore 4.62
 
-; Total bytes of code 288, prolog size 16, PerfScore 69.55, instruction count 94, allocated bytes for code 288 (MethodHash=529190a3) for method System.Diagnostics.ActivityLink:op_Equality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)
+; Total bytes of code 256, prolog size 16, PerfScore 67.00, instruction count 89, allocated bytes for code 256 (MethodHash=529190a3) for method System.Diagnostics.ActivityLink:op_Equality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)
 ; ============================================================
...

+41 (+29.71%) : 292009.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)

@@ -7,7 +7,7 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6,  4   )     int  ->  rbx         single-def
+;  V00 arg0         [V00,T00] (  9,  4   )     int  ->  rbx         single-def
 ;  V01 arg1         [V01,T01] (  4,  2   )     ref  ->  rsi         class-hnd single-def <System.String>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  0   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -27,10 +27,10 @@ G_M20631_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=12 bbWeight=1 PerfScore 3.75
 G_M20631_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        cmp      ebx, 452
-       jg       SHORT G_M20631_IG04
+       jg       G_M20631_IG07
        cmp      ebx, 250
-       jne      SHORT G_M20631_IG04
-                       ;; size=16 bbWeight=1 PerfScore 2.50
+       jne      SHORT G_M20631_IG06
+                       ;; size=20 bbWeight=1 PerfScore 2.50
 G_M20631_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
@@ -86,10 +86,23 @@ G_M20631_IG05:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
        call     CORINFO_HELP_THROW
        ; gcrRegs -[rcx rdi]
        ; gcr arg pop 0
-       int3     
-                       ;; size=47 bbWeight=0 PerfScore 0.00
+                       ;; size=46 bbWeight=0 PerfScore 0.00
+G_M20631_IG06:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[rsi]
+       lea      ecx, [rbx-0x1C3]
+       cmp      ecx, 1
+       jbe      SHORT G_M20631_IG04
+       jmp      SHORT G_M20631_IG04
+                       ;; size=13 bbWeight=0 PerfScore 0.00
+G_M20631_IG07:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+       cmp      ebx, 552
+       je       SHORT G_M20631_IG04
+       cmp      ebx, 554
+       je       G_M20631_IG04
+       jmp      G_M20631_IG04
+                       ;; size=25 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 138, prolog size 7, PerfScore 9.00, instruction count 38, allocated bytes for code 138 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 179, prolog size 7, PerfScore 9.00, instruction count 46, allocated bytes for code 179 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
 ; ============================================================
 
 Unwind Info:

+4 (+40.00%) : 280940.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)

@@ -28,11 +28,12 @@ G_M40773_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=1 bbWeight=1 PerfScore 1.00
 G_M40773_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rcx]
-       mov      eax, dword ptr [rcx+0x10]
+       cmp      gword ptr [rcx+0x10], 0
+       je       SHORT G_M40773_IG03
        jmp      SHORT G_M40773_IG03
-                       ;; size=5 bbWeight=0.50 PerfScore 2.00
+                       ;; size=9 bbWeight=0.50 PerfScore 3.00
 
-; Total bytes of code 10, prolog size 0, PerfScore 4.25, instruction count 5, allocated bytes for code 10 (MethodHash=8a3760ba) for method System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
+; Total bytes of code 14, prolog size 0, PerfScore 5.25, instruction count 6, allocated bytes for code 14 (MethodHash=8a3760ba) for method System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+22 (+78.57%) : 227422.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)

@@ -7,35 +7,64 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  3,  3   )     int  ->  rcx         single-def
+;  V00 arg0         [V00,T01] (  4,  3.50)     int  ->  rcx         single-def
 ;  V01 loc0         [V01,T02] (  3,  2   )   ubyte  ->  rax        
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 rat0         [V03,T00] (  3,  6   )     int  ->  rcx         "ReplaceWithLclVar is creating a new local variable"
+;  V03 rat0         [V03,T00] (  3,  6   )     int  ->  rax         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 0
 
 G_M3102_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
                        ;; size=0 bbWeight=1 PerfScore 0.00
 G_M3102_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       add      ecx, -2
-       cmp      ecx, 19
-       ja       SHORT G_M3102_IG04
-       mov      eax, 0x3C003
-       bt       eax, ecx
-       jae      SHORT G_M3102_IG04
-                       ;; size=18 bbWeight=1 PerfScore 3.25
+       lea      eax, [rcx-0x02]
+       cmp      eax, 19
+       ja       SHORT G_M3102_IG03
+       lea      rcx, [reloc @RWD00]
+       mov      ecx, dword ptr [rcx+4*rax]
+       lea      rdx, G_M3102_IG02
+       add      rcx, rdx
+       jmp      rcx
+                       ;; size=30 bbWeight=1 PerfScore 7.50
 G_M3102_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       mov      eax, 1
+       add      ecx, -101
+       cmp      ecx, 2
+       jbe      SHORT G_M3102_IG05
        jmp      SHORT G_M3102_IG05
+                       ;; size=10 bbWeight=0.50 PerfScore 1.75
+G_M3102_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       mov      eax, 1
+       jmp      SHORT G_M3102_IG06
                        ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M3102_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M3102_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M3102_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M3102_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        ret      
                        ;; size=1 bbWeight=1 PerfScore 1.00
+RWD00      dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
 
-; Total bytes of code 28, prolog size 0, PerfScore 5.50, instruction count 10, allocated bytes for code 28 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
+
+; Total bytes of code 50, prolog size 0, PerfScore 11.50, instruction count 16, allocated bytes for code 50 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:

libraries_tests.run.windows.x64.Release.mch

-43 (-14.63%) : 63085.dasm - Roslyn.Utilities.UnicodeCharacterUtilities:IsValidIdentifier(System.String):ubyte (Tier1)

@@ -14,9 +14,9 @@
 ;  V02 loc1         [V02,T01] (  5, 29.03)     int  ->  rdi        
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V05 tmp2         [V05,T07] (  3,  0   )   ubyte  ->  rbp         "Inline return value spill temp"
+;  V05 tmp2         [V05,T07] (  3,  0   )   ubyte  ->  rdi         "Inline return value spill temp"
 ;  V06 tmp3         [V06,T04] (  8,  7.96)  ushort  ->  rcx         "Inlining Arg"
-;  V07 tmp4         [V07,T10] (  3,  0   )   ubyte  ->  rbp         "Inline return value spill temp"
+;  V07 tmp4         [V07,T10] (  3,  0   )   ubyte  ->  rdi         "Inline return value spill temp"
 ;  V08 tmp5         [V08,T11] (  3,  0   )     int  ->  rax         "Inlining Arg"
 ;  V09 tmp6         [V09,T08] (  2,  0   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V10 tmp7         [V10,T00] ( 10, 42.21)  ushort  ->  rcx         "Inlining Arg"
@@ -25,179 +25,167 @@
 ;* V13 tmp10        [V13,T13] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V14 cse0         [V14,T05] (  3,  3.00)     int  ->  rsi         "CSE - aggressive"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M26758_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
-       push     rbp
        push     rbx
-       sub      rsp, 40
+       sub      rsp, 32
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-                       ;; size=11 bbWeight=1 PerfScore 4.50
+                       ;; size=10 bbWeight=1 PerfScore 3.50
 G_M26758_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        test     rbx, rbx
-       je       SHORT G_M26758_IG03
+       je       G_M26758_IG22
        mov      esi, dword ptr [rbx+0x08]
        test     esi, esi
-       jne      SHORT G_M26758_IG05
-                       ;; size=12 bbWeight=1 PerfScore 4.50
-G_M26758_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       xor      eax, eax
-                       ;; size=2 bbWeight=0 PerfScore 0.00
-G_M26758_IG04:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
-       pop      rbp
-       pop      rsi
-       pop      rdi
-       ret      
-                       ;; size=9 bbWeight=0 PerfScore 0.00
-G_M26758_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rbx]
+       je       G_M26758_IG22
        movzx    rcx, word  ptr [rbx+0x0C]
        cmp      ecx, 97
-       jge      SHORT G_M26758_IG14
-                       ;; size=9 bbWeight=1 PerfScore 3.25
-G_M26758_IG06:        ; bbWeight=0.98, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M26758_IG08
-                       ;; size=2 bbWeight=0.98 PerfScore 1.96
-G_M26758_IG07:        ; bbWeight=7.13, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       inc      edi
-       cmp      edi, esi
-       jl       SHORT G_M26758_IG13
-       jmp      SHORT G_M26758_IG22
-                       ;; size=8 bbWeight=7.13 PerfScore 24.95
-G_M26758_IG08:        ; bbWeight=0.98, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       jge      SHORT G_M26758_IG16
+                       ;; size=29 bbWeight=1 PerfScore 7.75
+G_M26758_IG03:        ; bbWeight=0.98, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        cmp      ecx, 65
-       jl       SHORT G_M26758_IG03
-                       ;; size=5 bbWeight=0.98 PerfScore 1.23
-G_M26758_IG09:        ; bbWeight=0.98, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       jl       G_M26758_IG22
+                       ;; size=9 bbWeight=0.98 PerfScore 1.23
+G_M26758_IG04:        ; bbWeight=0.98, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      ecx, 90
-       jle      SHORT G_M26758_IG11
+       jg       SHORT G_M26758_IG20
                        ;; size=5 bbWeight=0.98 PerfScore 1.23
-G_M26758_IG10:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M26758_IG12
-                       ;; size=2 bbWeight=0 PerfScore 0.00
-G_M26758_IG11:        ; bbWeight=1.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M26758_IG05:        ; bbWeight=1.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      edi, 1
        cmp      esi, 1
-       jle      SHORT G_M26758_IG22
-       jmp      SHORT G_M26758_IG13
-                       ;; size=12 bbWeight=1.00 PerfScore 3.50
-G_M26758_IG12:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       xor      ebp, ebp
-       cmp      ecx, 95
-       sete     bpl
-       jmp      SHORT G_M26758_IG27
-                       ;; size=11 bbWeight=0 PerfScore 0.00
-G_M26758_IG13:        ; bbWeight=6.65, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       jle      SHORT G_M26758_IG11
+                       ;; size=10 bbWeight=1.00 PerfScore 1.50
+G_M26758_IG06:        ; bbWeight=6.65, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      eax, edi
        movzx    rcx, word  ptr [rbx+2*rax+0x0C]
        cmp      ecx, 97
-       jge      SHORT G_M26758_IG18
-       jmp      SHORT G_M26758_IG15
-                       ;; size=14 bbWeight=6.65 PerfScore 36.56
-G_M26758_IG14:        ; bbWeight=0.02, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       jl       SHORT G_M26758_IG13
+                       ;; size=12 bbWeight=6.65 PerfScore 23.26
+G_M26758_IG07:        ; bbWeight=5.56, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      ecx, 122
-       jg       SHORT G_M26758_IG24
-       jmp      SHORT G_M26758_IG11
-                       ;; size=7 bbWeight=0.02 PerfScore 0.06
-G_M26758_IG15:        ; bbWeight=1.09, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 65
-       jge      SHORT G_M26758_IG19
-                       ;; size=5 bbWeight=1.09 PerfScore 1.36
-G_M26758_IG16:        ; bbWeight=0.58, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 48
-       jl       SHORT G_M26758_IG03
-                       ;; size=5 bbWeight=0.58 PerfScore 0.73
-G_M26758_IG17:        ; bbWeight=0.07, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 57
-       jg       SHORT G_M26758_IG03
-       jmp      SHORT G_M26758_IG07
-                       ;; size=7 bbWeight=0.07 PerfScore 0.23
-G_M26758_IG18:        ; bbWeight=5.56, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 122
-       jle      SHORT G_M26758_IG07
-       jmp      SHORT G_M26758_IG28
-                       ;; size=7 bbWeight=5.56 PerfScore 18.07
-G_M26758_IG19:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 90
        jg       SHORT G_M26758_IG21
-                       ;; size=5 bbWeight=0.50 PerfScore 0.63
-G_M26758_IG20:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M26758_IG07
+                       ;; size=5 bbWeight=5.56 PerfScore 6.95
+G_M26758_IG08:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M26758_IG10
                        ;; size=2 bbWeight=0 PerfScore 0.00
-G_M26758_IG21:        ; bbWeight=0.01, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 95
-       jne      SHORT G_M26758_IG03
-       jmp      SHORT G_M26758_IG07
-                       ;; size=7 bbWeight=0.01 PerfScore 0.02
-G_M26758_IG22:        ; bbWeight=0.93, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M26758_IG09:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       test     eax, eax
+       je       SHORT G_M26758_IG22
+                       ;; size=4 bbWeight=0 PerfScore 0.00
+G_M26758_IG10:        ; bbWeight=7.13, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       inc      edi
+       cmp      edi, esi
+       jl       SHORT G_M26758_IG06
+                       ;; size=6 bbWeight=7.13 PerfScore 10.69
+G_M26758_IG11:        ; bbWeight=0.93, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx]
        mov      eax, 1
                        ;; size=5 bbWeight=0.93 PerfScore 0.23
-G_M26758_IG23:        ; bbWeight=0.93, epilog, nogc, extend
-       add      rsp, 40
+G_M26758_IG12:        ; bbWeight=0.93, epilog, nogc, extend
+       add      rsp, 32
        pop      rbx
-       pop      rbp
        pop      rsi
        pop      rdi
        ret      
-                       ;; size=9 bbWeight=0.93 PerfScore 3.03
+                       ;; size=8 bbWeight=0.93 PerfScore 2.56
+G_M26758_IG13:        ; bbWeight=1.09, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs +[rbx]
+       cmp      ecx, 65
+       jge      SHORT G_M26758_IG17
+                       ;; size=5 bbWeight=1.09 PerfScore 1.36
+G_M26758_IG14:        ; bbWeight=0.58, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      ecx, 48
+       jl       SHORT G_M26758_IG22
+                       ;; size=5 bbWeight=0.58 PerfScore 0.73
+G_M26758_IG15:        ; bbWeight=0.07, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      ecx, 57
+       jg       SHORT G_M26758_IG22
+       jmp      SHORT G_M26758_IG10
+                       ;; size=7 bbWeight=0.07 PerfScore 0.23
+G_M26758_IG16:        ; bbWeight=0.02, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      ecx, 122
+       jg       SHORT G_M26758_IG24
+       jmp      SHORT G_M26758_IG05
+                       ;; size=7 bbWeight=0.02 PerfScore 0.06
+G_M26758_IG17:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      ecx, 90
+       jle      SHORT G_M26758_IG10
+                       ;; size=5 bbWeight=0.50 PerfScore 0.63
+G_M26758_IG18:        ; bbWeight=0.01, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      ecx, 95
+       je       SHORT G_M26758_IG10
+                       ;; size=5 bbWeight=0.01 PerfScore 0.01
+G_M26758_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rbx]
+       jmp      SHORT G_M26758_IG22
+                       ;; size=2 bbWeight=0 PerfScore 0.00
+G_M26758_IG20:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[rbx]
+       xor      edi, edi
+       cmp      ecx, 95
+       sete     dil
+       jmp      SHORT G_M26758_IG27
+                       ;; size=11 bbWeight=0 PerfScore 0.00
+G_M26758_IG21:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      ecx, 127
+       jle      SHORT G_M26758_IG22
+       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategoryNoBoundsChecks(uint):int]
+       ; gcr arg pop 0
+       cmp      eax, 4
+       jbe      SHORT G_M26758_IG10
+       cmp      eax, 9
+       je       SHORT G_M26758_IG10
+       cmp      eax, 8
+       je       SHORT G_M26758_IG10
+       cmp      eax, 18
+       je       SHORT G_M26758_IG10
+       lea      ecx, [rax-0x05]
+       cmp      ecx, 1
+       jbe      SHORT G_M26758_IG10
+       cmp      eax, 15
+       sete     al
+       movzx    rax, al
+       jmp      SHORT G_M26758_IG09
+                       ;; size=50 bbWeight=0 PerfScore 0.00
+G_M26758_IG22:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx]
+       xor      eax, eax
+                       ;; size=2 bbWeight=0 PerfScore 0.00
+G_M26758_IG23:        ; bbWeight=0, epilog, nogc, extend
+       add      rsp, 32
+       pop      rbx
+       pop      rsi
+       pop      rdi
+       ret      
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 G_M26758_IG24:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx]
        cmp      ecx, 127
-       jle      G_M26758_IG03
+       jle      SHORT G_M26758_IG22
        call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategoryNoBoundsChecks(uint):int]
        ; gcr arg pop 0
...

-43 (-14.63%) : 90936.dasm - Roslyn.Utilities.UnicodeCharacterUtilities:IsValidIdentifier(System.String):ubyte (Tier1)

@@ -14,9 +14,9 @@
 ;  V02 loc1         [V02,T01] (  5, 29.71)     int  ->  rdi        
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V05 tmp2         [V05,T07] (  3,  0   )   ubyte  ->  rbp         "Inline return value spill temp"
+;  V05 tmp2         [V05,T07] (  3,  0   )   ubyte  ->  rdi         "Inline return value spill temp"
 ;  V06 tmp3         [V06,T04] (  8,  7.94)  ushort  ->  rcx         "Inlining Arg"
-;  V07 tmp4         [V07,T10] (  3,  0   )   ubyte  ->  rbp         "Inline return value spill temp"
+;  V07 tmp4         [V07,T10] (  3,  0   )   ubyte  ->  rdi         "Inline return value spill temp"
 ;  V08 tmp5         [V08,T11] (  3,  0   )     int  ->  rax         "Inlining Arg"
 ;  V09 tmp6         [V09,T08] (  2,  0   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V10 tmp7         [V10,T00] ( 10, 43.57)  ushort  ->  rcx         "Inlining Arg"
@@ -25,181 +25,171 @@
 ;* V13 tmp10        [V13,T13] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V14 cse0         [V14,T05] (  3,  2.86)     int  ->  rsi         "CSE - aggressive"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M26758_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
-       push     rbp
        push     rbx
-       sub      rsp, 40
+       sub      rsp, 32
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-                       ;; size=11 bbWeight=1 PerfScore 4.50
-G_M26758_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+                       ;; size=10 bbWeight=1 PerfScore 3.50
+G_M26758_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        test     rbx, rbx
-       je       SHORT G_M26758_IG04
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M26758_IG03:        ; bbWeight=0.93, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       je       G_M26758_IG24
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M26758_IG03:        ; bbWeight=0.93, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      esi, dword ptr [rbx+0x08]
        test     esi, esi
-       jne      SHORT G_M26758_IG06
-                       ;; size=7 bbWeight=0.93 PerfScore 3.02
-G_M26758_IG04:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       xor      eax, eax
-                       ;; size=2 bbWeight=0 PerfScore 0.00
-G_M26758_IG05:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
-       pop      rbp
-       pop      rsi
-       pop      rdi
-       ret      
-                       ;; size=9 bbWeight=0 PerfScore 0.00
-G_M26758_IG06:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rbx]
+       je       G_M26758_IG24
+                       ;; size=11 bbWeight=0.93 PerfScore 3.02
+G_M26758_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        movzx    rcx, word  ptr [rbx+0x0C]
        cmp      ecx, 97
-       jge      SHORT G_M26758_IG15
+       jge      SHORT G_M26758_IG18
                        ;; size=9 bbWeight=1 PerfScore 3.25
-G_M26758_IG07:        ; bbWeight=0.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M26758_IG09
-                       ;; size=2 bbWeight=0.97 PerfScore 1.94
-G_M26758_IG08:        ; bbWeight=7.29, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       inc      edi
-       cmp      edi, esi
-       jl       SHORT G_M26758_IG14
-       jmp      SHORT G_M26758_IG23
-                       ;; size=8 bbWeight=7.29 PerfScore 25.53
-G_M26758_IG09:        ; bbWeight=0.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M26758_IG05:        ; bbWeight=0.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        cmp      ecx, 65
-       jl       SHORT G_M26758_IG04
-                       ;; size=5 bbWeight=0.97 PerfScore 1.21
-G_M26758_IG10:        ; bbWeight=0.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       jl       G_M26758_IG24
+                       ;; size=9 bbWeight=0.97 PerfScore 1.21
+G_M26758_IG06:        ; bbWeight=0.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      ecx, 90
-       jle      SHORT G_M26758_IG12
+       jg       SHORT G_M26758_IG22
                        ;; size=5 bbWeight=0.97 PerfScore 1.21
-G_M26758_IG11:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M26758_IG13
-                       ;; size=2 bbWeight=0 PerfScore 0.00
-G_M26758_IG12:        ; bbWeight=1.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M26758_IG07:        ; bbWeight=1.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      edi, 1
        cmp      esi, 1
-       jle      SHORT G_M26758_IG23
-       jmp      SHORT G_M26758_IG14
-                       ;; size=12 bbWeight=1.00 PerfScore 3.50
-G_M26758_IG13:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       xor      ebp, ebp
-       cmp      ecx, 95
-       sete     bpl
-       jmp      SHORT G_M26758_IG28
-                       ;; size=11 bbWeight=0 PerfScore 0.00
-G_M26758_IG14:        ; bbWeight=6.83, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       jle      SHORT G_M26758_IG13
+                       ;; size=10 bbWeight=1.00 PerfScore 1.50
+G_M26758_IG08:        ; bbWeight=6.83, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      eax, edi
        movzx    rcx, word  ptr [rbx+2*rax+0x0C]
        cmp      ecx, 97
-       jge      SHORT G_M26758_IG19
-       jmp      SHORT G_M26758_IG16
-                       ;; size=14 bbWeight=6.83 PerfScore 37.56
-G_M26758_IG15:        ; bbWeight=0.03, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       jl       SHORT G_M26758_IG15
+                       ;; size=12 bbWeight=6.83 PerfScore 23.90
+G_M26758_IG09:        ; bbWeight=5.64, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      ecx, 122
-       jg       SHORT G_M26758_IG25
+       jg       SHORT G_M26758_IG23
+                       ;; size=5 bbWeight=5.64 PerfScore 7.06
+G_M26758_IG10:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        jmp      SHORT G_M26758_IG12
-                       ;; size=7 bbWeight=0.03 PerfScore 0.09
-G_M26758_IG16:        ; bbWeight=1.18, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 65
-       jge      SHORT G_M26758_IG20
-                       ;; size=5 bbWeight=1.18 PerfScore 1.48
-G_M26758_IG17:        ; bbWeight=0.66, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 48
-       jl       SHORT G_M26758_IG04
-                       ;; size=5 bbWeight=0.66 PerfScore 0.82
-G_M26758_IG18:        ; bbWeight=0.11, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 57
-       jg       SHORT G_M26758_IG04
-       jmp      SHORT G_M26758_IG08
-                       ;; size=7 bbWeight=0.11 PerfScore 0.35
-G_M26758_IG19:        ; bbWeight=5.64, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 122
-       jle      SHORT G_M26758_IG08
-       jmp      SHORT G_M26758_IG29
-                       ;; size=7 bbWeight=5.64 PerfScore 18.35
-G_M26758_IG20:        ; bbWeight=0.53, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 90
-       jg       SHORT G_M26758_IG22
-                       ;; size=5 bbWeight=0.53 PerfScore 0.66
-G_M26758_IG21:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M26758_IG08
                        ;; size=2 bbWeight=0 PerfScore 0.00
-G_M26758_IG22:        ; bbWeight=0.01, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 95
-       jne      SHORT G_M26758_IG04
-       jmp      SHORT G_M26758_IG08
-                       ;; size=7 bbWeight=0.01 PerfScore 0.03
-G_M26758_IG23:        ; bbWeight=0.94, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M26758_IG11:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       test     eax, eax
+       je       SHORT G_M26758_IG24
+                       ;; size=4 bbWeight=0 PerfScore 0.00
+G_M26758_IG12:        ; bbWeight=7.29, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       inc      edi
+       cmp      edi, esi
+       jl       SHORT G_M26758_IG08
+                       ;; size=6 bbWeight=7.29 PerfScore 10.94
+G_M26758_IG13:        ; bbWeight=0.94, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx]
        mov      eax, 1
                        ;; size=5 bbWeight=0.94 PerfScore 0.23
-G_M26758_IG24:        ; bbWeight=0.94, epilog, nogc, extend
-       add      rsp, 40
+G_M26758_IG14:        ; bbWeight=0.94, epilog, nogc, extend
+       add      rsp, 32
        pop      rbx
-       pop      rbp
        pop      rsi
        pop      rdi
        ret      
-                       ;; size=9 bbWeight=0.94 PerfScore 3.04
-G_M26758_IG25:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=8 bbWeight=0.94 PerfScore 2.57
+G_M26758_IG15:        ; bbWeight=1.18, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx]
-       cmp      ecx, 127
-       jle      G_M26758_IG04
-       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategoryNoBoundsChecks(uint):int]
-       ; gcr arg pop 0
-       cmp      eax, 4
-       jbe      SHORT G_M26758_IG26
-       cmp      eax, 9
-       jne      SHORT G_M26758_IG27
-                       ;; size=25 bbWeight=0 PerfScore 0.00
-G_M26758_IG26:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       mov      ebp, 1
-       jmp      SHORT G_M26758_IG28
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M26758_IG27:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       xor      ebp, ebp
+       cmp      ecx, 65
+       jge      SHORT G_M26758_IG19
+                       ;; size=5 bbWeight=1.18 PerfScore 1.48
+G_M26758_IG16:        ; bbWeight=0.66, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      ecx, 48
+       jl       SHORT G_M26758_IG24
+                       ;; size=5 bbWeight=0.66 PerfScore 0.82
+G_M26758_IG17:        ; bbWeight=0.11, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      ecx, 57
+       jg       SHORT G_M26758_IG24
+       jmp      SHORT G_M26758_IG12
+                       ;; size=7 bbWeight=0.11 PerfScore 0.35
+G_M26758_IG18:        ; bbWeight=0.03, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      ecx, 122
+       jg       SHORT G_M26758_IG26
+       jmp      SHORT G_M26758_IG07
+                       ;; size=7 bbWeight=0.03 PerfScore 0.09
+G_M26758_IG19:        ; bbWeight=0.53, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      ecx, 90
+       jle      SHORT G_M26758_IG12
+                       ;; size=5 bbWeight=0.53 PerfScore 0.66
+G_M26758_IG20:        ; bbWeight=0.01, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      ecx, 95
+       je       SHORT G_M26758_IG12
+                       ;; size=5 bbWeight=0.01 PerfScore 0.01
+G_M26758_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rbx]
+       jmp      SHORT G_M26758_IG24
                        ;; size=2 bbWeight=0 PerfScore 0.00
-G_M26758_IG28:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       test     ebp, ebp
-       je       G_M26758_IG04
-       jmp      G_M26758_IG12
-                       ;; size=13 bbWeight=0 PerfScore 0.00
-G_M26758_IG29:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M26758_IG22:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[rbx]
+       xor      edi, edi
+       cmp      ecx, 95
+       sete     dil
+       jmp      SHORT G_M26758_IG29
+                       ;; size=11 bbWeight=0 PerfScore 0.00
+G_M26758_IG23:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      ecx, 127
-       jle      G_M26758_IG04
+       jle      SHORT G_M26758_IG24
        call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategoryNoBoundsChecks(uint):int]
        ; gcr arg pop 0
        cmp      eax, 4
-       jbe      G_M26758_IG08
+       jbe      SHORT G_M26758_IG12
        cmp      eax, 9
-       je       G_M26758_IG08
...

-42 (-14.53%) : 167716.dasm - Roslyn.Utilities.UnicodeCharacterUtilities:IsValidIdentifier(System.String):ubyte (Tier1)

@@ -38,104 +38,65 @@ G_M26758_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=11 bbWeight=1 PerfScore 4.50
 G_M26758_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        test     rbx, rbx
-       je       SHORT G_M26758_IG04
+       je       SHORT G_M26758_IG20
                        ;; size=5 bbWeight=1 PerfScore 1.25
 G_M26758_IG03:        ; bbWeight=0.92, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      esi, dword ptr [rbx+0x08]
        test     esi, esi
-       jne      SHORT G_M26758_IG06
+       je       SHORT G_M26758_IG20
                        ;; size=7 bbWeight=0.92 PerfScore 3.00
-G_M26758_IG04:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       xor      eax, eax
-                       ;; size=2 bbWeight=0 PerfScore 0.00
-G_M26758_IG05:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
-       pop      rbp
-       pop      rsi
-       pop      rdi
-       ret      
-                       ;; size=9 bbWeight=0 PerfScore 0.00
-G_M26758_IG06:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rbx]
+G_M26758_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        movzx    rcx, word  ptr [rbx+0x0C]
        cmp      ecx, 97
        jge      SHORT G_M26758_IG16
                        ;; size=9 bbWeight=1 PerfScore 3.25
-G_M26758_IG07:        ; bbWeight=1.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M26758_IG09
-                       ;; size=2 bbWeight=1.00 PerfScore 1.99
-G_M26758_IG08:        ; bbWeight=7.82, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       inc      edi
-       cmp      edi, esi
-       jl       SHORT G_M26758_IG12
-       jmp      SHORT G_M26758_IG21
-                       ;; size=8 bbWeight=7.82 PerfScore 27.36
-G_M26758_IG09:        ; bbWeight=1.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M26758_IG05:        ; bbWeight=1.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      ecx, 65
-       jl       SHORT G_M26758_IG04
+       jl       SHORT G_M26758_IG20
        cmp      ecx, 90
-       jle      SHORT G_M26758_IG11
+       jg       SHORT G_M26758_IG22
                        ;; size=10 bbWeight=1.00 PerfScore 2.49
-G_M26758_IG10:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       xor      esi, esi
-       cmp      ecx, 95
-       sete     sil
-       jmp      SHORT G_M26758_IG26
-                       ;; size=11 bbWeight=0 PerfScore 0.00
-G_M26758_IG11:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M26758_IG06:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      esi, dword ptr [rbx+0x08]
        mov      edi, 1
        cmp      esi, 1
-       jle      SHORT G_M26758_IG21
+       jle      SHORT G_M26758_IG14
                        ;; size=13 bbWeight=1 PerfScore 3.50
-G_M26758_IG12:        ; bbWeight=7.35, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M26758_IG07:        ; bbWeight=7.35, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      eax, edi
        movzx    rcx, word  ptr [rbx+2*rax+0x0C]
        cmp      ecx, 97
-       jge      SHORT G_M26758_IG17
+       jl       SHORT G_M26758_IG10
                        ;; size=12 bbWeight=7.35 PerfScore 25.72
-G_M26758_IG13:        ; bbWeight=1.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 65
-       jge      SHORT G_M26758_IG18
-                       ;; size=5 bbWeight=1.04 PerfScore 1.30
-G_M26758_IG14:        ; bbWeight=0.58, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 48
-       jl       SHORT G_M26758_IG04
-                       ;; size=5 bbWeight=0.58 PerfScore 0.72
-G_M26758_IG15:        ; bbWeight=0.07, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 57
-       jg       SHORT G_M26758_IG04
-       jmp      SHORT G_M26758_IG08
-                       ;; size=7 bbWeight=0.07 PerfScore 0.22
-G_M26758_IG16:        ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M26758_IG08:        ; bbWeight=6.31, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      ecx, 122
        jg       SHORT G_M26758_IG23
-       jmp      SHORT G_M26758_IG11
-                       ;; size=7 bbWeight=0.00 PerfScore 0.01
-G_M26758_IG17:        ; bbWeight=6.31, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 122
-       jle      SHORT G_M26758_IG08
-       jmp      SHORT G_M26758_IG28
-                       ;; size=7 bbWeight=6.31 PerfScore 20.50
-G_M26758_IG18:        ; bbWeight=0.46, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 90
-       jg       SHORT G_M26758_IG27
-                       ;; size=5 bbWeight=0.46 PerfScore 0.58
-G_M26758_IG19:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M26758_IG08
+                       ;; size=5 bbWeight=6.31 PerfScore 7.88
+G_M26758_IG09:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M26758_IG13
                        ;; size=2 bbWeight=0 PerfScore 0.00
-G_M26758_IG20:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       test     ebp, ebp
-       je       SHORT G_M26758_IG04
-       jmp      SHORT G_M26758_IG08
-                       ;; size=6 bbWeight=0 PerfScore 0.00
-G_M26758_IG21:        ; bbWeight=0.94, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M26758_IG10:        ; bbWeight=1.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      ecx, 65
+       jge      SHORT G_M26758_IG17
+                       ;; size=5 bbWeight=1.04 PerfScore 1.30
+G_M26758_IG11:        ; bbWeight=0.58, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      ecx, 48
+       jl       SHORT G_M26758_IG20
+                       ;; size=5 bbWeight=0.58 PerfScore 0.72
+G_M26758_IG12:        ; bbWeight=0.07, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      ecx, 57
+       jg       SHORT G_M26758_IG20
+                       ;; size=5 bbWeight=0.07 PerfScore 0.08
+G_M26758_IG13:        ; bbWeight=7.82, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       inc      edi
+       cmp      edi, esi
+       jl       SHORT G_M26758_IG07
+                       ;; size=6 bbWeight=7.82 PerfScore 11.73
+G_M26758_IG14:        ; bbWeight=0.94, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx]
        mov      eax, 1
                        ;; size=5 bbWeight=0.94 PerfScore 0.23
-G_M26758_IG22:        ; bbWeight=0.94, epilog, nogc, extend
+G_M26758_IG15:        ; bbWeight=0.94, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
@@ -143,58 +104,90 @@ G_M26758_IG22:        ; bbWeight=0.94, epilog, nogc, extend
        pop      rdi
        ret      
                        ;; size=9 bbWeight=0.94 PerfScore 3.05
-G_M26758_IG23:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M26758_IG16:        ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx]
-       cmp      ecx, 127
-       jle      G_M26758_IG04
-       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategoryNoBoundsChecks(uint):int]
-       ; gcr arg pop 0
-       cmp      eax, 4
-       jbe      SHORT G_M26758_IG24
-       cmp      eax, 9
-       jne      SHORT G_M26758_IG25
-                       ;; size=25 bbWeight=0 PerfScore 0.00
-G_M26758_IG24:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       mov      esi, 1
-       jmp      SHORT G_M26758_IG26
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M26758_IG25:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       xor      esi, esi
-                       ;; size=2 bbWeight=0 PerfScore 0.00
-G_M26758_IG26:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       test     esi, esi
-       je       G_M26758_IG04
-       jmp      SHORT G_M26758_IG11
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M26758_IG27:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      ecx, 122
+       jg       SHORT G_M26758_IG24
+       jmp      SHORT G_M26758_IG06
+                       ;; size=7 bbWeight=0.00 PerfScore 0.01
+G_M26758_IG17:        ; bbWeight=0.46, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      ecx, 90
+       jle      SHORT G_M26758_IG13
+                       ;; size=5 bbWeight=0.46 PerfScore 0.58
+G_M26758_IG18:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        xor      ebp, ebp
        cmp      ecx, 95
        sete     bpl
-       jmp      SHORT G_M26758_IG20
+                       ;; size=9 bbWeight=0 PerfScore 0.00
+G_M26758_IG19:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       test     ebp, ebp
+       je       SHORT G_M26758_IG20
+       jmp      SHORT G_M26758_IG13
+                       ;; size=6 bbWeight=0 PerfScore 0.00
+G_M26758_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx]
+       xor      eax, eax
+                       ;; size=2 bbWeight=0 PerfScore 0.00
+G_M26758_IG21:        ; bbWeight=0, epilog, nogc, extend
+       add      rsp, 40
+       pop      rbx
+       pop      rbp
+       pop      rsi
+       pop      rdi
+       ret      
+                       ;; size=9 bbWeight=0 PerfScore 0.00
+G_M26758_IG22:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs +[rbx]
+       xor      esi, esi
+       cmp      ecx, 95
+       sete     sil
+       jmp      SHORT G_M26758_IG27
                        ;; size=11 bbWeight=0 PerfScore 0.00
-G_M26758_IG28:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M26758_IG23:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      ecx, 127
-       jle      G_M26758_IG04
+       jle      SHORT G_M26758_IG20
        call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategoryNoBoundsChecks(uint):int]
        ; gcr arg pop 0
        cmp      eax, 4
-       jbe      G_M26758_IG08
+       jbe      SHORT G_M26758_IG13
        cmp      eax, 9
-       je       G_M26758_IG08
+       je       SHORT G_M26758_IG13
        cmp      eax, 8
-       je       G_M26758_IG08
+       je       SHORT G_M26758_IG13
        cmp      eax, 18
-       je       G_M26758_IG08
+       je       SHORT G_M26758_IG13
        lea      ecx, [rax-0x05]
        cmp      ecx, 1
-       jbe      G_M26758_IG08
+       jbe      SHORT G_M26758_IG13
        xor      ebp, ebp
        cmp      eax, 15
        sete     bpl
-       jmp      G_M26758_IG20
-                       ;; size=77 bbWeight=0 PerfScore 0.00
+       jmp      SHORT G_M26758_IG19
+                       ;; size=50 bbWeight=0 PerfScore 0.00
+G_M26758_IG24:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      ecx, 127
+       jle      SHORT G_M26758_IG20
+       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategoryNoBoundsChecks(uint):int]
+       ; gcr arg pop 0
+       cmp      eax, 4
+       jbe      SHORT G_M26758_IG25
+       cmp      eax, 9
+       jne      SHORT G_M26758_IG26
+                       ;; size=21 bbWeight=0 PerfScore 0.00
+G_M26758_IG25:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       mov      esi, 1
+       jmp      SHORT G_M26758_IG27
+                       ;; size=7 bbWeight=0 PerfScore 0.00
+G_M26758_IG26:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
...

+37 (+48.05%) : 169491.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)

@@ -12,29 +12,30 @@
 ;  V00 this         [V00,T00] (  7,  6   )     ref  ->  rbx         this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  rsi         class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  4,  4   )     int  ->  rcx         "Inline stloc first use temp"
+;  V03 tmp1         [V03,T02] (  8,  4   )     int  ->  rdi         "Inline stloc first use temp"
 ;* V04 tmp2         [V04,T03] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
-G_M46606_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M46606_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+       push     rdi
        push     rsi
        push     rbx
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      rsi, rdx
        ; gcrRegs +[rsi]
-                       ;; size=8 bbWeight=1 PerfScore 2.50
+                       ;; size=9 bbWeight=1 PerfScore 3.50
 G_M46606_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        cmp      gword ptr [rbx+0x18], 0
        jne      SHORT G_M46606_IG06
-       mov      ecx, dword ptr [rsi+0x34]
-       test     ecx, 0xD1FFAB1E
+       mov      edi, dword ptr [rsi+0x34]
+       test     edi, 0xD1FFAB1E
        jne      SHORT G_M46606_IG04
-       test     ecx, 0xD1FFAB1E
+       test     edi, 0xD1FFAB1E
        jne      SHORT G_M46606_IG04
-       test     ecx, 0xD1FFAB1E
-       je       SHORT G_M46606_IG04
+       test     edi, 0xD1FFAB1E
+       je       SHORT G_M46606_IG08
        lea      rcx, bword ptr [rbx+0x18]
        ; byrRegs +[rcx]
        mov      rdx, rsi
@@ -58,8 +59,9 @@ G_M46606_IG04:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
 G_M46606_IG05:        ; bbWeight=1, epilog, nogc, extend
        pop      rbx
        pop      rsi
+       pop      rdi
        ret      
-                       ;; size=3 bbWeight=1 PerfScore 2.00
+                       ;; size=4 bbWeight=1 PerfScore 2.50
 G_M46606_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax rsi] +[rbx]
        mov      rax, gword ptr [rbx+0x18]
@@ -68,10 +70,23 @@ G_M46606_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {
 G_M46606_IG07:        ; bbWeight=0, epilog, nogc, extend
        pop      rbx
        pop      rsi
+       pop      rdi
        ret      
-                       ;; size=3 bbWeight=0 PerfScore 0.00
+                       ;; size=4 bbWeight=0 PerfScore 0.00
+G_M46606_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax rbx] +[rsi]
+       test     edi, 0xD1FFAB1E
+       jne      SHORT G_M46606_IG04
+       test     edi, 0x20000
+       jne      SHORT G_M46606_IG04
+       test     edi, 0x10000
+       jne      SHORT G_M46606_IG04
+       test     edi, 0xD1FFAB1E
+       je       SHORT G_M46606_IG04
+       jmp      SHORT G_M46606_IG04
+                       ;; size=34 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 77, prolog size 2, PerfScore 18.50, instruction count 27, allocated bytes for code 77 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 114, prolog size 3, PerfScore 20.00, instruction count 39, allocated bytes for code 114 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -79,10 +94,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x02
-  CountOfUnwindCodes: 2
+  SizeOfProlog      : 0x03
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)

+37 (+48.05%) : 88916.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)

@@ -12,42 +12,30 @@
 ;  V00 this         [V00,T00] (  7,  6   )     ref  ->  rbx         this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  rsi         class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  4,  4   )     int  ->  rcx         "Inline stloc first use temp"
+;  V03 tmp1         [V03,T02] (  8,  4.10)     int  ->  rdi         "Inline stloc first use temp"
 ;* V04 tmp2         [V04,T03] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
 G_M46606_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+       push     rdi
        push     rsi
        push     rbx
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      rsi, rdx
        ; gcrRegs +[rsi]
-                       ;; size=8 bbWeight=1 PerfScore 2.50
+                       ;; size=9 bbWeight=1 PerfScore 3.50
 G_M46606_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        cmp      gword ptr [rbx+0x18], 0
-       je       SHORT G_M46606_IG05
-                       ;; size=7 bbWeight=1 PerfScore 4.00
-G_M46606_IG03:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi]
-       mov      rax, gword ptr [rbx+0x18]
-       ; gcrRegs +[rax]
-                       ;; size=4 bbWeight=0 PerfScore 0.00
-G_M46606_IG04:        ; bbWeight=0, epilog, nogc, extend
-       pop      rbx
-       pop      rsi
-       ret      
-                       ;; size=3 bbWeight=0 PerfScore 0.00
-G_M46606_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax] +[rsi]
-       mov      ecx, dword ptr [rsi+0x34]
-       test     ecx, 0xD1FFAB1E
        jne      SHORT G_M46606_IG07
-       test     ecx, 0xD1FFAB1E
-       jne      SHORT G_M46606_IG07
-       test     ecx, 0xD1FFAB1E
-       je       SHORT G_M46606_IG07
+       mov      edi, dword ptr [rsi+0x34]
+       test     edi, 0xD1FFAB1E
+       jne      SHORT G_M46606_IG04
+       test     edi, 0xD1FFAB1E
+       jne      SHORT G_M46606_IG04
+       test     edi, 0xD1FFAB1E
+       je       SHORT G_M46606_IG06
        lea      rcx, bword ptr [rbx+0x18]
        ; byrRegs +[rcx]
        mov      rdx, rsi
@@ -58,23 +46,47 @@ G_M46606_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0048 {
        xor      rax, rax
        ; gcrRegs +[rax]
        mov      gword ptr [rbx+0x08], rax
-                       ;; size=45 bbWeight=1 PerfScore 8.75
-G_M46606_IG06:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+                       ;; size=52 bbWeight=1 PerfScore 12.75
+G_M46606_IG03:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      gword ptr [rbx+0x10], rax
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M46606_IG07:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+G_M46606_IG04:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx]
        mov      rax, rsi
        ; gcrRegs +[rax]
                        ;; size=3 bbWeight=1 PerfScore 0.25
-G_M46606_IG08:        ; bbWeight=1, epilog, nogc, extend
+G_M46606_IG05:        ; bbWeight=1, epilog, nogc, extend
        pop      rbx
        pop      rsi
+       pop      rdi
        ret      
-                       ;; size=3 bbWeight=1 PerfScore 2.00
+                       ;; size=4 bbWeight=1 PerfScore 2.50
+G_M46606_IG06:        ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax]
+       test     edi, 0xD1FFAB1E
+       jne      SHORT G_M46606_IG04
+       test     edi, 0x20000
+       jne      SHORT G_M46606_IG04
+       test     edi, 0x10000
+       jne      SHORT G_M46606_IG04
+       test     edi, 0xD1FFAB1E
+       je       SHORT G_M46606_IG04
+       jmp      SHORT G_M46606_IG04
+                       ;; size=34 bbWeight=0.02 PerfScore 0.17
+G_M46606_IG07:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rsi] +[rbx]
+       mov      rax, gword ptr [rbx+0x18]
+       ; gcrRegs +[rax]
+                       ;; size=4 bbWeight=0 PerfScore 0.00
+G_M46606_IG08:        ; bbWeight=0, epilog, nogc, extend
+       pop      rbx
+       pop      rsi
+       pop      rdi
+       ret      
+                       ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 77, prolog size 2, PerfScore 18.50, instruction count 27, allocated bytes for code 77 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 114, prolog size 3, PerfScore 20.17, instruction count 39, allocated bytes for code 114 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -82,10 +94,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x02
-  CountOfUnwindCodes: 2
+  SizeOfProlog      : 0x03
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)

+37 (+49.33%) : 85795.dasm - Roslyn.Utilities.AsyncLazy1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[System.Canon]):System.Threading.Tasks.Task`1[System.Canon]:this (Tier1)

@@ -12,20 +12,21 @@
 ;  V00 this         [V00,T00] (  6,  4.70)     ref  ->  rbx         this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[System.__Canon]>
 ;  V01 arg1         [V01,T01] (  5,  3.70)     ref  ->  rsi         class-hnd single-def <System.Threading.Tasks.Task`1[System.__Canon]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T03] (  4,  2.27)     int  ->  rcx         "Inline stloc first use temp"
+;  V03 tmp1         [V03,T03] (  8,  2.32)     int  ->  rdi         "Inline stloc first use temp"
 ;* V04 tmp2         [V04,T04] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V05 cse0         [V05,T02] (  3,  2.43)     ref  ->  rax         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M21386_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+       push     rdi
        push     rsi
        push     rbx
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      rsi, rdx
        ; gcrRegs +[rsi]
-                       ;; size=8 bbWeight=1 PerfScore 2.50
+                       ;; size=9 bbWeight=1 PerfScore 3.50
 G_M21386_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        mov      rax, gword ptr [rbx+0x18]
        ; gcrRegs +[rax]
@@ -36,19 +37,20 @@ G_M21386_IG03:        ; bbWeight=0.43, gcrefRegs=0001 {rax}, byrefRegs=0000 {},
        ; gcrRegs -[rbx rsi]
        pop      rbx
        pop      rsi
+       pop      rdi
        ret      
-                       ;; size=3 bbWeight=0.43 PerfScore 0.87
+                       ;; size=4 bbWeight=0.43 PerfScore 1.08
 G_M21386_IG04:        ; bbWeight=0.57, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rbx rsi]
-       mov      ecx, dword ptr [rsi+0x34]
-       test     ecx, 0xD1FFAB1E
+       mov      edi, dword ptr [rsi+0x34]
+       test     edi, 0xD1FFAB1E
        jne      SHORT G_M21386_IG08
                        ;; size=11 bbWeight=0.57 PerfScore 1.84
 G_M21386_IG05:        ; bbWeight=0.57, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
-       test     ecx, 0xD1FFAB1E
+       test     edi, 0xD1FFAB1E
        jne      SHORT G_M21386_IG08
-       test     ecx, 0xD1FFAB1E
-       je       SHORT G_M21386_IG08
+       test     edi, 0xD1FFAB1E
+       je       SHORT G_M21386_IG10
                        ;; size=16 bbWeight=0.57 PerfScore 1.42
 G_M21386_IG06:        ; bbWeight=0.57, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        lea      rcx, bword ptr [rbx+0x18]
@@ -74,10 +76,23 @@ G_M21386_IG08:        ; bbWeight=0.57, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
 G_M21386_IG09:        ; bbWeight=0.57, epilog, nogc, extend
        pop      rbx
        pop      rsi
+       pop      rdi
        ret      
-                       ;; size=3 bbWeight=0.57 PerfScore 1.13
+                       ;; size=4 bbWeight=0.57 PerfScore 1.42
+G_M21386_IG10:        ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax]
+       test     edi, 0xD1FFAB1E
+       jne      SHORT G_M21386_IG08
+       test     edi, 0x20000
+       jne      SHORT G_M21386_IG08
+       test     edi, 0x10000
+       jne      SHORT G_M21386_IG08
+       test     edi, 0xD1FFAB1E
+       je       SHORT G_M21386_IG08
+       jmp      SHORT G_M21386_IG08
+                       ;; size=34 bbWeight=0.01 PerfScore 0.10
 
-; Total bytes of code 75, prolog size 2, PerfScore 13.41, instruction count 27, allocated bytes for code 75 (MethodHash=7308ac75) for method Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
+; Total bytes of code 112, prolog size 3, PerfScore 15.01, instruction count 39, allocated bytes for code 112 (MethodHash=7308ac75) for method Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -85,10 +100,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x02
-  CountOfUnwindCodes: 2
+  SizeOfProlog      : 0x03
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)

librariestestsnotieredcompilation.run.windows.x64.Release.mch

-12 (-13.48%) : 280725.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)

@@ -36,69 +36,49 @@
 ;
 ; Lcl frame size = 40
 
-G_M34829_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M34829_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        sub      rsp, 40
                        ;; size=4 bbWeight=1 PerfScore 0.25
 G_M34829_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        movzx    rcx, cx
        cmp      ecx, 256
-       jb       SHORT G_M34829_IG05
+       jae      SHORT G_M34829_IG09
                        ;; size=11 bbWeight=1 PerfScore 1.50
-G_M34829_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategory(int):int]
-       ; gcr arg pop 0
-                       ;; size=6 bbWeight=0 PerfScore 0.00
-G_M34829_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       add      eax, -8
-       cmp      eax, 16
-       ja       SHORT G_M34829_IG08
-       lea      rcx, [reloc @RWD00]
-       mov      ecx, dword ptr [rcx+4*rax]
-       lea      rdx, G_M34829_IG02
-       add      rcx, rdx
-       jmp      rcx
-                       ;; size=30 bbWeight=1 PerfScore 7.25
-G_M34829_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M34829_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      eax, ecx
        mov      rcx, 0xD1FFAB1E      ; static handle
        movzx    rax, byte  ptr [rax+rcx]
        and      eax, 31
-       jmp      SHORT G_M34829_IG04
-                       ;; size=21 bbWeight=0.50 PerfScore 2.38
-G_M34829_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+                       ;; size=19 bbWeight=0.50 PerfScore 1.38
+G_M34829_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       add      eax, -8
+       cmp      eax, 16
+       ja       SHORT G_M34829_IG07
+       mov      ecx, 0x1FC7D
+       bt       ecx, eax
+       jae      SHORT G_M34829_IG07
+                       ;; size=18 bbWeight=1 PerfScore 3.25
+G_M34829_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M34829_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M34829_IG06:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 40
        ret      
                        ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M34829_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M34829_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        mov      eax, 1
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M34829_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+G_M34829_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 40
        ret      
                        ;; size=5 bbWeight=0.50 PerfScore 0.62
-RWD00      dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
+G_M34829_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategory(int):int]
+       ; gcr arg pop 0
+       jmp      SHORT G_M34829_IG04
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-
-; Total bytes of code 89, prolog size 4, PerfScore 12.88, instruction count 24, allocated bytes for code 89 (MethodHash=b88877f2) for method System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
+; Total bytes of code 77, prolog size 4, PerfScore 7.88, instruction count 22, allocated bytes for code 77 (MethodHash=b88877f2) for method System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:

-12 (-13.48%) : 5934.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)

@@ -36,69 +36,49 @@
 ;
 ; Lcl frame size = 40
 
-G_M34829_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M34829_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        sub      rsp, 40
                        ;; size=4 bbWeight=1 PerfScore 0.25
 G_M34829_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        movzx    rcx, cx
        cmp      ecx, 256
-       jb       SHORT G_M34829_IG05
+       jae      SHORT G_M34829_IG09
                        ;; size=11 bbWeight=1 PerfScore 1.50
-G_M34829_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategory(int):int]
-       ; gcr arg pop 0
-                       ;; size=6 bbWeight=0 PerfScore 0.00
-G_M34829_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       add      eax, -8
-       cmp      eax, 16
-       ja       SHORT G_M34829_IG08
-       lea      rcx, [reloc @RWD00]
-       mov      ecx, dword ptr [rcx+4*rax]
-       lea      rdx, G_M34829_IG02
-       add      rcx, rdx
-       jmp      rcx
-                       ;; size=30 bbWeight=1 PerfScore 7.25
-G_M34829_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M34829_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      eax, ecx
        mov      rcx, 0xD1FFAB1E      ; static handle
        movzx    rax, byte  ptr [rax+rcx]
        and      eax, 31
-       jmp      SHORT G_M34829_IG04
-                       ;; size=21 bbWeight=0.50 PerfScore 2.38
-G_M34829_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+                       ;; size=19 bbWeight=0.50 PerfScore 1.38
+G_M34829_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       add      eax, -8
+       cmp      eax, 16
+       ja       SHORT G_M34829_IG07
+       mov      ecx, 0x1FC7D
+       bt       ecx, eax
+       jae      SHORT G_M34829_IG07
+                       ;; size=18 bbWeight=1 PerfScore 3.25
+G_M34829_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M34829_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M34829_IG06:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 40
        ret      
                        ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M34829_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M34829_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        mov      eax, 1
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M34829_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+G_M34829_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 40
        ret      
                        ;; size=5 bbWeight=0.50 PerfScore 0.62
-RWD00      dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG08 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
-           dd  G_M34829_IG06 - G_M34829_IG02
+G_M34829_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategory(int):int]
+       ; gcr arg pop 0
+       jmp      SHORT G_M34829_IG04
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-
-; Total bytes of code 89, prolog size 4, PerfScore 12.88, instruction count 24, allocated bytes for code 89 (MethodHash=b88877f2) for method System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
+; Total bytes of code 77, prolog size 4, PerfScore 7.88, instruction count 22, allocated bytes for code 77 (MethodHash=b88877f2) for method System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:

-14 (-11.57%) : 280804.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:g_IsValidInFieldName|247(System.String):ubyte (FullOpts)

@@ -39,7 +39,7 @@
 ;
 ; Lcl frame size = 32
 
-G_M36609_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M36609_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbx
@@ -52,46 +52,45 @@ G_M36609_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
        xor      esi, esi
        mov      edi, dword ptr [rbx+0x08]
        test     edi, edi
-       jle      SHORT G_M36609_IG08
+       jle      SHORT G_M36609_IG06
                        ;; size=12 bbWeight=1 PerfScore 3.75
 G_M36609_IG03:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx]
        mov      eax, esi
        movzx    rcx, word  ptr [rbx+2*rax+0x0C]
        cmp      ecx, 256
-       jb       SHORT G_M36609_IG06
+       jae      SHORT G_M36609_IG10
                        ;; size=15 bbWeight=4 PerfScore 14.00
-G_M36609_IG04:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategoryNoBoundsChecks(uint):int]
-       ; gcr arg pop 0
-       mov      edx, eax
-                       ;; size=8 bbWeight=0 PerfScore 0.00
-G_M36609_IG05:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      edx, 18
-       ja       SHORT G_M36609_IG10
-       mov      eax, edx
-       lea      rcx, [reloc @RWD00]
-       mov      ecx, dword ptr [rcx+4*rax]
-       lea      rdx, G_M36609_IG02
-       add      rcx, rdx
-       jmp      rcx
-                       ;; size=29 bbWeight=4 PerfScore 29.00
-G_M36609_IG06:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M36609_IG04:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      eax, ecx
        mov      rcx, 0xD1FFAB1E      ; static handle
        movzx    rdx, byte  ptr [rax+rcx]
        and      edx, 31
-       jmp      SHORT G_M36609_IG05
-                       ;; size=21 bbWeight=2 PerfScore 9.50
-G_M36609_IG07:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+                       ;; size=19 bbWeight=2 PerfScore 5.50
+G_M36609_IG05:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      edx, 18
+       ja       SHORT G_M36609_IG08
+       mov      eax, 0xD1FFAB1E
+       bt       eax, edx
+       jae      SHORT G_M36609_IG08
        inc      esi
        cmp      edi, esi
        jg       SHORT G_M36609_IG03
-                       ;; size=6 bbWeight=4 PerfScore 6.00
-G_M36609_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+                       ;; size=21 bbWeight=4 PerfScore 18.00
+G_M36609_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx]
        mov      eax, 1
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
+G_M36609_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 32
+       pop      rbx
+       pop      rsi
+       pop      rdi
+       ret      
+                       ;; size=8 bbWeight=0.50 PerfScore 1.38
+G_M36609_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       xor      eax, eax
+                       ;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M36609_IG09:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
@@ -99,38 +98,15 @@ G_M36609_IG09:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rdi
        ret      
                        ;; size=8 bbWeight=0.50 PerfScore 1.38
-G_M36609_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       xor      eax, eax
-                       ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M36609_IG11:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 32
-       pop      rbx
-       pop      rsi
-       pop      rdi
-       ret      
-                       ;; size=8 bbWeight=0.50 PerfScore 1.38
-RWD00      dd  G_M36609_IG07 - G_M36609_IG02
-           dd  G_M36609_IG07 - G_M36609_IG02
-           dd  G_M36609_IG07 - G_M36609_IG02
-           dd  G_M36609_IG07 - G_M36609_IG02
-           dd  G_M36609_IG07 - G_M36609_IG02
-           dd  G_M36609_IG07 - G_M36609_IG02
-           dd  G_M36609_IG07 - G_M36609_IG02
-           dd  G_M36609_IG10 - G_M36609_IG02
-           dd  G_M36609_IG07 - G_M36609_IG02
-           dd  G_M36609_IG07 - G_M36609_IG02
-           dd  G_M36609_IG10 - G_M36609_IG02
-           dd  G_M36609_IG10 - G_M36609_IG02
-           dd  G_M36609_IG10 - G_M36609_IG02
-           dd  G_M36609_IG10 - G_M36609_IG02
-           dd  G_M36609_IG10 - G_M36609_IG02
-           dd  G_M36609_IG07 - G_M36609_IG02
-           dd  G_M36609_IG10 - G_M36609_IG02
-           dd  G_M36609_IG10 - G_M36609_IG02
-           dd  G_M36609_IG07 - G_M36609_IG02
+G_M36609_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs +[rbx]
+       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategoryNoBoundsChecks(uint):int]
+       ; gcr arg pop 0
+       mov      edx, eax
+       jmp      SHORT G_M36609_IG05
+                       ;; size=10 bbWeight=0 PerfScore 0.00
 
-
-; Total bytes of code 121, prolog size 7, PerfScore 68.50, instruction count 43, allocated bytes for code 121 (MethodHash=4cd570fe) for method System.Text.RegularExpressions.Generator.RegexGenerator:<EmitTryFindNextPossibleStartingPosition>g__IsValidInFieldName|24_7(System.String):ubyte (FullOpts)
+; Total bytes of code 107, prolog size 7, PerfScore 47.50, instruction count 40, allocated bytes for code 107 (MethodHash=4cd570fe) for method System.Text.RegularExpressions.Generator.RegexGenerator:<EmitTryFindNextPossibleStartingPosition>g__IsValidInFieldName|24_7(System.String):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:

+27 (+39.71%) : 5535.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)

@@ -8,7 +8,7 @@
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  3.50)     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+;  V00 this         [V00,T00] (  5,  4   )     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  rdx         class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
 ;  V02 loc0         [V02,T06] (  3,  1.50)     int  ->  rcx         ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.__Canon>
@@ -20,18 +20,19 @@
 ;  V09 tmp4         [V09,T04] (  3,  2.50)   byref  ->  rax         single-def "Inline stloc first use temp"
 ;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V11 tmp6         [V11,T07] (  3,  1.50)     ref  ->  rdx         single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V12 rat0         [V12,T05] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V12 rat0         [V12,T05] (  2,  2   )    long  ->  rax         "Spilling to split statement for tree"
 ;* V13 rat1         [V13,T09] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V14 rat2         [V14,T03] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V14 rat2         [V14,T03] (  2,  2   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 48
 
 G_M43979_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbx
-       sub      rsp, 32
+       sub      rsp, 48
+       mov      qword ptr [rsp+0x28], rcx
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-                       ;; size=8 bbWeight=1 PerfScore 1.50
+                       ;; size=13 bbWeight=1 PerfScore 2.50
 G_M43979_IG02:        ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rdx]
        mov      rcx, gword ptr [rbx+0x20]
@@ -42,46 +43,54 @@ G_M43979_IG02:        ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {},
        ; byrRegs +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M43979_IG04
+       je       SHORT G_M43979_IG05
                        ;; size=17 bbWeight=1 PerfScore 9.25
 G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0001 {rax}, byref, isz
        mov      ecx, dword ptr [rax]
        mov      rdx, gword ptr [rbx+0x80]
        ; gcrRegs +[rdx]
-       jmp      SHORT G_M43979_IG06
-                       ;; size=11 bbWeight=0.50 PerfScore 3.00
-G_M43979_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdx]
+       mov      rax, qword ptr [rbx]
        ; byrRegs -[rax]
+       mov      rax, qword ptr [rax+0x38]
+       mov      rax, qword ptr [rax]
+       mov      rax, qword ptr [rax+0x108]
+       test     rax, rax
+       jne      SHORT G_M43979_IG07
+                       ;; size=31 bbWeight=0.50 PerfScore 6.62
+G_M43979_IG04:        ; bbWeight=0.10, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M43979_IG07
+                       ;; size=2 bbWeight=0.10 PerfScore 0.20
+G_M43979_IG05:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rdx]
        xor      rax, rax
        ; gcrRegs +[rax]
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M43979_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 32
+G_M43979_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 48
        pop      rbx
        ret      
                        ;; size=6 bbWeight=0.50 PerfScore 0.88
-G_M43979_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rdx]
        cmp      ecx, dword ptr [rdx+0x08]
-       jae      SHORT G_M43979_IG08
+       jae      SHORT G_M43979_IG09
        mov      eax, ecx
        mov      rax, gword ptr [rdx+8*rax+0x10]
        ; gcrRegs +[rax]
                        ;; size=12 bbWeight=0.50 PerfScore 3.12
-G_M43979_IG07:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 32
+G_M43979_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 48
        pop      rbx
        ret      
                        ;; size=6 bbWeight=0.50 PerfScore 0.88
-G_M43979_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax rdx]
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 68, prolog size 5, PerfScore 18.75, instruction count 24, allocated bytes for code 68 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 95, prolog size 10, PerfScore 23.57, instruction count 31, allocated bytes for code 95 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -94,5 +103,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)

+27 (+39.71%) : 44140.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)

@@ -8,7 +8,7 @@
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  3.50)     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+;  V00 this         [V00,T00] (  5,  4   )     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  rdx         class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
 ;  V02 loc0         [V02,T06] (  3,  1.50)     int  ->  rcx         ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.__Canon>
@@ -20,18 +20,19 @@
 ;  V09 tmp4         [V09,T04] (  3,  2.50)   byref  ->  rax         single-def "Inline stloc first use temp"
 ;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V11 tmp6         [V11,T07] (  3,  1.50)     ref  ->  rdx         single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V12 rat0         [V12,T05] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V12 rat0         [V12,T05] (  2,  2   )    long  ->  rax         "Spilling to split statement for tree"
 ;* V13 rat1         [V13,T09] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V14 rat2         [V14,T03] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V14 rat2         [V14,T03] (  2,  2   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 48
 
 G_M43979_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbx
-       sub      rsp, 32
+       sub      rsp, 48
+       mov      qword ptr [rsp+0x28], rcx
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-                       ;; size=8 bbWeight=1 PerfScore 1.50
+                       ;; size=13 bbWeight=1 PerfScore 2.50
 G_M43979_IG02:        ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rdx]
        mov      rcx, gword ptr [rbx+0x20]
@@ -42,46 +43,54 @@ G_M43979_IG02:        ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {},
        ; byrRegs +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M43979_IG04
+       je       SHORT G_M43979_IG05
                        ;; size=17 bbWeight=1 PerfScore 9.25
 G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0001 {rax}, byref, isz
        mov      ecx, dword ptr [rax]
        mov      rdx, gword ptr [rbx+0x80]
        ; gcrRegs +[rdx]
-       jmp      SHORT G_M43979_IG06
-                       ;; size=11 bbWeight=0.50 PerfScore 3.00
-G_M43979_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdx]
+       mov      rax, qword ptr [rbx]
        ; byrRegs -[rax]
+       mov      rax, qword ptr [rax+0x38]
+       mov      rax, qword ptr [rax]
+       mov      rax, qword ptr [rax+0xC0]
+       test     rax, rax
+       jne      SHORT G_M43979_IG07
+                       ;; size=31 bbWeight=0.50 PerfScore 6.62
+G_M43979_IG04:        ; bbWeight=0.10, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M43979_IG07
+                       ;; size=2 bbWeight=0.10 PerfScore 0.20
+G_M43979_IG05:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rdx]
        xor      rax, rax
        ; gcrRegs +[rax]
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M43979_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 32
+G_M43979_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 48
        pop      rbx
        ret      
                        ;; size=6 bbWeight=0.50 PerfScore 0.88
-G_M43979_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rdx]
        cmp      ecx, dword ptr [rdx+0x08]
-       jae      SHORT G_M43979_IG08
+       jae      SHORT G_M43979_IG09
        mov      eax, ecx
        mov      rax, gword ptr [rdx+8*rax+0x10]
        ; gcrRegs +[rax]
                        ;; size=12 bbWeight=0.50 PerfScore 3.12
-G_M43979_IG07:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 32
+G_M43979_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 48
        pop      rbx
        ret      
                        ;; size=6 bbWeight=0.50 PerfScore 0.88
-G_M43979_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax rdx]
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 68, prolog size 5, PerfScore 18.75, instruction count 24, allocated bytes for code 68 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 95, prolog size 10, PerfScore 23.57, instruction count 31, allocated bytes for code 95 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -94,5 +103,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)

+22 (+78.57%) : 149333.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)

@@ -7,35 +7,64 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  3,  3   )     int  ->  rcx         single-def
+;  V00 arg0         [V00,T01] (  4,  3.50)     int  ->  rcx         single-def
 ;  V01 loc0         [V01,T02] (  3,  2   )   ubyte  ->  rax        
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 rat0         [V03,T00] (  3,  6   )     int  ->  rcx         "ReplaceWithLclVar is creating a new local variable"
+;  V03 rat0         [V03,T00] (  3,  6   )     int  ->  rax         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 0
 
 G_M3102_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
                        ;; size=0 bbWeight=1 PerfScore 0.00
 G_M3102_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       add      ecx, -2
-       cmp      ecx, 19
-       ja       SHORT G_M3102_IG04
-       mov      eax, 0x3C003
-       bt       eax, ecx
-       jae      SHORT G_M3102_IG04
-                       ;; size=18 bbWeight=1 PerfScore 3.25
+       lea      eax, [rcx-0x02]
+       cmp      eax, 19
+       ja       SHORT G_M3102_IG03
+       lea      rcx, [reloc @RWD00]
+       mov      ecx, dword ptr [rcx+4*rax]
+       lea      rdx, G_M3102_IG02
+       add      rcx, rdx
+       jmp      rcx
+                       ;; size=30 bbWeight=1 PerfScore 7.50
 G_M3102_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       mov      eax, 1
+       add      ecx, -101
+       cmp      ecx, 2
+       jbe      SHORT G_M3102_IG05
        jmp      SHORT G_M3102_IG05
+                       ;; size=10 bbWeight=0.50 PerfScore 1.75
+G_M3102_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       mov      eax, 1
+       jmp      SHORT G_M3102_IG06
                        ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M3102_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M3102_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M3102_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M3102_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        ret      
                        ;; size=1 bbWeight=1 PerfScore 1.00
+RWD00      dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG04 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
+           dd  G_M3102_IG05 - G_M3102_IG02
 
-; Total bytes of code 28, prolog size 0, PerfScore 5.50, instruction count 10, allocated bytes for code 28 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
+
+; Total bytes of code 50, prolog size 0, PerfScore 11.50, instruction count 16, allocated bytes for code 50 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:

realworld.run.windows.x64.checked.mch

-21 (-4.00%) : 6580.dasm - System.Collections.Generic.Dictionary2[FSharp.Compiler.Text.Position,System.ValueTuple3[int,int,ubyte]]:FindValue(FSharp.Compiler.Text.Position):byref:this (FullOpts)

@@ -10,22 +10,22 @@
 ;
 ;  V00 this         [V00,T08] ( 11,  7   )     ref  ->  rbx         this class-hnd single-def <System.Collections.Generic.Dictionary`2[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op single-def <FSharp.Compiler.Text.Position>
-;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  [rsp+0x20] 
+;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  r13        
 ;  V03 loc1         [V03,T22] (  3,  2   )   byref  ->  rax        
 ;  V04 loc2         [V04,T17] (  4,  3.50)     ref  ->  rdi         class-hnd single-def <<unknown class>>
-;  V05 loc3         [V05,T13] (  4,  5.50)     int  ->  rdi        
-;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->  rbp        
-;  V07 loc5         [V07,T10] (  3,  8.50)     ref  ->  rbx         class-hnd exact single-def <<unknown class>>
-;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->  r14        
-;  V09 loc7         [V09,T14] (  4,  5.50)     int  ->  rbp        
-;  V10 loc8         [V10,T02] (  6, 13.50)     int  ->  r14        
+;  V05 loc3         [V05,T13] (  4,  5.50)     int  ->  rbp        
+;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->  rdi        
+;  V07 loc5         [V07,T10] (  3,  8.50)     ref  ->  r14         class-hnd exact single-def <<unknown class>>
+;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->  r15        
+;  V09 loc7         [V09,T14] (  4,  5.50)     int  ->  r12        
+;  V10 loc8         [V10,T02] (  6, 13.50)     int  ->  rbp        
 ;  V11 loc9         [V11,T11] (  3,  8.50)     ref  ->  rbx         class-hnd exact single-def <<unknown class>>
-;  V12 loc10        [V12,T04] (  4, 12.50)     int  ->  r15        
+;  V12 loc10        [V12,T04] (  4, 12.50)     int  ->  r14        
 ;  V13 OutArgs      [V13    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp2         [V15    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V16 tmp3         [V16    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V17 tmp4         [V17,T25] (  3,  1.50)     ref  ->  rbp         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V17 tmp4         [V17,T25] (  3,  1.50)     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V18 tmp5         [V18,T18] (  3,  3   )     int  ->  r15         "Inlining Arg"
 ;  V19 tmp6         [V19,T23] (  2,  2   )    long  ->  r13         "Inlining Arg"
 ;  V20 tmp7         [V20,T20] (  4,  2   )     int  ->  r13         "Inline stloc first use temp"
@@ -38,17 +38,17 @@
 ;* V27 tmp14        [V27    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline stloc first use temp" <FSharp.Compiler.Text.Position>
 ;* V28 tmp15        [V28    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
 ;  V29 tmp16        [V29,T26] (  3,  1.50)     ref  ->  r13         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V30 tmp17        [V30,T19] (  3,  3   )     int  ->  r15         "Inlining Arg"
-;  V31 tmp18        [V31,T24] (  2,  2   )    long  ->  r12         "Inlining Arg"
-;  V32 tmp19        [V32,T21] (  4,  2   )     int  ->  r12         "Inline stloc first use temp"
+;  V30 tmp17        [V30,T19] (  3,  3   )     int  ->  r14         "Inlining Arg"
+;  V31 tmp18        [V31,T24] (  2,  2   )    long  ->  r15         "Inlining Arg"
+;  V32 tmp19        [V32,T21] (  4,  2   )     int  ->  r15         "Inline stloc first use temp"
 ;  V33 tmp20        [V33,T09] (  6,  6.50)    long  ->  rsi         single-def "field V01.code (fldOffset=0x0)" P-INDEP
-;  V34 tmp21        [V34,T15] (  2,  4   )    long  ->  rbp         "field V22.code (fldOffset=0x0)" P-INDEP
+;  V34 tmp21        [V34,T15] (  2,  4   )    long  ->  rdi         "field V22.code (fldOffset=0x0)" P-INDEP
 ;* V35 tmp22        [V35    ] (  0,  0   )    long  ->  zero-ref    "field V23.code (fldOffset=0x0)" P-INDEP
 ;  V36 tmp23        [V36,T16] (  2,  4   )    long  ->  rcx         "field V27.code (fldOffset=0x0)" P-INDEP
 ;  V37 cse0         [V37,T27] (  3,  1.50)     int  ->  r14         "CSE - moderate"
-;  V38 cse1         [V38,T28] (  3,  1.50)     int  ->  r14         "CSE - moderate"
-;  V39 cse2         [V39,T06] (  3, 12   )     int  ->  r15         "CSE - aggressive"
-;  V40 cse3         [V40,T07] (  3, 12   )     int  ->  r13         "CSE - aggressive"
+;  V38 cse1         [V38,T28] (  3,  1.50)     int  ->  rbp         "CSE - moderate"
+;  V39 cse2         [V39,T06] (  3, 12   )     int  ->  rbx         "CSE - aggressive"
+;  V40 cse3         [V40,T07] (  3, 12   )     int  ->  r15         "CSE - aggressive"
 ;
 ; Lcl frame size = 40
 
@@ -68,7 +68,7 @@ G_M30158_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=22 bbWeight=1 PerfScore 8.75
 G_M30158_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        cmp      gword ptr [rbx+0x08], 0
-       je       G_M30158_IG16
+       je       G_M30158_IG14
                        ;; size=11 bbWeight=1 PerfScore 4.00
 G_M30158_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      gword ptr [rbx+0x10], 0
@@ -86,26 +86,24 @@ G_M30158_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs +[rdi]
        test     rdi, rdi
        jne      G_M30158_IG08
-       mov      rdi, rsi
-       ; gcrRegs -[rdi]
-       sar      rdi, 32
-       xor      edi, esi
-       mov      rbp, gword ptr [rbx+0x08]
-       ; gcrRegs +[rbp]
-       mov      r14d, dword ptr [rbp+0x08]
+       mov      rbp, rsi
+       sar      rbp, 32
+       xor      ebp, esi
+       mov      rdi, gword ptr [rbx+0x08]
+       mov      r14d, dword ptr [rdi+0x08]
        mov      r15d, r14d
        mov      r13, qword ptr [rbx+0x30]
        mov      ecx, 1
        call     [<unknown method>]
        ; gcr arg pop 0
-       mov      r12d, edi
+       mov      r12d, ebp
        imul     r13, r12
        shr      r13, 32
        inc      r13
        mov      r12d, r15d
        imul     r13, r12
        shr      r13, 32
-       mov      eax, edi
+       mov      eax, ebp
        xor      edx, edx
        div      edx:eax, r15d
        xor      ecx, ecx
@@ -114,46 +112,48 @@ G_M30158_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        call     [<unknown method>]
        ; gcr arg pop 0
        cmp      r13d, r14d
-       jae      G_M30158_IG17
+       jae      G_M30158_IG15
        mov      ecx, r13d
-       mov      ebp, dword ptr [rbp+4*rcx+0x10]
-       ; gcrRegs -[rbp]
-       mov      rbx, gword ptr [rbx+0x10]
-       xor      r14d, r14d
-       dec      ebp
+       mov      edi, dword ptr [rdi+4*rcx+0x10]
+       ; gcrRegs -[rdi]
+       mov      r14, gword ptr [rbx+0x10]
+       ; gcrRegs +[r14]
+       xor      r15d, r15d
+       dec      edi
                        ;; size=119 bbWeight=0.50 PerfScore 27.75
-G_M30158_IG05:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       mov      r15d, dword ptr [rbx+0x08]
-       cmp      r15d, ebp
-       jbe      G_M30158_IG16
-       mov      ecx, ebp
+G_M30158_IG05:        ; bbWeight=4, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rbx]
+       mov      ebx, dword ptr [r14+0x08]
+       cmp      ebx, edi
+       jbe      G_M30158_IG14
+       mov      ecx, edi
        shl      rcx, 5
-       lea      r13, bword ptr [rbx+rcx+0x10]
+       lea      r13, bword ptr [r14+rcx+0x10]
        ; byrRegs +[r13]
-       cmp      dword ptr [r13], edi
+       cmp      dword ptr [r13], ebp
        jne      SHORT G_M30158_IG07
-                       ;; size=30 bbWeight=4 PerfScore 36.00
-G_M30158_IG06:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=2000 {r13}, byref
-       mov      rbp, qword ptr [r13+0x08]
+                       ;; size=29 bbWeight=4 PerfScore 36.00
+G_M30158_IG06:        ; bbWeight=2, gcrefRegs=4000 {r14}, byrefRegs=2000 {r13}, byref
+       mov      rdi, qword ptr [r13+0x08]
        mov      rcx, 0xD1FFAB1E      ; FSharp.Compiler.Text.Position
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      qword ptr [rax+0x08], rsi
        mov      rcx, qword ptr [rax+0x08]
-       cmp      rbp, rcx
-       je       G_M30158_IG14
+       cmp      rdi, rcx
+       je       G_M30158_IG12
                        ;; size=36 bbWeight=2 PerfScore 15.00
-G_M30158_IG07:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=2000 {r13}, byref, isz
+G_M30158_IG07:        ; bbWeight=4, gcrefRegs=4000 {r14}, byrefRegs=2000 {r13}, byref, isz
        ; gcrRegs -[rax]
-       mov      ebp, dword ptr [r13+0x04]
-       inc      r14d
-       cmp      r15d, r14d
-       jb       G_M30158_IG18
+       mov      edi, dword ptr [r13+0x04]
+       inc      r15d
+       cmp      ebx, r15d
+       jb       G_M30158_IG16
        jmp      SHORT G_M30158_IG05
                        ;; size=18 bbWeight=4 PerfScore 22.00
-G_M30158_IG08:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rdi]
+G_M30158_IG08:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[r14] +[rbx rdi]
        ; byrRegs -[r13]
        mov      ecx, 1
        call     [<unknown method>]
@@ -165,94 +165,76 @@ G_M30158_IG08:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
        call     [r11]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      ebp, eax
+       mov      r12d, eax
        mov      r13, gword ptr [rbx+0x08]
        ; gcrRegs +[r13]
-       mov      r14d, dword ptr [r13+0x08]
-       mov      r15d, r14d
-       mov      r12, qword ptr [rbx+0x30]
+       mov      ebp, dword ptr [r13+0x08]
+       mov      r14d, ebp
+       mov      r15, qword ptr [rbx+0x30]
        mov      ecx, 1
        call     [<unknown method>]
        ; gcr arg pop 0
-       mov      r8d, ebp
-       imul     r12, r8
-       shr      r12, 32
-       inc      r12
-       mov      r8d, r15d
-       imul     r12, r8
-       shr      r12, 32
-       mov      eax, ebp
+       mov      r8d, r12d
+       imul     r15, r8
+       shr      r15, 32
+       inc      r15
+       mov      r8d, r14d
+       imul     r15, r8
+       shr      r15, 32
+       mov      eax, r12d
        xor      edx, edx
-       div      edx:eax, r15d
+       div      edx:eax, r14d
        xor      ecx, ecx
-       cmp      edx, r12d
+       cmp      edx, r15d
        sete     cl
        call     [<unknown method>]
        ; gcr arg pop 0
-       cmp      r12d, r14d
-       jae      G_M30158_IG17
-       mov      edx, r12d
-       mov      r14d, dword ptr [r13+4*rdx+0x10]
+       cmp      r15d, ebp
+       jae      SHORT G_M30158_IG15
+       mov      edx, r15d
+       mov      ebp, dword ptr [r13+4*rdx+0x10]
        mov      rbx, gword ptr [rbx+0x10]
-       xor      r15d, r15d
-       dec      r14d
-                       ;; size=131 bbWeight=0.50 PerfScore 29.25
+       xor      r14d, r14d
+       dec      ebp
+                       ;; size=128 bbWeight=0.50 PerfScore 29.25
 G_M30158_IG09:        ; bbWeight=4, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[r13]
-       mov      r13d, dword ptr [rbx+0x08]
-       cmp      r13d, r14d
-       jbe      SHORT G_M30158_IG16
-       mov      edx, r14d
+       mov      r15d, dword ptr [rbx+0x08]
+       cmp      r15d, ebp
+       jbe      SHORT G_M30158_IG14
+       mov      edx, ebp
        shl      rdx, 5
-       lea      rdx, bword ptr [rbx+rdx+0x10]
-       ; byrRegs +[rdx]
-       mov      rax, rdx
-       ; byrRegs +[rax]
-       cmp      dword ptr [rax], ebp
-       jne      SHORT G_M30158_IG12
-                       ;; size=28 bbWeight=4 PerfScore 37.00
-G_M30158_IG10:        ; bbWeight=2, gcrefRegs=0088 {rbx rdi}, byrefRegs=0001 {rax}, byref, isz
...

-28 (-2.98%) : 14905.dasm - System.Collections.Generic.Dictionary`2[ubyte,System.Canon]:TryInsert(ubyte,System.Canon,ubyte):ubyte:this (FullOpts)

@@ -18,9 +18,9 @@
 ;  V07 loc3         [V07,T01] (  7, 25   )     int  ->  [rsp+0x44] 
 ;  V08 loc4         [V08,T18] (  5,  3.50)   byref  ->  [rsp+0x30] 
 ;  V09 loc5         [V09,T00] (  9, 26   )     int  ->  [rsp+0x40] 
-;  V10 loc6         [V10,T19] (  6,  3   )     int  ->  r13        
+;  V10 loc6         [V10,T19] (  6,  3   )     int  ->  rbp        
 ;  V11 loc7         [V11,T24] (  5,  2.50)   byref  ->  rcx         single-def
-;  V12 loc8         [V12,T30] (  3,  1.50)     int  ->  r13        
+;  V12 loc8         [V12,T30] (  3,  1.50)     int  ->  rbp        
 ;  V13 OutArgs      [V13    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref   
 ;  V15 tmp2         [V15,T26] (  3,  2   )     int  ->  r12        
@@ -45,8 +45,8 @@
 ;* V34 tmp21        [V34    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
 ;  V35 tmp22        [V35,T29] (  3,  1.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V36 tmp23        [V36,T21] (  3,  3   )     int  ->  rcx         "Inlining Arg"
-;  V37 tmp24        [V37,T27] (  2,  2   )    long  ->  r15         "Inlining Arg"
-;  V38 tmp25        [V38,T25] (  4,  2   )     int  ->  r15         "Inline stloc first use temp"
+;  V37 tmp24        [V37,T27] (  2,  2   )    long  ->  r13         "Inlining Arg"
+;  V38 tmp25        [V38,T25] (  4,  2   )     int  ->  r13         "Inline stloc first use temp"
 ;* V39 tmp26        [V39    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V40 tmp27        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V41 tmp28        [V41    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -55,13 +55,13 @@
 ;  V44 tmp31        [V44,T23] (  3,  3   )     int  ->  rcx         "index expr"
 ;  V45 cse0         [V45,T05] (  4, 14   )   byref  ->  rcx         "CSE - aggressive"
 ;  V46 cse1         [V46,T06] (  4, 14   )   byref  ->  [rsp+0x20]  spill-single-def "CSE - aggressive"
-;  V47 cse2         [V47,T31] (  3,  1.50)     int  ->  rbp         "CSE - moderate"
+;  V47 cse2         [V47,T31] (  3,  1.50)     int  ->  r15         "CSE - moderate"
 ;  V48 cse3         [V48,T32] (  3,  1.50)     int  ->  rcx         "CSE - moderate"
 ;  V49 cse4         [V49,T33] (  3,  1.50)     int  ->  rcx         "CSE - moderate"
 ;  V50 cse5         [V50,T02] ( 10, 23   )     int  ->  [rsp+0x38]  hoist multi-def "CSE - aggressive"
 ;  V51 cse6         [V51,T09] (  7,  6   )     int  ->  r13         multi-def "CSE - moderate"
 ;  V52 cse7         [V52,T08] ( 13,  6.50)     ref  ->  rdx         multi-def "CSE - aggressive"
-;  V53 cse8         [V53,T20] (  6,  3   )     int  ->   r9         multi-def "CSE - moderate"
+;  V53 cse8         [V53,T20] (  6,  3   )     int  ->  rbx         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 72
 
@@ -186,6 +186,8 @@ G_M18448_IG13:        ; bbWeight=1, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=
        mov      ecx, r9d
        lea      rax, bword ptr [r10+4*rcx+0x10]
        ; byrRegs +[rax]
+       mov      bword ptr [rsp+0x30], rax
+       ; GC ptr vars +{V08}
        mov      r10d, dword ptr [rax]
        ; gcrRegs -[r10]
        dec      r10d
@@ -193,8 +195,9 @@ G_M18448_IG13:        ; bbWeight=1, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=
        jne      G_M18448_IG22
        mov      r15d, dword ptr [r14+0x08]
        ; gcrRegs -[r15]
-                       ;; size=47 bbWeight=1 PerfScore 12.75
-G_M18448_IG14:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0001 {rax}, gcvars, byref, isz
+                       ;; size=52 bbWeight=1 PerfScore 13.75
+G_M18448_IG14:        ; bbWeight=4, gcVars=0000000000040000 {V08}, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; byrRegs -[rax]
        ; GC ptr vars -{V22}
        cmp      r15d, r10d
        jbe      G_M18448_IG27
@@ -205,27 +208,28 @@ G_M18448_IG14:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=4088 {
        cmp      dword ptr [rcx+0x08], r12d
        jne      SHORT G_M18448_IG16
                        ;; size=27 bbWeight=4 PerfScore 28.00
-G_M18448_IG15:        ; bbWeight=2, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0003 {rax rcx}, byref, isz
+G_M18448_IG15:        ; bbWeight=2, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0002 {rcx}, byref, isz
        movzx    rdx, byte  ptr [rcx+0x10]
        cmp      edx, r13d
        je       SHORT G_M18448_IG17
                        ;; size=9 bbWeight=2 PerfScore 6.50
-G_M18448_IG16:        ; bbWeight=4, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0003 {rax rcx}, byref, isz
+G_M18448_IG16:        ; bbWeight=4, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0002 {rcx}, byref, isz
        mov      r10d, dword ptr [rcx+0x0C]
        mov      r8d, dword ptr [rsp+0x44]
        inc      r8d
-       cmp      r15d, r8d
        mov      dword ptr [rsp+0x44], r8d
+       cmp      r15d, r8d
        jb       G_M18448_IG36
        jmp      SHORT G_M18448_IG14
                        ;; size=28 bbWeight=4 PerfScore 30.00
-G_M18448_IG17:        ; bbWeight=0.50, gcrefRegs=4080 {rdi r14}, byrefRegs=0000 {}, byref, isz
+G_M18448_IG17:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4080 {rdi r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rbx]
-       ; byrRegs -[rax rcx]
-       movzx    r9, bpl
-       cmp      r9d, 1
+       ; byrRegs -[rcx]
+       ; GC ptr vars -{V08}
+       movzx    rbx, bpl
+       cmp      ebx, 1
        jne      SHORT G_M18448_IG19
-                       ;; size=10 bbWeight=0.50 PerfScore 0.75
+                       ;; size=9 bbWeight=0.50 PerfScore 0.75
 G_M18448_IG18:        ; bbWeight=0.50, gcrefRegs=4080 {rdi r14}, byrefRegs=0000 {}, byref
        cmp      r10d, r15d
        jae      G_M18448_IG35
@@ -241,9 +245,9 @@ G_M18448_IG18:        ; bbWeight=0.50, gcrefRegs=4080 {rdi r14}, byrefRegs=0000
        jmp      G_M18448_IG33
                        ;; size=34 bbWeight=0.50 PerfScore 3.12
 G_M18448_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       cmp      r9d, 2
+       cmp      ebx, 2
        je       G_M18448_IG37
-                       ;; size=10 bbWeight=0.50 PerfScore 0.62
+                       ;; size=9 bbWeight=0.50 PerfScore 0.62
 G_M18448_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
@@ -259,81 +263,74 @@ G_M18448_IG21:        ; bbWeight=0.50, epilog, nogc, extend
        pop      r15
        ret      
                        ;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M18448_IG22:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0001 {rax}, gcvars, byref, isz
+G_M18448_IG22:        ; bbWeight=4, gcVars=0000000000040000 {V08}, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx rdi r14-r15]
-       ; byrRegs +[rax]
+       ; GC ptr vars +{V08}
        mov      edx, dword ptr [r14+0x08]
-       mov      r11d, edx
-       mov      dword ptr [rsp+0x38], r11d
-       cmp      r11d, r10d
+       mov      r9d, edx
+       mov      dword ptr [rsp+0x38], r9d
+       cmp      r9d, r10d
        jbe      SHORT G_M18448_IG25
        mov      dword ptr [rsp+0x40], r10d
        mov      edx, r10d
        lea      rdx, [rdx+2*rdx]
-       lea      r9, bword ptr [r14+8*rdx+0x10]
-       ; byrRegs +[r9]
-       mov      bword ptr [rsp+0x20], r9
+       lea      r11, bword ptr [r14+8*rdx+0x10]
+       ; byrRegs +[r11]
+       mov      bword ptr [rsp+0x20], r11
        ; GC ptr vars +{V46}
-       cmp      dword ptr [r9+0x08], r12d
+       cmp      dword ptr [r11+0x08], r12d
        jne      SHORT G_M18448_IG24
                        ;; size=45 bbWeight=4 PerfScore 49.00
-G_M18448_IG23:        ; bbWeight=2, gcVars=0000000000000040 {V46}, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0201 {rax r9}, gcvars, byref, isz
-       mov      bword ptr [rsp+0x30], rax
-       ; GC ptr vars +{V08}
-       movzx    rdx, byte  ptr [r9+0x10]
+G_M18448_IG23:        ; bbWeight=2, gcVars=0000000000040040 {V08 V46}, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0800 {r11}, gcvars, byref, isz
+       movzx    rdx, byte  ptr [r11+0x10]
        mov      r8d, r13d
        mov      rcx, r15
        ; gcrRegs +[rcx]
        mov      r11, 0xD1FFAB1E      ; code for <unknown method>
+       ; byrRegs -[r11]
        call     [r11]<unknown method>
        ; gcrRegs -[rcx]
-       ; byrRegs -[rax r9]
        ; gcr arg pop 0
        test     eax, eax
-       mov      rax, bword ptr [rsp+0x30]
-       ; byrRegs +[rax]
-       mov      r9, bword ptr [rsp+0x20]
-       ; byrRegs +[r9]
+       mov      r11, bword ptr [rsp+0x20]
+       ; byrRegs +[r11]
        jne      SHORT G_M18448_IG26
-                       ;; size=43 bbWeight=2 PerfScore 20.00
-G_M18448_IG24:        ; bbWeight=4, gcVars=0000000000000040 {V46}, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0201 {rax r9}, gcvars, byref, isz
-       ; GC ptr vars -{V08}
-       mov      r10d, dword ptr [r9+0x0C]
-       mov      ecx, r10d
+                       ;; size=33 bbWeight=2 PerfScore 16.00
+G_M18448_IG24:        ; bbWeight=4, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0800 {r11}, byref, isz
+       mov      r10d, dword ptr [r11+0x0C]
        mov      r8d, dword ptr [rsp+0x44]
        inc      r8d
        cmp      dword ptr [rsp+0x38], r8d
-       mov      dword ptr [rsp+0x44], r8d
-       mov      r10d, ecx
        jb       G_M18448_IG36
+       mov      dword ptr [rsp+0x44], r8d
        jmp      SHORT G_M18448_IG22
-                       ;; size=36 bbWeight=4 PerfScore 39.00
-G_M18448_IG25:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0001 {rax}, gcvars, byref, isz
+                       ;; size=30 bbWeight=4 PerfScore 37.00
+G_M18448_IG25:        ; bbWeight=2, gcVars=0000000000040000 {V08}, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[r15]
-       ; byrRegs -[r9]
+       ; byrRegs -[r11]
        ; GC ptr vars -{V46}
        mov      r15d, dword ptr [rsp+0x38]
        jmp      SHORT G_M18448_IG27
                        ;; size=7 bbWeight=2 PerfScore 6.00
-G_M18448_IG26:        ; bbWeight=0.50, gcrefRegs=4080 {rdi r14}, byrefRegs=0000 {}, byref
+G_M18448_IG26:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4080 {rdi r14}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rbx]
-       ; byrRegs -[rax]
-       movzx    r9, bpl
-       cmp      r9d, 1
+       ; GC ptr vars -{V08}
+       movzx    rbx, bpl
+       cmp      ebx, 1
        mov      r10d, dword ptr [rsp+0x40]
        mov      r15d, dword ptr [rsp+0x38]
        je       G_M18448_IG18
-       cmp      r9d, 2
+       cmp      ebx, 2
        je       G_M18448_IG37
        jmp      G_M18448_IG20
-                       ;; size=39 bbWeight=0.50 PerfScore 3.38
-G_M18448_IG27:        ; bbWeight=0.50, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0001 {rax}, byref, isz
+                       ;; size=37 bbWeight=0.50 PerfScore 3.38
+G_M18448_IG27:        ; bbWeight=0.50, gcVars=0000000000040000 {V08}, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx]
-       ; byrRegs +[rax]
+       ; GC ptr vars +{V08}
        cmp      dword ptr [rbx+0x40], 0
        jle      SHORT G_M18448_IG29
        mov      ecx, dword ptr [rbx+0x3C]
-       mov      r13d, ecx
+       mov      ebp, ecx
        cmp      ecx, r15d
        jae      G_M18448_IG35
        lea      rcx, [rcx+2*rcx]
@@ -342,21 +339,15 @@ G_M18448_IG27:        ; bbWeight=0.50, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0
        add      ecx, -3
        cmp      ecx, -1
        jge      SHORT G_M18448_IG28
-       mov      bword ptr [rsp+0x30], rax
-       ; GC ptr vars +{V08}
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
-       ; byrRegs -[rax]
        ; gcr arg pop 0
-       mov      rax, bword ptr [rsp+0x30]
-       ; byrRegs +[rax]
-                       ;; size=76 bbWeight=0.50 PerfScore 8.62
-G_M18448_IG28:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0001 {rax}, gcvars, byref
-       ; GC ptr vars -{V08}
+                       ;; size=65 bbWeight=0.50 PerfScore 7.62
+G_M18448_IG28:        ; bbWeight=0.50, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref
        mov      ecx, dword ptr [rbx+0x3C]
        cmp      ecx, r15d
        jae      G_M18448_IG35
@@ -368,14 +359,14 @@ G_M18448_IG28:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=408
        dec      dword ptr [rbx+0x40]
        jmp      G_M18448_IG32
                        ;; size=37 bbWeight=0.50 PerfScore 6.12
-G_M18448_IG29:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0001 {rax}, byref, isz
...

-19 (-2.71%) : 22500.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.Canon,System.Canon]:FindValue(System.__Canon):byref:this (FullOpts)

@@ -10,17 +10,17 @@
 ;
 ;  V00 this         [V00,T09] ( 13,  8.50)     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T10] (  8,  8.50)     ref  ->  rsi         ld-addr-op class-hnd single-def <System.__Canon>
-;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  [rsp+0x28] 
+;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  r15        
 ;  V03 loc1         [V03,T35] (  3,  2   )   byref  ->  rax        
 ;  V04 loc2         [V04,T18] (  4,  3.50)     ref  ->  rbp         class-hnd single-def <<unknown class>>
-;  V05 loc3         [V05,T14] (  3,  5   )     int  ->  rbp         single-def
-;  V06 loc4         [V06,T03] (  6, 13.50)     int  ->  r14        
-;  V07 loc5         [V07    ] (  4, 12.50)  struct (16) [rsp+0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[System.__Canon,System.__Canon]]>
-;  V08 loc6         [V08,T05] (  4, 12.50)     int  ->  r15        
-;  V09 loc7         [V09,T16] (  3,  4.50)     ref  ->  r13         class-hnd single-def <System.Collections.Generic.EqualityComparer`1[System.__Canon]>
+;  V05 loc3         [V05,T14] (  3,  5   )     int  ->  r14         single-def
+;  V06 loc4         [V06,T03] (  6, 13.50)     int  ->  r15        
+;  V07 loc5         [V07    ] (  4, 12.50)  struct (16) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[System.__Canon,System.__Canon]]>
+;  V08 loc6         [V08,T05] (  4, 12.50)     int  ->  r13        
+;  V09 loc7         [V09,T16] (  3,  4.50)     ref  ->  r12         class-hnd single-def <System.Collections.Generic.EqualityComparer`1[System.__Canon]>
 ;  V10 loc8         [V10,T15] (  3,  5   )     int  ->  r14         single-def
 ;  V11 loc9         [V11,T04] (  6, 13.50)     int  ->  r15        
-;  V12 loc10        [V12    ] (  4, 12.50)  struct (16) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[System.__Canon,System.__Canon]]>
+;  V12 loc10        [V12    ] (  4, 12.50)  struct (16) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[System.__Canon,System.__Canon]]>
 ;  V13 loc11        [V13,T06] (  4, 12.50)     int  ->  r13        
 ;  V14 OutArgs      [V14    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V15 tmp1         [V15    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
@@ -57,10 +57,10 @@
 ;* V46 tmp32        [V46,T48] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V47 tmp33        [V47    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V48 tmp34        [V48,T49] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
-;  V49 tmp35        [V49    ] (  2,  4.50)     ref  ->  [rsp+0x40]  do-not-enreg[X] addr-exposed "field V07._items (fldOffset=0x0)" P-DEP
-;  V50 tmp36        [V50    ] (  4, 12.50)     int  ->  [rsp+0x48]  do-not-enreg[X] addr-exposed "field V07._length (fldOffset=0x8)" P-DEP
-;  V51 tmp37        [V51    ] (  2,  4.50)     ref  ->  [rsp+0x30]  do-not-enreg[X] addr-exposed "field V12._items (fldOffset=0x0)" P-DEP
-;  V52 tmp38        [V52    ] (  4, 12.50)     int  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed "field V12._length (fldOffset=0x8)" P-DEP
+;  V49 tmp35        [V49    ] (  2,  4.50)     ref  ->  [rsp+0x30]  do-not-enreg[X] addr-exposed "field V07._items (fldOffset=0x0)" P-DEP
+;  V50 tmp36        [V50    ] (  4, 12.50)     int  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed "field V07._length (fldOffset=0x8)" P-DEP
+;  V51 tmp37        [V51    ] (  2,  4.50)     ref  ->  [rsp+0x20]  do-not-enreg[X] addr-exposed "field V12._items (fldOffset=0x0)" P-DEP
+;  V52 tmp38        [V52    ] (  4, 12.50)     int  ->  [rsp+0x28]  do-not-enreg[X] addr-exposed "field V12._length (fldOffset=0x8)" P-DEP
 ;  V53 tmp39        [V53,T40] (  2,  1   )     ref  ->  rcx         single-def "field V29._items (fldOffset=0x0)" P-INDEP
 ;  V54 tmp40        [V54,T42] (  2,  1   )     int  ->  rdx         single-def "field V29._length (fldOffset=0x8)" P-INDEP
 ;  V55 tmp41        [V55,T41] (  2,  1   )     ref  ->  rcx         single-def "field V39._items (fldOffset=0x0)" P-INDEP
@@ -71,23 +71,23 @@
 ;  V60 tmp46        [V60,T28] (  3,  3   )     int  ->  rax         "index expr"
 ;  V61 tmp47        [V61,T29] (  3,  3   )     int  ->  rdx         "index expr"
 ;  V62 tmp48        [V62,T02] (  2, 16   )    long  ->  rdx         "argument with side effect"
-;  V63 cse0         [V63,T11] (  4,  9   )    long  ->  r12         hoist multi-def "CSE - aggressive"
+;  V63 cse0         [V63,T11] (  4,  9   )    long  ->  registers   hoist multi-def "CSE - aggressive"
 ;  V64 cse1         [V64,T12] ( 11,  5.80)    long  ->  rdi         "CSE - moderate"
 ;* V65 rat0         [V65,T17] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
 ;* V66 rat1         [V66,T39] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
 ;* V67 rat2         [V67,T13] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;  V68 rat3         [V68,T36] (  3,  2   )    long  ->  rcx         "runtime lookup"
 ;  V69 rat4         [V69,T30] (  3,  2.80)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V70 rat5         [V70,T37] (  3,  2   )    long  ->  r12         "runtime lookup"
-;  V71 rat6         [V71,T31] (  3,  2.80)    long  ->  r12         "fgMakeTemp is creating a new local variable"
+;  V70 rat5         [V70,T37] (  3,  2   )    long  ->  rbp         "runtime lookup"
+;  V71 rat6         [V71,T31] (  3,  2.80)    long  ->  rbp         "fgMakeTemp is creating a new local variable"
 ;  V72 rat7         [V72,T32] (  3,  2.80)    long  ->  r11         "fgMakeTemp is creating a new local variable"
-;  V73 rat8         [V73,T38] (  3,  2   )    long  ->  r12         "runtime lookup"
-;  V74 rat9         [V74,T33] (  3,  2.80)    long  ->  r12         "fgMakeTemp is creating a new local variable"
+;  V73 rat8         [V73,T38] (  3,  2   )    long  ->  rax         "runtime lookup"
+;  V74 rat9         [V74,T33] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;  V75 rat10        [V75,T08] (  3, 11.20)    long  ->  r11         "fgMakeTemp is creating a new local variable"
 ;* V76 rat11        [V76,T44] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
 ;* V77 rat12        [V77,T34] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 88
+; Lcl frame size = 72
 
 G_M65447_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
@@ -98,11 +98,11 @@ G_M65447_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 88
+       sub      rsp, 72
        vzeroupper 
        vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rsp+0x30], ymm4
-       mov      qword ptr [rsp+0x50], rcx
+       vmovdqu  ymmword ptr [rsp+0x20], ymm4
+       mov      qword ptr [rsp+0x40], rcx
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      rsi, rdx
@@ -127,11 +127,11 @@ G_M65447_IG03:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        call     [rax+0x18]<unknown method>
        ; gcrRegs -[rcx rbp]
        ; gcr arg pop 0
-       mov      ebp, eax
+       mov      r14d, eax
        mov      rcx, gword ptr [rbx+0x38]
        ; gcrRegs +[rcx]
        mov      edx, dword ptr [rbx+0x40]
-       mov      eax, ebp
+       mov      eax, r14d
        imul     rax, qword ptr [rbx+0x20]
        shr      rax, 32
        inc      rax
@@ -145,14 +145,14 @@ G_M65447_IG03:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        and      edx, 0x3FFF
        cmp      edx, dword ptr [rcx+0x08]
        jae      G_M65447_IG32
-       mov      r14d, dword ptr [rcx+4*rdx+0x10]
-                       ;; size=96 bbWeight=0.50 PerfScore 18.12
+       mov      r15d, dword ptr [rcx+4*rdx+0x10]
+                       ;; size=98 bbWeight=0.50 PerfScore 18.12
 G_M65447_IG04:        ; bbWeight=0.50, nogc, extend
        vmovdqu  xmm0, xmmword ptr [rbx+0x48]
-       vmovdqu  xmmword ptr [rsp+0x40], xmm0
+       vmovdqu  xmmword ptr [rsp+0x30], xmm0
                        ;; size=11 bbWeight=0.50 PerfScore 2.50
 G_M65447_IG05:        ; bbWeight=0.50, isz, extend
-       xor      r15d, r15d
+       xor      r13d, r13d
        mov      rcx, qword ptr [rdi+0x38]
        ; gcrRegs -[rcx]
        mov      rcx, qword ptr [rcx]
@@ -174,49 +174,49 @@ G_M65447_IG08:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        call     [System.Collections.Generic.EqualityComparer`1[System.__Canon]:get_Default():System.Collections.Generic.EqualityComparer`1[System.__Canon]]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      r13, rax
-       ; gcrRegs +[r13]
-       dec      r14d
+       mov      r12, rax
+       ; gcrRegs +[r12]
+       dec      r15d
        mov      rcx, qword ptr [rdi+0x38]
        mov      rcx, qword ptr [rcx]
-       mov      r12, qword ptr [rcx+0x30]
-       test     r12, r12
+       mov      rbp, qword ptr [rcx+0x30]
+       test     rbp, rbp
        je       SHORT G_M65447_IG10
                        ;; size=28 bbWeight=0.50 PerfScore 5.38
-G_M65447_IG09:        ; bbWeight=0.40, gcrefRegs=2048 {rbx rsi r13}, byrefRegs=0000 {}, byref, isz
+G_M65447_IG09:        ; bbWeight=0.40, gcrefRegs=1048 {rbx rsi r12}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        jmp      SHORT G_M65447_IG11
                        ;; size=2 bbWeight=0.40 PerfScore 0.80
-G_M65447_IG10:        ; bbWeight=0.10, gcrefRegs=2048 {rbx rsi r13}, byrefRegs=0000 {}, byref
+G_M65447_IG10:        ; bbWeight=0.10, gcrefRegs=1048 {rbx rsi r12}, byrefRegs=0000 {}, byref
        mov      rcx, rdi
        mov      rdx, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        ; gcr arg pop 0
-       mov      r12, rax
+       mov      rbp, rax
                        ;; size=21 bbWeight=0.10 PerfScore 0.18
-G_M65447_IG11:        ; bbWeight=4, gcrefRegs=2048 {rbx rsi r13}, byrefRegs=0000 {}, byref, isz
-       cmp      r14d, dword ptr [rsp+0x48]
+G_M65447_IG11:        ; bbWeight=4, gcrefRegs=1048 {rbx rsi r12}, byrefRegs=0000 {}, byref, isz
+       cmp      r15d, dword ptr [rsp+0x38]
        jae      G_M65447_IG31
-       mov      rdx, r12
-       lea      rcx, [rsp+0x40]
-       mov      r8d, r14d
+       mov      rdx, rbp
+       lea      rcx, [rsp+0x30]
+       mov      r8d, r15d
        call     [Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[System.__Canon,System.__Canon]]:get_Item(int):byref:this]
        ; byrRegs +[rax]
        ; gcr arg pop 0
-       mov      r14, rax
-       ; byrRegs +[r14]
-       cmp      dword ptr [r14+0x10], ebp
+       mov      r15, rax
+       ; byrRegs +[r15]
+       cmp      dword ptr [r15+0x10], r14d
        jne      SHORT G_M65447_IG13
                        ;; size=37 bbWeight=4 PerfScore 45.00
-G_M65447_IG12:        ; bbWeight=2, gcrefRegs=2048 {rbx rsi r13}, byrefRegs=4000 {r14}, byref
+G_M65447_IG12:        ; bbWeight=2, gcrefRegs=1048 {rbx rsi r12}, byrefRegs=8000 {r15}, byref
        ; byrRegs -[rax]
-       mov      rdx, gword ptr [r14]
+       mov      rdx, gword ptr [r15]
        ; gcrRegs +[rdx]
-       mov      rcx, r13
+       mov      rcx, r12
        ; gcrRegs +[rcx]
        mov      r8, rsi
        ; gcrRegs +[r8]
-       mov      rax, qword ptr [r13]
+       mov      rax, qword ptr [r12]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x20]<unknown method>
        ; gcrRegs -[rcx rdx r8]
@@ -224,16 +224,16 @@ G_M65447_IG12:        ; bbWeight=2, gcrefRegs=2048 {rbx rsi r13}, byrefRegs=4000
        test     eax, eax
        jne      G_M65447_IG29
                        ;; size=28 bbWeight=2 PerfScore 21.50
-G_M65447_IG13:        ; bbWeight=4, gcrefRegs=2048 {rbx rsi r13}, byrefRegs=4000 {r14}, byref, isz
-       mov      r14d, dword ptr [r14+0x14]
-       ; byrRegs -[r14]
-       inc      r15d
-       cmp      r15d, dword ptr [rsp+0x48]
+G_M65447_IG13:        ; bbWeight=4, gcrefRegs=1048 {rbx rsi r12}, byrefRegs=8000 {r15}, byref, isz
+       mov      r15d, dword ptr [r15+0x14]
+       ; byrRegs -[r15]
+       inc      r13d
+       cmp      r13d, dword ptr [rsp+0x38]
        ja       G_M65447_IG34
        jmp      SHORT G_M65447_IG11
                        ;; size=20 bbWeight=4 PerfScore 29.00
 G_M65447_IG14:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r13] +[rbp]
+       ; gcrRegs -[r12] +[rbp]
        mov      rcx, qword ptr [rdi+0x38]
        mov      rcx, qword ptr [rcx]
        mov      r11, qword ptr [rcx+0x28]
@@ -280,7 +280,7 @@ G_M65447_IG17:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0
                        ;; size=81 bbWeight=0.50 PerfScore 14.62
 G_M65447_IG18:        ; bbWeight=0.50, nogc, extend
        vmovdqu  xmm0, xmmword ptr [rbx+0x48]
-       vmovdqu  xmmword ptr [rsp+0x30], xmm0
+       vmovdqu  xmmword ptr [rsp+0x20], xmm0
                        ;; size=11 bbWeight=0.50 PerfScore 2.50
 G_M65447_IG19:        ; bbWeight=0.50, isz, extend
        xor      r13d, r13d
@@ -288,8 +288,8 @@ G_M65447_IG19:        ; bbWeight=0.50, isz, extend
        mov      rcx, qword ptr [rdi+0x38]
        ; gcrRegs -[rcx]
        mov      rcx, qword ptr [rcx]
-       mov      r12, qword ptr [rcx+0x30]
-       test     r12, r12
+       mov      rax, qword ptr [rcx+0x30]
+       test     rax, rax
        je       SHORT G_M65447_IG21
                        ;; size=22 bbWeight=0.50 PerfScore 3.88
 G_M65447_IG20:        ; bbWeight=0.40, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
@@ -300,44 +300,44 @@ G_M65447_IG21:        ; bbWeight=0.10, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0
        mov      rdx, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        ; gcr arg pop 0
+                       ;; size=18 bbWeight=0.10 PerfScore 0.15
+G_M65447_IG22:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
        mov      r12, rax
-                       ;; size=21 bbWeight=0.10 PerfScore 0.18
-G_M65447_IG22:        ; bbWeight=4, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
-       cmp      r15d, dword ptr [rsp+0x38]
-       jae      G_M65447_IG31
+                       ;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M65447_IG23:        ; bbWeight=4, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+       cmp      r15d, dword ptr [rsp+0x28]
+       jae      SHORT G_M65447_IG31
        mov      rdx, r12
-       lea      rcx, [rsp+0x30]
+       lea      rcx, [rsp+0x20]
        mov      r8d, r15d
...

+19 (+12.26%) : 25982.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System._Canon]:getHasAnyApplicableMember():ubyte:this (FullOpts)

@@ -27,10 +27,10 @@
 ;  V16 tmp12        [V16    ] (  5, 27   )     int  ->  [rsp+0x68]  do-not-enreg[X] addr-exposed "field V01._index (fldOffset=0x8)" P-DEP
 ;* V17 tmp13        [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "V03.[004..005)"
 ;* V18 cse0         [V18,T13] (  0,  0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;  V19 cse1         [V19,T08] (  1,  1   )    long  ->  rsi         hoist "CSE - aggressive"
-;* V20 rat0         [V20,T09] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V19 cse1         [V19,T08] (  2,  2   )    long  ->  rsi         hoist "CSE - aggressive"
+;  V20 rat0         [V20,T09] (  2,  4   )    long  ->  rcx         "Spilling to split statement for tree"
 ;* V21 rat1         [V21,T10] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V22 rat2         [V22,T07] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V22 rat2         [V22,T07] (  2,  4   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
 ;* V23 rat3         [V23,T12] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
 ;* V24 rat4         [V24,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
@@ -57,8 +57,14 @@ G_M864_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        mov      rsi, qword ptr [rbx]
+       mov      rcx, rsi
+       mov      rcx, qword ptr [rcx+0x38]
+       mov      rcx, qword ptr [rcx]
+       mov      rcx, qword ptr [rcx+0x30]
+       test     rcx, rcx
+       jne      SHORT G_M864_IG04
        jmp      SHORT G_M864_IG04
-                       ;; size=22 bbWeight=1 PerfScore 12.50
+                       ;; size=41 bbWeight=1 PerfScore 20.00
 G_M864_IG03:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rcx, gword ptr [rsp+0x60]
        ; gcrRegs +[rcx]
@@ -108,7 +114,7 @@ G_M864_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
                        ;; size=7 bbWeight=0.50 PerfScore 1.12
 
-; Total bytes of code 155, prolog size 33, PerfScore 136.33, instruction count 46, allocated bytes for code 155 (MethodHash=caadfc9f) for method Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
+; Total bytes of code 174, prolog size 33, PerfScore 143.83, instruction count 52, allocated bytes for code 174 (MethodHash=caadfc9f) for method Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+23 (+12.43%) : 27220.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)

@@ -25,10 +25,10 @@
 ;  V14 tmp7         [V14    ] (  5, 14.50)     int  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed "field V05._index (fldOffset=0x8)" P-DEP
 ;  V15 tmp8         [V15,T02] (  2,  8   )     ref  ->  rdx         "argument with side effect"
 ;* V16 cse0         [V16,T11] (  0,  0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;  V17 cse1         [V17,T07] (  2,  2.50)    long  ->  r14         hoist "CSE - aggressive"
-;* V18 rat0         [V18,T09] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;  V17 cse1         [V17,T07] (  3,  3   )    long  ->  r14         hoist "CSE - aggressive"
+;  V18 rat0         [V18,T09] (  2,  2   )    long  ->  rcx         "Spilling to split statement for tree"
 ;* V19 rat1         [V19,T10] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V20 rat2         [V20,T08] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V20 rat2         [V20,T08] (  2,  2   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 80
 
@@ -51,7 +51,7 @@ G_M13717_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rdi, r8
        ; gcrRegs +[rdi]
                        ;; size=41 bbWeight=1 PerfScore 10.58
-G_M13717_IG02:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M13717_IG02:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        mov      rcx, gword ptr [rbx+0x38]
        ; gcrRegs +[rcx]
        mov      rdx, rsi
@@ -63,8 +63,8 @@ G_M13717_IG02:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
        mov      rbp, rax
        ; gcrRegs +[rbp]
        test     rbp, rbp
-       je       SHORT G_M13717_IG07
-                       ;; size=23 bbWeight=1 PerfScore 9.75
+       je       G_M13717_IG07
+                       ;; size=27 bbWeight=1 PerfScore 9.75
 G_M13717_IG03:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        lea      rdx, [rsp+0x30]
@@ -74,8 +74,14 @@ G_M13717_IG03:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRe
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        mov      r14, qword ptr [rbx]
+       mov      rcx, r14
+       mov      rcx, qword ptr [rcx+0x38]
+       mov      rcx, qword ptr [rcx]
+       mov      rcx, qword ptr [rcx+0x30]
+       test     rcx, rcx
+       jne      SHORT G_M13717_IG05
        jmp      SHORT G_M13717_IG05
-                       ;; size=19 bbWeight=0.50 PerfScore 3.88
+                       ;; size=38 bbWeight=0.50 PerfScore 7.62
 G_M13717_IG04:        ; bbWeight=2, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
        mov      rcx, gword ptr [rsp+0x30]
        ; gcrRegs +[rcx]
@@ -132,7 +138,7 @@ G_M13717_IG08:        ; bbWeight=1, epilog, nogc, extend
        ret      
                        ;; size=11 bbWeight=1 PerfScore 3.75
 
-; Total bytes of code 185, prolog size 32, PerfScore 102.58, instruction count 56, allocated bytes for code 185 (MethodHash=276aca6a) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
+; Total bytes of code 208, prolog size 32, PerfScore 106.33, instruction count 62, allocated bytes for code 208 (MethodHash=276aca6a) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+25 (+33.78%) : 10065.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)

@@ -8,8 +8,8 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  6,  4.50)     ref  ->  rbx         this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
-;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <FSharp.Compiler.Infos+PropInfo>
+;  V00 this         [V00,T00] (  7,  5   )     ref  ->  rbx         this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <<unknown class>>
 ;  V03 loc2         [V03,T04] (  2,  1   )     ref  ->  rcx         class-hnd exact single-def <<unknown class>>
 ;* V04 loc3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <FSharp.Compiler.TypedTree+ValRef>
@@ -35,37 +35,49 @@ G_M3270_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byre
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M3270_IG05
+       jne      SHORT G_M3270_IG04
                        ;; size=23 bbWeight=1 PerfScore 2.75
 G_M3270_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
+       mov      rdx, rbx
+       ; gcrRegs +[rdx]
+       mov      rcx, 0xD1FFAB1E      ; <unknown class>
+       call     CORINFO_HELP_ISINSTANCEOFCLASS
+       ; gcrRegs -[rdx rbx] +[rax]
+       ; gcr arg pop 0
+       test     rax, rax
+       jne      SHORT G_M3270_IG06
+       jmp      SHORT G_M3270_IG06
+                       ;; size=25 bbWeight=0.50 PerfScore 2.38
+G_M3270_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rax] +[rbx]
        mov      rcx, gword ptr [rbx+0x18]
        ; gcrRegs +[rcx]
        test     rcx, rcx
-       je       SHORT G_M3270_IG05
+       je       SHORT G_M3270_IG06
        cmp      gword ptr [rbx+0x20], 0
-       jne      SHORT G_M3270_IG05
+       jne      SHORT G_M3270_IG06
        mov      rcx, gword ptr [rcx+0x08]
        mov      rdx, gword ptr [rbx+0x08]
        ; gcrRegs +[rdx]
                        ;; size=24 bbWeight=0.50 PerfScore 5.62
-G_M3270_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG05:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
        tail.jmp [FSharp.Compiler.Infos:ValRef.IsFSharpEventProperty(FSharp.Compiler.TypedTree+ValRef,FSharp.Compiler.TcGlobals+TcGlobals):ubyte]
        ; gcr arg pop 0
                        ;; size=11 bbWeight=0.50 PerfScore 1.38
-G_M3270_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M3270_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rcx rdx rbx]
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M3270_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG07:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
        ret      
                        ;; size=6 bbWeight=0.50 PerfScore 0.88
 
-; Total bytes of code 74, prolog size 8, PerfScore 12.25, instruction count 22, allocated bytes for code 74 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
+; Total bytes of code 99, prolog size 8, PerfScore 14.62, instruction count 28, allocated bytes for code 99 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

smoke_tests.nativeaot.windows.x64.checked.mch

-2 (-1.65%) : 5642.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.Canon,System.Canon]:MoveNext():ubyte:this (FullOpts)

@@ -68,9 +68,8 @@ G_M56828_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        lea      rdx, bword ptr [rax+8*rdx+0x10]
        ; byrRegs +[rdx]
        cmp      dword ptr [rdx+0x14], -1
-       jge      SHORT G_M56828_IG07
-       jmp      SHORT G_M56828_IG03
-                       ;; size=40 bbWeight=2 PerfScore 38.00
+       jl       SHORT G_M56828_IG03
+                       ;; size=38 bbWeight=2 PerfScore 34.00
 G_M56828_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx}, byref
        ; gcrRegs -[rax]
        mov      rdx, gword ptr [rdx]
@@ -96,7 +95,7 @@ G_M56828_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 121, prolog size 4, PerfScore 116.62, instruction count 38, allocated bytes for code 121 (MethodHash=5db22203) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 119, prolog size 4, PerfScore 112.62, instruction count 37, allocated bytes for code 119 (MethodHash=5db22203) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-2 (-1.65%) : 7810.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)

@@ -68,9 +68,8 @@ G_M64501_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        lea      rdx, bword ptr [rax+8*rdx+0x10]
        ; byrRegs +[rdx]
        cmp      dword ptr [rdx+0x0C], -1
-       jge      SHORT G_M64501_IG07
-       jmp      SHORT G_M64501_IG03
-                       ;; size=40 bbWeight=2 PerfScore 38.00
+       jl       SHORT G_M64501_IG03
+                       ;; size=38 bbWeight=2 PerfScore 34.00
 G_M64501_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx}, byref
        ; gcrRegs -[rax]
        mov      rdx, gword ptr [rdx]
@@ -96,7 +95,7 @@ G_M64501_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 121, prolog size 4, PerfScore 116.62, instruction count 38, allocated bytes for code 121 (MethodHash=e043040a) for method System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 119, prolog size 4, PerfScore 112.62, instruction count 37, allocated bytes for code 119 (MethodHash=e043040a) for method System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-2 (-1.65%) : 12099.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)

@@ -67,9 +67,8 @@ G_M27287_IG06:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        lea      rdx, bword ptr [rax+rdx+0x10]
        ; byrRegs +[rdx]
        cmp      dword ptr [rdx+0x0C], -1
-       jge      SHORT G_M27287_IG07
-       jmp      SHORT G_M27287_IG03
-                       ;; size=40 bbWeight=2 PerfScore 38.00
+       jl       SHORT G_M27287_IG03
+                       ;; size=38 bbWeight=2 PerfScore 34.00
 G_M27287_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx}, byref
        ; gcrRegs -[rax]
        mov      rdx, gword ptr [rdx]
@@ -95,7 +94,7 @@ G_M27287_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 121, prolog size 4, PerfScore 116.62, instruction count 38, allocated bytes for code 121 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 119, prolog size 4, PerfScore 112.62, instruction count 37, allocated bytes for code 119 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+8 (+5.93%) : 15022.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)

@@ -8,73 +8,77 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T04] (  4,  4   )     ref  ->  rbx         this class-hnd exact single-def <System.Globalization.GregorianCalendarHelper>
-;  V01 arg1         [V01    ] (  5,  5   )  struct ( 8) [rsp+0x48]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.DateTime>
+;  V01 arg1         [V01    ] (  5,  5   )  struct ( 8) [rsp+0x58]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.DateTime>
 ;  V02 loc0         [V02,T03] (  3, 10   )    long  ->  rsi        
-;  V03 loc1         [V03,T02] (  3, 10   )     ref  ->  rcx         class-hnd exact single-def <<unknown class>>
-;  V04 loc2         [V04,T00] (  5, 21   )     int  ->  rax        
-;  V05 loc3         [V05,T01] (  3, 17   )     ref  ->  rbx         class-hnd exact <<unknown class>>
+;  V03 loc1         [V03,T02] (  3, 10   )     ref  ->  rbx         class-hnd exact single-def <<unknown class>>
+;  V04 loc2         [V04,T00] (  5, 21   )     int  ->  rdi        
+;  V05 loc3         [V05,T01] (  3, 17   )     ref  ->  r14         class-hnd exact <<unknown class>>
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V07 tmp1         [V07,T06] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V08 tmp2         [V08    ] (  5,  5   )    long  ->  [rsp+0x48]  do-not-enreg[X] addr-exposed single-def "field V01._dateData (fldOffset=0x0)" P-DEP
+;  V08 tmp2         [V08    ] (  5,  5   )    long  ->  [rsp+0x58]  do-not-enreg[X] addr-exposed single-def "field V01._dateData (fldOffset=0x0)" P-DEP
 ;  V09 tmp3         [V09,T07] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V10 cse0         [V10,T05] (  3,  6   )     int  ->  rdx         "CSE - aggressive"
+;  V10 cse0         [V10,T05] (  3,  6   )     int  ->  rbp         "CSE - aggressive"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M5119_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+       push     r14
+       push     rdi
        push     rsi
+       push     rbp
        push     rbx
-       sub      rsp, 40
-       mov      qword ptr [rsp+0x48], rdx
+       sub      rsp, 32
+       mov      qword ptr [rsp+0x58], rdx
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-                       ;; size=14 bbWeight=1 PerfScore 3.50
+                       ;; size=18 bbWeight=1 PerfScore 6.50
 G_M5119_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rsi, 0xD1FFAB1E
-       and      rsi, qword ptr [rsp+0x48]
+       and      rsi, qword ptr [rsp+0x58]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      rdx, rsi
        call     <unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rcx, gword ptr [rbx+0x10]
-       ; gcrRegs +[rcx]
-       xor      eax, eax
-       mov      edx, dword ptr [rcx+0x08]
-       test     edx, edx
+       mov      rbx, gword ptr [rbx+0x10]
+       xor      edi, edi
+       mov      ebp, dword ptr [rbx+0x08]
+       test     ebp, ebp
        jle      SHORT G_M5119_IG07
                        ;; size=39 bbWeight=1 PerfScore 9.25
-G_M5119_IG03:        ; bbWeight=8, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx]
-       mov      r8d, eax
-       mov      rbx, gword ptr [rcx+8*r8+0x10]
-       ; gcrRegs +[rbx]
-       cmp      rsi, qword ptr [rbx+0x20]
+G_M5119_IG03:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       mov      ecx, edi
+       mov      r14, gword ptr [rbx+8*rcx+0x10]
+       ; gcrRegs +[r14]
+       cmp      rsi, qword ptr [r14+0x20]
        jge      SHORT G_M5119_IG05
-                       ;; size=14 bbWeight=8 PerfScore 50.00
-G_M5119_IG04:        ; bbWeight=4, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx]
-       inc      eax
-       cmp      edx, eax
+                       ;; size=13 bbWeight=8 PerfScore 50.00
+G_M5119_IG04:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[r14]
+       inc      edi
+       cmp      ebp, edi
        jle      SHORT G_M5119_IG07
        jmp      SHORT G_M5119_IG03
                        ;; size=8 bbWeight=4 PerfScore 14.00
-G_M5119_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rcx] +[rbx]
-       lea      rcx, [rsp+0x48]
+G_M5119_IG05:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx] +[r14]
+       lea      rcx, [rsp+0x58]
        call     System.DateTime:get_Year():int:this
        ; gcr arg pop 0
-       sub      eax, dword ptr [rbx+0x2C]
-                       ;; size=13 bbWeight=1 PerfScore 4.50
+       sub      eax, dword ptr [r14+0x2C]
+                       ;; size=14 bbWeight=1 PerfScore 4.50
 G_M5119_IG06:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 32
        pop      rbx
+       pop      rbp
        pop      rsi
+       pop      rdi
+       pop      r14
        ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
+                       ;; size=11 bbWeight=1 PerfScore 3.75
 G_M5119_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rbx]
+       ; gcrRegs -[r14]
        lea      rcx, [(reloc)]      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -98,7 +102,7 @@ G_M5119_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
        int3     
                        ;; size=40 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 135, prolog size 14, PerfScore 83.50, instruction count 40, allocated bytes for code 135 (MethodHash=c429ec00) for method System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
+; Total bytes of code 143, prolog size 18, PerfScore 88.00, instruction count 46, allocated bytes for code 143 (MethodHash=c429ec00) for method System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -106,11 +110,14 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x06
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x0A
+  CountOfUnwindCodes: 6
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)

+8 (+5.97%) : 7861.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)

@@ -9,72 +9,76 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T04] (  4,  4   )     ref  ->  rbx         this class-hnd exact single-def <System.Globalization.GregorianCalendarHelper>
-;  V01 arg1         [V01    ] (  5,  5   )  struct ( 8) [rsp+0x48]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.DateTime>
+;  V01 arg1         [V01    ] (  5,  5   )  struct ( 8) [rsp+0x58]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.DateTime>
 ;  V02 loc0         [V02,T03] (  3, 10   )    long  ->  rsi        
-;  V03 loc1         [V03,T02] (  3, 10   )     ref  ->  rcx         class-hnd exact single-def <<unknown class>>
-;  V04 loc2         [V04,T00] (  5, 21   )     int  ->  rax        
-;  V05 loc3         [V05,T01] (  3, 17   )     ref  ->  rbx         class-hnd exact <<unknown class>>
+;  V03 loc1         [V03,T02] (  3, 10   )     ref  ->  rbx         class-hnd exact single-def <<unknown class>>
+;  V04 loc2         [V04,T00] (  5, 21   )     int  ->  rdi        
+;  V05 loc3         [V05,T01] (  3, 17   )     ref  ->  r14         class-hnd exact <<unknown class>>
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V07 tmp1         [V07,T06] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V08 tmp2         [V08    ] (  5,  5   )    long  ->  [rsp+0x48]  do-not-enreg[X] addr-exposed single-def "field V01._dateData (fldOffset=0x0)" P-DEP
-;  V09 cse0         [V09,T05] (  3,  6   )     int  ->  rdx         "CSE - aggressive"
+;  V08 tmp2         [V08    ] (  5,  5   )    long  ->  [rsp+0x58]  do-not-enreg[X] addr-exposed single-def "field V01._dateData (fldOffset=0x0)" P-DEP
+;  V09 cse0         [V09,T05] (  3,  6   )     int  ->  rbp         "CSE - aggressive"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M5119_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+       push     r14
+       push     rdi
        push     rsi
+       push     rbp
        push     rbx
-       sub      rsp, 40
-       mov      qword ptr [rsp+0x48], rdx
+       sub      rsp, 32
+       mov      qword ptr [rsp+0x58], rdx
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-                       ;; size=14 bbWeight=1 PerfScore 3.50
+                       ;; size=18 bbWeight=1 PerfScore 6.50
 G_M5119_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rsi, 0xD1FFAB1E
-       and      rsi, qword ptr [rsp+0x48]
+       and      rsi, qword ptr [rsp+0x58]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      rdx, rsi
        call     <unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rcx, gword ptr [rbx+0x10]
-       ; gcrRegs +[rcx]
-       xor      eax, eax
-       mov      edx, dword ptr [rcx+0x08]
-       test     edx, edx
+       mov      rbx, gword ptr [rbx+0x10]
+       xor      edi, edi
+       mov      ebp, dword ptr [rbx+0x08]
+       test     ebp, ebp
        jle      SHORT G_M5119_IG07
                        ;; size=39 bbWeight=1 PerfScore 9.25
-G_M5119_IG03:        ; bbWeight=8, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx]
-       mov      r8d, eax
-       mov      rbx, gword ptr [rcx+8*r8+0x10]
-       ; gcrRegs +[rbx]
-       cmp      rsi, qword ptr [rbx+0x20]
+G_M5119_IG03:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       mov      ecx, edi
+       mov      r14, gword ptr [rbx+8*rcx+0x10]
+       ; gcrRegs +[r14]
+       cmp      rsi, qword ptr [r14+0x20]
        jge      SHORT G_M5119_IG05
-                       ;; size=14 bbWeight=8 PerfScore 50.00
-G_M5119_IG04:        ; bbWeight=4, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx]
-       inc      eax
-       cmp      edx, eax
+                       ;; size=13 bbWeight=8 PerfScore 50.00
+G_M5119_IG04:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[r14]
+       inc      edi
+       cmp      ebp, edi
        jle      SHORT G_M5119_IG07
        jmp      SHORT G_M5119_IG03
                        ;; size=8 bbWeight=4 PerfScore 14.00
-G_M5119_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rcx] +[rbx]
-       lea      rcx, [rsp+0x48]
+G_M5119_IG05:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx] +[r14]
+       lea      rcx, [rsp+0x58]
        call     System.DateTime:get_Year():int:this
        ; gcr arg pop 0
-       sub      eax, dword ptr [rbx+0x2C]
-                       ;; size=13 bbWeight=1 PerfScore 4.50
+       sub      eax, dword ptr [r14+0x2C]
+                       ;; size=14 bbWeight=1 PerfScore 4.50
 G_M5119_IG06:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 32
        pop      rbx
+       pop      rbp
        pop      rsi
+       pop      rdi
+       pop      r14
        ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
+                       ;; size=11 bbWeight=1 PerfScore 3.75
 G_M5119_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rbx]
+       ; gcrRegs -[r14]
        lea      rcx, [(reloc)]      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -96,7 +100,7 @@ G_M5119_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
        int3     
                        ;; size=39 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 134, prolog size 14, PerfScore 83.50, instruction count 39, allocated bytes for code 134 (MethodHash=c429ec00) for method System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
+; Total bytes of code 142, prolog size 18, PerfScore 88.00, instruction count 45, allocated bytes for code 142 (MethodHash=c429ec00) for method System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -104,11 +108,14 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x06
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x0A
+  CountOfUnwindCodes: 6
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)

+8 (+5.97%) : 13481.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)

@@ -8,72 +8,76 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T04] (  4,  4   )     ref  ->  rbx         this class-hnd exact single-def <System.Globalization.GregorianCalendarHelper>
-;  V01 arg1         [V01    ] (  5,  5   )  struct ( 8) [rsp+0x48]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.DateTime>
+;  V01 arg1         [V01    ] (  5,  5   )  struct ( 8) [rsp+0x58]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.DateTime>
 ;  V02 loc0         [V02,T03] (  3, 10   )    long  ->  rsi        
-;  V03 loc1         [V03,T02] (  3, 10   )     ref  ->  rcx         class-hnd exact single-def <<unknown class>>
-;  V04 loc2         [V04,T00] (  5, 21   )     int  ->  rax        
-;  V05 loc3         [V05,T01] (  3, 17   )     ref  ->  rbx         class-hnd exact <<unknown class>>
+;  V03 loc1         [V03,T02] (  3, 10   )     ref  ->  rbx         class-hnd exact single-def <<unknown class>>
+;  V04 loc2         [V04,T00] (  5, 21   )     int  ->  rdi        
+;  V05 loc3         [V05,T01] (  3, 17   )     ref  ->  r14         class-hnd exact <<unknown class>>
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V07 tmp1         [V07,T06] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V08 tmp2         [V08    ] (  5,  5   )    long  ->  [rsp+0x48]  do-not-enreg[X] addr-exposed single-def "field V01._dateData (fldOffset=0x0)" P-DEP
-;  V09 cse0         [V09,T05] (  3,  6   )     int  ->  rdx         "CSE - aggressive"
+;  V08 tmp2         [V08    ] (  5,  5   )    long  ->  [rsp+0x58]  do-not-enreg[X] addr-exposed single-def "field V01._dateData (fldOffset=0x0)" P-DEP
+;  V09 cse0         [V09,T05] (  3,  6   )     int  ->  rbp         "CSE - aggressive"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M5119_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+       push     r14
+       push     rdi
        push     rsi
+       push     rbp
        push     rbx
-       sub      rsp, 40
-       mov      qword ptr [rsp+0x48], rdx
+       sub      rsp, 32
+       mov      qword ptr [rsp+0x58], rdx
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-                       ;; size=14 bbWeight=1 PerfScore 3.50
+                       ;; size=18 bbWeight=1 PerfScore 6.50
 G_M5119_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rsi, 0xD1FFAB1E
-       and      rsi, qword ptr [rsp+0x48]
+       and      rsi, qword ptr [rsp+0x58]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      rdx, rsi
        call     <unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rcx, gword ptr [rbx+0x10]
-       ; gcrRegs +[rcx]
-       xor      eax, eax
-       mov      edx, dword ptr [rcx+0x08]
-       test     edx, edx
+       mov      rbx, gword ptr [rbx+0x10]
+       xor      edi, edi
+       mov      ebp, dword ptr [rbx+0x08]
+       test     ebp, ebp
        jle      SHORT G_M5119_IG07
                        ;; size=39 bbWeight=1 PerfScore 9.25
-G_M5119_IG03:        ; bbWeight=8, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx]
-       mov      r8d, eax
-       mov      rbx, gword ptr [rcx+8*r8+0x10]
-       ; gcrRegs +[rbx]
-       cmp      rsi, qword ptr [rbx+0x20]
+G_M5119_IG03:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       mov      ecx, edi
+       mov      r14, gword ptr [rbx+8*rcx+0x10]
+       ; gcrRegs +[r14]
+       cmp      rsi, qword ptr [r14+0x20]
        jge      SHORT G_M5119_IG05
-                       ;; size=14 bbWeight=8 PerfScore 50.00
-G_M5119_IG04:        ; bbWeight=4, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx]
-       inc      eax
-       cmp      edx, eax
+                       ;; size=13 bbWeight=8 PerfScore 50.00
+G_M5119_IG04:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[r14]
+       inc      edi
+       cmp      ebp, edi
        jle      SHORT G_M5119_IG07
        jmp      SHORT G_M5119_IG03
                        ;; size=8 bbWeight=4 PerfScore 14.00
-G_M5119_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rcx] +[rbx]
-       lea      rcx, [rsp+0x48]
+G_M5119_IG05:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx] +[r14]
+       lea      rcx, [rsp+0x58]
        call     System.DateTime:get_Year():int:this
        ; gcr arg pop 0
-       sub      eax, dword ptr [rbx+0x2C]
-                       ;; size=13 bbWeight=1 PerfScore 4.50
+       sub      eax, dword ptr [r14+0x2C]
+                       ;; size=14 bbWeight=1 PerfScore 4.50
 G_M5119_IG06:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 32
        pop      rbx
+       pop      rbp
        pop      rsi
+       pop      rdi
+       pop      r14
        ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
+                       ;; size=11 bbWeight=1 PerfScore 3.75
 G_M5119_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rbx]
+       ; gcrRegs -[r14]
        lea      rcx, [(reloc)]      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -95,7 +99,7 @@ G_M5119_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
        int3     
                        ;; size=39 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 134, prolog size 14, PerfScore 83.50, instruction count 39, allocated bytes for code 134 (MethodHash=c429ec00) for method System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
+; Total bytes of code 142, prolog size 18, PerfScore 88.00, instruction count 45, allocated bytes for code 142 (MethodHash=c429ec00) for method System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -103,11 +107,14 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x06
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x0A
+  CountOfUnwindCodes: 6
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
aspnet.run.windows.x64.checked.mch 23,721 4,868 15,054 3,799 -30,730 +422,640
benchmarks.run.windows.x64.checked.mch 467 176 83 208 -812 +735
benchmarks.run_pgo.windows.x64.checked.mch 22,396 4,308 16,013 2,075 -31,910 +684,742
benchmarks.run_tiered.windows.x64.checked.mch 138 68 21 49 -451 +241
coreclr_tests.run.windows.x64.checked.mch 57,353 3,281 33,265 20,807 -24,218 +541,107
libraries.crossgen2.windows.x64.checked.mch 1,232 165 219 848 -692 +2,389
libraries.pmi.windows.x64.checked.mch 30,997 3,815 18,385 8,797 -17,726 +213,863
libraries_tests.run.windows.x64.Release.mch 83,698 14,515 59,011 10,172 -93,989 +1,878,746
librariestestsnotieredcompilation.run.windows.x64.Release.mch 68,733 10,046 48,828 9,859 -56,115 +537,150
realworld.run.windows.x64.checked.mch 398 84 111 203 -517 +1,549
smoke_tests.nativeaot.windows.x64.checked.mch 228 37 53 138 -82 +429
289,361 41,363 191,043 56,955 -257,242 +4,283,591

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
aspnet.run.windows.x64.checked.mch 113,442 48,462 64,980 968 (0.85%) 972 (0.85%)
benchmarks.run.windows.x64.checked.mch 28,174 4 28,170 0 (0.00%) 4 (0.01%)
benchmarks.run_pgo.windows.x64.checked.mch 101,022 50,170 50,852 126 (0.12%) 131 (0.13%)
benchmarks.run_tiered.windows.x64.checked.mch 54,253 36,844 17,409 0 (0.00%) 2 (0.00%)
coreclr_tests.run.windows.x64.checked.mch 574,111 341,113 232,998 301 (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,632 6 307,626 2 (0.00%) 9 (0.00%)
libraries_tests.run.windows.x64.Release.mch 682,150 485,176 196,974 2,459 (0.36%) 2,467 (0.36%)
librariestestsnotieredcompilation.run.windows.x64.Release.mch 319,776 21,886 297,890 6 (0.00%) 10 (0.00%)
realworld.run.windows.x64.checked.mch 36,885 3 36,882 0 (0.00%) 3 (0.01%)
smoke_tests.nativeaot.windows.x64.checked.mch 32,444 10 32,434 0 (0.00%) 0 (0.00%)
2,492,912 983,689 1,509,223 3,862 (0.15%) 3,899 (0.16%)

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: 41787647 (overridden on cmd)
Total bytes of diff: 42179557 (overridden on cmd)
Total bytes of delta: 391910 (0.94 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         551 : 111833.dasm (35.85 % of base)
         551 : 98916.dasm (35.85 % of base)
         508 : 32632.dasm (33.51 % of base)
         508 : 38846.dasm (33.51 % of base)
         508 : 53420.dasm (33.51 % of base)
         508 : 42744.dasm (33.51 % of base)
         508 : 65374.dasm (33.51 % of base)
         508 : 34963.dasm (33.51 % of base)
         367 : 58690.dasm (6.98 % of base)
         364 : 63407.dasm (5.06 % of base)
         364 : 91769.dasm (3.31 % of base)
         363 : 10122.dasm (8.57 % of base)
         354 : 93027.dasm (2.87 % of base)
         354 : 101987.dasm (2.87 % of base)
         353 : 89126.dasm (2.84 % of base)
         350 : 101029.dasm (3.15 % of base)
         350 : 61597.dasm (4.87 % of base)
         347 : 58273.dasm (4.82 % of base)
         344 : 101225.dasm (7.37 % of base)
         343 : 55247.dasm (8.89 % of base)

Top file improvements (bytes):
        -103 : 112718.dasm (-7.93 % of base)
        -103 : 95820.dasm (-7.93 % of base)
        -103 : 96679.dasm (-7.93 % of base)
        -102 : 91182.dasm (-0.95 % of base)
         -88 : 110977.dasm (-6.32 % of base)
         -88 : 114283.dasm (-6.32 % of base)
         -77 : 59142.dasm (-2.29 % of base)
         -67 : 55082.dasm (-2.00 % of base)
         -61 : 12240.dasm (-1.97 % of base)
         -61 : 5187.dasm (-1.97 % of base)
         -61 : 100570.dasm (-1.96 % of base)
         -61 : 12088.dasm (-1.96 % of base)
         -61 : 113510.dasm (-1.96 % of base)
         -61 : 15900.dasm (-1.94 % of base)
         -61 : 35285.dasm (-1.94 % of base)
         -61 : 49538.dasm (-1.94 % of base)
         -61 : 62142.dasm (-1.94 % of base)
         -61 : 15316.dasm (-1.97 % of base)
         -61 : 54689.dasm (-1.94 % of base)
         -61 : 9401.dasm (-1.97 % of base)

71 total files with Code Size differences (38 improved, 33 regressed), 20 unchanged.

Top method regressions (bytes):
         551 (35.85 % of base) : 111833.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders:ClearFast():this (Tier1)
         551 (35.85 % of base) : 98916.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders:ClearFast():this (Tier1)
         508 (33.51 % of base) : 32632.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders:ClearFast():this (Tier1)
         508 (33.51 % of base) : 38846.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders:ClearFast():this (Tier1)
         508 (33.51 % of base) : 53420.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders:ClearFast():this (Tier1)
         508 (33.51 % of base) : 42744.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders:ClearFast():this (Tier1)
         508 (33.51 % of base) : 65374.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders:ClearFast():this (Tier1)
         508 (33.51 % of base) : 34963.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders:ClearFast():this (Tier1)
         367 (6.98 % of base) : 58690.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
         364 (5.06 % of base) : 63407.dasm - Benchmarks.Middleware.MultipleUpdatesRawMiddleware+<Invoke>d__4:MoveNext():this (Tier1)
         364 (3.31 % of base) : 91769.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1-OSR)
         363 (8.57 % of base) : 10122.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
         354 (2.87 % of base) : 93027.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         354 (2.87 % of base) : 101987.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         353 (2.84 % of base) : 89126.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         350 (4.87 % of base) : 61597.dasm - Benchmarks.Middleware.MultipleUpdatesRawMiddleware+<Invoke>d__4:MoveNext():this (Tier1)
         350 (3.15 % of base) : 101029.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1-OSR)
         347 (4.82 % of base) : 58273.dasm - Benchmarks.Middleware.MultipleUpdatesRawMiddleware+<Invoke>d__4:MoveNext():this (Tier1)
         344 (7.37 % of base) : 101225.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
         343 (8.89 % of base) : 55247.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)

Top method improvements (bytes):
        -103 (-7.93 % of base) : 112718.dasm - System.SpanHelpers:IndexOf(byref,int,byref,int):int (Tier1)
        -103 (-7.93 % of base) : 95820.dasm - System.SpanHelpers:IndexOf(byref,int,byref,int):int (Tier1)
        -103 (-7.93 % of base) : 96679.dasm - System.SpanHelpers:IndexOf(byref,int,byref,int):int (Tier1)
        -102 (-0.95 % of base) : 91182.dasm - Newtonsoft.Json.Serialization.DefaultContractResolver:GetCallbackMethodsForType(System.Type,byref,byref,byref,byref,byref):this (Tier1-OSR)
         -88 (-6.32 % of base) : 110977.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey,System.__Canon]:TryGetValue(System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey,byref):ubyte:this (Tier1)
         -88 (-6.32 % of base) : 114283.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey,System.__Canon]:TryGetValue(System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey,byref):ubyte:this (Tier1)
         -77 (-2.29 % of base) : 59142.dasm - Npgsql.SqlQueryParser:ParseRawQuery(Npgsql.NpgsqlCommand,Npgsql.NpgsqlBatchCommand,ubyte,ubyte):this (Tier1-OSR)
         -67 (-2.00 % of base) : 55082.dasm - Npgsql.SqlQueryParser:ParseRawQuery(Npgsql.NpgsqlCommand,Npgsql.NpgsqlBatchCommand,ubyte,ubyte):this (Tier1-OSR)
         -61 (-1.97 % of base) : 12240.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:TryCreateEnumerable(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite:this (Tier1-OSR)
         -61 (-1.97 % of base) : 5187.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:TryCreateEnumerable(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite:this (Tier1-OSR)
         -61 (-1.96 % of base) : 100570.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:TryCreateEnumerable(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite:this (Tier1-OSR)
         -61 (-1.96 % of base) : 12088.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:TryCreateEnumerable(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite:this (Tier1-OSR)
         -61 (-1.96 % of base) : 113510.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:TryCreateEnumerable(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite:this (Tier1-OSR)
         -61 (-1.94 % of base) : 15900.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:TryCreateEnumerable(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite:this (Tier1-OSR)
         -61 (-1.94 % of base) : 35285.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:TryCreateEnumerable(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite:this (Tier1-OSR)
         -61 (-1.94 % of base) : 49538.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:TryCreateEnumerable(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite:this (Tier1-OSR)
         -61 (-1.94 % of base) : 62142.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:TryCreateEnumerable(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite:this (Tier1-OSR)
         -61 (-1.97 % of base) : 15316.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:TryCreateEnumerable(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite:this (Tier1-OSR)
         -61 (-1.94 % of base) : 54689.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:TryCreateEnumerable(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite:this (Tier1-OSR)
         -61 (-1.97 % of base) : 9401.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:TryCreateEnumerable(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite:this (Tier1-OSR)

Top method regressions (percentages):
         551 (35.85 % of base) : 111833.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders:ClearFast():this (Tier1)
         551 (35.85 % of base) : 98916.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders:ClearFast():this (Tier1)
         185 (35.24 % of base) : 1259.dasm - System.Net.Sockets.Socket:UpdateAcceptSocket(System.Net.Sockets.Socket,System.Net.EndPoint):System.Net.Sockets.Socket:this (Tier1)
         185 (35.24 % of base) : 1758.dasm - System.Net.Sockets.Socket:UpdateAcceptSocket(System.Net.Sockets.Socket,System.Net.EndPoint):System.Net.Sockets.Socket:this (Tier1)
         185 (35.24 % of base) : 2037.dasm - System.Net.Sockets.Socket:UpdateAcceptSocket(System.Net.Sockets.Socket,System.Net.EndPoint):System.Net.Sockets.Socket:this (Tier1)
         185 (35.24 % of base) : 8710.dasm - System.Net.Sockets.Socket:UpdateAcceptSocket(System.Net.Sockets.Socket,System.Net.EndPoint):System.Net.Sockets.Socket:this (Tier1)
         185 (35.24 % of base) : 10167.dasm - System.Net.Sockets.Socket:UpdateAcceptSocket(System.Net.Sockets.Socket,System.Net.EndPoint):System.Net.Sockets.Socket:this (Tier1)
         185 (35.24 % of base) : 9743.dasm - System.Net.Sockets.Socket:UpdateAcceptSocket(System.Net.Sockets.Socket,System.Net.EndPoint):System.Net.Sockets.Socket:this (Tier1)
          25 (33.78 % of base) : 53801.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2[System.__Canon,System.ValueTuple`2[System.__Canon,int]]:TryGetValue(System.__Canon,byref):ubyte:this (Tier1)
         508 (33.51 % of base) : 32632.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders:ClearFast():this (Tier1)
         508 (33.51 % of base) : 38846.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders:ClearFast():this (Tier1)
         508 (33.51 % of base) : 53420.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders:ClearFast():this (Tier1)
         508 (33.51 % of base) : 42744.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders:ClearFast():this (Tier1)
         508 (33.51 % of base) : 65374.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders:ClearFast():this (Tier1)
         508 (33.51 % of base) : 34963.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders:ClearFast():this (Tier1)
          82 (31.54 % of base) : 56565.dasm - Dapper.SqlMapper:ExecuteReaderWithFlagsFallbackAsync(System.Data.Common.DbCommand,ubyte,int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Data.Common.DbDataReader] (Tier1)
          82 (31.54 % of base) : 57521.dasm - Dapper.SqlMapper:ExecuteReaderWithFlagsFallbackAsync(System.Data.Common.DbCommand,ubyte,int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Data.Common.DbDataReader] (Tier1)
          82 (31.54 % of base) : 48767.dasm - Dapper.SqlMapper:ExecuteReaderWithFlagsFallbackAsync(System.Data.Common.DbCommand,ubyte,int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Data.Common.DbDataReader] (Tier1)
          82 (31.54 % of base) : 40115.dasm - Dapper.SqlMapper:ExecuteReaderWithFlagsFallbackAsync(System.Data.Common.DbCommand,ubyte,int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Data.Common.DbDataReader] (Tier1)
          24 (23.30 % of base) : 102350.dasm - System.Collections.Generic.Stack`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)

Top method improvements (percentages):
         -15 (-15.15 % of base) : 65726.dasm - Npgsql.NpgsqlCommand:<ProcessRawQuery>g__ValidateParameterCount|98_0(Npgsql.NpgsqlBatchCommand) (Tier1)
         -15 (-15.15 % of base) : 53577.dasm - Npgsql.NpgsqlCommand:<ProcessRawQuery>g__ValidateParameterCount|98_0(Npgsql.NpgsqlBatchCommand) (Tier1)
          -2 (-9.52 % of base) : 102341.dasm - System.Text.StringBuilder+ChunkEnumerator:ChunkCount(System.Text.StringBuilder):int (Tier1)
          -2 (-9.52 % of base) : 89880.dasm - System.Text.StringBuilder+ChunkEnumerator:ChunkCount(System.Text.StringBuilder):int (Tier1)
          -2 (-9.52 % of base) : 92710.dasm - System.Text.StringBuilder+ChunkEnumerator:ChunkCount(System.Text.StringBuilder):int (Tier1)
         -39 (-9.33 % of base) : 87927.dasm - System.Globalization.Ordinal:EqualsIgnoreCase_Scalar(byref,byref,int):ubyte (Tier1)
          -2 (-9.09 % of base) : 93608.dasm - SQLitePCL.utf8z:my_strlen(ulong):long (Tier1)
          -2 (-9.09 % of base) : 90304.dasm - SQLitePCL.utf8z:my_strlen(ulong):long (Tier1)
          -2 (-9.09 % of base) : 153.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-9.09 % of base) : 13956.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-9.09 % of base) : 93854.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
         -33 (-8.80 % of base) : 60757.dasm - Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary:GetValidity(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary+ModelStateNode,int):System.Nullable`1[int]:this (Tier1)
         -39 (-7.96 % of base) : 38998.dasm - System.Threading.Channels.UnboundedChannel`1+UnboundedChannelWriter[System.__Canon]:TryWrite(System.__Canon):ubyte:this (Tier1)
         -39 (-7.96 % of base) : 40195.dasm - System.Threading.Channels.UnboundedChannel`1+UnboundedChannelWriter[System.__Canon]:TryWrite(System.__Canon):ubyte:this (Tier1)
         -39 (-7.96 % of base) : 47486.dasm - System.Threading.Channels.UnboundedChannel`1+UnboundedChannelWriter[System.__Canon]:TryWrite(System.__Canon):ubyte:this (Tier1)
         -39 (-7.96 % of base) : 54371.dasm - System.Threading.Channels.UnboundedChannel`1+UnboundedChannelWriter[System.__Canon]:TryWrite(System.__Canon):ubyte:this (Tier1)
        -103 (-7.93 % of base) : 112718.dasm - System.SpanHelpers:IndexOf(byref,int,byref,int):int (Tier1)
        -103 (-7.93 % of base) : 95820.dasm - System.SpanHelpers:IndexOf(byref,int,byref,int):int (Tier1)
        -103 (-7.93 % of base) : 96679.dasm - System.SpanHelpers:IndexOf(byref,int,byref,int):int (Tier1)
         -16 (-7.44 % of base) : 20959.dasm - System.Data.Common.DataStorage:GetStorageType(System.Type):int (Tier1-OSR)


benchmarks.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: 8747647 (overridden on cmd)
Total bytes of diff: 8747570 (overridden on cmd)
Total bytes of delta: -77 (-0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          44 : 19859.dasm (1.55 % of base)
          34 : 14855.dasm (0.29 % of base)
          34 : 16215.dasm (1.12 % of base)
          33 : 1952.dasm (1.42 % of base)
          31 : 21118.dasm (0.55 % of base)
          24 : 24513.dasm (13.56 % of base)
          23 : 19819.dasm (2.27 % of base)
          23 : 4366.dasm (4.04 % of base)
          23 : 6284.dasm (1.74 % of base)
          21 : 22444.dasm (2.20 % of base)
          19 : 25734.dasm (6.60 % of base)
          18 : 22732.dasm (0.87 % of base)
          16 : 14351.dasm (3.19 % of base)
          16 : 211.dasm (3.59 % of base)
          15 : 7011.dasm (3.36 % of base)
          15 : 9124.dasm (7.08 % of base)
          15 : 15455.dasm (4.62 % of base)
          15 : 15902.dasm (3.71 % of base)
          15 : 7998.dasm (1.69 % of base)
          14 : 1121.dasm (3.13 % of base)

Top file improvements (bytes):
         -47 : 20092.dasm (-4.26 % of base)
         -38 : 4069.dasm (-2.80 % of base)
         -36 : 23013.dasm (-2.66 % of base)
         -32 : 9233.dasm (-0.30 % of base)
         -28 : 6789.dasm (-2.96 % of base)
         -23 : 3356.dasm (-2.54 % of base)
         -23 : 3984.dasm (-2.54 % of base)
         -23 : 10577.dasm (-2.52 % of base)
         -23 : 197.dasm (-2.58 % of base)
         -22 : 5804.dasm (-3.32 % of base)
         -21 : 3923.dasm (-1.67 % of base)
         -21 : 7953.dasm (-1.24 % of base)
         -19 : 7314.dasm (-0.22 % of base)
         -19 : 20436.dasm (-2.71 % of base)
         -19 : 25410.dasm (-0.22 % of base)
         -15 : 14201.dasm (-1.12 % of base)
         -13 : 11488.dasm (-0.38 % of base)
         -12 : 6738.dasm (-1.39 % of base)
         -12 : 1120.dasm (-1.39 % of base)
         -12 : 4846.dasm (-1.37 % of base)

63 total files with Code Size differences (37 improved, 26 regressed), 20 unchanged.

Top method regressions (bytes):
          44 (1.55 % of base) : 19859.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
          34 (0.29 % of base) : 14855.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
          34 (1.12 % of base) : 16215.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
          33 (1.42 % of base) : 1952.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (FullOpts)
          31 (0.55 % of base) : 21118.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          24 (13.56 % of base) : 24513.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
          23 (2.27 % of base) : 19819.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
          23 (4.04 % of base) : 4366.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
          23 (1.74 % of base) : 6284.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
          21 (2.20 % of base) : 22444.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.__Canon]]):this (FullOpts)
          19 (6.60 % of base) : 25734.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
          18 (0.87 % of base) : 22732.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (FullOpts)
          16 (3.59 % of base) : 211.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
          16 (3.19 % of base) : 14351.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
          15 (4.62 % of base) : 15455.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (FullOpts)
          15 (7.08 % of base) : 9124.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
          15 (3.71 % of base) : 15902.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
          15 (3.36 % of base) : 7011.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
          15 (1.69 % of base) : 7998.dasm - System.Reflection.Emit.DynamicILGenerator:GetMemberRefToken(System.Reflection.MethodInfo,System.Type[]):int:this (FullOpts)
          14 (3.13 % of base) : 1121.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (FullOpts)

Top method improvements (bytes):
         -47 (-4.26 % of base) : 20092.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:TryInsert(System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon],ubyte):ubyte:this (FullOpts)
         -38 (-2.80 % of base) : 4069.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`2[System.__Canon,System.__Canon],ubyte]:TryInsert(System.ValueTuple`2[System.__Canon,System.__Canon],ubyte,ubyte):ubyte:this (FullOpts)
         -36 (-2.66 % of base) : 23013.dasm - System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon],int]:TryInsert(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon],int,ubyte):ubyte:this (FullOpts)
         -32 (-0.30 % of base) : 9233.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (FullOpts)
         -28 (-2.96 % of base) : 6789.dasm - System.Collections.Generic.Dictionary`2[ushort,System.__Canon]:TryInsert(ushort,System.__Canon,ubyte):ubyte:this (FullOpts)
         -23 (-2.58 % of base) : 197.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:TryInsert(int,System.__Canon,ubyte):ubyte:this (FullOpts)
         -23 (-2.54 % of base) : 3356.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (FullOpts)
         -23 (-2.52 % of base) : 10577.dasm - System.Collections.Generic.Dictionary`2[short,short]:TryInsert(short,short,ubyte):ubyte:this (FullOpts)
         -23 (-2.54 % of base) : 3984.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:TryInsert(ulong,System.__Canon,ubyte):ubyte:this (FullOpts)
         -22 (-3.32 % of base) : 5804.dasm - System.Collections.Generic.Dictionary`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory+ServiceDescriptorCacheItem]:FindValue(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier):byref:this (FullOpts)
         -21 (-1.24 % of base) : 7953.dasm - ProtoBuf.Internal.Serializers.TypeSerializer`1[System.__Canon]:Init(int[],ProtoBuf.Internal.Serializers.IRuntimeProtoSerializerNode[],System.Reflection.MethodInfo[],ubyte,ubyte,ubyte,ProtoBuf.Meta.CallbackSet,System.Type,System.Reflection.MethodInfo,int):this (FullOpts)
         -21 (-1.67 % of base) : 3923.dasm - System.Collections.Generic.Dictionary`2+CollectionsMarshalHelper[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon]:GetValueRefOrAddDefault(System.Collections.Generic.Dictionary`2[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon],System.ValueTuple`3[int,System.__Canon,System.__Canon],byref):byref (FullOpts)
         -19 (-0.22 % of base) : 7314.dasm - Jil.Deserialize.Methods:ParseISO8601Date(System.IO.TextReader,ushort[],int,int):System.DateTime (FullOpts)
         -19 (-0.22 % of base) : 25410.dasm - Jil.Deserialize.Methods:ParseISO8601DateThunkReader(byref,ushort[],int,int):System.DateTime (FullOpts)
         -19 (-2.71 % of base) : 20436.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (FullOpts)
         -15 (-1.12 % of base) : 14201.dasm - System.Net.Sockets.Socket:ReceiveFrom(System.Span`1[ubyte],int,byref):int:this (FullOpts)
         -13 (-0.38 % of base) : 11488.dasm - System.Reflection.MethodBaseInvoker:InvokeWithManyArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (FullOpts)
         -12 (-1.39 % of base) : 1120.dasm - System.Collections.Generic.Dictionary`2[int,int]:TryInsert(int,int,ubyte):ubyte:this (FullOpts)
         -12 (-1.39 % of base) : 6738.dasm - System.Collections.Generic.Dictionary`2[int,System.Reflection.Emit.OpCode]:TryInsert(int,System.Reflection.Emit.OpCode,ubyte):ubyte:this (FullOpts)
         -12 (-1.37 % of base) : 4846.dasm - System.Collections.Generic.Dictionary`2[System.Collections.NotKnownComparable,System.Collections.NotKnownComparable]:TryInsert(System.Collections.NotKnownComparable,System.Collections.NotKnownComparable,ubyte):ubyte:this (FullOpts)

Top method regressions (percentages):
          24 (13.56 % of base) : 24513.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
          15 (7.08 % of base) : 9124.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
          19 (6.60 % of base) : 25734.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
           7 (5.74 % of base) : 15983.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
          11 (4.91 % of base) : 2627.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
          15 (4.62 % of base) : 15455.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (FullOpts)
          23 (4.04 % of base) : 4366.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
          15 (3.71 % of base) : 15902.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
          16 (3.59 % of base) : 211.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
          15 (3.36 % of base) : 7011.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
           7 (3.24 % of base) : 20549.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
          16 (3.19 % of base) : 14351.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
          14 (3.13 % of base) : 1121.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (FullOpts)
          14 (3.06 % of base) : 3359.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
          14 (3.06 % of base) : 17527.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (FullOpts)
          23 (2.27 % of base) : 19819.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
          21 (2.20 % of base) : 22444.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.__Canon]]):this (FullOpts)
           7 (1.87 % of base) : 10143.dasm - System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (FullOpts)
          23 (1.74 % of base) : 6284.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
          15 (1.69 % of base) : 7998.dasm - System.Reflection.Emit.DynamicILGenerator:GetMemberRefToken(System.Reflection.MethodInfo,System.Type[]):int:this (FullOpts)

Top method improvements (percentages):
         -47 (-4.26 % of base) : 20092.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:TryInsert(System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon],ubyte):ubyte:this (FullOpts)
         -22 (-3.32 % of base) : 5804.dasm - System.Collections.Generic.Dictionary`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory+ServiceDescriptorCacheItem]:FindValue(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier):byref:this (FullOpts)
         -28 (-2.96 % of base) : 6789.dasm - System.Collections.Generic.Dictionary`2[ushort,System.__Canon]:TryInsert(ushort,System.__Canon,ubyte):ubyte:this (FullOpts)
         -38 (-2.80 % of base) : 4069.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`2[System.__Canon,System.__Canon],ubyte]:TryInsert(System.ValueTuple`2[System.__Canon,System.__Canon],ubyte,ubyte):ubyte:this (FullOpts)
         -19 (-2.71 % of base) : 20436.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (FullOpts)
         -36 (-2.66 % of base) : 23013.dasm - System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon],int]:TryInsert(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon],int,ubyte):ubyte:this (FullOpts)
         -23 (-2.58 % of base) : 197.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:TryInsert(int,System.__Canon,ubyte):ubyte:this (FullOpts)
         -23 (-2.54 % of base) : 3356.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (FullOpts)
         -23 (-2.54 % of base) : 3984.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:TryInsert(ulong,System.__Canon,ubyte):ubyte:this (FullOpts)
          -8 (-2.52 % of base) : 18601.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
         -23 (-2.52 % of base) : 10577.dasm - System.Collections.Generic.Dictionary`2[short,short]:TryInsert(short,short,ubyte):ubyte:this (FullOpts)
          -2 (-2.22 % of base) : 9645.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-2.22 % of base) : 10839.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-2.22 % of base) : 14913.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-2.22 % of base) : 15714.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-2.22 % of base) : 16569.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-2.22 % of base) : 17097.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-2.22 % of base) : 1779.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-2.22 % of base) : 5477.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
         -10 (-1.99 % of base) : 20196.dasm - Microsoft.CodeAnalysis.RuntimeMembers.MemberDescriptor:ParseType(System.Collections.Immutable.ImmutableArray`1+Builder[ubyte],System.IO.Stream,ubyte) (FullOpts)


benchmarks.run_pgo.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: 34738461 (overridden on cmd)
Total bytes of diff: 35391293 (overridden on cmd)
Total bytes of delta: 652832 (1.88 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1013 : 28107.dasm (28.05 % of base)
         856 : 26907.dasm (28.83 % of base)
         821 : 100404.dasm (27.92 % of base)
         763 : 26883.dasm (24.46 % of base)
         762 : 26857.dasm (24.25 % of base)
         761 : 100403.dasm (28.60 % of base)
         759 : 26891.dasm (24.53 % of base)
         612 : 26769.dasm (36.39 % of base)
         612 : 26880.dasm (36.39 % of base)
         605 : 86211.dasm (35.93 % of base)
         593 : 26812.dasm (33.41 % of base)
         585 : 27452.dasm (26.72 % of base)
         585 : 100409.dasm (26.72 % of base)
         546 : 94994.dasm (5.97 % of base)
         545 : 85978.dasm (30.72 % of base)
         538 : 53948.dasm (30.29 % of base)
         538 : 82137.dasm (30.29 % of base)
         535 : 26888.dasm (30.68 % of base)
         512 : 86719.dasm (10.62 % of base)
         501 : 97586.dasm (5.42 % of base)

Top file improvements (bytes):
         -83 : 23780.dasm (-3.79 % of base)
         -83 : 44750.dasm (-2.57 % of base)
         -83 : 49816.dasm (-3.52 % of base)
         -80 : 81413.dasm (-2.48 % of base)
         -80 : 97501.dasm (-2.39 % of base)
         -78 : 42629.dasm (-2.34 % of base)
         -76 : 33458.dasm (-2.36 % of base)
         -74 : 8618.dasm (-2.29 % of base)
         -74 : 91616.dasm (-2.38 % of base)
         -73 : 40267.dasm (-2.30 % of base)
         -73 : 75001.dasm (-2.30 % of base)
         -70 : 46038.dasm (-7.00 % of base)
         -70 : 53751.dasm (-2.20 % of base)
         -69 : 13777.dasm (-2.19 % of base)
         -69 : 35334.dasm (-2.18 % of base)
         -69 : 78184.dasm (-2.19 % of base)
         -69 : 86761.dasm (-2.15 % of base)
         -69 : 92349.dasm (-2.18 % of base)
         -68 : 34309.dasm (-2.13 % of base)
         -68 : 75565.dasm (-2.15 % of base)

86 total files with Code Size differences (40 improved, 46 regressed), 20 unchanged.

Top method regressions (bytes):
        1013 (28.05 % of base) : 28107.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]:IndexOf(byref,int):int:this (Tier1)
         856 (28.83 % of base) : 26907.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         821 (27.92 % of base) : 100404.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         763 (24.46 % of base) : 26883.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1)
         762 (24.25 % of base) : 26857.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1)
         761 (28.60 % of base) : 100403.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         759 (24.53 % of base) : 26891.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1)
         612 (36.39 % of base) : 26769.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         612 (36.39 % of base) : 26880.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         605 (35.93 % of base) : 86211.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         593 (33.41 % of base) : 26812.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         585 (26.72 % of base) : 27452.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         585 (26.72 % of base) : 100409.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         546 (5.97 % of base) : 94994.dasm - System.Number:Dragon4(ulong,int,uint,ubyte,int,ubyte,System.Span`1[ubyte],byref):uint (Tier1)
         545 (30.72 % of base) : 85978.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         538 (30.29 % of base) : 53948.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         538 (30.29 % of base) : 82137.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         535 (30.68 % of base) : 26888.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         512 (10.62 % of base) : 86719.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
         501 (5.42 % of base) : 97586.dasm - System.Number:Dragon4(ulong,int,uint,ubyte,int,ubyte,System.Span`1[ubyte],byref):uint (Tier1)

Top method improvements (bytes):
         -83 (-3.52 % of base) : 49816.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<SingleSerial>d__21[System.__Canon]:MoveNext():this (Tier1)
         -83 (-3.79 % of base) : 23780.dasm - System.Text.Unicode.Utf8Utility:TranscodeToUtf8(ulong,int,ulong,int,byref,byref):int (Tier1-OSR)
         -83 (-2.57 % of base) : 44750.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -80 (-2.48 % of base) : 81413.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -80 (-2.39 % of base) : 97501.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -78 (-2.34 % of base) : 42629.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -76 (-2.36 % of base) : 33458.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -74 (-2.38 % of base) : 91616.dasm - System.Threading.PortableThreadPool:PerformBlockingAdjustment(ubyte,byref):uint:this (Tier1)
         -74 (-2.29 % of base) : 8618.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -73 (-2.30 % of base) : 40267.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -73 (-2.30 % of base) : 75001.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -70 (-7.00 % of base) : 46038.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindEndPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+InitialStateFindOptimizationsHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],int,int,byref,byref,byref,byref,byref,byref):ubyte:this (Tier1-OSR)
         -70 (-2.20 % of base) : 53751.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -69 (-2.19 % of base) : 13777.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -69 (-2.18 % of base) : 35334.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -69 (-2.19 % of base) : 78184.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -69 (-2.15 % of base) : 86761.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -69 (-2.18 % of base) : 92349.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -68 (-2.13 % of base) : 34309.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -68 (-2.15 % of base) : 75565.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)

Top method regressions (percentages):
         189 (61.97 % of base) : 68569.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:GetEmbeddedTypes(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (Tier1)
          25 (37.31 % of base) : 67641.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
         612 (36.39 % of base) : 26769.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         612 (36.39 % of base) : 26880.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         605 (35.93 % of base) : 86211.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
          25 (34.72 % of base) : 67610.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
          78 (34.67 % of base) : 3626.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Enumerator[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier1)
         425 (33.44 % of base) : 100370.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
         425 (33.44 % of base) : 100400.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
         593 (33.41 % of base) : 26812.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         423 (33.25 % of base) : 94146.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
         423 (33.25 % of base) : 92863.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
         545 (30.72 % of base) : 85978.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         535 (30.68 % of base) : 26888.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         538 (30.29 % of base) : 53948.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         538 (30.29 % of base) : 82137.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         856 (28.83 % of base) : 26907.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         761 (28.60 % of base) : 100403.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
        1013 (28.05 % of base) : 28107.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]:IndexOf(byref,int):int:this (Tier1)
         821 (27.92 % of base) : 100404.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)

Top method improvements (percentages):
          -4 (-14.29 % of base) : 69017.dasm - Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
          -4 (-11.11 % of base) : 7634.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -2 (-9.09 % of base) : 100047.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-9.09 % of base) : 75842.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
         -60 (-8.14 % of base) : 53011.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -60 (-8.14 % of base) : 53049.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
          -2 (-8.00 % of base) : 69192.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:IsSpecialEndHandlerBlock(Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock):ubyte (Tier1)
         -17 (-7.23 % of base) : 49519.dasm - NeuralJagged:do_mid_error() (Tier1)
         -40 (-7.19 % of base) : 75317.dasm - System.Globalization.Ordinal:EqualsIgnoreCase_Vector[System.Runtime.Intrinsics.Vector128`1[ushort]](byref,byref,int):ubyte (Tier1)
         -40 (-7.19 % of base) : 77195.dasm - System.Globalization.Ordinal:EqualsIgnoreCase_Vector[System.Runtime.Intrinsics.Vector128`1[ushort]](byref,byref,int):ubyte (Tier1)
         -18 (-7.09 % of base) : 50434.dasm - Neural:do_mid_error() (Tier1)
         -70 (-7.00 % of base) : 46038.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindEndPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+InitialStateFindOptimizationsHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],int,int,byref,byref,byref,byref,byref,byref):ubyte:this (Tier1-OSR)
         -16 (-6.93 % of base) : 33319.dasm - System.RuntimeTypeHandle:CopyRuntimeTypeHandles(System.RuntimeTypeHandle[],System.Span`1[long]):System.ReadOnlySpan`1[long] (Tier1)
         -16 (-6.93 % of base) : 44109.dasm - System.RuntimeTypeHandle:CopyRuntimeTypeHandles(System.RuntimeTypeHandle[],System.Span`1[long]):System.ReadOnlySpan`1[long] (Tier1)
         -16 (-6.93 % of base) : 47292.dasm - System.RuntimeTypeHandle:CopyRuntimeTypeHandles(System.RuntimeTypeHandle[],System.Span`1[long]):System.ReadOnlySpan`1[long] (Tier1)
         -16 (-6.93 % of base) : 77255.dasm - System.RuntimeTypeHandle:CopyRuntimeTypeHandles(System.RuntimeTypeHandle[],System.Span`1[long]):System.ReadOnlySpan`1[long] (Tier1)
         -16 (-6.93 % of base) : 84251.dasm - System.RuntimeTypeHandle:CopyRuntimeTypeHandles(System.RuntimeTypeHandle[],System.Span`1[long]):System.ReadOnlySpan`1[long] (Tier1)
         -16 (-6.93 % of base) : 84382.dasm - System.RuntimeTypeHandle:CopyRuntimeTypeHandles(System.RuntimeTypeHandle[],System.Span`1[long]):System.ReadOnlySpan`1[long] (Tier1)
         -40 (-6.84 % of base) : 21605.dasm - System.Collections.Generic.ObjectEqualityComparer`1[System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this (Tier1)
         -40 (-6.84 % of base) : 86609.dasm - System.Collections.Generic.ObjectEqualityComparer`1[System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this (Tier1)


benchmarks.run_tiered.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: 12661708 (overridden on cmd)
Total bytes of diff: 12661498 (overridden on cmd)
Total bytes of delta: -210 (-0.00 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          34 : 28326.dasm (0.29 % of base)
          29 : 46333.dasm (3.73 % of base)
          24 : 47234.dasm (6.58 % of base)
          18 : 31594.dasm (11.54 % of base)
          16 : 3694.dasm (3.59 % of base)
          14 : 41892.dasm (3.12 % of base)
          14 : 51445.dasm (3.06 % of base)
          14 : 44315.dasm (0.69 % of base)
          14 : 46041.dasm (3.13 % of base)
          13 : 49165.dasm (2.33 % of base)
          13 : 8673.dasm (7.39 % of base)
           9 : 34587.dasm (0.77 % of base)
           8 : 25048.dasm (0.58 % of base)
           5 : 50032.dasm (0.05 % of base)
           4 : 48112.dasm (2.02 % of base)
           4 : 9265.dasm (0.35 % of base)
           3 : 36579.dasm (0.53 % of base)
           2 : 16138.dasm (0.14 % of base)
           1 : 14461.dasm (0.44 % of base)
           1 : 51455.dasm (0.06 % of base)

Top file improvements (bytes):
         -47 : 41509.dasm (-4.26 % of base)
         -38 : 26373.dasm (-2.80 % of base)
         -36 : 44413.dasm (-2.66 % of base)
         -34 : 26134.dasm (-2.28 % of base)
         -23 : 25265.dasm (-2.58 % of base)
         -23 : 26211.dasm (-2.54 % of base)
         -23 : 45020.dasm (-2.57 % of base)
         -23 : 9749.dasm (-2.54 % of base)
         -21 : 26173.dasm (-1.67 % of base)
         -19 : 41974.dasm (-2.71 % of base)
         -14 : 30608.dasm (-1.17 % of base)
         -13 : 24347.dasm (-0.38 % of base)
         -12 : 31529.dasm (-0.62 % of base)
         -10 : 41598.dasm (-1.99 % of base)
          -6 : 33400.dasm (-0.31 % of base)
          -6 : 49964.dasm (-0.71 % of base)
          -5 : 48457.dasm (-0.30 % of base)
          -4 : 33401.dasm (-0.72 % of base)
          -4 : 33409.dasm (-0.78 % of base)
          -3 : 49235.dasm (-0.17 % of base)

47 total files with Code Size differences (26 improved, 21 regressed), 20 unchanged.

Top method regressions (bytes):
          34 (0.29 % of base) : 28326.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
          29 (3.73 % of base) : 46333.dasm - JetStream.Hands:playHands(System.Collections.Generic.List`1[JetStream.Player]) (Tier1-OSR)
          24 (6.58 % of base) : 47234.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
          18 (11.54 % of base) : 31594.dasm - PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
          16 (3.59 % of base) : 3694.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (Tier1)
          14 (0.69 % of base) : 44315.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (Tier1)
          14 (3.13 % of base) : 46041.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (Tier1)
          14 (3.06 % of base) : 51445.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (Tier1)
          14 (3.12 % of base) : 41892.dasm - System.Collections.Generic.Dictionary`2[System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle]]:FindValue(System.Reflection.Metadata.TypeDefinitionHandle):byref:this (Tier1)
          13 (7.39 % of base) : 8673.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
          13 (2.33 % of base) : 49165.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)
           9 (0.77 % of base) : 34587.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1)
           8 (0.58 % of base) : 25048.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1)
           5 (0.05 % of base) : 50032.dasm - (dynamicClass):_DynamicMethod3(byref,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
           4 (2.02 % of base) : 48112.dasm - System.Linq.Enumerable:Count[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon]):int (Tier1-OSR)
           4 (0.35 % of base) : 9265.dasm - System.Reflection.AssemblyNameParser:GetNextToken(byref):int:this (Tier0-FullOpts)
           3 (0.53 % of base) : 36579.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier1-OSR)
           2 (0.14 % of base) : 16138.dasm - System.IO.Tests.Perf_RandomAccess+<ReadAsync>d__16:MoveNext():this (Tier1)
           1 (0.06 % of base) : 51455.dasm - System.IO.Tests.Perf_RandomAccess+<WriteAsync>d__17:MoveNext():this (Tier1)
           1 (0.44 % of base) : 14461.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,ubyte]):int (Tier1-OSR)

Top method improvements (bytes):
         -47 (-4.26 % of base) : 41509.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:TryInsert(System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon],ubyte):ubyte:this (Tier1)
         -38 (-2.80 % of base) : 26373.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`2[System.__Canon,System.__Canon],ubyte]:TryInsert(System.ValueTuple`2[System.__Canon,System.__Canon],ubyte,ubyte):ubyte:this (Tier1)
         -36 (-2.66 % of base) : 44413.dasm - System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon],int]:TryInsert(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon],int,ubyte):ubyte:this (Tier1)
         -34 (-2.28 % of base) : 26134.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon]:TryInsert(System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon,ubyte):ubyte:this (Tier1)
         -23 (-2.58 % of base) : 25265.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:TryInsert(int,System.__Canon,ubyte):ubyte:this (Tier1)
         -23 (-2.54 % of base) : 9749.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (Tier1)
         -23 (-2.57 % of base) : 45020.dasm - System.Collections.Generic.Dictionary`2[System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle]]:TryInsert(System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle],ubyte):ubyte:this (Tier1)
         -23 (-2.54 % of base) : 26211.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:TryInsert(ulong,System.__Canon,ubyte):ubyte:this (Tier1)
         -21 (-1.67 % of base) : 26173.dasm - System.Collections.Generic.Dictionary`2+CollectionsMarshalHelper[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon]:GetValueRefOrAddDefault(System.Collections.Generic.Dictionary`2[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon],System.ValueTuple`3[int,System.__Canon,System.__Canon],byref):byref (Tier1)
         -19 (-2.71 % of base) : 41974.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (Tier1)
         -14 (-1.17 % of base) : 30608.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<SyncReadAsyncWithCancellationToken>d__9:MoveNext():this (Tier1-OSR)
         -13 (-0.38 % of base) : 24347.dasm - System.Reflection.MethodBaseInvoker:InvokeWithManyArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (Tier0-FullOpts)
         -12 (-0.62 % of base) : 31529.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<ReadAsyncWithCancellationToken>d__11:MoveNext():this (Tier1-OSR)
         -10 (-1.99 % of base) : 41598.dasm - Microsoft.CodeAnalysis.RuntimeMembers.MemberDescriptor:ParseType(System.Collections.Immutable.ImmutableArray`1+Builder[ubyte],System.IO.Stream,ubyte) (Tier1)
          -6 (-0.31 % of base) : 33400.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.ValueTuple`3[System.__Canon,System.__Canon,ubyte]]:MoveNext():ubyte:this (Tier1)
          -6 (-0.71 % of base) : 49964.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this (Tier1)
          -5 (-0.30 % of base) : 48457.dasm - System.Xml.XmlTextReaderImpl:ParseElement():this (Tier1)
          -4 (-0.72 % of base) : 33401.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.ValueTuple`3[System.__Canon,System.__Canon,ubyte]]:FindNextEntry():this (Tier1)
          -4 (-0.78 % of base) : 33409.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.ValueTuple`3[System.__Canon,System.__Canon,ubyte]]:GetData():ubyte:this (Tier1)
          -3 (-0.17 % of base) : 49235.dasm - System.Net.Security.Tests.SslStreamTests+<>c__DisplayClass40_0+<<ConcurrentReadWriteLargeBuffer>b__0>d:MoveNext():this (Tier1-OSR)

Top method regressions (percentages):
          18 (11.54 % of base) : 31594.dasm - PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
          13 (7.39 % of base) : 8673.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
          24 (6.58 % of base) : 47234.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
          29 (3.73 % of base) : 46333.dasm - JetStream.Hands:playHands(System.Collections.Generic.List`1[JetStream.Player]) (Tier1-OSR)
          16 (3.59 % of base) : 3694.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (Tier1)
          14 (3.13 % of base) : 46041.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (Tier1)
          14 (3.12 % of base) : 41892.dasm - System.Collections.Generic.Dictionary`2[System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle]]:FindValue(System.Reflection.Metadata.TypeDefinitionHandle):byref:this (Tier1)
          14 (3.06 % of base) : 51445.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (Tier1)
          13 (2.33 % of base) : 49165.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)
           4 (2.02 % of base) : 48112.dasm - System.Linq.Enumerable:Count[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon]):int (Tier1-OSR)
           9 (0.77 % of base) : 34587.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1)
          14 (0.69 % of base) : 44315.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (Tier1)
           8 (0.58 % of base) : 25048.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1)
           3 (0.53 % of base) : 36579.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier1-OSR)
           1 (0.44 % of base) : 14461.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,ubyte]):int (Tier1-OSR)
           4 (0.35 % of base) : 9265.dasm - System.Reflection.AssemblyNameParser:GetNextToken(byref):int:this (Tier0-FullOpts)
          34 (0.29 % of base) : 28326.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
           2 (0.14 % of base) : 16138.dasm - System.IO.Tests.Perf_RandomAccess+<ReadAsync>d__16:MoveNext():this (Tier1)
           1 (0.06 % of base) : 51455.dasm - System.IO.Tests.Perf_RandomAccess+<WriteAsync>d__17:MoveNext():this (Tier1)
           5 (0.05 % of base) : 50032.dasm - (dynamicClass):_DynamicMethod3(byref,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)

Top method improvements (percentages):
         -47 (-4.26 % of base) : 41509.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:TryInsert(System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon],ubyte):ubyte:this (Tier1)
         -38 (-2.80 % of base) : 26373.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`2[System.__Canon,System.__Canon],ubyte]:TryInsert(System.ValueTuple`2[System.__Canon,System.__Canon],ubyte,ubyte):ubyte:this (Tier1)
         -19 (-2.71 % of base) : 41974.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (Tier1)
         -36 (-2.66 % of base) : 44413.dasm - System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon],int]:TryInsert(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon],int,ubyte):ubyte:this (Tier1)
         -23 (-2.58 % of base) : 25265.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:TryInsert(int,System.__Canon,ubyte):ubyte:this (Tier1)
         -23 (-2.57 % of base) : 45020.dasm - System.Collections.Generic.Dictionary`2[System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle]]:TryInsert(System.Reflection.Metadata.TypeDefinitionHandle,System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.TypeDefinitionHandle],ubyte):ubyte:this (Tier1)
         -23 (-2.54 % of base) : 9749.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (Tier1)
         -23 (-2.54 % of base) : 26211.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:TryInsert(ulong,System.__Canon,ubyte):ubyte:this (Tier1)
         -34 (-2.28 % of base) : 26134.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon]:TryInsert(System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon,ubyte):ubyte:this (Tier1)
         -10 (-1.99 % of base) : 41598.dasm - Microsoft.CodeAnalysis.RuntimeMembers.MemberDescriptor:ParseType(System.Collections.Immutable.ImmutableArray`1+Builder[ubyte],System.IO.Stream,ubyte) (Tier1)
         -21 (-1.67 % of base) : 26173.dasm - System.Collections.Generic.Dictionary`2+CollectionsMarshalHelper[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon]:GetValueRefOrAddDefault(System.Collections.Generic.Dictionary`2[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon],System.ValueTuple`3[int,System.__Canon,System.__Canon],byref):byref (Tier1)
          -2 (-1.64 % of base) : 46664.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (Tier1)
          -2 (-1.64 % of base) : 2607.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)
          -2 (-1.64 % of base) : 26198.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
          -2 (-1.55 % of base) : 41612.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:MoveNext():ubyte:this (Tier1)
          -2 (-1.34 % of base) : 3528.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier1)
         -14 (-1.17 % of base) : 30608.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<SyncReadAsyncWithCancellationToken>d__9:MoveNext():this (Tier1-OSR)
          -2 (-1.07 % of base) : 50849.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (Tier1)
          -4 (-0.78 % of base) : 33409.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.ValueTuple`3[System.__Canon,System.__Canon,ubyte]]:GetData():ubyte:this (Tier1)
          -4 (-0.72 % of base) : 33401.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.ValueTuple`3[System.__Canon,System.__Canon,ubyte]]:FindNextEntry():this (Tier1)


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: 392888034 (overridden on cmd)
Total bytes of diff: 393404923 (overridden on cmd)
Total bytes of delta: 516889 (0.13 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1058 : 372359.dasm (6.91 % of base)
        1043 : 367729.dasm (19.19 % of base)
         935 : 23822.dasm (98.32 % of base)
         699 : 367731.dasm (15.84 % of base)
         449 : 558326.dasm (4.61 % of base)
         442 : 367385.dasm (4.95 % of base)
         385 : 340027.dasm (4.65 % of base)
         385 : 370258.dasm (3.73 % of base)
         363 : 513574.dasm (4.27 % of base)
         348 : 372367.dasm (3.34 % of base)
         312 : 520662.dasm (4.59 % of base)
         312 : 372301.dasm (11.34 % of base)
         295 : 369515.dasm (2.28 % of base)
         282 : 371271.dasm (4.58 % of base)
         280 : 371017.dasm (4.27 % of base)
         280 : 458298.dasm (9.50 % of base)
         277 : 513604.dasm (6.01 % of base)
         276 : 372139.dasm (2.17 % of base)
         269 : 520063.dasm (2.40 % of base)
         254 : 477014.dasm (2.00 % of base)

Top file improvements (bytes):
        -254 : 369995.dasm (-3.41 % of base)
        -250 : 370999.dasm (-8.94 % of base)
        -240 : 366360.dasm (-5.91 % of base)
        -225 : 370846.dasm (-5.51 % of base)
        -143 : 268448.dasm (-10.19 % of base)
        -139 : 375115.dasm (-9.91 % of base)
        -138 : 510418.dasm (-3.36 % of base)
        -131 : 356355.dasm (-9.23 % of base)
        -130 : 271945.dasm (-9.35 % of base)
        -130 : 337374.dasm (-9.35 % of base)
        -126 : 248677.dasm (-9.06 % of base)
        -126 : 253132.dasm (-9.06 % of base)
        -126 : 285556.dasm (-9.06 % of base)
        -126 : 341034.dasm (-9.06 % of base)
        -121 : 373735.dasm (-8.59 % of base)
        -108 : 203594.dasm (-7.89 % of base)
        -108 : 233493.dasm (-7.89 % of base)
        -108 : 259166.dasm (-7.89 % of base)
        -108 : 281437.dasm (-7.89 % of base)
        -108 : 289478.dasm (-7.89 % of base)

80 total files with Code Size differences (37 improved, 43 regressed), 20 unchanged.

Top method regressions (bytes):
        1058 (6.91 % of base) : 372359.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
        1043 (19.19 % of base) : 367729.dasm - Internal.JitInterface.InstructionSetFlags:ExpandInstructionSetByImplicationHelper(int,Internal.JitInterface.InstructionSetFlags):Internal.JitInterface.InstructionSetFlags (Tier1)
         935 (98.32 % of base) : 23822.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Tier1-OSR)
         699 (15.84 % of base) : 367731.dasm - Internal.JitInterface.InstructionSetFlags:ExpandInstructionSetByReverseImplicationHelper(int,Internal.JitInterface.InstructionSetFlags):Internal.JitInterface.InstructionSetFlags (Tier1)
         449 (4.61 % of base) : 558326.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
         442 (4.95 % of base) : 367385.dasm - Internal.JitInterface.CorInfoImpl:ceeInfoGetCallInfo(byref,ulong,ulong,int,ulong,byref,byref,byref,byref,byref,byref,byref,byref):this (Tier1)
         385 (3.73 % of base) : 370258.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugInfoTableNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
         385 (4.65 % of base) : 340027.dasm - System.Reflection.PortableExecutable.PEHeaders:.ctor(System.IO.Stream,int,ubyte):this (Tier1)
         363 (4.27 % of base) : 513574.dasm - Runtime_34587:TestEntryPoint():int (FullOpts)
         348 (3.34 % of base) : 372367.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugInfoTableNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
         312 (11.34 % of base) : 372301.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.AttributePresenceFilterNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
         312 (4.59 % of base) : 520662.dasm - TestShufflingThunk.Test16833:TestEntryPoint():int (FullOpts)
         295 (2.28 % of base) : 369515.dasm - ILCompiler.DependencyAnalysis.ReadyToRunObjectWriter:EmitObjectData(ILCompiler.PEWriter.R2RPEBuilder,ILCompiler.DependencyAnalysis.ObjectNode+ObjectData,int,System.String,ILCompiler.DependencyAnalysis.ObjectNodeSection):this (Tier1)
         282 (4.58 % of base) : 371271.dasm - Internal.JitInterface.CorInfoImpl:getCallInfo(byref,ulong,ulong,int,ulong):this (Tier1)
         280 (4.27 % of base) : 371017.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CalculateTypeLayout(Internal.TypeSystem.DefType,Internal.TypeSystem.Ecma.EcmaModule,byref):Internal.TypeSystem.FieldAndOffset[]:this (Tier1)
         280 (9.50 % of base) : 458298.dasm - JIT.HardwareIntrinsics.X86._Sse41.handwritten.SimpleBinaryOpTest__MultipleSumAbsoluteDifferences:ValidateResult(ubyte[],ubyte[],ubyte,ushort[],System.String):this (FullOpts)
         277 (6.01 % of base) : 513604.dasm - Runtime_34587:ValidateX86():ubyte (FullOpts)
         276 (2.17 % of base) : 372139.dasm - ILCompiler.DependencyAnalysis.ReadyToRunObjectWriter:EmitObjectData(ILCompiler.PEWriter.R2RPEBuilder,ILCompiler.DependencyAnalysis.ObjectNode+ObjectData,int,System.String,ILCompiler.DependencyAnalysis.ObjectNodeSection):this (Tier1)
         269 (2.40 % of base) : 520063.dasm - ILGEN_0x372a9ae6:Method_0xdc6ff1a4(byte,byte,int,long,ushort,double,long,ulong):int (FullOpts)
         254 (2.00 % of base) : 477014.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)

Top method improvements (bytes):
        -254 (-3.41 % of base) : 369995.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.AttributePresenceFilterNode:GetCustomAttributeEntries():System.Collections.Generic.List`1[ILCompiler.DependencyAnalysis.ReadyToRun.AttributePresenceFilterNode+CustomAttributeEntry]:this (Tier1-OSR)
        -250 (-8.94 % of base) : 370999.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedMethodKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+InstantiatedMethodKey,byref):ubyte:this (Tier1)
        -240 (-5.91 % of base) : 366360.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,System.__Canon]:TryAddOrGetExisting(System.__Canon,byref):System.__Canon:this (Tier1)
        -225 (-5.51 % of base) : 370846.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,System.__Canon]:TryAddOrGetExisting(System.__Canon,byref):System.__Canon:this (Tier1)
        -143 (-10.19 % of base) : 268448.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -139 (-9.91 % of base) : 375115.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -138 (-3.36 % of base) : 510418.dasm - DefaultNamespace.RanCollect:runTest(int,int,int,int):ubyte:this (FullOpts)
        -131 (-9.23 % of base) : 356355.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -130 (-9.35 % of base) : 271945.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -130 (-9.35 % of base) : 337374.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -126 (-9.06 % of base) : 248677.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -126 (-9.06 % of base) : 253132.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -126 (-9.06 % of base) : 285556.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -126 (-9.06 % of base) : 341034.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -121 (-8.59 % of base) : 373735.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -108 (-7.89 % of base) : 203594.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -108 (-7.89 % of base) : 233493.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -108 (-7.89 % of base) : 259166.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -108 (-7.89 % of base) : 281437.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -108 (-7.89 % of base) : 289478.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)

Top method regressions (percentages):
          37 (194.74 % of base) : 507775.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
          29 (152.63 % of base) : 503779.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
          23 (121.05 % of base) : 507723.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
         935 (98.32 % of base) : 23822.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Tier1-OSR)
          33 (45.83 % of base) : 389581.dasm - filter1:f4() (FullOpts)
          45 (44.12 % of base) : 519413.dasm - Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
          36 (39.56 % of base) : 503319.dasm - Test_10w5d.testout1:Func_0_2_6_2_2():double (FullOpts)
          22 (35.48 % of base) : 503820.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
          11 (28.95 % of base) : 390869.dasm - try1:f4() (FullOpts)
          36 (24.32 % of base) : 34940.dasm - TestLibrary.Generator:GetUInt16():ushort (Tier1)
          20 (20.00 % of base) : 503777.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
          20 (20.00 % of base) : 507722.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
          76 (19.90 % of base) : 510459.dasm - Test_Finalize+CreateObj:RunTest():System.Runtime.InteropServices.GCHandle:this (FullOpts)
        1043 (19.19 % of base) : 367729.dasm - Internal.JitInterface.InstructionSetFlags:ExpandInstructionSetByImplicationHelper(int,Internal.JitInterface.InstructionSetFlags):Internal.JitInterface.InstructionSetFlags (Tier1)
          20 (18.52 % of base) : 503817.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
          20 (17.86 % of base) : 277637.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper_NoCacheLookup(byref,ulong,System.Object) (FullOpts)
         108 (17.68 % of base) : 120145.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         252 (16.96 % of base) : 56908.dasm - System.DefaultBinder:CanChangePrimitive(System.Type,System.Type):ubyte (Tier1)
          74 (16.26 % of base) : 2780.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenation():System.Text.RegularExpressions.RegexNode:this (Tier1)
          74 (16.26 % of base) : 285570.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenation():System.Text.RegularExpressions.RegexNode:this (Tier1)

Top method improvements (percentages):
         -12 (-13.48 % of base) : 476520.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
         -43 (-10.31 % of base) : 498412.dasm - Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
         -43 (-10.31 % of base) : 498398.dasm - Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
         -43 (-10.31 % of base) : 499461.dasm - Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
         -43 (-10.31 % of base) : 505580.dasm - Test_variancesmall_il.Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
        -143 (-10.19 % of base) : 268448.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -139 (-9.91 % of base) : 375115.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -130 (-9.35 % of base) : 271945.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -130 (-9.35 % of base) : 337374.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -131 (-9.23 % of base) : 356355.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
          -2 (-9.09 % of base) : 201729.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-9.09 % of base) : 195929.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-9.09 % of base) : 220672.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-9.09 % of base) : 239166.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-9.09 % of base) : 25293.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-9.09 % of base) : 272585.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-9.09 % of base) : 335238.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-9.09 % of base) : 336292.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-9.09 % of base) : 337100.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-9.09 % of base) : 357237.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (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: 39442225 (overridden on cmd)
Total bytes of diff: 39443922 (overridden on cmd)
Total bytes of delta: 1697 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         659 : 130065.dasm (1,220.37 % of base)
          72 : 4534.dasm (5.35 % of base)
          72 : 9110.dasm (21.75 % of base)
          60 : 221219.dasm (4.02 % of base)
          41 : 14117.dasm (3.58 % of base)
          39 : 191432.dasm (0.15 % of base)
          37 : 90573.dasm (11.11 % of base)
          34 : 208515.dasm (1.55 % of base)
          34 : 192250.dasm (4.48 % of base)
          32 : 63141.dasm (1.92 % of base)
          32 : 202389.dasm (2.90 % of base)
          31 : 62076.dasm (0.89 % of base)
          30 : 231870.dasm (24.59 % of base)
          28 : 122303.dasm (1.48 % of base)
          24 : 175475.dasm (2.14 % of base)
          23 : 13020.dasm (0.49 % of base)
          22 : 64008.dasm (8.43 % of base)
          22 : 91862.dasm (15.17 % of base)
          22 : 199506.dasm (78.57 % of base)
          22 : 221376.dasm (5.15 % of base)

Top file improvements (bytes):
         -29 : 155733.dasm (-0.46 % of base)
         -29 : 137910.dasm (-0.50 % of base)
         -25 : 104279.dasm (-3.29 % of base)
         -21 : 224146.dasm (-1.05 % of base)
         -18 : 190344.dasm (-0.85 % of base)
         -16 : 37388.dasm (-0.66 % of base)
         -15 : 14053.dasm (-0.58 % of base)
         -14 : 197407.dasm (-1.30 % of base)
         -14 : 115071.dasm (-1.74 % of base)
         -14 : 36052.dasm (-2.84 % of base)
         -14 : 96234.dasm (-3.67 % of base)
         -13 : 37044.dasm (-2.64 % of base)
         -13 : 35880.dasm (-2.70 % of base)
         -13 : 33102.dasm (-2.64 % of base)
         -12 : 125974.dasm (-2.19 % of base)
         -12 : 35923.dasm (-2.49 % of base)
         -12 : 125972.dasm (-2.19 % of base)
         -12 : 195369.dasm (-1.03 % of base)
         -11 : 239399.dasm (-1.50 % of base)
         -11 : 37452.dasm (-2.20 % of base)

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

Top method regressions (bytes):
         659 (1,220.37 % of base) : 130065.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
          72 (21.75 % of base) : 9110.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
          72 (5.35 % of base) : 4534.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          60 (4.02 % of base) : 221219.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
          41 (3.58 % of base) : 14117.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
          39 (0.15 % of base) : 191432.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          37 (11.11 % of base) : 90573.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          34 (4.48 % of base) : 192250.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
          34 (1.55 % of base) : 208515.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (FullOpts)
          32 (1.92 % of base) : 63141.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
          32 (2.90 % of base) : 202389.dasm - System.Data.OleDb.OleDbCommand:ExecuteReaderInternal(int,System.String):System.Data.OleDb.OleDbDataReader:this (FullOpts)
          31 (0.89 % of base) : 62076.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          30 (24.59 % of base) : 231870.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          28 (1.48 % of base) : 122303.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+InferenceGraph:Infer(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundNode,byref,byref,byref,byref,byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.BitVector):ubyte (FullOpts)
          24 (2.14 % of base) : 175475.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
          23 (0.49 % of base) : 13020.dasm - System.Data.DataTableReader:GetSchemaTableFromDataTable(System.Data.DataTable):System.Data.DataTable (FullOpts)
          22 (15.17 % of base) : 91862.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
          22 (8.43 % of base) : 64008.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          22 (5.15 % of base) : 221376.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
          22 (78.57 % of base) : 199506.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)

Top method improvements (bytes):
         -29 (-0.46 % of base) : 155733.dasm - Microsoft.CodeAnalysis.CommonCompiler:CompileAndEmit(Microsoft.CodeAnalysis.TouchedFileLogger,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISourceGenerator],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText],Microsoft.CodeAnalysis.AnalyzerConfigSet,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AnalyzerConfigOptionsResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.EmbeddedText],Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.ErrorLogger,System.Threading.CancellationToken,byref,byref,byref):this (FullOpts)
         -29 (-0.50 % of base) : 137910.dasm - Microsoft.CodeAnalysis.CommonCompiler:CompileAndEmit(Microsoft.CodeAnalysis.TouchedFileLogger,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISourceGenerator],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText],Microsoft.CodeAnalysis.AnalyzerConfigSet,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AnalyzerConfigOptionsResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.EmbeddedText],Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.ErrorLogger,System.Threading.CancellationToken,byref,byref,byref):this (FullOpts)
         -25 (-3.29 % of base) : 104279.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase:GetFilesCore(Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFileReference]:this (FullOpts)
         -21 (-1.05 % of base) : 224146.dasm - System.UriHelper:UnescapeString(ulong,int,int,byref,ushort,ushort,ushort,int,System.UriParser,ubyte) (FullOpts)
         -18 (-0.85 % of base) : 190344.dasm - System.Transactions.TransactionScope:Dispose():this (FullOpts)
         -16 (-0.66 % of base) : 37388.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (FullOpts)
         -15 (-0.58 % of base) : 14053.dasm - System.Data.ProviderBase.SchemaMapping:SetupSchemaWithoutKeyInfo(int,int,ubyte,System.Data.DataColumn,System.Object):System.Object[]:this (FullOpts)
         -14 (-3.67 % of base) : 96234.dasm - Microsoft.CodeAnalysis.VisualBasic.DefinitelyAssignedWalker:ProcessState(System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState,System.Nullable`1[Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState]):this (FullOpts)
         -14 (-1.74 % of base) : 115071.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:AddExpression(Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.BinaryExpressionSyntax (FullOpts)
         -14 (-2.84 % of base) : 36052.dasm - System.Collections.Generic.Dictionary`2[ulong,ushort]:FindValue(ulong):byref:this (FullOpts)
         -14 (-1.30 % of base) : 197407.dasm - System.Net.Sockets.Socket:ReceiveFrom(System.Span`1[ubyte],int,byref):int:this (FullOpts)
         -13 (-2.70 % of base) : 35880.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:FindValue(int):byref:this (FullOpts)
         -13 (-2.64 % of base) : 33102.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
         -13 (-2.64 % of base) : 37044.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (FullOpts)
         -12 (-1.03 % of base) : 195369.dasm - Newtonsoft.Json.Converters.XmlNodeConverter:ReadAttributeElements(Newtonsoft.Json.JsonReader,System.Xml.XmlNamespaceManager):System.Collections.Generic.Dictionary`2[System.String,System.String]:this (FullOpts)
         -12 (-2.49 % of base) : 35923.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
         -12 (-2.19 % of base) : 125972.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
         -12 (-2.19 % of base) : 125974.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
         -11 (-2.20 % of base) : 37452.dasm - System.Collections.Generic.Dictionary`2[ushort,int]:FindValue(ushort):byref:this (FullOpts)
         -11 (-1.50 % of base) : 239399.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.__Canon],System.__Canon):this (FullOpts)

Top method regressions (percentages):
         659 (1,220.37 % of base) : 130065.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
          22 (78.57 % of base) : 199506.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
          30 (24.59 % of base) : 231870.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          72 (21.75 % of base) : 9110.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
          20 (17.54 % of base) : 231707.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
          22 (15.17 % of base) : 91862.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
          17 (14.91 % of base) : 231796.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
          10 (12.50 % of base) : 190977.dasm - System.Transactions.Oletx.OletxTransactionManager:ConvertIsolationLevelFromProxyValue(int):int (FullOpts)
          37 (11.11 % of base) : 90573.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          18 (10.65 % of base) : 96151.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
          22 (8.43 % of base) : 64008.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
           9 (7.89 % of base) : 231851.dasm - System.Net.Mail.StartTlsCommand:CheckResponse(int,System.String) (FullOpts)
          18 (6.55 % of base) : 100899.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.UnboundLambdaParameterSymbol:GetModifierToken(Microsoft.CodeAnalysis.SyntaxTokenList,ushort):Microsoft.CodeAnalysis.SyntaxToken (FullOpts)
          12 (6.35 % of base) : 242178.dasm - Microsoft.Diagnostics.Tools.RuntimeClient.EventPipeClient:StopTracing(int,ulong):ulong (FullOpts)
           8 (5.97 % of base) : 30819.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
          11 (5.50 % of base) : 153719.dasm - System.Data.Odbc.OdbcHandle:ReleaseHandle():ubyte:this (FullOpts)
          13 (5.46 % of base) : 109854.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SingleLineLambdaContext:ProcessStatementTerminator(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext:this (FullOpts)
           7 (5.43 % of base) : 192452.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:IsMemberPublic(System.Reflection.MemberInfo):ubyte (FullOpts)
          72 (5.35 % of base) : 4534.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          11 (5.24 % of base) : 224012.dasm - System.Uri:get_HostNameType():int:this (FullOpts)

Top method improvements (percentages):
          -6 (-3.85 % of base) : 28457.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -14 (-3.67 % of base) : 96234.dasm - Microsoft.CodeAnalysis.VisualBasic.DefinitelyAssignedWalker:ProcessState(System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState,System.Nullable`1[Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState]):this (FullOpts)
         -25 (-3.29 % of base) : 104279.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase:GetFilesCore(Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFileReference]:this (FullOpts)
         -14 (-2.84 % of base) : 36052.dasm - System.Collections.Generic.Dictionary`2[ulong,ushort]:FindValue(ulong):byref:this (FullOpts)
         -13 (-2.70 % of base) : 35880.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:FindValue(int):byref:this (FullOpts)
         -13 (-2.64 % of base) : 33102.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
         -13 (-2.64 % of base) : 37044.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (FullOpts)
          -2 (-2.50 % of base) : 201993.dasm - System.Data.OleDb.OleDbParameter:set_SourceVersion(int):this (FullOpts)
         -12 (-2.49 % of base) : 35923.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
          -2 (-2.41 % of base) : 153760.dasm - System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
         -11 (-2.20 % of base) : 37452.dasm - System.Collections.Generic.Dictionary`2[ushort,int]:FindValue(ushort):byref:this (FullOpts)
         -12 (-2.19 % of base) : 125972.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
         -12 (-2.19 % of base) : 125974.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
          -6 (-2.11 % of base) : 150245.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Enumerator[Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.77 % of base) : 30820.dasm - System.Globalization.GregorianCalendarHelper:GetYear(int,System.DateTime):int:this (FullOpts)
         -14 (-1.74 % of base) : 115071.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:AddExpression(Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.BinaryExpressionSyntax (FullOpts)
          -2 (-1.72 % of base) : 37459.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.69 % of base) : 37464.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
          -7 (-1.65 % of base) : 37518.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]:CopyTo(System.Threading.PortableThreadPool+IOCompletionPoller+Event[],int):this (FullOpts)
          -2 (-1.61 % of base) : 28167.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)


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: 61193053 (overridden on cmd)
Total bytes of diff: 61389190 (overridden on cmd)
Total bytes of delta: 196137 (0.32 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         659 : 145168.dasm (1,220.37 % of base)
         490 : 255207.dasm (5.05 % of base)
         414 : 60463.dasm (7.24 % of base)
         399 : 167598.dasm (1.42 % of base)
         318 : 228782.dasm (2.79 % of base)
         300 : 203551.dasm (13.88 % of base)
         286 : 163725.dasm (13.22 % of base)
         275 : 203547.dasm (15.83 % of base)
         262 : 89781.dasm (2.08 % of base)
         244 : 254328.dasm (5.71 % of base)
         237 : 163721.dasm (13.68 % of base)
         197 : 121314.dasm (3.94 % of base)
         188 : 68820.dasm (3.62 % of base)
         187 : 137357.dasm (6.50 % of base)
         187 : 138051.dasm (6.55 % of base)
         171 : 171945.dasm (2.71 % of base)
         167 : 104470.dasm (1.85 % of base)
         165 : 145374.dasm (2.05 % of base)
         157 : 138061.dasm (7.31 % of base)
         153 : 109908.dasm (4.01 % of base)

Top file improvements (bytes):
        -165 : 60656.dasm (-9.71 % of base)
        -136 : 229531.dasm (-2.22 % of base)
         -98 : 228693.dasm (-4.39 % of base)
         -96 : 227318.dasm (-1.85 % of base)
         -77 : 108736.dasm (-0.79 % of base)
         -74 : 280503.dasm (-3.11 % of base)
         -67 : 6439.dasm (-8.60 % of base)
         -66 : 145361.dasm (-1.00 % of base)
         -64 : 275863.dasm (-17.78 % of base)
         -60 : 145269.dasm (-1.20 % of base)
         -58 : 75516.dasm (-1.12 % of base)
         -49 : 145612.dasm (-0.76 % of base)
         -49 : 280464.dasm (-3.09 % of base)
         -49 : 102360.dasm (-0.58 % of base)
         -49 : 280462.dasm (-3.06 % of base)
         -48 : 101637.dasm (-0.72 % of base)
         -48 : 179438.dasm (-7.01 % of base)
         -48 : 59578.dasm (-3.75 % of base)
         -47 : 275811.dasm (-14.83 % of base)
         -47 : 229364.dasm (-1.34 % of base)

78 total files with Code Size differences (37 improved, 41 regressed), 20 unchanged.

Top method regressions (bytes):
         659 (1,220.37 % of base) : 145168.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
         490 (5.05 % of base) : 255207.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
         414 (7.24 % of base) : 60463.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
         399 (1.42 % of base) : 167598.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         318 (2.79 % of base) : 228782.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
         300 (13.88 % of base) : 203551.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[ubyte]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)
         286 (13.22 % of base) : 163725.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[ubyte]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)
         275 (15.83 % of base) : 203547.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[System.__Canon]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)
         262 (2.08 % of base) : 89781.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         244 (5.71 % of base) : 254328.dasm - ILCompiler.CallChainProfile:ReadCallChainAnalysisData(System.String):System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.Dictionary`2[System.String,int]]:this (FullOpts)
         237 (13.68 % of base) : 163721.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[System.__Canon]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)
         197 (3.94 % of base) : 121314.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:RewriteTrivia(Microsoft.CodeAnalysis.SyntaxTriviaList,int,ubyte,ubyte,ubyte,int,int):Microsoft.CodeAnalysis.SyntaxTriviaList:this (FullOpts)
         188 (3.62 % of base) : 68820.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeDecimalLiteral(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ConstantValue):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
         187 (6.50 % of base) : 137357.dasm - System.Xml.Schema.Compiler:CalculateEffectiveTotalRange(System.Xml.Schema.XmlSchemaParticle,byref,byref) (FullOpts)
         187 (6.55 % of base) : 138051.dasm - System.Xml.Schema.SchemaCollectionCompiler:CalculateEffectiveTotalRange(System.Xml.Schema.XmlSchemaParticle,byref,byref) (FullOpts)
         171 (2.71 % of base) : 171945.dasm - Newtonsoft.Json.JsonTextReader+<ParseValueAsync>d__8:MoveNext():this (FullOpts)
         167 (1.85 % of base) : 104470.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ConstraintsHelper:RemoveDirectConstraintConflicts(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterConstraint],Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol],int,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterDiagnosticInfo]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterConstraint] (FullOpts)
         165 (2.05 % of base) : 145374.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteLiteralStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts)
         157 (7.31 % of base) : 138061.dasm - System.Xml.Schema.SchemaCollectionCompiler:BuildParticleContentModel(System.Xml.Schema.ParticleContentValidator,System.Xml.Schema.XmlSchemaParticle) (FullOpts)
         153 (4.01 % of base) : 109908.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbol:GetAttributesToBind(Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeListSyntax]],int,Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation,byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeSyntax]:this (FullOpts)

Top method improvements (bytes):
        -165 (-9.71 % of base) : 60656.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindComplexElementInitializerExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.BoundObjectOrCollectionValuePlaceholder):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
        -136 (-2.22 % of base) : 229531.dasm - System.Net.Http.SocksHelper+<EstablishSocks5TunnelAsync>d__14:MoveNext():this (FullOpts)
         -98 (-4.39 % of base) : 228693.dasm - System.Net.Http.HttpConnection+ChunkedEncodingWriteStream+<<WriteAsync>g__WriteChunkAsync|4_0>d:MoveNext():this (FullOpts)
         -96 (-1.85 % of base) : 227318.dasm - System.Management.PropertyData:MapValueToWmiValue(System.Object,int,ubyte):System.Object (FullOpts)
         -77 (-0.79 % of base) : 108736.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:ParseConditionalCompilationSymbols(System.String,byref,System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]):System.Collections.Generic.IReadOnlyDictionary`2[System.String,System.Object] (FullOpts)
         -74 (-3.11 % of base) : 280503.dasm - System.Formats.Tar.TarReader+<TryProcessGnuMetadataHeaderAsync>d__19:MoveNext():this (FullOpts)
         -67 (-8.60 % of base) : 6439.dasm - Microsoft.FSharp.Quotations.DerivedPatternsModule:DecimalPattern(Microsoft.FSharp.Quotations.FSharpExpr):Microsoft.FSharp.Core.FSharpOption`1[System.Decimal] (FullOpts)
         -66 (-1.00 % of base) : 145361.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
         -64 (-17.78 % of base) : 275863.dasm - System.Diagnostics.ActivityLink:op_Inequality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)
         -60 (-1.20 % of base) : 145269.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
         -58 (-1.12 % of base) : 75516.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.SyntaxNormalizer:RewriteTrivia(Microsoft.CodeAnalysis.SyntaxTriviaList,int,ubyte,ubyte,ubyte,int):Microsoft.CodeAnalysis.SyntaxTriviaList:this (FullOpts)
         -49 (-0.58 % of base) : 102360.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SynthesizedPropertyAccessorHelper:GetBoundMethodBody(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.FieldSymbol,byref):Microsoft.CodeAnalysis.VisualBasic.BoundBlock (FullOpts)
         -49 (-3.06 % of base) : 280462.dasm - System.Formats.Tar.TarFile+<CreateFromDirectoryInternalAsync>d__9:MoveNext():this (FullOpts)
         -49 (-3.09 % of base) : 280464.dasm - System.Formats.Tar.TarFile+<ExtractToDirectoryInternalAsync>d__15:MoveNext():this (FullOpts)
         -49 (-0.76 % of base) : 145612.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:GenerateMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
         -48 (-7.01 % of base) : 179438.dasm - Microsoft.Build.Evaluation.ToolsetReader:ReadEachToolset(System.Collections.Generic.Dictionary`2[System.String,Microsoft.Build.Evaluation.Toolset],Microsoft.Build.Collections.PropertyDictionary`1[Microsoft.Build.Execution.ProjectPropertyInstance],Microsoft.Build.Collections.PropertyDictionary`1[Microsoft.Build.Execution.ProjectPropertyInstance],ubyte):this (FullOpts)
         -48 (-0.72 % of base) : 101637.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Syntax.ModifiedIdentifierSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.AsClauseSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.EqualsValueSyntax,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.VisualBasic.BoundLocalDeclaration:this (FullOpts)
         -48 (-3.75 % of base) : 59578.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:TryDecode(System.ReadOnlyMemory`1[ubyte],ubyte,byref,byref,byref):ubyte (FullOpts)
         -47 (-14.83 % of base) : 275811.dasm - System.Diagnostics.ActivityContext:op_Inequality(System.Diagnostics.ActivityContext,System.Diagnostics.ActivityContext):ubyte (FullOpts)
         -47 (-1.34 % of base) : 229364.dasm - System.Net.Http.HttpConnectionPool+<GetHttp3ConnectionAsync>d__86:MoveNext():this (FullOpts)

Top method regressions (percentages):
         659 (1,220.37 % of base) : 145168.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
          22 (78.57 % of base) : 227422.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
           4 (40.00 % of base) : 280940.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
          41 (29.71 % of base) : 292009.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          12 (20.69 % of base) : 295510.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Net.Sockets.UdpReceiveResult):ubyte:this (FullOpts)
          12 (20.34 % of base) : 295511.dasm - System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
          47 (19.50 % of base) : 283179.dasm - System.IO.Pipes.PipeStream+PipeValueTaskSource:ReleaseResources():this (FullOpts)
          46 (17.49 % of base) : 295332.dasm - System.Net.Sockets.SocketAsyncEventArgs:<CompleteCore>g__CleanupIOCPResult|168_0():this (FullOpts)
         275 (15.83 % of base) : 203547.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[System.__Canon]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)
          12 (15.79 % of base) : 58580.dasm - Internal.Cryptography.PkcsHelpers:AreByteArraysEqual(ubyte[],ubyte[]):ubyte (FullOpts)
          20 (15.38 % of base) : 292028.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
          12 (15.19 % of base) : 295512.dasm - System.Net.Sockets.UdpReceiveResult:op_Inequality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
           7 (14.89 % of base) : 25343.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
           7 (14.29 % of base) : 25331.dasm - System.SpanHelpers:IndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
          12 (13.95 % of base) : 295509.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Object):ubyte:this (FullOpts)
         300 (13.88 % of base) : 203551.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[ubyte]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)
         237 (13.68 % of base) : 163721.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[System.__Canon]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)
          25 (13.30 % of base) : 130724.dasm - MS.Internal.Xml.XPath.LogicalExpr:cmpRtfRtfE(int,System.Object,System.Object):ubyte (FullOpts)
         286 (13.22 % of base) : 163725.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[ubyte]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)
          17 (13.08 % of base) : 292005.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)

Top method improvements (percentages):
         -64 (-17.78 % of base) : 275863.dasm - System.Diagnostics.ActivityLink:op_Inequality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)
         -47 (-14.83 % of base) : 275811.dasm - System.Diagnostics.ActivityContext:op_Inequality(System.Diagnostics.ActivityContext,System.Diagnostics.ActivityContext):ubyte (FullOpts)
         -12 (-13.48 % of base) : 250822.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
         -32 (-11.11 % of base) : 275862.dasm - System.Diagnostics.ActivityLink:op_Equality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)
         -36 (-10.65 % of base) : 279754.dasm - System.Formats.Asn1.AsnDecoder:TryReadCharacterStringBytes(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,System.Formats.Asn1.Asn1Tag,byref,byref):ubyte (FullOpts)
        -165 (-9.71 % of base) : 60656.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindComplexElementInitializerExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.BoundObjectOrCollectionValuePlaceholder):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
         -20 (-9.22 % of base) : 266504.dasm - Microsoft.Extensions.Primitives.StringSegment:IndexOf(ushort,int,int):int:this (FullOpts)
         -67 (-8.60 % of base) : 6439.dasm - Microsoft.FSharp.Quotations.DerivedPatternsModule:DecimalPattern(Microsoft.FSharp.Quotations.FSharpExpr):Microsoft.FSharp.Core.FSharpOption`1[System.Decimal] (FullOpts)
         -15 (-8.57 % of base) : 179568.dasm - Microsoft.Build.Evaluation.Scanner:SkipSimpleStringChars():this (FullOpts)
         -17 (-7.83 % of base) : 275810.dasm - System.Diagnostics.ActivityContext:op_Equality(System.Diagnostics.ActivityContext,System.Diagnostics.ActivityContext):ubyte (FullOpts)
         -20 (-7.46 % of base) : 149023.dasm - Roslyn.Utilities.PathUtilities:PathHashCode(System.String):int (FullOpts)
         -20 (-7.46 % of base) : 188959.dasm - Roslyn.Utilities.PathUtilities:PathHashCode(System.String):int (FullOpts)
         -31 (-7.14 % of base) : 295994.dasm - System.Net.HeaderInfoTable:IsDuringExpiresAttributeParsing(System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -48 (-7.01 % of base) : 179438.dasm - Microsoft.Build.Evaluation.ToolsetReader:ReadEachToolset(System.Collections.Generic.Dictionary`2[System.String,Microsoft.Build.Evaluation.Toolset],Microsoft.Build.Collections.PropertyDictionary`1[Microsoft.Build.Execution.ProjectPropertyInstance],Microsoft.Build.Collections.PropertyDictionary`1[Microsoft.Build.Execution.ProjectPropertyInstance],ubyte):this (FullOpts)
         -15 (-6.91 % of base) : 132442.dasm - System.Xml.XmlSqlBinaryReader+QName:op_Inequality(System.Xml.XmlSqlBinaryReader+QName,System.Xml.XmlSqlBinaryReader+QName):ubyte (FullOpts)
          -4 (-6.78 % of base) : 23333.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[double](double,double,System.String) (FullOpts)
          -4 (-6.67 % of base) : 232748.dasm - System.Xml.ValueHandle:GetDouble():double:this (FullOpts)
          -4 (-6.67 % of base) : 232747.dasm - System.Xml.ValueHandle:GetSingle():float:this (FullOpts)
         -17 (-6.49 % of base) : 128149.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.LocalSymbol+SourceLocalSymbol:Equals(System.Object):ubyte:this (FullOpts)
         -22 (-6.06 % of base) : 140555.dasm - System.Xml.Xsl.Xslt.XslAstAnalyzer:AddImportDependencies(System.Xml.Xsl.Xslt.Stylesheet,System.Xml.Xsl.Xslt.Template):this (FullOpts)


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: 279857552 (overridden on cmd)
Total bytes of diff: 281642309 (overridden on cmd)
Total bytes of delta: 1784757 (0.64 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1627 : 619529.dasm (7.89 % of base)
        1563 : 57906.dasm (8.92 % of base)
        1524 : 88645.dasm (8.91 % of base)
        1519 : 91918.dasm (15.81 % of base)
        1500 : 213035.dasm (11.25 % of base)
        1482 : 517679.dasm (11.09 % of base)
        1264 : 59794.dasm (9.08 % of base)
        1214 : 79369.dasm (7.49 % of base)
        1208 : 79395.dasm (20.57 % of base)
        1205 : 79454.dasm (20.08 % of base)
        1194 : 169564.dasm (8.82 % of base)
        1126 : 42514.dasm (18.67 % of base)
        1102 : 388468.dasm (8.29 % of base)
        1044 : 627454.dasm (11.60 % of base)
         995 : 64080.dasm (8.16 % of base)
         992 : 64079.dasm (7.54 % of base)
         982 : 577306.dasm (11.00 % of base)
         978 : 368897.dasm (6.39 % of base)
         967 : 167961.dasm (23.75 % of base)
         967 : 323704.dasm (6.31 % of base)

Top file improvements (bytes):
        -647 : 605890.dasm (-6.29 % of base)
        -402 : 411246.dasm (-4.04 % of base)
        -344 : 390537.dasm (-3.46 % of base)
        -325 : 586592.dasm (-3.27 % of base)
        -305 : 620052.dasm (-8.94 % of base)
        -265 : 66157.dasm (-3.08 % of base)
        -259 : 408819.dasm (-3.02 % of base)
        -235 : 58926.dasm (-3.65 % of base)
        -220 : 656682.dasm (-5.33 % of base)
        -184 : 411876.dasm (-3.83 % of base)
        -177 : 589804.dasm (-8.18 % of base)
        -175 : 390860.dasm (-3.64 % of base)
        -161 : 62943.dasm (-5.00 % of base)
        -160 : 682186.dasm (-1.28 % of base)
        -143 : 66247.dasm (-0.77 % of base)
        -139 : 588144.dasm (-2.91 % of base)
        -138 : 262358.dasm (-5.30 % of base)
        -136 : 424232.dasm (-3.85 % of base)
        -129 : 576575.dasm (-2.28 % of base)
        -125 : 464137.dasm (-8.63 % of base)

99 total files with Code Size differences (59 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
        1627 (7.89 % of base) : 619529.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings:<GetUsingsAndDiagnostics>g__buildUsings|16_0(Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax],Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,System.Nullable`1[ubyte],Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings+UsingsAndDiagnostics:this (Tier1)
        1563 (8.92 % of base) : 57906.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
        1524 (8.91 % of base) : 88645.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
        1519 (15.81 % of base) : 91918.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:Equals(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):ubyte:this (Tier1)
        1500 (11.25 % of base) : 213035.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        1482 (11.09 % of base) : 517679.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        1264 (9.08 % of base) : 59794.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (Tier1)
        1214 (7.49 % of base) : 79369.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
        1208 (20.57 % of base) : 79395.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
        1205 (20.08 % of base) : 79454.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
        1194 (8.82 % of base) : 169564.dasm - Microsoft.Extensions.Options.Generators.SymbolLoader:TryLoad(Microsoft.CodeAnalysis.Compilation,byref):ubyte (Tier1)
        1126 (18.67 % of base) : 42514.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
        1102 (8.29 % of base) : 388468.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        1044 (11.60 % of base) : 627454.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:CandidateOperators(ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature],Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult],byref):ubyte:this (Tier1)
         995 (8.16 % of base) : 64080.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckValidNullableMethodOverride[System.ValueTuple`2[System.__Canon,ubyte]](Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Symbols.ReportMismatchInReturnType`1[System.ValueTuple`2[System.__Canon,ubyte]],Microsoft.CodeAnalysis.CSharp.Symbols.ReportMismatchInParameterType`1[System.ValueTuple`2[System.__Canon,ubyte]],System.ValueTuple`2[System.__Canon,ubyte],ubyte):ubyte (Tier1)
         992 (7.54 % of base) : 64079.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:<CheckModifierMismatchOnImplementingMember>g__checkMethodOverride|100_0(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
         982 (11.00 % of base) : 577306.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (Tier1)
         978 (6.39 % of base) : 368897.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         967 (23.75 % of base) : 167961.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:GetAttributesToBind(Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeListSyntax]],short,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Func`2[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,ubyte],Microsoft.CodeAnalysis.CSharp.Binder,byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax]:this (Tier1)
         967 (6.31 % of base) : 323704.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)

Top method improvements (bytes):
        -647 (-6.29 % of base) : 605890.dasm - Newtonsoft.Json.Serialization.DefaultContractResolver:GetCallbackMethodsForType(System.Type,byref,byref,byref,byref,byref):this (Tier1)
        -402 (-4.04 % of base) : 411246.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -344 (-3.46 % of base) : 390537.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -325 (-3.27 % of base) : 586592.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -305 (-8.94 % of base) : 620052.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindDefaultArgumentsAndParamsArray(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.Nullable`1[System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Location]]],byref,byref,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Symbol):this (Tier1)
        -265 (-3.08 % of base) : 66157.dasm - Microsoft.Interop.ComInterfaceGenerator+<>c:<Initialize>b__1_14(Microsoft.Interop.ComInterfaceAndMethodsContext,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax:this (Tier1)
        -259 (-3.02 % of base) : 408819.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
        -235 (-3.65 % of base) : 58926.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeModifiersAndFlags(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax,int,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):System.ValueTuple`2[uint,Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags] (Tier1)
        -220 (-5.33 % of base) : 656682.dasm - Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory+RuntimeExportProvider:GetExportedValue(Microsoft.VisualStudio.Composition.RuntimeComposition+RuntimeImport,Microsoft.VisualStudio.Composition.RuntimeComposition+RuntimeExport,Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory+RuntimeExportProvider+RuntimePartLifecycleTracker):Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory+RuntimeExportProvider+ExportedValueConstructor:this (Tier1)
        -184 (-3.83 % of base) : 411876.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -177 (-8.18 % of base) : 589804.dasm - System.Text.Json.JsonSerializer:LookupProperty(System.Object,System.ReadOnlySpan`1[ubyte],byref,System.Text.Json.JsonSerializerOptions,byref,ubyte):System.Text.Json.Serialization.Metadata.JsonPropertyInfo (Tier1)
        -175 (-3.64 % of base) : 390860.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -161 (-5.00 % of base) : 62943.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.AccessorDeclarationSyntax:Update(Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeListSyntax],Microsoft.CodeAnalysis.SyntaxTokenList,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.BlockSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.ArrowExpressionClauseSyntax,Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.AccessorDeclarationSyntax:this (Tier1)
        -160 (-1.28 % of base) : 682186.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -143 (-0.77 % of base) : 66247.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeTypeParameters(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol]:this (Tier1)
        -139 (-2.91 % of base) : 588144.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -138 (-5.30 % of base) : 262358.dasm - System.Text.Unicode.Utf8Utility:TranscodeToUtf16(ulong,int,ulong,int,byref,byref):int (Tier1)
        -136 (-3.85 % of base) : 424232.dasm - System.Xml.Xsl.Xslt.XsltInput:GetAttributes(System.Xml.Xsl.Xslt.XsltInput+XsltAttribute[]):System.Xml.Xsl.Xslt.XsltInput+ContextInfo:this (Tier1)
        -129 (-2.28 % of base) : 576575.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -125 (-8.63 % of base) : 464137.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)

Top method regressions (percentages):
         692 (66.16 % of base) : 506507.dasm - System.UriHelper:UnescapeString(ulong,int,int,byref,ushort,ushort,ushort,int,System.UriParser,ubyte) (Tier1)
          37 (49.33 % of base) : 85795.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
          37 (48.05 % of base) : 169491.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
          37 (48.05 % of base) : 61215.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
          37 (48.05 % of base) : 652929.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
          37 (48.05 % of base) : 88916.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
          25 (37.31 % of base) : 49276.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:this (Tier1)
         185 (35.24 % of base) : 369379.dasm - System.Net.Sockets.Socket:UpdateAcceptSocket(System.Net.Sockets.Socket,System.Net.EndPoint):System.Net.Sockets.Socket:this (Tier1)
          25 (34.72 % of base) : 53930.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
          24 (34.29 % of base) : 50143.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon]):this (Tier1)
          25 (33.78 % of base) : 55197.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2[System.__Canon,System.__Canon]:TryGetValue(System.__Canon,byref):ubyte:this (Tier1)
          22 (33.33 % of base) : 49244.dasm - System.Collections.Immutable.ImmutableExtensions+FallbackWrapper`1[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
          22 (33.33 % of base) : 50783.dasm - System.Collections.Immutable.ImmutableExtensions+ListOfTWrapper`1[System.ValueTuple`3[int,int,System.__Canon]]:.ctor(System.Collections.Generic.IList`1[System.ValueTuple`3[int,int,System.__Canon]]):this (Tier1)
          22 (33.33 % of base) : 596665.dasm - System.Collections.Immutable.ImmutableStack`1+EnumeratorObject[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableStack`1[System.__Canon]):this (Tier1)
          22 (33.33 % of base) : 49339.dasm - System.Collections.Immutable.SecurePooledObject`1[System.__Canon]:.ctor(System.__Canon):this (Tier1)
          22 (32.84 % of base) : 49008.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
          22 (31.43 % of base) : 49879.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):System.Collections.Immutable.ImmutableSortedDictionary`2[System.__Canon,System.__Canon]:this (Tier1)
           6 (30.00 % of base) : 436518.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
          29 (29.90 % of base) : 620671.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+Variables:GetVariablesForMethodScope(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):Microsoft.CodeAnalysis.CSharp.NullableWalker+Variables:this (Tier1)
          25 (29.76 % of base) : 657332.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2[System.__Canon,System.__Canon]:ContainsKey(System.__Canon):ubyte:this (Tier1)

Top method improvements (percentages):
         -43 (-14.63 % of base) : 63085.dasm - Roslyn.Utilities.UnicodeCharacterUtilities:IsValidIdentifier(System.String):ubyte (Tier1)
         -43 (-14.63 % of base) : 90936.dasm - Roslyn.Utilities.UnicodeCharacterUtilities:IsValidIdentifier(System.String):ubyte (Tier1)
         -42 (-14.53 % of base) : 167716.dasm - Roslyn.Utilities.UnicodeCharacterUtilities:IsValidIdentifier(System.String):ubyte (Tier1)
          -4 (-14.29 % of base) : 60356.dasm - Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
         -13 (-14.29 % of base) : 637368.dasm - System.Reflection.BlobUtilities:GetUserStringTrailingByte(System.String):ubyte (Tier1)
         -39 (-12.54 % of base) : 497093.dasm - System.MemoryExtensions:<Trim>g__TrimFallback|223_0(System.ReadOnlySpan`1[ushort]):System.ReadOnlySpan`1[ushort] (Tier1)
          -4 (-11.43 % of base) : 422576.dasm - System.Xml.XmlTextReaderImpl:GetResolver():System.Xml.XmlResolver:this (Tier1)
         -42 (-11.29 % of base) : 185590.dasm - Xunit.MemberDataAttributeBase:GetFieldAccessor(System.Type):System.Func`1[System.Object]:this (Tier1)
         -42 (-11.29 % of base) : 208220.dasm - Xunit.MemberDataAttributeBase:GetFieldAccessor(System.Type):System.Func`1[System.Object]:this (Tier1)
         -21 (-11.23 % of base) : 637061.dasm - System.Reflection.PortableExecutable.ManagedTextSection:GetImportTableDirectoryEntry(int):System.Reflection.PortableExecutable.DirectoryEntry:this (Tier1)
         -21 (-11.23 % of base) : 175639.dasm - System.Reflection.PortableExecutable.ManagedTextSection:GetImportTableDirectoryEntry(int):System.Reflection.PortableExecutable.DirectoryEntry:this (Tier1)
         -33 (-10.86 % of base) : 638053.dasm - Roslyn.Utilities.UnicodeCharacterUtilities:IsValidIdentifier(System.String):ubyte (Tier1)
          -6 (-10.53 % of base) : 627317.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsAdditionalLocalFunctionModifier(ushort):ubyte (Tier1)
          -6 (-10.53 % of base) : 63730.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsAdditionalLocalFunctionModifier(ushort):ubyte (Tier1)
          -6 (-10.53 % of base) : 173077.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsAdditionalLocalFunctionModifier(ushort):ubyte (Tier1)
         -23 (-10.41 % of base) : 173799.dasm - Microsoft.CodeAnalysis.CSharp.DiagnosticsPass:CheckForAssignmentToSelf(Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator):ubyte:this (Tier1)
         -25 (-10.16 % of base) : 590623.dasm - System.Text.Json.Utf8JsonReader:TrySkipPartial(int):ubyte:this (Tier1)
         -39 (-10.08 % of base) : 647454.dasm - Xunit.MemberDataAttributeBase:GetFieldAccessor(System.Type):System.Func`1[System.Object]:this (Tier1)
         -28 (-10.04 % of base) : 355176.dasm - System.MemoryExtensions:Contains[int](System.ReadOnlySpan`1[int],int):ubyte (Tier1)
         -28 (-10.04 % of base) : 355177.dasm - System.SpanHelpers:ContainsValueType[int](byref,int,int):ubyte (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: 133433111 (overridden on cmd)
Total bytes of diff: 133914146 (overridden on cmd)
Total bytes of delta: 481035 (0.36 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         479 : 247228.dasm (4.21 % of base)
         479 : 258194.dasm (4.24 % of base)
         414 : 52549.dasm (7.54 % of base)
         414 : 46956.dasm (7.54 % of base)
         414 : 10053.dasm (7.54 % of base)
         377 : 60164.dasm (1.34 % of base)
         342 : 258216.dasm (4.06 % of base)
         339 : 247208.dasm (3.99 % of base)
         316 : 155270.dasm (11.11 % of base)
         300 : 55242.dasm (3.38 % of base)
         293 : 268243.dasm (3.14 % of base)
         289 : 69127.dasm (11.12 % of base)
         283 : 242857.dasm (3.90 % of base)
         279 : 20512.dasm (2.56 % of base)
         276 : 137735.dasm (6.13 % of base)
         276 : 137757.dasm (6.13 % of base)
         271 : 212016.dasm (3.26 % of base)
         271 : 30862.dasm (17.26 % of base)
         266 : 265489.dasm (2.55 % of base)
         266 : 272304.dasm (2.55 % of base)

Top file improvements (bytes):
        -209 : 209511.dasm (-6.15 % of base)
        -147 : 282839.dasm (-9.48 % of base)
        -136 : 268723.dasm (-2.20 % of base)
         -98 : 160070.dasm (-4.41 % of base)
         -98 : 149216.dasm (-1.92 % of base)
         -97 : 135213.dasm (-1.89 % of base)
         -96 : 101712.dasm (-1.20 % of base)
         -96 : 124904.dasm (-0.96 % of base)
         -93 : 135132.dasm (-2.56 % of base)
         -85 : 135221.dasm (-1.77 % of base)
         -85 : 135741.dasm (-2.18 % of base)
         -74 : 123466.dasm (-3.19 % of base)
         -73 : 281869.dasm (-4.61 % of base)
         -73 : 173296.dasm (-1.14 % of base)
         -71 : 179772.dasm (-5.42 % of base)
         -71 : 224337.dasm (-6.54 % of base)
         -69 : 97764.dasm (-4.53 % of base)
         -68 : 179832.dasm (-2.62 % of base)
         -65 : 133419.dasm (-2.26 % of base)
         -65 : 101755.dasm (-18.73 % of base)

83 total files with Code Size differences (37 improved, 46 regressed), 20 unchanged.

Top method regressions (bytes):
         479 (4.21 % of base) : 247228.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:SimpleTestClassSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestClass):this (FullOpts)
         479 (4.24 % of base) : 258194.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:SimpleTestClassSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestClass):this (FullOpts)
         414 (7.54 % of base) : 52549.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
         414 (7.54 % of base) : 46956.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
         414 (7.54 % of base) : 10053.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
         377 (1.34 % of base) : 60164.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         342 (4.06 % of base) : 258216.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:SimpleTestStructSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestStruct):this (FullOpts)
         339 (3.99 % of base) : 247208.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:SimpleTestStructSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestStruct):this (FullOpts)
         316 (11.11 % of base) : 155270.dasm - System.Net.Http.Tests.HttpContentHeadersTest:InvalidHeaders_AddRequestAndResponseHeaders_Throw():this (FullOpts)
         300 (3.38 % of base) : 55242.dasm - Microsoft.Gen.OptionsValidation.Unit.Test.OptionsUsingGeneratedAttributesValidator:Validate(System.String,Microsoft.Gen.OptionsValidation.Unit.Test.OptionsUsingGeneratedAttributes):Microsoft.Extensions.Options.ValidateOptionsResult:this (FullOpts)
         293 (3.14 % of base) : 268243.dasm - System.Text.Json.Serialization.Tests.SerializerTests+<TestMultiContextSerialization>d__8`1[System.__Canon]:MoveNext():this (FullOpts)
         289 (11.12 % of base) : 69127.dasm - System.Collections.Concurrent.Tests.BlockingCollectionTests:Test4_Dispose() (FullOpts)
         283 (3.90 % of base) : 242857.dasm - System.Text.Tests.CaseConversionTests:MultipleValidCharacterConversion(System.String,System.String,System.String) (FullOpts)
         279 (2.56 % of base) : 20512.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
         276 (6.13 % of base) : 137735.dasm - System.IO.Tests.StringReaderTests+<ReadBlockMemoryAsync_Success>d__20:MoveNext():this (FullOpts)
         276 (6.13 % of base) : 137757.dasm - System.IO.Tests.StringReaderTests+<ReadMemoryAsync_Success>d__19:MoveNext():this (FullOpts)
         271 (17.26 % of base) : 30862.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[System.__Canon]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)
         271 (3.26 % of base) : 212016.dasm - System.Tests.DecimalTests_GenericMath:IsIntegerTest() (FullOpts)
         266 (2.55 % of base) : 265489.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<DictionaryOfString>d__29:MoveNext():this (FullOpts)
         266 (2.55 % of base) : 272304.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<DictionaryOfString>d__29:MoveNext():this (FullOpts)

Top method improvements (bytes):
        -209 (-6.15 % of base) : 209511.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
        -147 (-9.48 % of base) : 282839.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindComplexElementInitializerExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.BoundObjectOrCollectionValuePlaceholder):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
        -136 (-2.20 % of base) : 268723.dasm - System.Text.Json.Serialization.Tests.ObjectWithObjectProperties:.ctor():this (FullOpts)
         -98 (-1.92 % of base) : 149216.dasm - System.Management.PropertyData:MapValueToWmiValue(System.Object,int,ubyte):System.Object (FullOpts)
         -98 (-4.41 % of base) : 160070.dasm - System.Net.Http.HttpConnection+ChunkedEncodingWriteStream+<<WriteAsync>g__WriteChunkAsync|4_0>d:MoveNext():this (FullOpts)
         -97 (-1.89 % of base) : 135213.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts+<ReaderShouldNotGetUnflushedBytesWhenOverflowingSegments>d__16:MoveNext():this (FullOpts)
         -96 (-1.20 % of base) : 101712.dasm - System.Diagnostics.Metrics.Tests.MetricsTests+<>c:<TestInstrumentCreationWithTags>b__19_0():this (FullOpts)
         -96 (-0.96 % of base) : 124904.dasm - System.Formats.Tar.Tests.TarWriter_WriteEntryAsync_Tests+<Write_TwoEntries_With_UnseekableDataStreams_Async>d__20:MoveNext():this (FullOpts)
         -93 (-2.56 % of base) : 135132.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest+<BufferSegmentsPooledUpToThreshold>d__5:MoveNext():this (FullOpts)
         -85 (-1.77 % of base) : 135221.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts+<HelloWorldAcrossTwoBlocks>d__11:MoveNext():this (FullOpts)
         -85 (-2.18 % of base) : 135741.dasm - System.IO.Pipelines.Tests.ReadAsyncCancellationTests+<CancellingBeforeAdvance>d__1:MoveNext():this (FullOpts)
         -74 (-3.19 % of base) : 123466.dasm - System.Formats.Tar.TarReader+<TryProcessGnuMetadataHeaderAsync>d__19:MoveNext():this (FullOpts)
         -73 (-4.61 % of base) : 281869.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex12_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -73 (-1.14 % of base) : 173296.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
         -71 (-6.54 % of base) : 224337.dasm - System.Tests.GetCustomAttribute:PositiveTest8() (FullOpts)
         -71 (-5.42 % of base) : 179772.dasm - System.Xml.XmlSchemaValidatorApiTests.TCXmlSchemaValidatorMisc:CreateSchema1(System.String) (FullOpts)
         -69 (-4.53 % of base) : 97764.dasm - System.Data.Tests.Common.DbConnectionStringBuilderTest:AssertValueTest(System.String[][],System.String[][],ubyte):this (FullOpts)
         -68 (-2.62 % of base) : 179832.dasm - System.Xml.XmlSchemaTests.TestData:.cctor() (FullOpts)
         -65 (-18.73 % of base) : 101755.dasm - System.Diagnostics.Tests.ActivitySourceTests+<>c__DisplayClass9_1:<TestActivityCreationProperties>b__7(System.Diagnostics.ActivityLink):ubyte:this (FullOpts)
         -65 (-2.26 % of base) : 133419.dasm - System.IO.Hashing.Tests.XxHash128Tests:Hash_Streaming_Expected():this (FullOpts)

Top method regressions (percentages):
          22 (78.57 % of base) : 149333.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
          27 (39.71 % of base) : 44140.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          27 (39.71 % of base) : 49850.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          27 (39.71 % of base) : 5535.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          41 (29.71 % of base) : 160805.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          47 (19.50 % of base) : 136078.dasm - System.IO.Pipes.PipeStream+PipeValueTaskSource:ReleaseResources():this (FullOpts)
          78 (19.21 % of base) : 219052.dasm - System.Runtime.Tests.DependentHandleTests:<DependentIsCollectedOnTargetNotReachable_EvenWithReferenceCycles>g__Initialize|8_0(byref,byref):System.Runtime.DependentHandle (FullOpts)
          74 (18.97 % of base) : 219042.dasm - System.Runtime.Tests.DependentHandleTests:<DependentIsCollectedOnTargetNotReachable>g__Initialize|7_0(byref,byref):System.Runtime.DependentHandle (FullOpts)
          46 (17.49 % of base) : 20294.dasm - System.Net.Sockets.SocketAsyncEventArgs:<CompleteCore>g__CleanupIOCPResult|168_0():this (FullOpts)
          47 (17.28 % of base) : 149929.dasm - System.SpanTests.ReplaceTests`1+<>c__DisplayClass5_0[System.__Canon]:<ArgumentValidation_Copy>b__1():this (FullOpts)
         271 (17.26 % of base) : 30862.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[System.__Canon]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)
          45 (16.01 % of base) : 216225.dasm - System.Tests.ArraySegment_Tests`1[System.__Canon]:Factory(int,int,int):System.ArraySegment`1[System.__Canon]:this (FullOpts)
           7 (15.91 % of base) : 151592.dasm - System.SpanTests.SpanTests+<>c__DisplayClass651_0:<SliceIntRangeChecksd>b__5():this (FullOpts)
          20 (15.38 % of base) : 160793.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
           7 (14.58 % of base) : 151593.dasm - System.SpanTests.SpanTests+<>c__DisplayClass651_0:<SliceIntRangeChecksd>b__6():this (FullOpts)
          51 (14.57 % of base) : 197368.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
          51 (14.57 % of base) : 197394.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
          37 (14.34 % of base) : 80685.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,int]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,int],int):this (FullOpts)
          34 (13.71 % of base) : 199515.dasm - System.Runtime.Loader.Tests.AssemblyLoadContextTest+CollectibleWithOneAssemblyLoadedWithStrongReferenceToInstanceTest:FreeHandle():this (FullOpts)
          34 (13.71 % of base) : 199442.dasm - System.Runtime.Loader.Tests.AssemblyLoadContextTest+CollectibleWithOneAssemblyLoadedWithStrongReferenceToTypeTest:FreeHandle():this (FullOpts)

Top method improvements (percentages):
         -65 (-18.73 % of base) : 101755.dasm - System.Diagnostics.Tests.ActivitySourceTests+<>c__DisplayClass9_1:<TestActivityCreationProperties>b__7(System.Diagnostics.ActivityLink):ubyte:this (FullOpts)
         -12 (-13.48 % of base) : 280725.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
         -12 (-13.48 % of base) : 5934.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
         -14 (-11.57 % of base) : 280804.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:<EmitTryFindNextPossibleStartingPosition>g__IsValidInFieldName|24_7(System.String):ubyte (FullOpts)
         -36 (-10.65 % of base) : 120651.dasm - System.Formats.Asn1.AsnDecoder:TryReadCharacterStringBytes(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,System.Formats.Asn1.Asn1Tag,byref,byref):ubyte (FullOpts)
         -12 (-9.92 % of base) : 307682.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
        -147 (-9.48 % of base) : 282839.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindComplexElementInitializerExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.BoundObjectOrCollectionValuePlaceholder):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
         -15 (-7.21 % of base) : 150457.dasm - System.MemoryTests.MemoryTests:MemoryReferencingSameMemoryAreEqualInEveryAspect(ubyte[],int,int) (FullOpts)
         -46 (-7.14 % of base) : 121120.dasm - System.Formats.Asn1.AsnDecoder:TryReadOctetString(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):ubyte (FullOpts)
         -31 (-7.14 % of base) : 165911.dasm - System.Net.HeaderInfoTable:IsDuringExpiresAttributeParsing(System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -71 (-6.54 % of base) : 224337.dasm - System.Tests.GetCustomAttribute:PositiveTest8() (FullOpts)
          -4 (-6.15 % of base) : 152525.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__0():this (FullOpts)
        -209 (-6.15 % of base) : 209511.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
         -20 (-6.12 % of base) : 81357.dasm - System.ComponentModel.DataAnnotations.Tests.DisplayFormatAttributeTests:GetNullDisplayText_InvalidResourceType_ThrowsInvalidOperationException(System.Type,System.String):this (FullOpts)
          -4 (-6.06 % of base) : 152526.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__1():this (FullOpts)
          -2 (-6.06 % of base) : 151614.dasm - System.SpanTests.SpanTests+<>c__DisplayClass104_0:<CtorArrayIntIntNegativeStart>b__0():this (FullOpts)
          -2 (-6.06 % of base) : 151385.dasm - System.SpanTests.SpanTests+<>c__DisplayClass106_0:<CtorArrayIntIntNegativeLength>b__0():this (FullOpts)
          -2 (-6.06 % of base) : 152553.dasm - System.SpanTests.SpanTests+<>c__DisplayClass107_0:<CtorArrayIntIntStartAndLengthTooLarge>b__1():this (FullOpts)
          -2 (-6.06 % of base) : 152554.dasm - System.SpanTests.SpanTests+<>c__DisplayClass107_0:<CtorArrayIntIntStartAndLengthTooLarge>b__2():this (FullOpts)
          -2 (-6.06 % of base) : 152557.dasm - System.SpanTests.SpanTests+<>c__DisplayClass107_0:<CtorArrayIntIntStartAndLengthTooLarge>b__4():this (FullOpts)


realworld.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: 14169724 (overridden on cmd)
Total bytes of diff: 14170756 (overridden on cmd)
Total bytes of delta: 1032 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         118 : 4522.dasm (44.87 % of base)
         100 : 25589.dasm (2.49 % of base)
          90 : 35810.dasm (1.24 % of base)
          81 : 5219.dasm (6.17 % of base)
          44 : 21622.dasm (1.55 % of base)
          37 : 30042.dasm (11.64 % of base)
          33 : 19263.dasm (1.42 % of base)
          32 : 9247.dasm (1.75 % of base)
          31 : 22308.dasm (0.54 % of base)
          28 : 28244.dasm (1.54 % of base)
          27 : 27731.dasm (3.71 % of base)
          26 : 17517.dasm (1.58 % of base)
          26 : 1101.dasm (3.61 % of base)
          25 : 10065.dasm (33.78 % of base)
          25 : 27976.dasm (7.06 % of base)
          24 : 25614.dasm (1.54 % of base)
          23 : 1563.dasm (2.88 % of base)
          23 : 21546.dasm (2.27 % of base)
          23 : 27220.dasm (12.43 % of base)
          23 : 27272.dasm (5.91 % of base)

Top file improvements (bytes):
         -45 : 28115.dasm (-0.77 % of base)
         -28 : 14905.dasm (-2.98 % of base)
         -23 : 16390.dasm (-2.50 % of base)
         -23 : 197.dasm (-2.58 % of base)
         -21 : 6580.dasm (-4.00 % of base)
         -20 : 2646.dasm (-2.01 % of base)
         -19 : 22500.dasm (-2.71 % of base)
         -19 : 32161.dasm (-1.92 % of base)
         -19 : 33665.dasm (-1.15 % of base)
         -18 : 2184.dasm (-1.87 % of base)
         -14 : 31133.dasm (-1.46 % of base)
         -13 : 12209.dasm (-0.39 % of base)
         -12 : 11336.dasm (-1.30 % of base)
         -12 : 2197.dasm (-1.32 % of base)
         -12 : 32056.dasm (-1.31 % of base)
         -12 : 9570.dasm (-1.30 % of base)
         -12 : 13648.dasm (-1.32 % of base)
         -10 : 17155.dasm (-0.27 % of base)
         -10 : 22707.dasm (-1.99 % of base)
          -8 : 15461.dasm (-0.39 % of base)

61 total files with Code Size differences (30 improved, 31 regressed), 20 unchanged.

Top method regressions (bytes):
         118 (44.87 % of base) : 4522.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
         100 (2.49 % of base) : 25589.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
          90 (1.24 % of base) : 35810.dasm - Microsoft.ApplicationInsights.Metrics.MetricIdentifier:EnsureDimensionNamesValid(byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,byref) (FullOpts)
          81 (6.17 % of base) : 5219.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          44 (1.55 % of base) : 21622.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
          37 (11.64 % of base) : 30042.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          33 (1.42 % of base) : 19263.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (FullOpts)
          32 (1.75 % of base) : 9247.dasm - FSharp.Compiler.ConstraintSolver:consistent@1992(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+TyparConstraint,FSharp.Compiler.TypedTree+TyparConstraint):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
          31 (0.54 % of base) : 22308.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          28 (1.54 % of base) : 28244.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
          27 (3.71 % of base) : 27731.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:IndexOf(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],int,int,System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):int:this (FullOpts)
          26 (3.61 % of base) : 1101.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
          26 (1.58 % of base) : 17517.dasm - Microsoft.ML.Data.EvaluatorBase`1[System.__Canon]:ProcessData(Microsoft.ML.IDataView,Microsoft.ML.Data.RoleMappedSchema,System.Func`2[int,ubyte],System.__Canon,System.__Canon[]):System.Collections.Generic.Dictionary`2[System.String,Microsoft.ML.IDataView]:this (FullOpts)
          25 (33.78 % of base) : 10065.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
          25 (7.06 % of base) : 27976.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          24 (1.54 % of base) : 25614.dasm - Microsoft.CodeAnalysis.MarshalAsAttributeDecoder`4[System.__Canon,System.__Canon,System.__Canon,short]:DecodeMarshalAsArray(byref,Microsoft.CodeAnalysis.CommonMessageProvider,ubyte) (FullOpts)
          23 (2.88 % of base) : 1563.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
          23 (2.27 % of base) : 21546.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
          23 (12.43 % of base) : 27220.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
          23 (5.91 % of base) : 27272.dasm - Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:.ctor(Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (FullOpts)

Top method improvements (bytes):
         -45 (-0.77 % of base) : 28115.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArrayInitialization(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundArrayInitialization,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:this (FullOpts)
         -28 (-2.98 % of base) : 14905.dasm - System.Collections.Generic.Dictionary`2[ubyte,System.__Canon]:TryInsert(ubyte,System.__Canon,ubyte):ubyte:this (FullOpts)
         -23 (-2.58 % of base) : 197.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:TryInsert(int,System.__Canon,ubyte):ubyte:this (FullOpts)
         -23 (-2.50 % of base) : 16390.dasm - System.Collections.Generic.Dictionary`2[ushort,ushort]:TryInsert(ushort,ushort,ubyte):ubyte:this (FullOpts)
         -21 (-4.00 % of base) : 6580.dasm - System.Collections.Generic.Dictionary`2[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:FindValue(FSharp.Compiler.Text.Position):byref:this (FullOpts)
         -20 (-2.01 % of base) : 2646.dasm - System.Collections.Generic.Dictionary`2[ushort,System.__Canon]:TryInsert(ushort,System.__Canon,ubyte):ubyte:this (FullOpts)
         -19 (-2.71 % of base) : 22500.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (FullOpts)
         -19 (-1.15 % of base) : 33665.dasm - Microsoft.PowerShell.Commands.FileSystemProvider:InitializeDefaultDrives():System.Collections.ObjectModel.Collection`1[System.Management.Automation.PSDriveInfo]:this (FullOpts)
         -19 (-1.92 % of base) : 32161.dasm - System.Collections.Generic.Dictionary`2[short,Microsoft.CodeAnalysis.Collections.OrderPreservingMultiDictionary`2+ValueSet[short,System.__Canon]]:TryInsert(short,Microsoft.CodeAnalysis.Collections.OrderPreservingMultiDictionary`2+ValueSet[short,System.__Canon],ubyte):ubyte:this (FullOpts)
         -18 (-1.87 % of base) : 2184.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (FullOpts)
         -14 (-1.46 % of base) : 31133.dasm - System.Collections.Generic.Dictionary`2[ushort,int]:TryInsert(ushort,int,ubyte):ubyte:this (FullOpts)
         -13 (-0.39 % of base) : 12209.dasm - System.Reflection.MethodBaseInvoker:InvokeWithManyArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (FullOpts)
         -12 (-1.32 % of base) : 13648.dasm - System.Collections.Generic.Dictionary`2[int,int]:TryInsert(int,int,ubyte):ubyte:this (FullOpts)
         -12 (-1.32 % of base) : 2197.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:TryInsert(int,ubyte,ubyte):ubyte:this (FullOpts)
         -12 (-1.30 % of base) : 11336.dasm - System.Collections.Generic.Dictionary`2[long,FSharp.Compiler.PostTypeCheckSemanticChecks+Limit]:TryInsert(long,FSharp.Compiler.PostTypeCheckSemanticChecks+Limit,ubyte):ubyte:this (FullOpts)
         -12 (-1.30 % of base) : 9570.dasm - System.Collections.Generic.Dictionary`2[long,int]:TryInsert(long,int,ubyte):ubyte:this (FullOpts)
         -12 (-1.31 % of base) : 32056.dasm - System.Collections.Generic.Dictionary`2[System.Reflection.Metadata.BlobHandle,int]:TryInsert(System.Reflection.Metadata.BlobHandle,int,ubyte):ubyte:this (FullOpts)
         -10 (-1.99 % of base) : 22707.dasm - Microsoft.CodeAnalysis.RuntimeMembers.MemberDescriptor:ParseType(System.Collections.Immutable.ImmutableArray`1+Builder[ubyte],System.IO.Stream,ubyte) (FullOpts)
         -10 (-0.27 % of base) : 17155.dasm - Microsoft.ML.Transforms.NormalizingTransformer:Train(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.IDataView,Microsoft.ML.Transforms.NormalizingEstimator+ColumnOptionsBase[]):Microsoft.ML.Transforms.NormalizingTransformer (FullOpts)
          -8 (-0.39 % of base) : 15461.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)

Top method regressions (percentages):
         118 (44.87 % of base) : 4522.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
          25 (33.78 % of base) : 10065.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
          23 (12.43 % of base) : 27220.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
          19 (12.26 % of base) : 25982.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
          19 (11.95 % of base) : 26721.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
          37 (11.64 % of base) : 30042.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          15 (7.08 % of base) : 4802.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
          25 (7.06 % of base) : 27976.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          81 (6.17 % of base) : 5219.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          23 (5.91 % of base) : 27272.dasm - Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:.ctor(Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (FullOpts)
          11 (4.91 % of base) : 17949.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
           7 (4.24 % of base) : 31318.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
          22 (3.87 % of base) : 17986.dasm - System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]:WaitWithCancellation(System.Threading.CancellationToken):System.__Canon:this (FullOpts)
           5 (3.82 % of base) : 24681.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AttributeDataExtensions:DecodeNotNullIfNotNullAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.String (FullOpts)
          19 (3.79 % of base) : 33431.dasm - Microsoft.PowerShell.Commands.RegistryProvider:GetHiveRoot(System.String):Microsoft.PowerShell.Commands.IRegistryWrapper:this (FullOpts)
          27 (3.71 % of base) : 27731.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:IndexOf(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],int,int,System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):int:this (FullOpts)
          26 (3.61 % of base) : 1101.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
          16 (3.59 % of base) : 211.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
           5 (3.36 % of base) : 25108.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:DecodeMaybeNullWhenOrNotNullWhenOrDoesNotReturnIfAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.Nullable`1[ubyte] (FullOpts)
          18 (3.33 % of base) : 10075.dasm - FSharp.Compiler.Infos+PropInfo:get_IsIndexer():ubyte:this (FullOpts)

Top method improvements (percentages):
         -21 (-4.00 % of base) : 6580.dasm - System.Collections.Generic.Dictionary`2[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:FindValue(FSharp.Compiler.Text.Position):byref:this (FullOpts)
         -28 (-2.98 % of base) : 14905.dasm - System.Collections.Generic.Dictionary`2[ubyte,System.__Canon]:TryInsert(ubyte,System.__Canon,ubyte):ubyte:this (FullOpts)
         -19 (-2.71 % of base) : 22500.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (FullOpts)
         -23 (-2.58 % of base) : 197.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:TryInsert(int,System.__Canon,ubyte):ubyte:this (FullOpts)
         -23 (-2.50 % of base) : 16390.dasm - System.Collections.Generic.Dictionary`2[ushort,ushort]:TryInsert(ushort,ushort,ubyte):ubyte:this (FullOpts)
         -20 (-2.01 % of base) : 2646.dasm - System.Collections.Generic.Dictionary`2[ushort,System.__Canon]:TryInsert(ushort,System.__Canon,ubyte):ubyte:this (FullOpts)
         -10 (-1.99 % of base) : 22707.dasm - Microsoft.CodeAnalysis.RuntimeMembers.MemberDescriptor:ParseType(System.Collections.Immutable.ImmutableArray`1+Builder[ubyte],System.IO.Stream,ubyte) (FullOpts)
         -19 (-1.92 % of base) : 32161.dasm - System.Collections.Generic.Dictionary`2[short,Microsoft.CodeAnalysis.Collections.OrderPreservingMultiDictionary`2+ValueSet[short,System.__Canon]]:TryInsert(short,Microsoft.CodeAnalysis.Collections.OrderPreservingMultiDictionary`2+ValueSet[short,System.__Canon],ubyte):ubyte:this (FullOpts)
         -18 (-1.87 % of base) : 2184.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (FullOpts)
          -2 (-1.64 % of base) : 16262.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.64 % of base) : 101.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.64 % of base) : 21279.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.63 % of base) : 3135.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.56 % of base) : 4558.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
         -14 (-1.46 % of base) : 31133.dasm - System.Collections.Generic.Dictionary`2[ushort,int]:TryInsert(ushort,int,ubyte):ubyte:this (FullOpts)
          -2 (-1.44 % of base) : 207.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -7 (-1.41 % of base) : 32163.dasm - System.Collections.Generic.Dictionary`2[short,Microsoft.CodeAnalysis.Collections.OrderPreservingMultiDictionary`2+ValueSet[short,System.__Canon]]:FindValue(short):byref:this (FullOpts)
          -2 (-1.39 % of base) : 26623.dasm - System.Collections.Generic.HashSet`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:MoveNext():ubyte:this (FullOpts)
         -12 (-1.32 % of base) : 13648.dasm - System.Collections.Generic.Dictionary`2[int,int]:TryInsert(int,int,ubyte):ubyte:this (FullOpts)
         -12 (-1.32 % of base) : 2197.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:TryInsert(int,ubyte,ubyte):ubyte:this (FullOpts)


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: 5092017 (overridden on cmd)
Total bytes of diff: 5092364 (overridden on cmd)
Total bytes of delta: 347 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          49 : 7191.dasm (2.90 % of base)
          49 : 12791.dasm (2.90 % of base)
          32 : 12301.dasm (2.46 % of base)
          20 : 13928.dasm (5.31 % of base)
          20 : 8239.dasm (5.31 % of base)
          16 : 4153.dasm (1.20 % of base)
          16 : 9666.dasm (1.27 % of base)
          14 : 13905.dasm (3.95 % of base)
          14 : 8228.dasm (3.95 % of base)
          10 : 13906.dasm (2.75 % of base)
          10 : 8229.dasm (2.75 % of base)
           9 : 15646.dasm (0.34 % of base)
           9 : 18438.dasm (0.34 % of base)
           9 : 21008.dasm (0.34 % of base)
           9 : 455.dasm (0.34 % of base)
           8 : 11084.dasm (1.98 % of base)
           8 : 13481.dasm (5.97 % of base)
           8 : 15022.dasm (5.93 % of base)
           8 : 1681.dasm (1.97 % of base)
           8 : 7861.dasm (5.97 % of base)

Top file improvements (bytes):
          -7 : 4175.dasm (-0.90 % of base)
          -7 : 7055.dasm (-0.92 % of base)
          -7 : 902.dasm (-0.90 % of base)
          -4 : 14342.dasm (-0.19 % of base)
          -4 : 8635.dasm (-0.19 % of base)
          -3 : 32426.dasm (-0.23 % of base)
          -2 : 12099.dasm (-1.65 % of base)
          -2 : 12220.dasm (-1.10 % of base)
          -2 : 1251.dasm (-1.43 % of base)
          -2 : 13351.dasm (-1.65 % of base)
          -2 : 14951.dasm (-1.10 % of base)
          -2 : 16861.dasm (-1.35 % of base)
          -2 : 19521.dasm (-1.35 % of base)
          -2 : 19883.dasm (-0.54 % of base)
          -2 : 2095.dasm (-0.54 % of base)
          -2 : 22216.dasm (-1.35 % of base)
          -2 : 22510.dasm (-0.54 % of base)
          -2 : 31708.dasm (-1.45 % of base)
          -2 : 4617.dasm (-1.43 % of base)
          -2 : 4658.dasm (-0.54 % of base)

49 total files with Code Size differences (24 improved, 25 regressed), 20 unchanged.

Top method regressions (bytes):
          49 (2.90 % of base) : 7191.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
          49 (2.90 % of base) : 12791.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
          32 (2.46 % of base) : 12301.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (FullOpts)
          20 (5.31 % of base) : 13928.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
          20 (5.31 % of base) : 8239.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
          16 (1.20 % of base) : 4153.dasm - System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly:UncachedGetTypeCoreCaseSensitive(System.String):System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo:this (FullOpts)
          16 (1.27 % of base) : 9666.dasm - System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly:UncachedGetTypeCoreCaseSensitive(System.String):System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo:this (FullOpts)
          14 (3.95 % of base) : 13905.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
          14 (3.95 % of base) : 8228.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
          10 (2.75 % of base) : 13906.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
          10 (2.75 % of base) : 8229.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
           9 (0.34 % of base) : 15646.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
           9 (0.34 % of base) : 18438.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
           9 (0.34 % of base) : 21008.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
           9 (0.34 % of base) : 455.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
           8 (1.98 % of base) : 11084.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
           8 (1.97 % of base) : 1681.dasm - System.Collections.Generic.Dictionary`2[long,System.Runtime.InteropServices.GCHandle]:FindValue(long):byref:this (FullOpts)
           8 (5.97 % of base) : 13481.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
           8 (5.93 % of base) : 15022.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
           8 (5.97 % of base) : 7861.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)

Top method improvements (bytes):
          -7 (-0.92 % of base) : 7055.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:TryInsert(int,System.__Canon,ubyte):ubyte:this (FullOpts)
          -7 (-0.90 % of base) : 4175.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (FullOpts)
          -7 (-0.90 % of base) : 902.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (FullOpts)
          -4 (-0.19 % of base) : 14342.dasm - System.TimeZoneInfo:TryCreateAdjustmentRules(System.String,byref,byref,byref,int):ubyte (FullOpts)
          -4 (-0.19 % of base) : 8635.dasm - System.TimeZoneInfo:TryCreateAdjustmentRules(System.String,byref,byref,byref,int):ubyte (FullOpts)
          -3 (-0.23 % of base) : 32426.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (FullOpts)
          -2 (-1.65 % of base) : 13351.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.43 % of base) : 1251.dasm - System.Collections.Generic.Dictionary`2+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.43 % of base) : 4617.dasm - System.Collections.Generic.Dictionary`2+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.35 % of base) : 16861.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.35 % of base) : 19521.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.35 % of base) : 22216.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.65 % of base) : 5642.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.65 % of base) : 9848.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.65 % of base) : 7810.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.65 % of base) : 12099.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.10 % of base) : 12220.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -2 (-1.10 % of base) : 14951.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -2 (-1.10 % of base) : 6913.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -2 (-0.54 % of base) : 19883.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)

Top method regressions (percentages):
           8 (5.97 % of base) : 13481.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
           8 (5.97 % of base) : 7861.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
           8 (5.93 % of base) : 15022.dasm - System.Globalization.GregorianCalendarHelper:GetYear(System.DateTime):int:this (FullOpts)
          20 (5.31 % of base) : 13928.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
          20 (5.31 % of base) : 8239.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
          14 (3.95 % of base) : 13905.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
          14 (3.95 % of base) : 8228.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
          49 (2.90 % of base) : 7191.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
          49 (2.90 % of base) : 12791.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
          10 (2.75 % of base) : 13906.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
          10 (2.75 % of base) : 8229.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
          32 (2.46 % of base) : 12301.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (FullOpts)
           8 (1.98 % of base) : 11084.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
           8 (1.97 % of base) : 1681.dasm - System.Collections.Generic.Dictionary`2[long,System.Runtime.InteropServices.GCHandle]:FindValue(long):byref:this (FullOpts)
           6 (1.54 % of base) : 7727.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
           6 (1.53 % of base) : 13352.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (FullOpts)
          16 (1.27 % of base) : 9666.dasm - System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly:UncachedGetTypeCoreCaseSensitive(System.String):System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo:this (FullOpts)
          16 (1.20 % of base) : 4153.dasm - System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly:UncachedGetTypeCoreCaseSensitive(System.String):System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo:this (FullOpts)
           1 (0.89 % of base) : 7852.dasm - System.Globalization.GregorianCalendarHelper:GetEra(System.DateTime):int:this (FullOpts)
           1 (0.89 % of base) : 13478.dasm - System.Globalization.GregorianCalendarHelper:GetEra(System.DateTime):int:this (FullOpts)

Top method improvements (percentages):
          -2 (-1.65 % of base) : 13351.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.65 % of base) : 5642.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.65 % of base) : 9848.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.65 % of base) : 7810.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.65 % of base) : 12099.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.45 % of base) : 31708.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -2 (-1.43 % of base) : 1251.dasm - System.Collections.Generic.Dictionary`2+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.43 % of base) : 4617.dasm - System.Collections.Generic.Dictionary`2+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.35 % of base) : 16861.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.35 % of base) : 19521.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.35 % of base) : 22216.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.10 % of base) : 12220.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -2 (-1.10 % of base) : 6913.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -2 (-1.10 % of base) : 14951.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -7 (-0.92 % of base) : 7055.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:TryInsert(int,System.__Canon,ubyte):ubyte:this (FullOpts)
          -7 (-0.90 % of base) : 4175.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (FullOpts)
          -7 (-0.90 % of base) : 902.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (FullOpts)
          -2 (-0.54 % of base) : 2095.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -2 (-0.54 % of base) : 4658.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -2 (-0.54 % of base) : 19883.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)