Assembly Diffs

linux arm

Diffs are based on 2,237,690 contexts (827,812 MinOpts, 1,409,878 FullOpts).

MISSED contexts: base: 74,543 (3.22%), diff: 74,588 (3.23%)

Overall (+2,317,030 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm.checked.mch 15,302,516 +618
benchmarks.run_pgo.linux.arm.checked.mch 60,229,150 +1,032,978
benchmarks.run_tiered.linux.arm.checked.mch 22,642,948 +500
coreclr_tests.run.linux.arm.checked.mch 321,630,692 +160,424
libraries.crossgen2.linux.arm.checked.mch 35,174,564 +698
libraries.pmi.linux.arm.checked.mch 49,549,994 +65,952
libraries_tests.run.linux.arm.Release.mch 241,868,412 +893,708
librariestestsnotieredcompilation.run.linux.arm.Release.mch 93,040,820 +160,792
realworld.run.linux.arm.checked.mch 13,612,086 +1,360

FullOpts (+2,317,030 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm.checked.mch 14,913,260 +618
benchmarks.run_pgo.linux.arm.checked.mch 49,431,548 +1,032,978
benchmarks.run_tiered.linux.arm.checked.mch 13,535,792 +500
coreclr_tests.run.linux.arm.checked.mch 108,900,558 +160,424
libraries.crossgen2.linux.arm.checked.mch 35,173,334 +698
libraries.pmi.linux.arm.checked.mch 49,443,490 +65,952
libraries_tests.run.linux.arm.Release.mch 119,865,468 +893,708
librariestestsnotieredcompilation.run.linux.arm.Release.mch 82,957,000 +160,792
realworld.run.linux.arm.checked.mch 13,162,140 +1,360

Example diffs

benchmarks.run.linux.arm.checked.mch

-14 (-2.68%) : 42901.dasm - MessagePack.Formatters.ListFormatter1[int]:Deserialize(ubyte[],int,MessagePack.IFormatterResolver,byref):System.Collections.Generic.List1[int]:this (FullOpts)

@@ -56,7 +56,7 @@ G_M61425_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M61425_IG02:        ; bbWeight=1, gcrefRegs=0140 {r6 r8}, byrefRegs=0080 {r7}, byref, isz
             ldr     r0, [r6+0x04]
             cmp     r5, r0
-            bhs     G_M61425_IG18
+            bhs     G_M61425_IG17
             add     r0, r6, 8
             ; byrRegs +[r0]
             ldrb    r0, [r0+r5]
@@ -96,7 +96,7 @@ G_M61425_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0140 {r6 r8
             ; byrRegs -[r3]
             ldr     r1, [r0+0x04]
             cmp     r3, r1
-            bhs     G_M61425_IG18
+            bhs     G_M61425_IG17
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -117,16 +117,16 @@ G_M61425_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0140 {r6 r8
             ; byrRegs -[r3]
             ; gcr arg pop 0
             cmp     r0, 0
-            blt     G_M61425_IG17
+            blt     G_M61425_IG16
             mov     r10, r0
             ldr     r0, [r6+0x04]
             subs    r0, r0, r5
-            bvs     G_M61425_IG17
+            bvs     G_M61425_IG16
             cmp     r0, r10
-            blt     G_M61425_IG19
+            blt     G_M61425_IG18
             ldr     r0, [r7]
             adds    r0, r5, r0
-            bvs     G_M61425_IG17
+            bvs     SHORT G_M61425_IG16
             mov     r4, r0
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -159,12 +159,12 @@ G_M61425_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0140 {r6 r8
             ; gcrRegs -[r3]
             ; gcr arg pop 0
             strb    r0, [sp+0x14]  // [V20 tmp9]
-                       ;; size=156 bbWeight=0.50 PerfScore 28.00
+                       ;; size=154 bbWeight=0.50 PerfScore 28.00
 G_M61425_IG06:        ; bbWeight=0.50, gcrefRegs=0340 {r6 r8 r9}, byrefRegs=0080 {r7}, byref, isz
             mov     lr, 0
             str     lr, [sp+0x18]  // [V10 loc5]
             cmp     r10, 0
-            ble     SHORT G_M61425_IG11
+            ble     SHORT G_M61425_IG13
                        ;; size=14 bbWeight=0.50 PerfScore 2.00
 G_M61425_IG07:        ; bbWeight=4, gcrefRegs=0340 {r6 r8 r9}, byrefRegs=0080 {r7}, byref, isz
             str     r7, [sp]   // [V11 OutArgs]
@@ -194,7 +194,7 @@ G_M61425_IG07:        ; bbWeight=4, gcrefRegs=0340 {r6 r8 r9}, byrefRegs=0080 {r
             ldr     r3, [r4+0x08]
             ldr     r2, [r0+0x04]
             cmp     r2, r3
-            bls     SHORT G_M61425_IG13
+            bls     SHORT G_M61425_IG12
                        ;; size=46 bbWeight=4 PerfScore 80.00
 G_M61425_IG08:        ; bbWeight=2, gcrefRegs=0351 {r0 r4 r6 r8 r9}, byrefRegs=0080 {r7}, byref
             adds    r2, r3, 1
@@ -210,30 +210,21 @@ G_M61425_IG09:        ; bbWeight=4, gcrefRegs=0350 {r4 r6 r8 r9}, byrefRegs=0080
             ldr     r0, [r7]
             ldr     r3, [sp+0x1C]  // [V02 arg2]
             adds    r3, r3, r0
-            bvs     SHORT G_M61425_IG12
-            str     r3, [sp+0x1C]  // [V02 arg2]
+            bvs     SHORT G_M61425_IG11
             ldr     r0, [sp+0x18]  // [V10 loc5]
             adds    r0, r0, 1
-            bvs     SHORT G_M61425_IG12
+            bvs     SHORT G_M61425_IG11
             cmp     r0, r10
             str     r0, [sp+0x18]  // [V10 loc5]
-            blt     SHORT G_M61425_IG10
-            b       SHORT G_M61425_IG14
-                       ;; size=24 bbWeight=4 PerfScore 48.00
-G_M61425_IG10:        ; bbWeight=2, gcrefRegs=0350 {r4 r6 r8 r9}, byrefRegs=0080 {r7}, byref, isz
-            ldr     r4, [sp+0x1C]  // [V02 arg2]
+            mov     r4, r3
             ; gcrRegs -[r4]
-            b       SHORT G_M61425_IG07
-                       ;; size=4 bbWeight=2 PerfScore 4.00
-G_M61425_IG11:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, byref, isz
+            blt     SHORT G_M61425_IG07
+                       ;; size=22 bbWeight=4 PerfScore 44.00
+G_M61425_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, byref, isz
             ; gcrRegs -[r6 r8-r9]
-            str     r4, [sp+0x1C]  // [V02 arg2]
-            ldr     r4, [sp+0x10]  // [V08 loc3]
-            ; gcrRegs +[r4]
-            b       SHORT G_M61425_IG14
-                       ;; size=6 bbWeight=0.25 PerfScore 0.75
-G_M61425_IG12:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[r4]
+            b       SHORT G_M61425_IG13
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M61425_IG11:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; byrRegs -[r7]
             ; GC ptr vars -{V08}
             movw    r3, 0xd1ff
@@ -241,7 +232,7 @@ G_M61425_IG12:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             blx     r3     // CORINFO_HELP_OVERFLOW
             ; gcr arg pop 0
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M61425_IG13:        ; bbWeight=2, gcVars=00000001 {V08}, gcrefRegs=0350 {r4 r6 r8 r9}, byrefRegs=0080 {r7}, gcvars, byref, isz
+G_M61425_IG12:        ; bbWeight=2, gcVars=00000001 {V08}, gcrefRegs=0350 {r4 r6 r8 r9}, byrefRegs=0080 {r7}, gcvars, byref, isz
             ; gcrRegs +[r4 r6 r8-r9]
             ; byrRegs +[r7]
             ; GC ptr vars +{V08}
@@ -255,80 +246,11 @@ G_M61425_IG13:        ; bbWeight=2, gcVars=00000001 {V08}, gcrefRegs=0350 {r4 r6
             ; gcr arg pop 0
             b       SHORT G_M61425_IG09
                        ;; size=16 bbWeight=2 PerfScore 12.00
-G_M61425_IG14:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0080 {r7}, byref, isz
-            ; gcrRegs -[r6 r8-r9]
+G_M61425_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, byref, isz
+            ; gcrRegs -[r4 r6 r8-r9]
             ldrb    r0, [sp+0x14]  // [V20 tmp9]
             cmp     r0, 0
-            beq     SHORT G_M61425_IG15
-            movw    r0, 0xd1ff
-            movt    r0, 0xd1ff
-            ldr     r6, [r0]
-            ; gcrRegs +[r6]
-            mov     r0, r6
-            ; gcrRegs +[r0]
-            movw    r2, 0xd1ff
-            movt    r2, 0xd1ff
-            ldr     r2, [r2]
-            ldr     r1, [r0]
-            blx     r2     // System.Threading.ThreadLocal`1[int]:get_Value():int:this
-            ; gcrRegs -[r0]
-            ; gcr arg pop 0
-            subs    r1, r0, 1
-            bvs     SHORT G_M61425_IG17
-            mov     r0, r6
-            ; gcrRegs +[r0]
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            ldr     r3, [r3]
-            blx     r3     // System.Threading.ThreadLocal`1[int]:set_Value(int):this
-            ; gcrRegs -[r0 r6]
-            ; gcr arg pop 0
-                       ;; size=52 bbWeight=0.50 PerfScore 9.50
-G_M61425_IG15:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0080 {r7}, byref, isz
-            ldr     r3, [sp+0x1C]  // [V02 arg2]
-            subs    r0, r3, r5
-            bvs     SHORT G_M61425_IG17
-            str     r0, [r7]
-            mov     r0, r4
-            ; gcrRegs +[r0]
-                       ;; size=10 bbWeight=0.50 PerfScore 2.50
-G_M61425_IG16:        ; bbWeight=0.50, epilog, nogc, extend
-            add     sp, 36
-            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
-                       ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M61425_IG17:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[r0 r4]
-            ; byrRegs -[r7]
-            ; GC ptr vars -{V08}
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            blx     r3     // CORINFO_HELP_OVERFLOW
-            ; gcr arg pop 0
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M61425_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            blx     r3     // CORINFO_HELP_RNGCHKFAIL
-            ; gcr arg pop 0
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M61425_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            ldr     r3, [r3]
-            blx     r3     // MessagePack.MessagePackBinary:ThrowNotEnoughBytesException()
-            ; gcr arg pop 0
-            bkpt    
-                       ;; size=14 bbWeight=0 PerfScore 0.00
-G_M61425_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
-            push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            sub     sp, 12
-            add     r3, r11, 8
-            str     r3, [sp+0x08]
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M61425_IG21:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldrb    r0, [r11-0x2C] // [V20 tmp9]
-            cmp     r0, 0
-            beq     SHORT G_M61425_IG22
+            beq     SHORT G_M61425_IG14
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             ldr     r6, [r0]
@@ -343,7 +265,75 @@ G_M61425_IG21:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             subs    r1, r0, 1
-            bvs     SHORT G_M61425_IG23
+            bvs     SHORT G_M61425_IG16
+            mov     r0, r6
+            ; gcrRegs +[r0]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // System.Threading.ThreadLocal`1[int]:set_Value(int):this
+            ; gcrRegs -[r0 r6]
+            ; gcr arg pop 0
+                       ;; size=52 bbWeight=0.50 PerfScore 9.50
+G_M61425_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, byref, isz
+            subs    r0, r4, r5
+            bvs     SHORT G_M61425_IG16
+            str     r0, [r7]
+            ldr     r0, [sp+0x10]  // [V08 loc3]
+            ; gcrRegs +[r0]
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M61425_IG15:        ; bbWeight=0.50, epilog, nogc, extend
+            add     sp, 36
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
+                       ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M61425_IG16:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[r0]
+            ; byrRegs -[r7]
+            ; GC ptr vars -{V08}
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            blx     r3     // CORINFO_HELP_OVERFLOW
+            ; gcr arg pop 0
+                       ;; size=10 bbWeight=0 PerfScore 0.00
+G_M61425_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            blx     r3     // CORINFO_HELP_RNGCHKFAIL
+            ; gcr arg pop 0
+                       ;; size=10 bbWeight=0 PerfScore 0.00
+G_M61425_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // MessagePack.MessagePackBinary:ThrowNotEnoughBytesException()
+            ; gcr arg pop 0
+            bkpt    
+                       ;; size=14 bbWeight=0 PerfScore 0.00
+G_M61425_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+            push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
+            sub     sp, 12
+            add     r3, r11, 8
+            str     r3, [sp+0x08]
...

-2 (-1.75%) : 11547.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)

@@ -72,9 +72,8 @@ G_M21922_IG06:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             ; byrRegs +[r3]
             ldr     r2, [r3+0x04]
             cmp     r2, -1
-            bge     SHORT G_M21922_IG07
-            b       SHORT G_M21922_IG03
-                       ;; size=36 bbWeight=2 PerfScore 32.00
+            blt     SHORT G_M21922_IG03
+                       ;; size=34 bbWeight=2 PerfScore 30.00
 G_M21922_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0009 {r0 r3}, byref
             ldr     r3, [r3+0x08]
             ; byrRegs -[r3]
@@ -100,7 +99,7 @@ G_M21922_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 114, prolog size 6, PerfScore 85.00, instruction count 48, allocated bytes for code 114 (MethodHash=7a0aaa5d) for method System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 112, prolog size 6, PerfScore 83.00, instruction count 47, allocated bytes for code 112 (MethodHash=7a0aaa5d) for method System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -112,7 +111,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 57 (0x00039) Actual length = 114 (0x000072)
+  Function Length   : 56 (0x00038) Actual length = 112 (0x000070)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-6 (-1.69%) : 5679.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)

@@ -41,13 +41,13 @@ G_M17703_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=26 bbWeight=1 PerfScore 9.00
 G_M17703_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             cmp     r5, 0
-            blt     SHORT G_M17703_IG14
+            blt     SHORT G_M17703_IG12
             mov     r1, 0x3f800000
             vmov.i2f s1, r1
             vstr    s1, [sp+0x0C]
             vcmp    s16, s1
             vmrs    APSR, FPSCR
-            blo     SHORT G_M17703_IG06
+            blo     SHORT G_M17703_IG11
                        ;; size=26 bbWeight=1 PerfScore 8.00
 G_M17703_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             vcmp    s16, s1
@@ -58,7 +58,7 @@ G_M17703_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
             beq     SHORT G_M17703_IG04
             vcmp    s16, s16
             vmrs    APSR, FPSCR
-            bne     SHORT G_M17703_IG15
+            bne     SHORT G_M17703_IG13
                        ;; size=30 bbWeight=0.50 PerfScore 4.50
 G_M17703_IG04:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             movw    r1, 0xd1ff
@@ -67,37 +67,20 @@ G_M17703_IG04:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             vstr    s1, [sp+0x08]
             vcmp    s16, s1
             vmrs    APSR, FPSCR
-            bhs     SHORT G_M17703_IG07
+            blo     SHORT G_M17703_IG06
                        ;; size=26 bbWeight=1 PerfScore 7.00
 G_M17703_IG05:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            b       SHORT G_M17703_IG10
-                       ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M17703_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r4]
-            b       SHORT G_M17703_IG15
-                       ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M17703_IG07:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r4]
             vcmp    s16, s1
             vmrs    APSR, FPSCR
-            bgt     SHORT G_M17703_IG08
+            bgt     SHORT G_M17703_IG10
             vcmp    s16, s1
             vmrs    APSR, FPSCR
-            bne     SHORT G_M17703_IG09
-            b       SHORT G_M17703_IG10
-                       ;; size=22 bbWeight=0.50 PerfScore 3.50
-G_M17703_IG08:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r4]
-            b       SHORT G_M17703_IG16
-                       ;; size=2 bbWeight=0.25 PerfScore 0.25
-G_M17703_IG09:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r4]
+            beq     SHORT G_M17703_IG06
             vcmp    s16, s16
             vmrs    APSR, FPSCR
-            beq     SHORT G_M17703_IG16
-            b       SHORT G_M17703_IG05
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M17703_IG10:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+            beq     SHORT G_M17703_IG14
+                       ;; size=30 bbWeight=0.50 PerfScore 4.50
+G_M17703_IG06:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             mov     r1, r5
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -119,10 +102,10 @@ G_M17703_IG10:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             movs    r0, 0
             str     r0, [r4+0x08]
                        ;; size=40 bbWeight=1 PerfScore 14.00
-G_M17703_IG11:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M17703_IG07:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             str     r0, [r4+0x0C]
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M17703_IG12:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M17703_IG08:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             str     r0, [r4+0x10]
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -132,13 +115,19 @@ G_M17703_IG12:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             vmov.f2i r0, s9
             str     r0, [r4+0x14]
                        ;; size=28 bbWeight=1 PerfScore 8.00
-G_M17703_IG13:        ; bbWeight=1, epilog, nogc, extend
+G_M17703_IG09:        ; bbWeight=1, epilog, nogc, extend
             add     sp, 16
             vpop    {d8-d8}
             pop     {r4,r5,r11,pc}
                        ;; size=10 bbWeight=1 PerfScore 3.00
-G_M17703_IG14:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M17703_IG10:        ; bbWeight=0.25, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r4]
+            b       SHORT G_M17703_IG14
+                       ;; size=2 bbWeight=0.25 PerfScore 0.25
+G_M17703_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M17703_IG13
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M17703_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
@@ -157,7 +146,7 @@ G_M17703_IG14:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             ; gcrRegs -[r1]
             bkpt    
                        ;; size=40 bbWeight=0 PerfScore 0.00
-G_M17703_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M17703_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
@@ -174,7 +163,7 @@ G_M17703_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r0]
             bkpt    
                        ;; size=44 bbWeight=0 PerfScore 0.00
-G_M17703_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M17703_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
@@ -192,7 +181,7 @@ G_M17703_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=44 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 356, prolog size 18, PerfScore 61.25, instruction count 112, allocated bytes for code 356 (MethodHash=aa62bad8) for method System.Collections.Queue:.ctor(int,float):this (FullOpts)
+; Total bytes of code 350, prolog size 18, PerfScore 59.75, instruction count 109, allocated bytes for code 350 (MethodHash=aa62bad8) for method System.Collections.Queue:.ctor(int,float):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -204,7 +193,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 178 (0x000b2) Actual length = 356 (0x000164)
+  Function Length   : 175 (0x000af) Actual length = 350 (0x00015e)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+6.19%) : 20840.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (FullOpts)

@@ -9,54 +9,54 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T12] (  9,  6   )     ref  ->   r5         this class-hnd single-def <System.Collections.Generic.Dictionary`2[ulong,System.__Canon]>
-;  V01 arg1         [V01    ] ( 10, 12   )    long  ->  [sp+0x18]  ld-addr-op single-def
-;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->   r7        
+;  V01 arg1         [V01    ] ( 10, 12   )    long  ->  [sp+0x20]  ld-addr-op single-def
+;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  [sp+0x0C] 
 ;  V03 loc1         [V03,T19] (  3,  2   )   byref  ->   r0        
 ;  V04 loc2         [V04,T16] (  4,  3.50)     ref  ->   r6         class-hnd single-def <<unknown class>>
-;  V05 loc3         [V05,T14] (  3,  5   )     int  ->   r6        
-;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->   r0        
-;  V07 loc5         [V07,T13] (  3,  5   )     ref  ->   r2         class-hnd exact single-def <<unknown class>>
-;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->   r3        
-;  V09 loc7         [V09,T15] (  3,  5   )     int  ->   r8        
-;  V10 loc8         [V10,T02] (  6, 13.50)     int  ->   r7        
+;  V05 loc3         [V05,T14] (  3,  5   )     int  ->   r7        
+;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->   r6        
+;  V07 loc5         [V07,T13] (  3,  5   )     ref  ->   r8         class-hnd exact single-def <<unknown class>>
+;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->   r9        
+;  V09 loc7         [V09,T15] (  3,  5   )     int  ->   r7        
+;  V10 loc8         [V10,T02] (  6, 13.50)     int  ->   r8        
 ;  V11 loc9         [V11,T10] (  3,  8.50)     ref  ->   r5         class-hnd exact single-def <<unknown class>>
 ;  V12 loc10        [V12,T04] (  4, 12.50)     int  ->   r9        
 ;  V13 OutArgs      [V13    ] (  1,  1   )  struct ( 8) [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,T20] (  3,  1.50)     ref  ->   r4         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V16 tmp3         [V16,T20] (  3,  1.50)     ref  ->   r6         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;* V17 tmp4         [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V18 tmp5         [V18    ] (  0,  0   )    long  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V19 tmp6         [V19    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp7         [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp8         [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp9         [V22    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V23 tmp10        [V23,T21] (  3,  1.50)     ref  ->   r7         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V23 tmp10        [V23,T21] (  3,  1.50)     ref  ->   r4         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V24 tmp11        [V24,T17] (  3,  3   )     int  ->   r2         "index expr"
 ;  V25 tmp12        [V25,T18] (  3,  3   )     int  ->   r0         "index expr"
-;  V26 cse0         [V26,T22] (  3,  1.50)     int  ->   r7         "CSE - moderate"
-;  V27 cse1         [V27,T23] (  3,  1.50)     int  ->   r4         "CSE - moderate"
-;  V28 cse2         [V28,T11] (  3,  8.50)     int  ->   r1         hoist "CSE - aggressive"
+;  V26 cse0         [V26,T22] (  3,  1.50)     int  ->   r4         "CSE - moderate"
+;  V27 cse1         [V27,T23] (  3,  1.50)     int  ->   r8         "CSE - moderate"
+;  V28 cse2         [V28,T11] (  3,  8.50)     int  ->  r10         hoist "CSE - aggressive"
 ;  V29 cse3         [V29,T07] (  3, 12   )     int  ->  r10         "CSE - aggressive"
-;  V30 rat0         [V30,T08] (  6,  7   )     int  ->  [sp+0x18]  do-not-enreg[] "field V01.lo (fldOffset=0x0)" P-DEP
-;  V31 rat1         [V31,T09] (  6,  7   )     int  ->  [sp+0x1C]  do-not-enreg[] "field V01.hi (fldOffset=0x4)" P-DEP
-;  V32 rat2         [V32    ] (  1,  1   )    long  ->  [sp+0x10]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
+;  V30 rat0         [V30,T08] (  6,  7   )     int  ->  [sp+0x20]  do-not-enreg[] "field V01.lo (fldOffset=0x0)" P-DEP
+;  V31 rat1         [V31,T09] (  6,  7   )     int  ->  [sp+0x24]  do-not-enreg[] "field V01.hi (fldOffset=0x4)" P-DEP
+;  V32 rat2         [V32    ] (  1,  1   )    long  ->  [sp+0x18]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
 ;  V33 rat3         [V33,T24] (  2,  1.50)     int  ->   r0         "field V32.lo (fldOffset=0x0)" P-INDEP
 ;  V34 rat4         [V34,T25] (  2,  1.50)     int  ->   r1         "field V32.hi (fldOffset=0x4)" P-INDEP
 ;  V35 rat5         [V35,T05] (  3, 12   )   byref  ->   r0         "ReplaceWithLclVar is creating a new local variable"
-;  V36 rat6         [V36    ] (  1,  1   )    long  ->  [sp+0x08]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
+;  V36 rat6         [V36    ] (  1,  1   )    long  ->  [sp+0x10]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
 ;  V37 rat7         [V37,T26] (  2,  1.50)     int  ->   r0         "field V36.lo (fldOffset=0x0)" P-INDEP
 ;  V38 rat8         [V38,T27] (  2,  1.50)     int  ->   r1         "field V36.hi (fldOffset=0x4)" P-INDEP
 ;  V39 rat9         [V39,T06] (  3, 12   )   byref  ->   r3         "ReplaceWithLclVar is creating a new local variable"
 ;
-; Lcl frame size = 36
+; Lcl frame size = 44
 
 G_M35514_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            sub     sp, 36
-            add     r11, sp, 64
-            str     r2, [sp+0x18]
-            str     r3, [sp+0x1C]
+            sub     sp, 44
+            add     r11, sp, 72
+            str     r2, [sp+0x20]  // [V01 arg1]
+            str     r3, [sp+0x24]  // [V01 arg1+0x04]
             mov     r5, r0
             ; gcrRegs +[r5]
                        ;; size=16 bbWeight=1 PerfScore 6.00
@@ -64,7 +64,7 @@ G_M35514_IG02:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
             ldr     r0, [r5+0x04]
             ; gcrRegs +[r0]
             cmp     r0, 0
-            beq     G_M35514_IG18
+            beq     G_M35514_IG20
                        ;; size=8 bbWeight=1 PerfScore 3.00
 G_M35514_IG03:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
@@ -88,16 +88,14 @@ G_M35514_IG04:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b
             ; gcrRegs +[r6]
             cmp     r6, 0
             bne     SHORT G_M35514_IG10
-            ldr     r2, [sp+0x18]
-            ldr     r3, [sp+0x1C]
-            eor     r6, r2, r3
-            ; gcrRegs -[r6]
-            ldr     r4, [r5+0x04]
-            ; gcrRegs +[r4]
-            ldr     r7, [r4+0x04]
-            mov     r2, r7
+            ldr     r2, [sp+0x20]
+            ldr     r3, [sp+0x24]
+            eor     r7, r2, r3
+            ldr     r6, [r5+0x04]
+            ldr     r4, [r6+0x04]
+            mov     r2, r4
             movs    r3, 0
-            mov     r0, r6
+            mov     r0, r7
             movs    r1, 0
             movw    lr, 0xd1ff
             movt    lr, 0xd1ff
@@ -106,80 +104,81 @@ G_M35514_IG04:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b
             tst     r0, r0
             bmi     SHORT G_M35514_IG05
             tst     r1, r1
-            bne     SHORT G_M35514_IG19
+            bne     G_M35514_IG21
             b       SHORT G_M35514_IG06
-                       ;; size=46 bbWeight=0.50 PerfScore 10.00
-G_M35514_IG05:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
+                       ;; size=48 bbWeight=0.50 PerfScore 10.00
+G_M35514_IG05:        ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
             cmp     r1, -1
-            bne     SHORT G_M35514_IG19
-                       ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M35514_IG06:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            cmp     r0, r7
-            bhs     SHORT G_M35514_IG20
-            add     r2, r4, 8
+            bne     G_M35514_IG21
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M35514_IG06:        ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
+            cmp     r0, r4
+            bhs     G_M35514_IG22
+            add     r2, r6, 8
             ; byrRegs +[r2]
             lsls    r0, r0, 2
-            ldr     r0, [r2+r0]
-            ldr     r2, [r5+0x08]
-            ; gcrRegs +[r2]
+            ldr     r6, [r2+r0]
+            ; gcrRegs -[r6]
+            ldr     r8, [r5+0x08]
+            ; gcrRegs +[r8]
+            mov     r9, 0
+            subs    r6, r6, 1
+            ldr     r10, [r8+0x04]
+                       ;; size=28 bbWeight=0.50 PerfScore 4.50
+G_M35514_IG07:        ; bbWeight=4, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r5]
             ; byrRegs -[r2]
-            movs    r3, 0
-            subs    r0, r0, 1
-            ldr     r1, [r2+0x04]
-                       ;; size=20 bbWeight=0.50 PerfScore 4.50
-G_M35514_IG07:        ; bbWeight=4, gcrefRegs=0004 {r2}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r4-r5]
-            cmp     r1, r0
-            bls     SHORT G_M35514_IG18
-            mov     lr, 24
-            mul     r0, r0, lr
+            cmp     r10, r6
+            bls     SHORT G_M35514_IG20
+            movs    r0, 24
+            mul     r0, r6, r0
             adds    r0, 8
-            adds    r7, r2, r0
-            ; byrRegs +[r7]
-            ldr     r0, [r7+0x0C]
-            cmp     r0, r6
+            add     r5, r8, r0
+            ; byrRegs +[r5]
+            ldr     r0, [r5+0x0C]
+            cmp     r0, r7
             bne     SHORT G_M35514_IG09
                        ;; size=22 bbWeight=4 PerfScore 36.00
-G_M35514_IG08:        ; bbWeight=2, gcrefRegs=0004 {r2}, byrefRegs=0080 {r7}, byref, isz
-            mov     r0, r7
+G_M35514_IG08:        ; bbWeight=2, gcrefRegs=0100 {r8}, byrefRegs=0020 {r5}, byref, isz
+            mov     r0, r5
             ; byrRegs +[r0]
-            ldr     lr, [r0]
+            ldr     r2, [r0]
             ldr     r0, [r0+0x04]
             ; byrRegs -[r0]
-            ldr     r12, [sp+0x18]
-            ldr     r4, [sp+0x1C]
-            eor     lr, lr, r12
-            eors    r0, r4
-            orrs    r0, lr, r0
-            beq     SHORT G_M35514_IG16
-                       ;; size=26 bbWeight=2 PerfScore 18.00
-G_M35514_IG09:        ; bbWeight=4, gcrefRegs=0004 {r2}, byrefRegs=0080 {r7}, byref, isz
-            ldr     r0, [r7+0x10]
-            adds    r3, r3, 1
-            cmp     r1, r3
-            blo     SHORT G_M35514_IG21
+            ldr     r3, [sp+0x20]
+            ldr     r1, [sp+0x24]
+            eors    r2, r3
+            eors    r0, r1
+            orrs    r0, r2
+            beq     SHORT G_M35514_IG18
+                       ;; size=18 bbWeight=2 PerfScore 18.00
+G_M35514_IG09:        ; bbWeight=4, gcrefRegs=0100 {r8}, byrefRegs=0020 {r5}, byref, isz
+            ldr     r6, [r5+0x10]
+            add     r9, r9, 1
+            cmp     r10, r9
+            blo     SHORT G_M35514_IG23
             b       SHORT G_M35514_IG07
-                       ;; size=10 bbWeight=4 PerfScore 20.00
+                       ;; size=12 bbWeight=4 PerfScore 20.00
 G_M35514_IG10:        ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r2] +[r5-r6]
-            ; byrRegs -[r7]
+            ; gcrRegs -[r8] +[r5-r6]
+            ; byrRegs -[r5]
             mov     r0, r6
             ; gcrRegs +[r0]
-            ldr     r2, [sp+0x18]
-            ldr     r3, [sp+0x1C]
+            ldr     r2, [sp+0x20]
+            ldr     r3, [sp+0x24]
             movw    r4, 0xd1ff
             movt    r4, 0xd1ff
             ldr     r1, [r4]
             blx     r1     // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
-            mov     r8, r0
-            ldr     r7, [r5+0x04]
-            ; gcrRegs +[r7]
-            ldr     r4, [r7+0x04]
-            mov     r2, r4
+            mov     r7, r0
+            ldr     r4, [r5+0x04]
+            ; gcrRegs +[r4]
+            ldr     r8, [r4+0x04]
+            mov     r2, r8
             movs    r3, 0
-            mov     r0, r8
+            mov     r0, r7
             movs    r1, 0
             movw    lr, 0xd1ff
             movt    lr, 0xd1ff
@@ -188,46 +187,51 @@ G_M35514_IG10:        ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}
             tst     r0, r0
             bmi     SHORT G_M35514_IG11
             tst     r1, r1
-            bne     SHORT G_M35514_IG19
+            bne     SHORT G_M35514_IG21
...

+12 (+8.82%) : 22584.dasm - System.Collections.IterateForEach`1[System.Canon]:ImmutableArray():System.Canon:this (FullOpts)

@@ -8,7 +8,7 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  4,  4   )     ref  ->   r4         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+;  V00 this         [V00,T01] (  5,  5   )     ref  ->   r4         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
 ;  V01 loc0         [V01,T06] (  3,  4   )     ref  ->   r5         ld-addr-op class-hnd <System.__Canon>
 ;  V02 loc1         [V02    ] (  2,  2   )  struct ( 4) [sp+0x08]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableArray`1[System.__Canon]>
 ;  V03 loc2         [V03    ] (  8, 33   )  struct ( 8) [sp+0x00]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableArray`1+Enumerator[System.__Canon]>
@@ -26,9 +26,9 @@
 ;  V15 rat0         [V15,T04] (  3,  4.40)     int  ->   r0         "Spilling to split statement for tree"
 ;  V16 rat1         [V16,T07] (  3,  4   )     int  ->   r2         "runtime lookup"
 ;  V17 rat2         [V17,T02] (  3,  5.60)     int  ->   r2         "fgMakeTemp is creating a new local variable"
-;* V18 rat3         [V18,T05] (  0,  0   )     int  ->  zero-ref    "Spilling to split statement for tree"
+;  V18 rat3         [V18,T05] (  2,  4   )     int  ->   r0         "Spilling to split statement for tree"
 ;* V19 rat4         [V19,T08] (  0,  0   )     int  ->  zero-ref    "runtime lookup"
-;* V20 rat5         [V20,T03] (  0,  0   )     int  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V20 rat5         [V20,T03] (  2,  4   )     int  ->   r0         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 16
 
@@ -78,8 +78,14 @@ G_M57349_IG05:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             ldr     r3, [r3]
             blx     r3     // System.Collections.Immutable.ImmutableArray`1[System.__Canon]:GetEnumerator():System.Collections.Immutable.ImmutableArray`1+Enumerator[System.__Canon]:this
             ; gcr arg pop 0
+            ldr     r0, [r4]
+            ldr     r0, [r0+0x24]
+            ldr     r0, [r0]
+            ldr     r0, [r0+0x14]
+            cmp     r0, 0
+            bne     SHORT G_M57349_IG07
             b       SHORT G_M57349_IG07
-                       ;; size=18 bbWeight=1 PerfScore 7.00
+                       ;; size=30 bbWeight=1 PerfScore 13.00
 G_M57349_IG06:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r5]
             ldr     r0, [sp+0x04]  // [V12 tmp7]
@@ -128,7 +134,7 @@ G_M57349_IG10:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byr
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 136, prolog size 24, PerfScore 106.00, instruction count 56, allocated bytes for code 136 (MethodHash=874a1ffa) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableArray():System.__Canon:this (FullOpts)
+; Total bytes of code 148, prolog size 24, PerfScore 112.00, instruction count 62, allocated bytes for code 148 (MethodHash=874a1ffa) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableArray():System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -140,7 +146,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 68 (0x00044) Actual length = 136 (0x000088)
+  Function Length   : 74 (0x0004a) Actual length = 148 (0x000094)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+12.35%) : 31069.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  ->   r4         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+;  V00 this         [V00,T02] (  4,  4   )     ref  ->   r4         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
 ;  V01 loc0         [V01,T05] (  3,  4   )     ref  ->   r5         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 ( 8) [sp+0x00]  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 ( 8) [sp+0x04]  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 ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     int  ->  zero-ref    "spilling helperCall"
@@ -20,44 +20,52 @@
 ;* 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  ->   r0         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
 ;  V11 tmp6         [V11,T00] (  2, 32   )     ref  ->   r0         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
-;  V12 tmp7         [V12    ] (  2,  3   )     ref  ->  [sp+0x00]  do-not-enreg[X] addr-exposed "field V03._originalStack (fldOffset=0x0)" P-DEP
-;  V13 tmp8         [V13    ] (  9, 29   )     ref  ->  [sp+0x04]  do-not-enreg[X] addr-exposed "field V03._remainingStack (fldOffset=0x4)" P-DEP
+;  V12 tmp7         [V12    ] (  2,  3   )     ref  ->  [sp+0x04]  do-not-enreg[X] addr-exposed "field V03._originalStack (fldOffset=0x0)" P-DEP
+;  V13 tmp8         [V13    ] (  9, 29   )     ref  ->  [sp+0x08]  do-not-enreg[X] addr-exposed "field V03._remainingStack (fldOffset=0x4)" P-DEP
 ;* V14 cse0         [V14,T08] (  0,  0   )     int  ->  zero-ref    hoist "CSE - aggressive"
-;* V15 rat0         [V15,T04] (  0,  0   )     int  ->  zero-ref    "Spilling to split statement for tree"
+;  V15 rat0         [V15,T04] (  2,  4   )     int  ->   r0         "Spilling to split statement for tree"
 ;* V16 rat1         [V16,T06] (  0,  0   )     int  ->  zero-ref    "runtime lookup"
-;* V17 rat2         [V17,T03] (  0,  0   )     int  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V17 rat2         [V17,T03] (  2,  4   )     int  ->   r0         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 16
 
 G_M64146_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r2,r3,r4,r5,r11,lr}
-            add     r11, sp, 16
+            push    {r4,r5,r11,lr}
+            sub     sp, 16
+            add     r11, sp, 24
             movs    r1, 0
-            str     r1, [sp]   // [V03 loc2]
-            str     r1, [sp+0x04]  // [V03 loc2+0x04]
+            str     r1, [sp+0x04]  // [V03 loc2]
+            str     r1, [sp+0x08]  // [V03 loc2+0x04]
+            str     r0, [r11-0x0C]
             mov     r4, r0
             ; gcrRegs +[r4]
-                       ;; size=16 bbWeight=1 PerfScore 6.00
+                       ;; size=22 bbWeight=1 PerfScore 8.00
 G_M64146_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             movs    r5, 0
             ldr     r0, [r4+0x50]
             ; gcrRegs +[r0]
-            add     r1, sp, 0
+            add     r1, sp, 4
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             ldr     r2, [r0]
             blx     r3     // System.Collections.Immutable.ImmutableStack`1[System.__Canon]:GetEnumerator():System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]:this
             ; gcrRegs -[r0] +[r5]
+            ldr     r0, [r4]
+            ldr     r0, [r0+0x24]
+            ldr     r0, [r0]
+            ldr     r0, [r0+0x10]
+            cmp     r0, 0
+            bne     SHORT G_M64146_IG04
             b       SHORT G_M64146_IG04
-                       ;; size=22 bbWeight=1 PerfScore 9.00
+                       ;; size=34 bbWeight=1 PerfScore 15.00
 G_M64146_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r5]
-            ldr     r0, [sp+0x04]
+            ldr     r0, [sp+0x08]
             ; gcrRegs +[r0]
             cmp     r0, 0
             beq     SHORT G_M64146_IG10
-            ldr     r0, [sp+0x04]
+            ldr     r0, [sp+0x08]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -68,36 +76,36 @@ G_M64146_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
                        ;; size=24 bbWeight=2 PerfScore 20.00
 G_M64146_IG04:        ; bbWeight=8, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
-            ldr     r0, [sp+0x04]
+            ldr     r0, [sp+0x08]
             ; gcrRegs +[r0]
             cmp     r0, 0
             bne     SHORT G_M64146_IG06
                        ;; size=6 bbWeight=8 PerfScore 24.00
 G_M64146_IG05:        ; bbWeight=2, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
-            ldr     r0, [sp]
+            ldr     r0, [sp+0x04]
             ; gcrRegs +[r0]
-            str     r0, [sp+0x04]  // [V13 tmp8]
+            str     r0, [sp+0x08]  // [V13 tmp8]
             b       SHORT G_M64146_IG07
                        ;; size=6 bbWeight=2 PerfScore 6.00
 G_M64146_IG06:        ; bbWeight=2, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
-            ldr     r0, [sp+0x04]  // [V13 tmp8]
+            ldr     r0, [sp+0x08]  // [V13 tmp8]
             ; gcrRegs +[r0]
             ldr     r0, [r0+0x08]
             cmp     r0, 0
             beq     SHORT G_M64146_IG07
-            ldr     r0, [sp+0x04]  // [V13 tmp8]
+            ldr     r0, [sp+0x08]  // [V13 tmp8]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             ldr     r2, [r0]
             blx     r3     // System.Collections.Immutable.ImmutableStack`1[System.__Canon]:Pop():System.Collections.Immutable.ImmutableStack`1[System.__Canon]:this
-            str     r0, [sp+0x04]  // [V13 tmp8]
+            str     r0, [sp+0x08]  // [V13 tmp8]
                        ;; size=26 bbWeight=2 PerfScore 22.00
 G_M64146_IG07:        ; bbWeight=8, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
-            ldr     r0, [sp+0x04]  // [V13 tmp8]
+            ldr     r0, [sp+0x08]  // [V13 tmp8]
             ; gcrRegs +[r0]
             ldr     r0, [r0+0x08]
             cmp     r0, 0
@@ -109,8 +117,9 @@ G_M64146_IG08:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             ; gcrRegs +[r0]
                        ;; size=2 bbWeight=1 PerfScore 1.00
 G_M64146_IG09:        ; bbWeight=1, epilog, nogc, extend
-            pop     {r2,r3,r4,r5,r11,pc}
-                       ;; size=4 bbWeight=1 PerfScore 1.00
+            add     sp, 16
+            pop     {r4,r5,r11,pc}
+                       ;; size=6 bbWeight=1 PerfScore 2.00
 G_M64146_IG10:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0 r5]
             movw    r0, 0xd1ff
@@ -136,7 +145,7 @@ G_M64146_IG10:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byr
             bkpt    
                        ;; size=48 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 162, prolog size 14, PerfScore 121.00, instruction count 64, allocated bytes for code 162 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
+; Total bytes of code 182, prolog size 20, PerfScore 130.00, instruction count 73, allocated bytes for code 182 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -148,7 +157,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 81 (0x00051) Actual length = 162 (0x0000a2)
+  Function Length   : 91 (0x0005b) Actual length = 182 (0x0000b6)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -156,7 +165,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 3C       pop {r2,r3,r4,r5,r11,lr}            ; opsize 32
-    FF          end
+    04          add sp, sp, #16                     ; opsize 16
+    A8 30       pop {r4,r5,r11,lr}                  ; opsize 32
     FF          end
 

benchmarks.run_pgo.linux.arm.checked.mch

-10 (-19.23%) : 62149.dasm - MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)

@@ -3,7 +3,7 @@
 ; Tier1 code
 ; optimized code
 ; optimized using Dynamic PGO
-; r11 based frame
+; sp based frame
 ; partially interruptible
 ; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 5
 ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
@@ -16,14 +16,13 @@
 ;  V04 tmp2         [V04,T00] (  3,  6   )     ref  ->   r0         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;  V05 tmp3         [V05,T02] (  3,  2   )   byref  ->   r0         single-def "Inline stloc first use temp"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 4
 
 G_M25826_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r11,lr}
-            mov     r11, sp
+            push    {r3,lr}
             mov     r1, r0
             ; gcrRegs +[r1]
-                       ;; size=8 bbWeight=1 PerfScore 3.00
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M25826_IG02:        ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -36,28 +35,26 @@ G_M25826_IG02:        ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byre
             blx     r3     // <unknown method>
             ; gcrRegs -[r0-r1]
             ; byrRegs +[r0]
+            ; gcr arg pop 0
             cmp     r0, 0
-            beq     SHORT G_M25826_IG04
-                       ;; size=30 bbWeight=1 PerfScore 10.00
-G_M25826_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
+            bne     SHORT G_M25826_IG04
+            movs    r0, 0
+            ; byrRegs -[r0]
+                       ;; size=32 bbWeight=1 PerfScore 11.00
+G_M25826_IG03:        ; bbWeight=1, epilog, nogc, extend
+            pop     {r3,pc}
+                       ;; size=2 bbWeight=1 PerfScore 1.00
+G_M25826_IG04:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, gcvars, byref
+            ; byrRegs +[r0]
             ldr     r0, [r0]
             ; gcrRegs +[r0]
             ; byrRegs -[r0]
-            b       SHORT G_M25826_IG06
-                       ;; size=4 bbWeight=0 PerfScore 0.00
-G_M25826_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r0]
-            movs    r0, 0
-                       ;; size=2 bbWeight=1 PerfScore 1.00
-G_M25826_IG05:        ; bbWeight=1, epilog, nogc, extend
-            pop     {r11,pc}
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M25826_IG06:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs +[r0]
-            pop     {r11,pc}
-                       ;; size=4 bbWeight=0 PerfScore 0.00
+                       ;; size=2 bbWeight=0 PerfScore 0.00
+G_M25826_IG05:        ; bbWeight=0, epilog, nogc, extend
+            pop     {r3,pc}
+                       ;; size=2 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 52, prolog size 6, PerfScore 15.00, instruction count 18, allocated bytes for code 52 (MethodHash=089c9b1d) for method MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
+; Total bytes of code 42, prolog size 2, PerfScore 14.00, instruction count 16, allocated bytes for code 42 (MethodHash=089c9b1d) for method MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -69,7 +66,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 26 (0x0001a) Actual length = 52 (0x000034)
+  Function Length   : 21 (0x00015) Actual length = 42 (0x00002a)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -81,7 +78,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 00       pop {r11,lr}                        ; opsize 32
+    ED 08       pop {r3,lr}                         ; opsize 16
     FF          end
     FF          end
 

-10 (-16.13%) : 73873.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)

@@ -3,7 +3,7 @@
 ; Tier1 code
 ; optimized code
 ; optimized using Dynamic PGO
-; r11 based frame
+; sp based frame
 ; partially interruptible
 ; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 37
 ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
@@ -17,12 +17,11 @@
 ;  V05 tmp2         [V05,T00] (  3,  6   )     ref  ->   r0         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;  V06 tmp3         [V06,T03] (  3,  2   )   byref  ->   r0         single-def "Inline stloc first use temp"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 4
 
 G_M15164_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r11,lr}
-            mov     r11, sp
-                       ;; size=6 bbWeight=1 PerfScore 2.00
+            push    {r3,lr}
+                       ;; size=2 bbWeight=1 PerfScore 1.00
 G_M15164_IG02:        ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r0-r1]
             ldr     r0, [r0+0x04]
@@ -33,43 +32,39 @@ G_M15164_IG02:        ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, b
             blx     r3     // <unknown method>
             ; gcrRegs -[r0-r1]
             ; byrRegs +[r0]
+            ; gcr arg pop 0
             cmp     r0, 0
-            beq     SHORT G_M15164_IG04
-                       ;; size=22 bbWeight=1 PerfScore 8.00
-G_M15164_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
+            bne     SHORT G_M15164_IG04
+            movs    r0, 0
+            ; byrRegs -[r0]
+                       ;; size=24 bbWeight=1 PerfScore 9.00
+G_M15164_IG03:        ; bbWeight=1, epilog, nogc, extend
+            pop     {r3,pc}
+                       ;; size=2 bbWeight=1 PerfScore 1.00
+G_M15164_IG04:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, gcvars, byref, isz
+            ; byrRegs +[r0]
             ldr     r0, [r0]
             ; gcrRegs +[r0]
             ; byrRegs -[r0]
-            b       SHORT G_M15164_IG06
-                       ;; size=4 bbWeight=0 PerfScore 0.00
-G_M15164_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r0]
-            movs    r0, 0
-                       ;; size=2 bbWeight=1 PerfScore 1.00
-G_M15164_IG05:        ; bbWeight=1, epilog, nogc, extend
-            pop     {r11,pc}
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M15164_IG06:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             ; gcrRegs +[r3]
             cmp     r0, r3
-            bne     SHORT G_M15164_IG07
+            bne     SHORT G_M15164_IG05
             movs    r0, 0
             ; gcrRegs -[r0]
-            b       SHORT G_M15164_IG08
-                       ;; size=18 bbWeight=0 PerfScore 0.00
-G_M15164_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            b       SHORT G_M15164_IG06
+                       ;; size=20 bbWeight=0 PerfScore 0.00
+G_M15164_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r3]
             movs    r0, 1
                        ;; size=2 bbWeight=0 PerfScore 0.00
-G_M15164_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            pop     {r11,pc}
-                       ;; size=4 bbWeight=0 PerfScore 0.00
+G_M15164_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            pop     {r3,pc}
+                       ;; size=2 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 62, prolog size 6, PerfScore 12.00, instruction count 23, allocated bytes for code 62 (MethodHash=0d92c4c3) for method BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
+; Total bytes of code 52, prolog size 2, PerfScore 11.00, instruction count 21, allocated bytes for code 52 (MethodHash=0d92c4c3) for method BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -81,7 +76,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 31 (0x0001f) Actual length = 62 (0x00003e)
+  Function Length   : 26 (0x0001a) Actual length = 52 (0x000034)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -93,7 +88,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 00       pop {r11,lr}                        ; opsize 32
+    ED 08       pop {r3,lr}                         ; opsize 16
     FF          end
     FF          end
 

-10 (-16.13%) : 107745.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)

@@ -3,7 +3,7 @@
 ; Tier1 code
 ; optimized code
 ; optimized using Dynamic PGO
-; r11 based frame
+; sp based frame
 ; partially interruptible
 ; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 26
 ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
@@ -17,12 +17,11 @@
 ;  V05 tmp2         [V05,T00] (  3,  6   )     ref  ->   r0         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;  V06 tmp3         [V06,T03] (  3,  2   )   byref  ->   r0         single-def "Inline stloc first use temp"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 4
 
 G_M15164_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r11,lr}
-            mov     r11, sp
-                       ;; size=6 bbWeight=1 PerfScore 2.00
+            push    {r3,lr}
+                       ;; size=2 bbWeight=1 PerfScore 1.00
 G_M15164_IG02:        ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r0-r1]
             ldr     r0, [r0+0x04]
@@ -33,43 +32,39 @@ G_M15164_IG02:        ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, b
             blx     r3     // <unknown method>
             ; gcrRegs -[r0-r1]
             ; byrRegs +[r0]
+            ; gcr arg pop 0
             cmp     r0, 0
-            beq     SHORT G_M15164_IG04
-                       ;; size=22 bbWeight=1 PerfScore 8.00
-G_M15164_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
+            bne     SHORT G_M15164_IG04
+            movs    r0, 0
+            ; byrRegs -[r0]
+                       ;; size=24 bbWeight=1 PerfScore 9.00
+G_M15164_IG03:        ; bbWeight=1, epilog, nogc, extend
+            pop     {r3,pc}
+                       ;; size=2 bbWeight=1 PerfScore 1.00
+G_M15164_IG04:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, gcvars, byref, isz
+            ; byrRegs +[r0]
             ldr     r0, [r0]
             ; gcrRegs +[r0]
             ; byrRegs -[r0]
-            b       SHORT G_M15164_IG06
-                       ;; size=4 bbWeight=0 PerfScore 0.00
-G_M15164_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r0]
-            movs    r0, 0
-                       ;; size=2 bbWeight=1 PerfScore 1.00
-G_M15164_IG05:        ; bbWeight=1, epilog, nogc, extend
-            pop     {r11,pc}
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M15164_IG06:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             ; gcrRegs +[r3]
             cmp     r0, r3
-            bne     SHORT G_M15164_IG07
+            bne     SHORT G_M15164_IG05
             movs    r0, 0
             ; gcrRegs -[r0]
-            b       SHORT G_M15164_IG08
-                       ;; size=18 bbWeight=0 PerfScore 0.00
-G_M15164_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            b       SHORT G_M15164_IG06
+                       ;; size=20 bbWeight=0 PerfScore 0.00
+G_M15164_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r3]
             movs    r0, 1
                        ;; size=2 bbWeight=0 PerfScore 0.00
-G_M15164_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            pop     {r11,pc}
-                       ;; size=4 bbWeight=0 PerfScore 0.00
+G_M15164_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            pop     {r3,pc}
+                       ;; size=2 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 62, prolog size 6, PerfScore 12.00, instruction count 23, allocated bytes for code 62 (MethodHash=0d92c4c3) for method BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
+; Total bytes of code 52, prolog size 2, PerfScore 11.00, instruction count 21, allocated bytes for code 52 (MethodHash=0d92c4c3) for method BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -81,7 +76,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 31 (0x0001f) Actual length = 62 (0x00003e)
+  Function Length   : 26 (0x0001a) Actual length = 52 (0x000034)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -93,7 +88,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 00       pop {r11,lr}                        ; opsize 32
+    ED 08       pop {r3,lr}                         ; opsize 16
     FF          end
     FF          end
 

+30 (+25.00%) : 112403.dasm - System.Text.RegularExpressions.Symbolic.MatchingState1[ulong]:BuildStateFlags(System.Text.RegularExpressions.Symbolic.ISolver1[ulong],ubyte):ubyte:this (Tier1)

@@ -9,19 +9,19 @@
 ; 1 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  4   )     ref  ->   r5         this class-hnd single-def <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
-;  V01 arg1         [V01,T02] (  3,  2   )     ref  ->   r1         class-hnd single-def <System.Text.RegularExpressions.Symbolic.ISolver`1[ulong]>
+;  V00 this         [V00,T00] (  6,  4   )     ref  ->   r5         this class-hnd single-def <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
+;  V01 arg1         [V01,T04] (  3,  2   )     ref  ->   r1         class-hnd single-def <System.Text.RegularExpressions.Symbolic.ISolver`1[ulong]>
 ;  V02 arg2         [V02,T01] (  3,  3   )   ubyte  ->   r2         single-def
 ;  V03 loc0         [V03,T06] ( 11,  2   )   ubyte  ->   r6        
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05,T07] (  2,  0   )   ubyte  ->   r0         "Inline return value spill temp"
-;  V06 tmp2         [V06,T03] (  3,  4   )     ref  ->   r2         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;  V07 tmp3         [V07,T04] (  2,  4   )     ref  ->   r0         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+;  V06 tmp2         [V06,T02] (  5,  4   )     ref  ->   r2         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+;  V07 tmp3         [V07,T03] (  4,  4   )     ref  ->   lr         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V08 tmp4         [V08    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V09 tmp5         [V09,T09] (  2,  0   )     ref  ->   r3         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V10 tmp6         [V10    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V11 tmp7         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;  V12 cse0         [V12,T05] (  4,  3   )     ref  ->   r7         "CSE - aggressive"
+;  V12 cse0         [V12,T05] (  7,  3   )     ref  ->   r7         "CSE - aggressive"
 ;  V13 rat0         [V13,T08] (  3,  0   )   byref  ->   r3         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 0
@@ -37,19 +37,47 @@ G_M42217_IG02:        ; bbWeight=1, gcrefRegs=0022 {r1 r5}, byrefRegs=0000 {}, b
             movs    r6, 0
             uxtb    r0, r2
             cmp     r0, 0
-            beq     SHORT G_M42217_IG04
-                       ;; size=8 bbWeight=1 PerfScore 4.00
-G_M42217_IG03:        ; bbWeight=0, gcrefRegs=0022 {r1 r5}, byrefRegs=0000 {}, byref
-            movs    r6, 1
-                       ;; size=2 bbWeight=0 PerfScore 0.00
-G_M42217_IG04:        ; bbWeight=1, gcrefRegs=0022 {r1 r5}, byrefRegs=0000 {}, byref, isz
+            bne     SHORT G_M42217_IG07
             ldr     r2, [r5+0x04]
             ; gcrRegs +[r2]
             ldr     r0, [r2+0x1C]
             cmp     r0, 1
-            bne     SHORT G_M42217_IG06
-                       ;; size=8 bbWeight=1 PerfScore 4.00
-G_M42217_IG05:        ; bbWeight=0, gcrefRegs=0026 {r1 r2 r5}, byrefRegs=0000 {}, byref, isz
+            beq     SHORT G_M42217_IG08
+                       ;; size=16 bbWeight=1 PerfScore 8.00
+G_M42217_IG03:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r1-r2]
+            ldr     r7, [r5+0x04]
+            ; gcrRegs +[r7]
+            mov     lr, r7
+            ; gcrRegs +[lr]
+            ldr     r0, [lr+0x28]
+            ands    r0, r0, 8
+            cmp     r0, 0
+            bne     SHORT G_M42217_IG09
+                       ;; size=16 bbWeight=1 PerfScore 6.00
+G_M42217_IG04:        ; bbWeight=1, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r5 lr]
+            ldr     r0, [r7+0x1C]
+            cmp     r0, 17
+            bne     SHORT G_M42217_IG10
+                       ;; size=6 bbWeight=1 PerfScore 3.00
+G_M42217_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r7]
+            mov     r0, r6
+                       ;; size=2 bbWeight=1 PerfScore 1.00
+G_M42217_IG06:        ; bbWeight=1, epilog, nogc, extend
+            pop     {r4,r5,r6,r7,r11,pc}
+                       ;; size=4 bbWeight=1 PerfScore 1.00
+G_M42217_IG07:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0022 {r1 r5}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[r1 r5]
+            movs    r6, 1
+            ldr     r2, [r5+0x04]
+            ; gcrRegs +[r2]
+            ldr     r3, [r2+0x1C]
+            cmp     r3, 1
+            bne     SHORT G_M42217_IG03
+                       ;; size=10 bbWeight=0 PerfScore 0.00
+G_M42217_IG08:        ; bbWeight=0, gcrefRegs=0026 {r1 r2 r5}, byrefRegs=0000 {}, byref, isz
             add     r3, r2, 8
             ; byrRegs +[r3]
             ldr     r2, [r3]
@@ -64,21 +92,21 @@ G_M42217_IG05:        ; bbWeight=0, gcrefRegs=0026 {r1 r2 r5}, byrefRegs=0000 {}
             ; gcrRegs -[r1]
             blx     r1     // <unknown method>
             ; gcrRegs -[r0]
-            b       SHORT G_M42217_IG12
-                       ;; size=24 bbWeight=0 PerfScore 0.00
-G_M42217_IG06:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            cmp     r0, 0
+            beq     SHORT G_M42217_IG03
+            orr     r3, r6, 2
+            uxtb    r6, r3
             ldr     r7, [r5+0x04]
             ; gcrRegs +[r7]
-            mov     r0, r7
-            ; gcrRegs +[r0]
-            ldr     r0, [r0+0x28]
-            ; gcrRegs -[r0]
-            ands    r0, r0, 8
-            cmp     r0, 0
-            beq     SHORT G_M42217_IG08
-                       ;; size=14 bbWeight=1 PerfScore 6.00
-G_M42217_IG07:        ; bbWeight=0, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r5]
+            mov     lr, r7
+            ; gcrRegs +[lr]
+            ldr     r3, [lr+0x28]
+            ands    r3, r3, 8
+            cmp     r3, 0
+            beq     SHORT G_M42217_IG04
+                       ;; size=48 bbWeight=0 PerfScore 0.00
+G_M42217_IG09:        ; bbWeight=0, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r5 lr]
             orr     r3, r6, 8
             uxtb    r6, r3
             mov     r3, r7
@@ -87,36 +115,21 @@ G_M42217_IG07:        ; bbWeight=0, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byre
             ; gcrRegs -[r3]
             ands    r3, r3, 1
             cmp     r3, 0
-            beq     SHORT G_M42217_IG08
+            beq     SHORT G_M42217_IG04
             orr     r3, r6, 4
             uxtb    r6, r3
-                       ;; size=24 bbWeight=0 PerfScore 0.00
-G_M42217_IG08:        ; bbWeight=1, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r7+0x1C]
-            cmp     r0, 17
-            beq     SHORT G_M42217_IG10
-                       ;; size=6 bbWeight=1 PerfScore 3.00
-G_M42217_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ldr     r3, [r7+0x1C]
+            cmp     r3, 17
+            beq     SHORT G_M42217_IG05
+                       ;; size=30 bbWeight=0 PerfScore 0.00
+G_M42217_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r7]
             orr     r3, r6, 16
             uxtb    r6, r3
-                       ;; size=6 bbWeight=0 PerfScore 0.00
-G_M42217_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            mov     r0, r6
-                       ;; size=2 bbWeight=1 PerfScore 1.00
-G_M42217_IG11:        ; bbWeight=1, epilog, nogc, extend
-            pop     {r4,r5,r6,r7,r11,pc}
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M42217_IG12:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[r5]
-            cmp     r0, 0
-            beq     SHORT G_M42217_IG06
-            orr     r3, r6, 2
-            uxtb    r6, r3
-            b       SHORT G_M42217_IG06
-                       ;; size=12 bbWeight=0 PerfScore 0.00
+            b       SHORT G_M42217_IG05
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 120, prolog size 8, PerfScore 22.00, instruction count 48, allocated bytes for code 120 (MethodHash=f7db5b16) for method System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]:BuildStateFlags(System.Text.RegularExpressions.Symbolic.ISolver`1[ulong],ubyte):ubyte:this (Tier1)
+; Total bytes of code 150, prolog size 8, PerfScore 22.00, instruction count 60, allocated bytes for code 150 (MethodHash=f7db5b16) for method System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]:BuildStateFlags(System.Text.RegularExpressions.Symbolic.ISolver`1[ulong],ubyte):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -128,7 +141,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 60 (0x0003c) Actual length = 120 (0x000078)
+  Function Length   : 75 (0x0004b) Actual length = 150 (0x000096)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+14 (+25.93%) : 90234.dasm - Microsoft.CodeAnalysis.CSharp.BoundNode:CopyAttributes(Microsoft.CodeAnalysis.CSharp.BoundNode):this (Tier1)

@@ -9,7 +9,7 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  6,  2.67)     ref  ->   r0         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundNode>
-;  V01 arg1         [V01,T00] (  4,  4   )     ref  ->   r1         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundNode>
+;  V01 arg1         [V01,T00] (  5,  4   )     ref  ->   r1         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundNode>
 ;# 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"
 ;* V04 tmp2         [V04    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -25,44 +25,54 @@ G_M32407_IG02:        ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, b
             ldrsh   r3, [r1+0x08]
             ands    r3, r3, 2
             cmp     r3, 0
-            beq     SHORT G_M32407_IG04
+            bne     SHORT G_M32407_IG05
                        ;; size=12 bbWeight=1 PerfScore 4.00
-G_M32407_IG03:        ; bbWeight=0.33, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref
-            ldrsh   r3, [r0+0x08]
-            orr     r3, r3, 2
-            strh    r3, [r0+0x08]
-                       ;; size=10 bbWeight=0.33 PerfScore 1.00
-G_M32407_IG04:        ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
+G_M32407_IG03:        ; bbWeight=0.67, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
             ldrsh   r3, [r1+0x08]
             ands    r3, r3, 4
             cmp     r3, 0
-            beq     SHORT G_M32407_IG06
-                       ;; size=12 bbWeight=1 PerfScore 4.00
-G_M32407_IG05:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
+            bne     SHORT G_M32407_IG06
+                       ;; size=12 bbWeight=0.67 PerfScore 2.67
+G_M32407_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs -[r0-r1]
+            pop     {r11,pc}
+                       ;; size=4 bbWeight=1 PerfScore 1.00
+G_M32407_IG05:        ; bbWeight=0.33, gcVars=00000000 {}, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[r0-r1]
+            ldrsh   r3, [r0+0x08]
+            orr     r3, r3, 2
+            strh    r3, [r0+0x08]
+            ldrsh   r1, [r1+0x08]
             ; gcrRegs -[r1]
+            ands    r3, r1, 4
+            cmp     r3, 0
+            beq     SHORT G_M32407_IG04
+                       ;; size=22 bbWeight=0.33 PerfScore 2.33
+G_M32407_IG06:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ldrsh   r3, [r0+0x08]
             orr     r3, r3, 4
             strh    r3, [r0+0x08]
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M32407_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[r0]
-            pop     {r11,pc}
-                       ;; size=4 bbWeight=1 PerfScore 1.00
+            b       SHORT G_M32407_IG04
+                       ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 54, prolog size 6, PerfScore 12.00, instruction count 17, allocated bytes for code 54 (MethodHash=db418168) for method Microsoft.CodeAnalysis.CSharp.BoundNode:CopyAttributes(Microsoft.CodeAnalysis.CSharp.BoundNode):this (Tier1)
+; Total bytes of code 68, prolog size 6, PerfScore 12.00, instruction count 22, allocated bytes for code 68 (MethodHash=db418168) for method Microsoft.CodeAnalysis.CSharp.BoundNode:CopyAttributes(Microsoft.CodeAnalysis.CSharp.BoundNode):this (Tier1)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Code Words        : 1
-  Epilog Count      : 0
+  Epilog Count      : 1
   F bit             : 0
-  E bit             : 1
+  E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 27 (0x0001b) Actual length = 54 (0x000036)
-  --- One epilog, unwind codes at 0
+  Function Length   : 34 (0x00022) Actual length = 68 (0x000044)
+  ---- Epilog scopes ----
+  ---- Scope 0
+  Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+  Condition                  : 14 (0xe) (always)
+  Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
     A8 00       pop {r11,lr}                        ; opsize 32

+12 (+28.57%) : 145923.dasm - MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)

@@ -3,7 +3,7 @@
 ; Tier1 code
 ; optimized code
 ; optimized using Dynamic PGO
-; sp based frame
+; r11 based frame
 ; partially interruptible
 ; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 2
 ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
@@ -16,13 +16,14 @@
 ;  V04 tmp2         [V04,T00] (  3,  6   )     ref  ->   r0         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;  V05 tmp3         [V05,T02] (  3,  2   )   byref  ->   r0         single-def "Inline stloc first use temp"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
-G_M25826_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r3,lr}
+G_M25826_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+            push    {r11,lr}
+            mov     r11, sp
             mov     r1, r0
             ; gcrRegs +[r1]
-                       ;; size=4 bbWeight=1 PerfScore 2.00
+                       ;; size=8 bbWeight=1 PerfScore 3.00
 G_M25826_IG02:        ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -35,27 +36,31 @@ G_M25826_IG02:        ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byre
             blx     r3     // <unknown method>
             ; gcrRegs -[r0-r1]
             ; byrRegs +[r0]
-            ; gcr arg pop 0
             cmp     r0, 0
-            beq     SHORT G_M25826_IG05
-                       ;; size=30 bbWeight=1 PerfScore 10.00
-G_M25826_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref
-            ldr     r0, [r0]
+            bne     SHORT G_M25826_IG06
+            b       SHORT G_M25826_IG04
+                       ;; size=32 bbWeight=1 PerfScore 11.00
+G_M25826_IG03:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs +[r0]
             ; byrRegs -[r0]
-                       ;; size=2 bbWeight=0 PerfScore 0.00
-G_M25826_IG04:        ; bbWeight=0, epilog, nogc, extend
-            pop     {r3,pc}
-                       ;; size=2 bbWeight=0 PerfScore 0.00
-G_M25826_IG05:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            pop     {r11,pc}
+                       ;; size=4 bbWeight=0 PerfScore 0.00
+G_M25826_IG04:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0]
             movs    r0, 0
                        ;; size=2 bbWeight=0 PerfScore 0.00
-G_M25826_IG06:        ; bbWeight=0, epilog, nogc, extend
-            pop     {r3,pc}
-                       ;; size=2 bbWeight=0 PerfScore 0.00
+G_M25826_IG05:        ; bbWeight=0, epilog, nogc, extend
+            pop     {r11,pc}
+                       ;; size=4 bbWeight=0 PerfScore 0.00
+G_M25826_IG06:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, gcvars, byref, isz
+            ; byrRegs +[r0]
+            ldr     r0, [r0]
+            ; gcrRegs +[r0]
+            ; byrRegs -[r0]
+            b       SHORT G_M25826_IG03
+                       ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 42, prolog size 2, PerfScore 12.00, instruction count 16, allocated bytes for code 42 (MethodHash=089c9b1d) for method MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
+; Total bytes of code 54, prolog size 6, PerfScore 14.00, instruction count 19, allocated bytes for code 54 (MethodHash=089c9b1d) for method MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -67,7 +72,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 21 (0x00015) Actual length = 42 (0x00002a)
+  Function Length   : 27 (0x0001b) Actual length = 54 (0x000036)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -79,7 +84,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    ED 08       pop {r3,lr}                         ; opsize 16
+    A8 00       pop {r11,lr}                        ; opsize 32
     FF          end
     FF          end
 

benchmarks.run_tiered.linux.arm.checked.mch

-14 (-2.68%) : 76726.dasm - MessagePack.Formatters.ListFormatter1[int]:Deserialize(ubyte[],int,MessagePack.IFormatterResolver,byref):System.Collections.Generic.List1[int]:this (Tier0-FullOpts)

@@ -56,7 +56,7 @@ G_M61425_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M61425_IG02:        ; bbWeight=1, gcrefRegs=0140 {r6 r8}, byrefRegs=0080 {r7}, byref, isz
             ldr     r0, [r6+0x04]
             cmp     r5, r0
-            bhs     G_M61425_IG18
+            bhs     G_M61425_IG17
             add     r0, r6, 8
             ; byrRegs +[r0]
             ldrb    r0, [r0+r5]
@@ -96,7 +96,7 @@ G_M61425_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0140 {r6 r8
             ; byrRegs -[r3]
             ldr     r1, [r0+0x04]
             cmp     r3, r1
-            bhs     G_M61425_IG18
+            bhs     G_M61425_IG17
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -117,16 +117,16 @@ G_M61425_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0140 {r6 r8
             ; byrRegs -[r3]
             ; gcr arg pop 0
             cmp     r0, 0
-            blt     G_M61425_IG17
+            blt     G_M61425_IG16
             mov     r10, r0
             ldr     r0, [r6+0x04]
             subs    r0, r0, r5
-            bvs     G_M61425_IG17
+            bvs     G_M61425_IG16
             cmp     r0, r10
-            blt     G_M61425_IG19
+            blt     G_M61425_IG18
             ldr     r0, [r7]
             adds    r0, r5, r0
-            bvs     G_M61425_IG17
+            bvs     SHORT G_M61425_IG16
             mov     r4, r0
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -159,12 +159,12 @@ G_M61425_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0140 {r6 r8
             ; gcrRegs -[r3]
             ; gcr arg pop 0
             strb    r0, [sp+0x14]  // [V20 tmp9]
-                       ;; size=156 bbWeight=0.50 PerfScore 28.00
+                       ;; size=154 bbWeight=0.50 PerfScore 28.00
 G_M61425_IG06:        ; bbWeight=0.50, gcrefRegs=0340 {r6 r8 r9}, byrefRegs=0080 {r7}, byref, isz
             mov     lr, 0
             str     lr, [sp+0x18]  // [V10 loc5]
             cmp     r10, 0
-            ble     SHORT G_M61425_IG11
+            ble     SHORT G_M61425_IG13
                        ;; size=14 bbWeight=0.50 PerfScore 2.00
 G_M61425_IG07:        ; bbWeight=4, gcrefRegs=0340 {r6 r8 r9}, byrefRegs=0080 {r7}, byref, isz
             str     r7, [sp]   // [V11 OutArgs]
@@ -194,7 +194,7 @@ G_M61425_IG07:        ; bbWeight=4, gcrefRegs=0340 {r6 r8 r9}, byrefRegs=0080 {r
             ldr     r3, [r4+0x08]
             ldr     r2, [r0+0x04]
             cmp     r2, r3
-            bls     SHORT G_M61425_IG13
+            bls     SHORT G_M61425_IG12
                        ;; size=46 bbWeight=4 PerfScore 80.00
 G_M61425_IG08:        ; bbWeight=2, gcrefRegs=0351 {r0 r4 r6 r8 r9}, byrefRegs=0080 {r7}, byref
             adds    r2, r3, 1
@@ -210,30 +210,21 @@ G_M61425_IG09:        ; bbWeight=4, gcrefRegs=0350 {r4 r6 r8 r9}, byrefRegs=0080
             ldr     r0, [r7]
             ldr     r3, [sp+0x1C]  // [V02 arg2]
             adds    r3, r3, r0
-            bvs     SHORT G_M61425_IG12
-            str     r3, [sp+0x1C]  // [V02 arg2]
+            bvs     SHORT G_M61425_IG11
             ldr     r0, [sp+0x18]  // [V10 loc5]
             adds    r0, r0, 1
-            bvs     SHORT G_M61425_IG12
+            bvs     SHORT G_M61425_IG11
             cmp     r0, r10
             str     r0, [sp+0x18]  // [V10 loc5]
-            blt     SHORT G_M61425_IG10
-            b       SHORT G_M61425_IG14
-                       ;; size=24 bbWeight=4 PerfScore 48.00
-G_M61425_IG10:        ; bbWeight=2, gcrefRegs=0350 {r4 r6 r8 r9}, byrefRegs=0080 {r7}, byref, isz
-            ldr     r4, [sp+0x1C]  // [V02 arg2]
+            mov     r4, r3
             ; gcrRegs -[r4]
-            b       SHORT G_M61425_IG07
-                       ;; size=4 bbWeight=2 PerfScore 4.00
-G_M61425_IG11:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, byref, isz
+            blt     SHORT G_M61425_IG07
+                       ;; size=22 bbWeight=4 PerfScore 44.00
+G_M61425_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, byref, isz
             ; gcrRegs -[r6 r8-r9]
-            str     r4, [sp+0x1C]  // [V02 arg2]
-            ldr     r4, [sp+0x10]  // [V08 loc3]
-            ; gcrRegs +[r4]
-            b       SHORT G_M61425_IG14
-                       ;; size=6 bbWeight=0.25 PerfScore 0.75
-G_M61425_IG12:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[r4]
+            b       SHORT G_M61425_IG13
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M61425_IG11:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; byrRegs -[r7]
             ; GC ptr vars -{V08}
             movw    r3, 0xd1ff
@@ -241,7 +232,7 @@ G_M61425_IG12:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             blx     r3     // CORINFO_HELP_OVERFLOW
             ; gcr arg pop 0
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M61425_IG13:        ; bbWeight=2, gcVars=00000001 {V08}, gcrefRegs=0350 {r4 r6 r8 r9}, byrefRegs=0080 {r7}, gcvars, byref, isz
+G_M61425_IG12:        ; bbWeight=2, gcVars=00000001 {V08}, gcrefRegs=0350 {r4 r6 r8 r9}, byrefRegs=0080 {r7}, gcvars, byref, isz
             ; gcrRegs +[r4 r6 r8-r9]
             ; byrRegs +[r7]
             ; GC ptr vars +{V08}
@@ -255,80 +246,11 @@ G_M61425_IG13:        ; bbWeight=2, gcVars=00000001 {V08}, gcrefRegs=0350 {r4 r6
             ; gcr arg pop 0
             b       SHORT G_M61425_IG09
                        ;; size=16 bbWeight=2 PerfScore 12.00
-G_M61425_IG14:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0080 {r7}, byref, isz
-            ; gcrRegs -[r6 r8-r9]
+G_M61425_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, byref, isz
+            ; gcrRegs -[r4 r6 r8-r9]
             ldrb    r0, [sp+0x14]  // [V20 tmp9]
             cmp     r0, 0
-            beq     SHORT G_M61425_IG15
-            movw    r0, 0xd1ff
-            movt    r0, 0xd1ff
-            ldr     r6, [r0]
-            ; gcrRegs +[r6]
-            mov     r0, r6
-            ; gcrRegs +[r0]
-            movw    r2, 0xd1ff
-            movt    r2, 0xd1ff
-            ldr     r2, [r2]
-            ldr     r1, [r0]
-            blx     r2     // System.Threading.ThreadLocal`1[int]:get_Value():int:this
-            ; gcrRegs -[r0]
-            ; gcr arg pop 0
-            subs    r1, r0, 1
-            bvs     SHORT G_M61425_IG17
-            mov     r0, r6
-            ; gcrRegs +[r0]
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            ldr     r3, [r3]
-            blx     r3     // System.Threading.ThreadLocal`1[int]:set_Value(int):this
-            ; gcrRegs -[r0 r6]
-            ; gcr arg pop 0
-                       ;; size=52 bbWeight=0.50 PerfScore 9.50
-G_M61425_IG15:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0080 {r7}, byref, isz
-            ldr     r3, [sp+0x1C]  // [V02 arg2]
-            subs    r0, r3, r5
-            bvs     SHORT G_M61425_IG17
-            str     r0, [r7]
-            mov     r0, r4
-            ; gcrRegs +[r0]
-                       ;; size=10 bbWeight=0.50 PerfScore 2.50
-G_M61425_IG16:        ; bbWeight=0.50, epilog, nogc, extend
-            add     sp, 36
-            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
-                       ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M61425_IG17:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[r0 r4]
-            ; byrRegs -[r7]
-            ; GC ptr vars -{V08}
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            blx     r3     // CORINFO_HELP_OVERFLOW
-            ; gcr arg pop 0
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M61425_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            blx     r3     // CORINFO_HELP_RNGCHKFAIL
-            ; gcr arg pop 0
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M61425_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            ldr     r3, [r3]
-            blx     r3     // MessagePack.MessagePackBinary:ThrowNotEnoughBytesException()
-            ; gcr arg pop 0
-            bkpt    
-                       ;; size=14 bbWeight=0 PerfScore 0.00
-G_M61425_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
-            push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            sub     sp, 12
-            add     r3, r11, 8
-            str     r3, [sp+0x08]
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M61425_IG21:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldrb    r0, [r11-0x2C] // [V20 tmp9]
-            cmp     r0, 0
-            beq     SHORT G_M61425_IG22
+            beq     SHORT G_M61425_IG14
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             ldr     r6, [r0]
@@ -343,7 +265,75 @@ G_M61425_IG21:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             subs    r1, r0, 1
-            bvs     SHORT G_M61425_IG23
+            bvs     SHORT G_M61425_IG16
+            mov     r0, r6
+            ; gcrRegs +[r0]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // System.Threading.ThreadLocal`1[int]:set_Value(int):this
+            ; gcrRegs -[r0 r6]
+            ; gcr arg pop 0
+                       ;; size=52 bbWeight=0.50 PerfScore 9.50
+G_M61425_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, byref, isz
+            subs    r0, r4, r5
+            bvs     SHORT G_M61425_IG16
+            str     r0, [r7]
+            ldr     r0, [sp+0x10]  // [V08 loc3]
+            ; gcrRegs +[r0]
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M61425_IG15:        ; bbWeight=0.50, epilog, nogc, extend
+            add     sp, 36
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
+                       ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M61425_IG16:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[r0]
+            ; byrRegs -[r7]
+            ; GC ptr vars -{V08}
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            blx     r3     // CORINFO_HELP_OVERFLOW
+            ; gcr arg pop 0
+                       ;; size=10 bbWeight=0 PerfScore 0.00
+G_M61425_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            blx     r3     // CORINFO_HELP_RNGCHKFAIL
+            ; gcr arg pop 0
+                       ;; size=10 bbWeight=0 PerfScore 0.00
+G_M61425_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // MessagePack.MessagePackBinary:ThrowNotEnoughBytesException()
+            ; gcr arg pop 0
+            bkpt    
+                       ;; size=14 bbWeight=0 PerfScore 0.00
+G_M61425_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+            push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
+            sub     sp, 12
+            add     r3, r11, 8
+            str     r3, [sp+0x08]
...

-18 (-1.98%) : 4627.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:TryInsert(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int,ubyte):ubyte:this (Tier0-FullOpts)

@@ -8,7 +8,7 @@
 ; 0 inlinees with PGO data; 10 single block inlinees; 7 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T04] ( 21, 14   )     ref  ->  [sp+0x0C]  this class-hnd single-def <System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]>
+;  V00 this         [V00,T04] ( 21, 14   )     ref  ->   r5         this class-hnd single-def <System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]>
 ;  V01 arg1         [V01,T11] (  7,  4.50)  struct ( 8) [sp+0x70]  do-not-enreg[SFA] multireg-arg ld-addr-op single-def <System.Linq.Expressions.Compiler.BoundConstants+TypedConstant>
 ;  V02 arg2         [V02,T17] (  4,  3   )     int  ->  [sp+0x44]  single-def
 ;  V03 arg3         [V03,T40] (  2,  1   )   ubyte  ->  [sp+0x78]  single-def
@@ -16,10 +16,10 @@
 ;  V05 loc1         [V05,T16] (  5,  5.50)     ref  ->   r8         class-hnd single-def <<unknown class>>
 ;  V06 loc2         [V06,T09] (  6, 11   )     int  ->  [sp+0x40]  spill-single-def
 ;  V07 loc3         [V07,T03] (  7, 25   )     int  ->  [sp+0x3C] 
-;  V08 loc4         [V08,T22] (  5,  3.50)   byref  ->   r6        
+;  V08 loc4         [V08,T22] (  5,  3.50)   byref  ->  [sp+0x0C] 
 ;  V09 loc5         [V09,T02] (  9, 26   )     int  ->  [sp+0x38] 
 ;  V10 loc6         [V10,T23] (  6,  3   )     int  ->   r9        
-;  V11 loc7         [V11,T30] (  5,  2.50)   byref  ->  r10         single-def
+;  V11 loc7         [V11,T30] (  5,  2.50)   byref  ->   r7         single-def
 ;  V12 loc8         [V12,T34] (  3,  1.50)     int  ->   r9        
 ;  V13 OutArgs      [V13    ] (  1,  1   )  struct ( 4) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref   
@@ -55,7 +55,7 @@
 ;  V44 cse0         [V44,T05] (  4, 14   )     int  ->  [sp+0x2C]  spill-single-def "CSE - aggressive"
 ;  V45 cse1         [V45,T06] (  4, 14   )     int  ->  [sp+0x28]  spill-single-def "CSE - aggressive"
 ;  V46 cse2         [V46,T35] (  3,  1.50)     int  ->   r7         "CSE - conservative"
-;  V47 cse3         [V47,T24] (  6,  3   )     int  ->   lr         multi-def "CSE - moderate"
+;  V47 cse3         [V47,T24] (  6,  3   )     int  ->   r5         multi-def "CSE - moderate"
 ;  V48 cse4         [V48,T36] (  3,  1.50)     int  ->   r0         "CSE - conservative"
 ;  V49 cse5         [V49,T37] (  3,  1.50)     int  ->   r0         "CSE - conservative"
 ;  V50 cse6         [V50,T01] ( 10, 26   )     int  ->  [sp+0x24]  multi-def "CSE - aggressive"
@@ -205,37 +205,39 @@ G_M42416_IG11:        ; bbWeight=1, gcrefRegs=07A0 {r5 r7 r8 r9 r10}, byrefRegs=
             tst     r0, r0
             bmi     SHORT G_M42416_IG12
             tst     r1, r1
-            bne     G_M42416_IG39
+            bne     G_M42416_IG40
             b       SHORT G_M42416_IG13
                        ;; size=50 bbWeight=1 PerfScore 17.00
 G_M42416_IG12:        ; bbWeight=1, gcrefRegs=07A0 {r5 r7 r8 r9 r10}, byrefRegs=0000 {}, byref, isz
             cmp     r1, -1
-            bne     G_M42416_IG39
+            bne     G_M42416_IG40
                        ;; size=8 bbWeight=1 PerfScore 2.00
 G_M42416_IG13:        ; bbWeight=1, gcrefRegs=07A0 {r5 r7 r8 r9 r10}, byrefRegs=0000 {}, byref, isz
             ldr     r6, [sp+0x08]  // [V23 tmp10]
             ; gcrRegs +[r6]
             ldr     r1, [r6+0x04]
             cmp     r0, r1
-            bhs     G_M42416_IG40
+            bhs     G_M42416_IG41
             add     r1, r6, 8
             ; byrRegs +[r1]
             lsls    r0, r0, 2
             adds    r6, r1, r0
             ; gcrRegs -[r6]
             ; byrRegs +[r6]
+            str     r6, [sp+0x0C]  // [V08 loc4]
+            ; GC ptr vars +{V08}
             ldr     r0, [r6]
             subs    r3, r0, 1
             cmp     r8, 0
             bne     SHORT G_M42416_IG23
-                       ;; size=28 bbWeight=1 PerfScore 11.00
-G_M42416_IG14:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=06A0 {r5 r7 r9 r10}, byrefRegs=0040 {r6}, gcvars, byref, isz
+                       ;; size=30 bbWeight=1 PerfScore 12.00
+G_M42416_IG14:        ; bbWeight=4, gcVars=0000000000400000 {V08}, gcrefRegs=06A0 {r5 r7 r9 r10}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r8]
-            ; byrRegs -[r1]
+            ; byrRegs -[r1 r6]
             ; GC ptr vars -{V23}
             ldr     r8, [r7+0x04]
             cmp     r8, r3
-            bls     G_M42416_IG30
+            bls     G_M42416_IG31
             movs    r0, 20
             str     r3, [sp+0x38]  // [V09 loc5]
             mul     r0, r3, r0
@@ -245,7 +247,7 @@ G_M42416_IG14:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=06A0 {
             cmp     r0, r4
             bne     SHORT G_M42416_IG16
                        ;; size=30 bbWeight=4 PerfScore 44.00
-G_M42416_IG15:        ; bbWeight=2, gcrefRegs=06A0 {r5 r7 r9 r10}, byrefRegs=0040 {r6}, byref, isz
+G_M42416_IG15:        ; bbWeight=2, gcrefRegs=06A0 {r5 r7 r9 r10}, byrefRegs=0000 {}, byref, isz
             adds    r0, r7, r2
             ; byrRegs +[r0]
             ldr     r1, [r0+0x0C]
@@ -271,51 +273,51 @@ G_M42416_IG15:        ; bbWeight=2, gcrefRegs=06A0 {r5 r7 r9 r10}, byrefRegs=004
             ldr     r2, [sp+0x2C]  // [V44 cse0]
             bne     SHORT G_M42416_IG18
                        ;; size=36 bbWeight=2 PerfScore 30.00
-G_M42416_IG16:        ; bbWeight=4, gcrefRegs=06A0 {r5 r7 r9 r10}, byrefRegs=0040 {r6}, byref, isz
+G_M42416_IG16:        ; bbWeight=4, gcrefRegs=06A0 {r5 r7 r9 r10}, byrefRegs=0000 {}, byref, isz
             adds    r1, r7, r2
             ; byrRegs +[r1]
             ldr     r3, [r1+0x04]
             mov     lr, r3
             ldr     r12, [sp+0x3C] // [V07 loc3]
             add     r12, r12, 1
-            cmp     r8, r12
             str     r12, [sp+0x3C] // [V07 loc3]
+            cmp     r8, r12
+            blo     G_M42416_IG42
             mov     r3, lr
-            blo     G_M42416_IG41
             b       SHORT G_M42416_IG14
                        ;; size=28 bbWeight=4 PerfScore 40.00
-G_M42416_IG17:        ; bbWeight=1, gcrefRegs=06A0 {r5 r7 r9 r10}, byrefRegs=0040 {r6}, byref, isz
+G_M42416_IG17:        ; bbWeight=1, gcrefRegs=06A0 {r5 r7 r9 r10}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r1]
             ldr     r2, [sp+0x2C]  // [V44 cse0]
             b       SHORT G_M42416_IG16
                        ;; size=4 bbWeight=1 PerfScore 2.00
-G_M42416_IG18:        ; bbWeight=0.50, gcrefRegs=0680 {r7 r9 r10}, byrefRegs=0000 {}, byref, isz
+G_M42416_IG18:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0680 {r7 r9 r10}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r5]
-            ; byrRegs -[r6]
-            ldrb    lr, [sp+0x78]  // [V03 arg3]
-            cmp     lr, 1
+            ; GC ptr vars -{V08}
+            ldrb    r5, [sp+0x78]  // [V03 arg3]
+            cmp     r5, 1
             bne     SHORT G_M42416_IG20
-                       ;; size=10 bbWeight=0.50 PerfScore 1.50
+                       ;; size=8 bbWeight=0.50 PerfScore 1.50
 G_M42416_IG19:        ; bbWeight=0.50, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r9-r10]
             ldr     r3, [sp+0x38]  // [V09 loc5]
             cmp     r3, r8
-            bhs     G_M42416_IG40
-            mov     lr, 20
-            mul     r3, r3, lr
+            bhs     G_M42416_IG41
+            movs    r1, 20
+            mul     r3, r3, r1
             add     r1, r3, 8
             adds    r1, r7, r1
             ; byrRegs +[r1]
             ldr     r6, [sp+0x44]  // [V02 arg2]
             str     r6, [r1+0x08]
-            b       SHORT G_M42416_IG37
-                       ;; size=28 bbWeight=0.50 PerfScore 5.00
+            b       SHORT G_M42416_IG38
+                       ;; size=26 bbWeight=0.50 PerfScore 5.00
 G_M42416_IG20:        ; bbWeight=0.50, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r7] +[r9-r10]
             ; byrRegs -[r1]
-            cmp     lr, 2
-            beq     G_M42416_IG42
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+            cmp     r5, 2
+            beq     G_M42416_IG43
+                       ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M42416_IG21:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r9-r10]
             movs    r0, 0
@@ -326,29 +328,27 @@ G_M42416_IG22:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 8
             bx      lr
                        ;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M42416_IG23:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=07A0 {r5 r7 r8 r9 r10}, byrefRegs=0040 {r6}, gcvars, byref, isz
+G_M42416_IG23:        ; bbWeight=4, gcVars=0000000000400000 {V08}, gcrefRegs=07A0 {r5 r7 r8 r9 r10}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[r5 r7-r10]
-            ; byrRegs +[r6]
+            ; GC ptr vars +{V08}
             ldr     r1, [r7+0x04]
-            mov     r0, r1
-            str     r0, [sp+0x24]  // [V50 cse6]
-            cmp     r0, r3
-            bls     SHORT G_M42416_IG28
+            mov     lr, r1
+            str     lr, [sp+0x24]  // [V50 cse6]
+            cmp     lr, r3
+            bls     SHORT G_M42416_IG29
             movs    r1, 20
             str     r3, [sp+0x38]  // [V09 loc5]
             mul     r1, r3, r1
-            add     lr, r1, 8
-            str     lr, [sp+0x28]  // [V45 cse1]
-            ldr     r1, [r7+lr]
+            add     r0, r1, 8
+            str     r0, [sp+0x28]  // [V45 cse1]
+            ldr     r1, [r7+r0]
             cmp     r1, r4
-            bne     SHORT G_M42416_IG27
-                       ;; size=34 bbWeight=4 PerfScore 52.00
-G_M42416_IG24:        ; bbWeight=2, gcrefRegs=07A0 {r5 r7 r8 r9 r10}, byrefRegs=0040 {r6}, byref
-            str     r5, [sp+0x0C]  // [V00 this]
-            ; GC ptr vars +{V00}
-            add     r1, r7, lr
+            bne     SHORT G_M42416_IG28
+                       ;; size=32 bbWeight=4 PerfScore 52.00
+G_M42416_IG24:        ; bbWeight=2, gcrefRegs=07A0 {r5 r7 r8 r9 r10}, byrefRegs=0000 {}, byref
+            adds    r1, r7, r0
             ; byrRegs +[r1]
-                       ;; size=6 bbWeight=2 PerfScore 4.00
+                       ;; size=2 bbWeight=2 PerfScore 2.00
 G_M42416_IG25:        ; bbWeight=2, nogc, extend
             ldr     r2, [r1+0x0C]
             str     r2, [sp+0x30]  // [V43 tmp30]
@@ -369,60 +369,58 @@ G_M42416_IG26:        ; bbWeight=2, isz, extend
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
             movt    r4, 0xd1ff
-            ldr     r5, [r4]
-            ; gcrRegs -[r5]
-            blx     r5     // <unknown method>
+            ldr     r6, [r4]
+            blx     r6     // <unknown method>
             ; gcrRegs -[r0-r3]
             ; gcr arg pop 0
             cmp     r0, 0
-            ldr     r5, [sp+0x0C]  // [V00 this]
-            ; gcrRegs +[r5]
-            ldr     lr, [sp+0x28]  // [V45 cse1]
-            bne     SHORT G_M42416_IG29
-                       ;; size=34 bbWeight=2 PerfScore 26.00
-G_M42416_IG27:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=07A0 {r5 r7 r8 r9 r10}, byrefRegs=0040 {r6}, gcvars, byref, isz
-            ; GC ptr vars -{V00}
-            add     r1, r7, lr
-            ; byrRegs +[r1]
-            ldr     r3, [r1+0x04]
-            mov     r1, r3
-            ; byrRegs -[r1]
+            ldr     r0, [sp+0x28]  // [V45 cse1]
+            ldr     r4, [sp+0x40]  // [V06 loc2]
+            bne     SHORT G_M42416_IG30
+                       ;; size=32 bbWeight=2 PerfScore 26.00
+G_M42416_IG27:        ; bbWeight=4, gcrefRegs=07A0 {r5 r7 r8 r9 r10}, byrefRegs=0000 {}, byref, isz
+            adds    r0, r7, r0
+            ; byrRegs +[r0]
+            ldr     r3, [r0+0x04]
             ldr     r12, [sp+0x3C] // [V07 loc3]
             add     r12, r12, 1
-            ldr     r0, [sp+0x24]  // [V50 cse6]
-            cmp     r0, r12
+            ldr     lr, [sp+0x24]  // [V50 cse6]
+            cmp     lr, r12
+            blo     G_M42416_IG42
             str     r12, [sp+0x3C] // [V07 loc3]
-            mov     r3, r1
-            ldr     r4, [sp+0x40]  // [V06 loc2]
-            blo     G_M42416_IG41
             b       SHORT G_M42416_IG23
-                       ;; size=34 bbWeight=4 PerfScore 48.00
-G_M42416_IG28:        ; bbWeight=2, gcrefRegs=00A0 {r5 r7}, byrefRegs=0040 {r6}, byref, isz
+                       ;; size=28 bbWeight=4 PerfScore 36.00
+G_M42416_IG28:        ; bbWeight=2, gcrefRegs=07A0 {r5 r7 r8 r9 r10}, byrefRegs=0000 {}, byref, isz
+            ; byrRegs -[r0]
+            ldr     r4, [sp+0x40]  // [V06 loc2]
...

-2 (-1.75%) : 25932.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)

@@ -72,9 +72,8 @@ G_M21922_IG06:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             ; byrRegs +[r3]
             ldr     r2, [r3+0x04]
             cmp     r2, -1
-            bge     SHORT G_M21922_IG07
-            b       SHORT G_M21922_IG03
-                       ;; size=36 bbWeight=2 PerfScore 32.00
+            blt     SHORT G_M21922_IG03
+                       ;; size=34 bbWeight=2 PerfScore 30.00
 G_M21922_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0009 {r0 r3}, byref
             ldr     r3, [r3+0x08]
             ; byrRegs -[r3]
@@ -100,7 +99,7 @@ G_M21922_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 114, prolog size 6, PerfScore 85.00, instruction count 48, allocated bytes for code 114 (MethodHash=7a0aaa5d) for method System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)
+; Total bytes of code 112, prolog size 6, PerfScore 83.00, instruction count 47, allocated bytes for code 112 (MethodHash=7a0aaa5d) for method System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -112,7 +111,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 57 (0x00039) Actual length = 114 (0x000072)
+  Function Length   : 56 (0x00038) Actual length = 112 (0x000070)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+6.19%) : 40364.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (Tier0-FullOpts)

@@ -9,54 +9,54 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T12] (  9,  6   )     ref  ->   r5         this class-hnd single-def <System.Collections.Generic.Dictionary`2[ulong,System.__Canon]>
-;  V01 arg1         [V01    ] ( 10, 12   )    long  ->  [sp+0x18]  ld-addr-op single-def
-;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->   r7        
+;  V01 arg1         [V01    ] ( 10, 12   )    long  ->  [sp+0x20]  ld-addr-op single-def
+;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  [sp+0x0C] 
 ;  V03 loc1         [V03,T19] (  3,  2   )   byref  ->   r0        
 ;  V04 loc2         [V04,T16] (  4,  3.50)     ref  ->   r6         class-hnd single-def <<unknown class>>
-;  V05 loc3         [V05,T14] (  3,  5   )     int  ->   r6        
-;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->   r0        
-;  V07 loc5         [V07,T13] (  3,  5   )     ref  ->   r2         class-hnd exact single-def <<unknown class>>
-;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->   r3        
-;  V09 loc7         [V09,T15] (  3,  5   )     int  ->   r8        
-;  V10 loc8         [V10,T02] (  6, 13.50)     int  ->   r7        
+;  V05 loc3         [V05,T14] (  3,  5   )     int  ->   r7        
+;  V06 loc4         [V06,T01] (  6, 13.50)     int  ->   r6        
+;  V07 loc5         [V07,T13] (  3,  5   )     ref  ->   r8         class-hnd exact single-def <<unknown class>>
+;  V08 loc6         [V08,T03] (  4, 12.50)     int  ->   r9        
+;  V09 loc7         [V09,T15] (  3,  5   )     int  ->   r7        
+;  V10 loc8         [V10,T02] (  6, 13.50)     int  ->   r8        
 ;  V11 loc9         [V11,T10] (  3,  8.50)     ref  ->   r5         class-hnd exact single-def <<unknown class>>
 ;  V12 loc10        [V12,T04] (  4, 12.50)     int  ->   r9        
 ;  V13 OutArgs      [V13    ] (  1,  1   )  struct ( 8) [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,T20] (  3,  1.50)     ref  ->   r4         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V16 tmp3         [V16,T20] (  3,  1.50)     ref  ->   r6         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;* V17 tmp4         [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V18 tmp5         [V18    ] (  0,  0   )    long  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V19 tmp6         [V19    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp7         [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp8         [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp9         [V22    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V23 tmp10        [V23,T21] (  3,  1.50)     ref  ->   r7         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V23 tmp10        [V23,T21] (  3,  1.50)     ref  ->   r4         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V24 tmp11        [V24,T17] (  3,  3   )     int  ->   r2         "index expr"
 ;  V25 tmp12        [V25,T18] (  3,  3   )     int  ->   r0         "index expr"
-;  V26 cse0         [V26,T22] (  3,  1.50)     int  ->   r7         "CSE - moderate"
-;  V27 cse1         [V27,T23] (  3,  1.50)     int  ->   r4         "CSE - moderate"
-;  V28 cse2         [V28,T11] (  3,  8.50)     int  ->   r1         hoist "CSE - aggressive"
+;  V26 cse0         [V26,T22] (  3,  1.50)     int  ->   r4         "CSE - moderate"
+;  V27 cse1         [V27,T23] (  3,  1.50)     int  ->   r8         "CSE - moderate"
+;  V28 cse2         [V28,T11] (  3,  8.50)     int  ->  r10         hoist "CSE - aggressive"
 ;  V29 cse3         [V29,T07] (  3, 12   )     int  ->  r10         "CSE - aggressive"
-;  V30 rat0         [V30,T08] (  6,  7   )     int  ->  [sp+0x18]  do-not-enreg[] "field V01.lo (fldOffset=0x0)" P-DEP
-;  V31 rat1         [V31,T09] (  6,  7   )     int  ->  [sp+0x1C]  do-not-enreg[] "field V01.hi (fldOffset=0x4)" P-DEP
-;  V32 rat2         [V32    ] (  1,  1   )    long  ->  [sp+0x10]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
+;  V30 rat0         [V30,T08] (  6,  7   )     int  ->  [sp+0x20]  do-not-enreg[] "field V01.lo (fldOffset=0x0)" P-DEP
+;  V31 rat1         [V31,T09] (  6,  7   )     int  ->  [sp+0x24]  do-not-enreg[] "field V01.hi (fldOffset=0x4)" P-DEP
+;  V32 rat2         [V32    ] (  1,  1   )    long  ->  [sp+0x18]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
 ;  V33 rat3         [V33,T24] (  2,  1.50)     int  ->   r0         "field V32.lo (fldOffset=0x0)" P-INDEP
 ;  V34 rat4         [V34,T25] (  2,  1.50)     int  ->   r1         "field V32.hi (fldOffset=0x4)" P-INDEP
 ;  V35 rat5         [V35,T05] (  3, 12   )   byref  ->   r0         "ReplaceWithLclVar is creating a new local variable"
-;  V36 rat6         [V36    ] (  1,  1   )    long  ->  [sp+0x08]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
+;  V36 rat6         [V36    ] (  1,  1   )    long  ->  [sp+0x10]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
 ;  V37 rat7         [V37,T26] (  2,  1.50)     int  ->   r0         "field V36.lo (fldOffset=0x0)" P-INDEP
 ;  V38 rat8         [V38,T27] (  2,  1.50)     int  ->   r1         "field V36.hi (fldOffset=0x4)" P-INDEP
 ;  V39 rat9         [V39,T06] (  3, 12   )   byref  ->   r3         "ReplaceWithLclVar is creating a new local variable"
 ;
-; Lcl frame size = 36
+; Lcl frame size = 44
 
 G_M35514_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            sub     sp, 36
-            add     r11, sp, 64
-            str     r2, [sp+0x18]
-            str     r3, [sp+0x1C]
+            sub     sp, 44
+            add     r11, sp, 72
+            str     r2, [sp+0x20]  // [V01 arg1]
+            str     r3, [sp+0x24]  // [V01 arg1+0x04]
             mov     r5, r0
             ; gcrRegs +[r5]
                        ;; size=16 bbWeight=1 PerfScore 6.00
@@ -64,7 +64,7 @@ G_M35514_IG02:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
             ldr     r0, [r5+0x04]
             ; gcrRegs +[r0]
             cmp     r0, 0
-            beq     G_M35514_IG18
+            beq     G_M35514_IG20
                        ;; size=8 bbWeight=1 PerfScore 3.00
 G_M35514_IG03:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
@@ -88,16 +88,14 @@ G_M35514_IG04:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b
             ; gcrRegs +[r6]
             cmp     r6, 0
             bne     SHORT G_M35514_IG10
-            ldr     r2, [sp+0x18]
-            ldr     r3, [sp+0x1C]
-            eor     r6, r2, r3
-            ; gcrRegs -[r6]
-            ldr     r4, [r5+0x04]
-            ; gcrRegs +[r4]
-            ldr     r7, [r4+0x04]
-            mov     r2, r7
+            ldr     r2, [sp+0x20]
+            ldr     r3, [sp+0x24]
+            eor     r7, r2, r3
+            ldr     r6, [r5+0x04]
+            ldr     r4, [r6+0x04]
+            mov     r2, r4
             movs    r3, 0
-            mov     r0, r6
+            mov     r0, r7
             movs    r1, 0
             movw    lr, 0xd1ff
             movt    lr, 0xd1ff
@@ -106,80 +104,81 @@ G_M35514_IG04:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b
             tst     r0, r0
             bmi     SHORT G_M35514_IG05
             tst     r1, r1
-            bne     SHORT G_M35514_IG19
+            bne     G_M35514_IG21
             b       SHORT G_M35514_IG06
-                       ;; size=46 bbWeight=0.50 PerfScore 10.00
-G_M35514_IG05:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
+                       ;; size=48 bbWeight=0.50 PerfScore 10.00
+G_M35514_IG05:        ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
             cmp     r1, -1
-            bne     SHORT G_M35514_IG19
-                       ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M35514_IG06:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            cmp     r0, r7
-            bhs     SHORT G_M35514_IG20
-            add     r2, r4, 8
+            bne     G_M35514_IG21
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M35514_IG06:        ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
+            cmp     r0, r4
+            bhs     G_M35514_IG22
+            add     r2, r6, 8
             ; byrRegs +[r2]
             lsls    r0, r0, 2
-            ldr     r0, [r2+r0]
-            ldr     r2, [r5+0x08]
-            ; gcrRegs +[r2]
+            ldr     r6, [r2+r0]
+            ; gcrRegs -[r6]
+            ldr     r8, [r5+0x08]
+            ; gcrRegs +[r8]
+            mov     r9, 0
+            subs    r6, r6, 1
+            ldr     r10, [r8+0x04]
+                       ;; size=28 bbWeight=0.50 PerfScore 4.50
+G_M35514_IG07:        ; bbWeight=4, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r5]
             ; byrRegs -[r2]
-            movs    r3, 0
-            subs    r0, r0, 1
-            ldr     r1, [r2+0x04]
-                       ;; size=20 bbWeight=0.50 PerfScore 4.50
-G_M35514_IG07:        ; bbWeight=4, gcrefRegs=0004 {r2}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r4-r5]
-            cmp     r1, r0
-            bls     SHORT G_M35514_IG18
-            mov     lr, 24
-            mul     r0, r0, lr
+            cmp     r10, r6
+            bls     SHORT G_M35514_IG20
+            movs    r0, 24
+            mul     r0, r6, r0
             adds    r0, 8
-            adds    r7, r2, r0
-            ; byrRegs +[r7]
-            ldr     r0, [r7+0x0C]
-            cmp     r0, r6
+            add     r5, r8, r0
+            ; byrRegs +[r5]
+            ldr     r0, [r5+0x0C]
+            cmp     r0, r7
             bne     SHORT G_M35514_IG09
                        ;; size=22 bbWeight=4 PerfScore 36.00
-G_M35514_IG08:        ; bbWeight=2, gcrefRegs=0004 {r2}, byrefRegs=0080 {r7}, byref, isz
-            mov     r0, r7
+G_M35514_IG08:        ; bbWeight=2, gcrefRegs=0100 {r8}, byrefRegs=0020 {r5}, byref, isz
+            mov     r0, r5
             ; byrRegs +[r0]
-            ldr     lr, [r0]
+            ldr     r2, [r0]
             ldr     r0, [r0+0x04]
             ; byrRegs -[r0]
-            ldr     r12, [sp+0x18]
-            ldr     r4, [sp+0x1C]
-            eor     lr, lr, r12
-            eors    r0, r4
-            orrs    r0, lr, r0
-            beq     SHORT G_M35514_IG16
-                       ;; size=26 bbWeight=2 PerfScore 18.00
-G_M35514_IG09:        ; bbWeight=4, gcrefRegs=0004 {r2}, byrefRegs=0080 {r7}, byref, isz
-            ldr     r0, [r7+0x10]
-            adds    r3, r3, 1
-            cmp     r1, r3
-            blo     SHORT G_M35514_IG21
+            ldr     r3, [sp+0x20]
+            ldr     r1, [sp+0x24]
+            eors    r2, r3
+            eors    r0, r1
+            orrs    r0, r2
+            beq     SHORT G_M35514_IG18
+                       ;; size=18 bbWeight=2 PerfScore 18.00
+G_M35514_IG09:        ; bbWeight=4, gcrefRegs=0100 {r8}, byrefRegs=0020 {r5}, byref, isz
+            ldr     r6, [r5+0x10]
+            add     r9, r9, 1
+            cmp     r10, r9
+            blo     SHORT G_M35514_IG23
             b       SHORT G_M35514_IG07
-                       ;; size=10 bbWeight=4 PerfScore 20.00
+                       ;; size=12 bbWeight=4 PerfScore 20.00
 G_M35514_IG10:        ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r2] +[r5-r6]
-            ; byrRegs -[r7]
+            ; gcrRegs -[r8] +[r5-r6]
+            ; byrRegs -[r5]
             mov     r0, r6
             ; gcrRegs +[r0]
-            ldr     r2, [sp+0x18]
-            ldr     r3, [sp+0x1C]
+            ldr     r2, [sp+0x20]
+            ldr     r3, [sp+0x24]
             movw    r4, 0xd1ff
             movt    r4, 0xd1ff
             ldr     r1, [r4]
             blx     r1     // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
-            mov     r8, r0
-            ldr     r7, [r5+0x04]
-            ; gcrRegs +[r7]
-            ldr     r4, [r7+0x04]
-            mov     r2, r4
+            mov     r7, r0
+            ldr     r4, [r5+0x04]
+            ; gcrRegs +[r4]
+            ldr     r8, [r4+0x04]
+            mov     r2, r8
             movs    r3, 0
-            mov     r0, r8
+            mov     r0, r7
             movs    r1, 0
             movw    lr, 0xd1ff
             movt    lr, 0xd1ff
@@ -188,46 +187,51 @@ G_M35514_IG10:        ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}
             tst     r0, r0
             bmi     SHORT G_M35514_IG11
             tst     r1, r1
-            bne     SHORT G_M35514_IG19
+            bne     SHORT G_M35514_IG21
...

+12 (+8.82%) : 45371.dasm - System.Collections.IterateForEach`1[System.Canon]:ImmutableArray():System.Canon:this (Tier0-FullOpts)

@@ -8,7 +8,7 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  4,  4   )     ref  ->   r4         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+;  V00 this         [V00,T01] (  5,  5   )     ref  ->   r4         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
 ;  V01 loc0         [V01,T06] (  3,  4   )     ref  ->   r5         ld-addr-op class-hnd <System.__Canon>
 ;  V02 loc1         [V02    ] (  2,  2   )  struct ( 4) [sp+0x08]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableArray`1[System.__Canon]>
 ;  V03 loc2         [V03    ] (  8, 33   )  struct ( 8) [sp+0x00]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableArray`1+Enumerator[System.__Canon]>
@@ -26,9 +26,9 @@
 ;  V15 rat0         [V15,T04] (  3,  4.40)     int  ->   r0         "Spilling to split statement for tree"
 ;  V16 rat1         [V16,T07] (  3,  4   )     int  ->   r2         "runtime lookup"
 ;  V17 rat2         [V17,T02] (  3,  5.60)     int  ->   r2         "fgMakeTemp is creating a new local variable"
-;* V18 rat3         [V18,T05] (  0,  0   )     int  ->  zero-ref    "Spilling to split statement for tree"
+;  V18 rat3         [V18,T05] (  2,  4   )     int  ->   r0         "Spilling to split statement for tree"
 ;* V19 rat4         [V19,T08] (  0,  0   )     int  ->  zero-ref    "runtime lookup"
-;* V20 rat5         [V20,T03] (  0,  0   )     int  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V20 rat5         [V20,T03] (  2,  4   )     int  ->   r0         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 16
 
@@ -78,8 +78,14 @@ G_M57349_IG05:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             ldr     r3, [r3]
             blx     r3     // System.Collections.Immutable.ImmutableArray`1[System.__Canon]:GetEnumerator():System.Collections.Immutable.ImmutableArray`1+Enumerator[System.__Canon]:this
             ; gcr arg pop 0
+            ldr     r0, [r4]
+            ldr     r0, [r0+0x24]
+            ldr     r0, [r0]
+            ldr     r0, [r0+0x14]
+            cmp     r0, 0
+            bne     SHORT G_M57349_IG07
             b       SHORT G_M57349_IG07
-                       ;; size=18 bbWeight=1 PerfScore 7.00
+                       ;; size=30 bbWeight=1 PerfScore 13.00
 G_M57349_IG06:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r5]
             ldr     r0, [sp+0x04]  // [V12 tmp7]
@@ -128,7 +134,7 @@ G_M57349_IG10:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byr
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 136, prolog size 24, PerfScore 106.00, instruction count 56, allocated bytes for code 136 (MethodHash=874a1ffa) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableArray():System.__Canon:this (Tier0-FullOpts)
+; Total bytes of code 148, prolog size 24, PerfScore 112.00, instruction count 62, allocated bytes for code 148 (MethodHash=874a1ffa) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableArray():System.__Canon:this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -140,7 +146,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 68 (0x00044) Actual length = 136 (0x000088)
+  Function Length   : 74 (0x0004a) Actual length = 148 (0x000094)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+12.35%) : 63411.dasm - System.Collections.IterateForEach`1[System.Canon]:ImmutableStack():System.Canon:this (Tier0-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  ->   r4         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+;  V00 this         [V00,T02] (  4,  4   )     ref  ->   r4         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
 ;  V01 loc0         [V01,T05] (  3,  4   )     ref  ->   r5         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 ( 8) [sp+0x00]  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 ( 8) [sp+0x04]  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 ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     int  ->  zero-ref    "spilling helperCall"
@@ -20,44 +20,52 @@
 ;* 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  ->   r0         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
 ;  V11 tmp6         [V11,T00] (  2, 32   )     ref  ->   r0         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
-;  V12 tmp7         [V12    ] (  2,  3   )     ref  ->  [sp+0x00]  do-not-enreg[X] addr-exposed "field V03._originalStack (fldOffset=0x0)" P-DEP
-;  V13 tmp8         [V13    ] (  9, 29   )     ref  ->  [sp+0x04]  do-not-enreg[X] addr-exposed "field V03._remainingStack (fldOffset=0x4)" P-DEP
+;  V12 tmp7         [V12    ] (  2,  3   )     ref  ->  [sp+0x04]  do-not-enreg[X] addr-exposed "field V03._originalStack (fldOffset=0x0)" P-DEP
+;  V13 tmp8         [V13    ] (  9, 29   )     ref  ->  [sp+0x08]  do-not-enreg[X] addr-exposed "field V03._remainingStack (fldOffset=0x4)" P-DEP
 ;* V14 cse0         [V14,T08] (  0,  0   )     int  ->  zero-ref    hoist "CSE - aggressive"
-;* V15 rat0         [V15,T04] (  0,  0   )     int  ->  zero-ref    "Spilling to split statement for tree"
+;  V15 rat0         [V15,T04] (  2,  4   )     int  ->   r0         "Spilling to split statement for tree"
 ;* V16 rat1         [V16,T06] (  0,  0   )     int  ->  zero-ref    "runtime lookup"
-;* V17 rat2         [V17,T03] (  0,  0   )     int  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V17 rat2         [V17,T03] (  2,  4   )     int  ->   r0         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 16
 
 G_M64146_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r2,r3,r4,r5,r11,lr}
-            add     r11, sp, 16
+            push    {r4,r5,r11,lr}
+            sub     sp, 16
+            add     r11, sp, 24
             movs    r1, 0
-            str     r1, [sp]   // [V03 loc2]
-            str     r1, [sp+0x04]  // [V03 loc2+0x04]
+            str     r1, [sp+0x04]  // [V03 loc2]
+            str     r1, [sp+0x08]  // [V03 loc2+0x04]
+            str     r0, [r11-0x0C]
             mov     r4, r0
             ; gcrRegs +[r4]
-                       ;; size=16 bbWeight=1 PerfScore 6.00
+                       ;; size=22 bbWeight=1 PerfScore 8.00
 G_M64146_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             movs    r5, 0
             ldr     r0, [r4+0x50]
             ; gcrRegs +[r0]
-            add     r1, sp, 0
+            add     r1, sp, 4
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             ldr     r2, [r0]
             blx     r3     // System.Collections.Immutable.ImmutableStack`1[System.__Canon]:GetEnumerator():System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]:this
             ; gcrRegs -[r0] +[r5]
+            ldr     r0, [r4]
+            ldr     r0, [r0+0x24]
+            ldr     r0, [r0]
+            ldr     r0, [r0+0x10]
+            cmp     r0, 0
+            bne     SHORT G_M64146_IG04
             b       SHORT G_M64146_IG04
-                       ;; size=22 bbWeight=1 PerfScore 9.00
+                       ;; size=34 bbWeight=1 PerfScore 15.00
 G_M64146_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r5]
-            ldr     r0, [sp+0x04]
+            ldr     r0, [sp+0x08]
             ; gcrRegs +[r0]
             cmp     r0, 0
             beq     SHORT G_M64146_IG10
-            ldr     r0, [sp+0x04]
+            ldr     r0, [sp+0x08]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -68,36 +76,36 @@ G_M64146_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
                        ;; size=24 bbWeight=2 PerfScore 20.00
 G_M64146_IG04:        ; bbWeight=8, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
-            ldr     r0, [sp+0x04]
+            ldr     r0, [sp+0x08]
             ; gcrRegs +[r0]
             cmp     r0, 0
             bne     SHORT G_M64146_IG06
                        ;; size=6 bbWeight=8 PerfScore 24.00
 G_M64146_IG05:        ; bbWeight=2, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
-            ldr     r0, [sp]
+            ldr     r0, [sp+0x04]
             ; gcrRegs +[r0]
-            str     r0, [sp+0x04]  // [V13 tmp8]
+            str     r0, [sp+0x08]  // [V13 tmp8]
             b       SHORT G_M64146_IG07
                        ;; size=6 bbWeight=2 PerfScore 6.00
 G_M64146_IG06:        ; bbWeight=2, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
-            ldr     r0, [sp+0x04]  // [V13 tmp8]
+            ldr     r0, [sp+0x08]  // [V13 tmp8]
             ; gcrRegs +[r0]
             ldr     r0, [r0+0x08]
             cmp     r0, 0
             beq     SHORT G_M64146_IG07
-            ldr     r0, [sp+0x04]  // [V13 tmp8]
+            ldr     r0, [sp+0x08]  // [V13 tmp8]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             ldr     r2, [r0]
             blx     r3     // System.Collections.Immutable.ImmutableStack`1[System.__Canon]:Pop():System.Collections.Immutable.ImmutableStack`1[System.__Canon]:this
-            str     r0, [sp+0x04]  // [V13 tmp8]
+            str     r0, [sp+0x08]  // [V13 tmp8]
                        ;; size=26 bbWeight=2 PerfScore 22.00
 G_M64146_IG07:        ; bbWeight=8, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
-            ldr     r0, [sp+0x04]  // [V13 tmp8]
+            ldr     r0, [sp+0x08]  // [V13 tmp8]
             ; gcrRegs +[r0]
             ldr     r0, [r0+0x08]
             cmp     r0, 0
@@ -109,8 +117,9 @@ G_M64146_IG08:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             ; gcrRegs +[r0]
                        ;; size=2 bbWeight=1 PerfScore 1.00
 G_M64146_IG09:        ; bbWeight=1, epilog, nogc, extend
-            pop     {r2,r3,r4,r5,r11,pc}
-                       ;; size=4 bbWeight=1 PerfScore 1.00
+            add     sp, 16
+            pop     {r4,r5,r11,pc}
+                       ;; size=6 bbWeight=1 PerfScore 2.00
 G_M64146_IG10:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0 r5]
             movw    r0, 0xd1ff
@@ -136,7 +145,7 @@ G_M64146_IG10:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byr
             bkpt    
                        ;; size=48 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 162, prolog size 14, PerfScore 121.00, instruction count 64, allocated bytes for code 162 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (Tier0-FullOpts)
+; Total bytes of code 182, prolog size 20, PerfScore 130.00, instruction count 73, allocated bytes for code 182 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -148,7 +157,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 81 (0x00051) Actual length = 162 (0x0000a2)
+  Function Length   : 91 (0x0005b) Actual length = 182 (0x0000b6)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -156,7 +165,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 3C       pop {r2,r3,r4,r5,r11,lr}            ; opsize 32
-    FF          end
+    04          add sp, sp, #16                     ; opsize 16
+    A8 30       pop {r4,r5,r11,lr}                  ; opsize 32
     FF          end
 

coreclr_tests.run.linux.arm.checked.mch

-14 (-10.45%) : 167706.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)

@@ -11,103 +11,105 @@
 ;
 ;  V00 arg0         [V00,T01] (  8,  4.78)     int  ->   r0         single-def
 ;  V01 arg1         [V01,T00] (  7,  5.11)     ref  ->   r1         class-hnd <System.Object>
-;  V02 loc0         [V02,T04] (  4,  3.11)     int  ->   r3        
-;  V03 loc1         [V03,T02] ( 10,  6   )     int  ->   r2        
-;  V04 loc2         [V04,T03] ( 10,  5.78)     int  ->   lr        
+;  V02 loc0         [V02,T04] (  4,  3.11)     int  ->   r4        
+;  V03 loc1         [V03,T02] ( 10,  6   )     int  ->   r5        
+;  V04 loc2         [V04,T03] ( 10,  5.78)     int  ->   r6        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 4
 
-G_M10596_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r11,lr}
-            mov     r11, sp
-                       ;; size=6 bbWeight=1 PerfScore 2.00
+G_M10596_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+            push    {r3,r4,r5,r6,r11,lr}
+            add     r11, sp, 16
+                       ;; size=8 bbWeight=1 PerfScore 2.00
 G_M10596_IG02:        ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r1]
             cmp     r1, 0
-            beq     SHORT G_M10596_IG07
-            ldr     r3, [r1]
-            ldrh    r2, [r3+0x0E]
-            cmp     r2, 0
             beq     SHORT G_M10596_IG06
-            ldr     lr, [r3+0x28]
-            cmp     r2, 4
-            blt     SHORT G_M10596_IG04
-                       ;; size=20 bbWeight=1 PerfScore 9.00
-G_M10596_IG03:        ; bbWeight=0, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
-            ldr     r12, [lr]
-            cmp     r12, r0
-            beq     SHORT G_M10596_IG07
-            ldr     r12, [lr+0x04]
-            cmp     r12, r0
-            beq     SHORT G_M10596_IG07
-            ldr     r12, [lr+0x08]
-            cmp     r12, r0
-            beq     SHORT G_M10596_IG07
-            ldr     r12, [lr+0x0C]
-            cmp     r12, r0
-            beq     SHORT G_M10596_IG07
-            add     lr, lr, 16
-            subs    r2, r2, 4
-            cmp     r2, 4
-            bge     SHORT G_M10596_IG03
-            cmp     r2, 0
+            ldr     r4, [r1]
+            ldrh    r5, [r4+0x0E]
+            cmp     r5, 0
+            beq     SHORT G_M10596_IG05
+            ldr     r6, [r4+0x28]
+            cmp     r5, 4
+            bge     SHORT G_M10596_IG10
+                       ;; size=18 bbWeight=1 PerfScore 9.00
+G_M10596_IG03:        ; bbWeight=2.78, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
+            ldr     r3, [r6]
+            cmp     r3, r0
             beq     SHORT G_M10596_IG06
-                       ;; size=46 bbWeight=0 PerfScore 0.00
-G_M10596_IG04:        ; bbWeight=2.78, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
-            ldr     r12, [lr]
-            cmp     r12, r0
-            beq     SHORT G_M10596_IG07
-                       ;; size=8 bbWeight=2.78 PerfScore 8.33
-G_M10596_IG05:        ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
-            add     lr, lr, 4
-            subs    r2, r2, 1
-            cmp     r2, 0
-            bgt     SHORT G_M10596_IG04
-                       ;; size=10 bbWeight=1 PerfScore 4.00
-G_M10596_IG06:        ; bbWeight=0.11, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
-            ldr     lr, [r3]
+                       ;; size=6 bbWeight=2.78 PerfScore 8.33
+G_M10596_IG04:        ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
+            adds    r6, r6, 4
+            subs    r5, r5, 1
+            cmp     r5, 0
+            bgt     SHORT G_M10596_IG03
+                       ;; size=8 bbWeight=1 PerfScore 4.00
+G_M10596_IG05:        ; bbWeight=0.11, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
+            ldr     r3, [r4]
             movw    r2, 0xd1ff
             movt    r2, 0xd1ff
-            ands    r3, lr, r2
+            ands    r3, r2
             cmp     r3, 0
-            bne     SHORT G_M10596_IG09
+            bne     SHORT G_M10596_IG08
             movs    r1, 0
             ; gcrRegs -[r1]
-                       ;; size=22 bbWeight=0.11 PerfScore 0.78
-G_M10596_IG07:        ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref
+                       ;; size=18 bbWeight=0.11 PerfScore 0.78
+G_M10596_IG06:        ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref
             ; gcrRegs +[r1]
             mov     r0, r1
             ; gcrRegs +[r0]
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M10596_IG08:        ; bbWeight=1, epilog, nogc, extend
-            pop     {r11,pc}
+G_M10596_IG07:        ; bbWeight=1, epilog, nogc, extend
+            pop     {r3,r4,r5,r6,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M10596_IG09:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, gcvars, byref
+G_M10596_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M10596_IG10:        ; bbWeight=0, epilog, nogc, extend
-            pop     {r11,lr}
+G_M10596_IG09:        ; bbWeight=0, epilog, nogc, extend
+            add     sp, 4
+            pop     {r4,r5,r6,r11,lr}
             bx      r3     // <unknown method>
             ; gcr arg pop 0
-                       ;; size=6 bbWeight=0 PerfScore 0.00
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M10596_IG10:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     r3, [r6]
+            cmp     r3, r0
+            beq     SHORT G_M10596_IG06
+            ldr     r3, [r6+0x04]
+            cmp     r3, r0
+            beq     SHORT G_M10596_IG06
+            ldr     r3, [r6+0x08]
+            cmp     r3, r0
+            beq     SHORT G_M10596_IG06
+            ldr     r3, [r6+0x0C]
+            cmp     r3, r0
+            beq     SHORT G_M10596_IG06
+            adds    r6, 16
+            subs    r5, r5, 4
+            cmp     r5, 4
+            bge     SHORT G_M10596_IG10
+            cmp     r5, 0
+            beq     SHORT G_M10596_IG05
+            b       SHORT G_M10596_IG03
+                       ;; size=38 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 134, prolog size 6, PerfScore 26.11, instruction count 50, allocated bytes for code 134 (MethodHash=701ad69b) for method System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
+; Total bytes of code 120, prolog size 8, PerfScore 26.11, instruction count 52, allocated bytes for code 120 (MethodHash=701ad69b) for method System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 1
+  Code Words        : 2
   Epilog Count      : 2
   F bit             : 0
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 67 (0x00043) Actual length = 134 (0x000086)
+  Function Length   : 60 (0x0003c) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -116,10 +118,14 @@ Unwind Info:
   ---- Scope 1
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
   Condition                  : 14 (0xe) (always)
-  Epilog Start Index         : 0 (0x00)
+  Epilog Start Index         : 3 (0x03)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 00       pop {r11,lr}                        ; opsize 32
+    A8 78       pop {r3,r4,r5,r6,r11,lr}            ; opsize 32
+    FF          end
+    ---- Epilog start at index 3 ----
+    01          add sp, sp, #4                      ; opsize 16
+    A8 70       pop {r4,r5,r6,r11,lr}               ; opsize 32
     FF          end
     FF          end
 

-14 (-10.45%) : 213435.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)

@@ -11,103 +11,105 @@
 ;
 ;  V00 arg0         [V00,T01] (  8, 10.33)     int  ->   r0         single-def
 ;  V01 arg1         [V01,T03] (  7,  6   )     ref  ->   r1         class-hnd <System.Object>
-;  V02 loc0         [V02,T04] (  4,  4   )     int  ->   r3        
-;  V03 loc1         [V03,T02] ( 10,  9   )     int  ->   r2        
-;  V04 loc2         [V04,T00] ( 10, 13.33)     int  ->   lr        
+;  V02 loc0         [V02,T04] (  4,  4   )     int  ->   r4        
+;  V03 loc1         [V03,T02] ( 10,  9   )     int  ->   r5        
+;  V04 loc2         [V04,T00] ( 10, 13.33)     int  ->   r6        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 4
 
-G_M10596_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r11,lr}
-            mov     r11, sp
-                       ;; size=6 bbWeight=1 PerfScore 2.00
+G_M10596_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+            push    {r3,r4,r5,r6,r11,lr}
+            add     r11, sp, 16
+                       ;; size=8 bbWeight=1 PerfScore 2.00
 G_M10596_IG02:        ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r1]
             cmp     r1, 0
-            beq     SHORT G_M10596_IG07
-            ldr     r3, [r1]
-            ldrh    r2, [r3+0x0E]
-            cmp     r2, 0
             beq     SHORT G_M10596_IG06
-            ldr     lr, [r3+0x28]
-            cmp     r2, 4
-            blt     SHORT G_M10596_IG04
-                       ;; size=20 bbWeight=1 PerfScore 9.00
-G_M10596_IG03:        ; bbWeight=0, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
-            ldr     r12, [lr]
-            cmp     r12, r0
-            beq     SHORT G_M10596_IG07
-            ldr     r12, [lr+0x04]
-            cmp     r12, r0
-            beq     SHORT G_M10596_IG07
-            ldr     r12, [lr+0x08]
-            cmp     r12, r0
-            beq     SHORT G_M10596_IG07
-            ldr     r12, [lr+0x0C]
-            cmp     r12, r0
-            beq     SHORT G_M10596_IG07
-            add     lr, lr, 16
-            subs    r2, r2, 4
-            cmp     r2, 4
-            bge     SHORT G_M10596_IG03
-            cmp     r2, 0
+            ldr     r4, [r1]
+            ldrh    r5, [r4+0x0E]
+            cmp     r5, 0
+            beq     SHORT G_M10596_IG05
+            ldr     r6, [r4+0x28]
+            cmp     r5, 4
+            bge     SHORT G_M10596_IG10
+                       ;; size=18 bbWeight=1 PerfScore 9.00
+G_M10596_IG03:        ; bbWeight=8.33, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
+            ldr     r3, [r6]
+            cmp     r3, r0
             beq     SHORT G_M10596_IG06
-                       ;; size=46 bbWeight=0 PerfScore 0.00
-G_M10596_IG04:        ; bbWeight=8.33, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
-            ldr     r12, [lr]
-            cmp     r12, r0
-            beq     SHORT G_M10596_IG07
-                       ;; size=8 bbWeight=8.33 PerfScore 25.00
-G_M10596_IG05:        ; bbWeight=2, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
-            add     lr, lr, 4
-            subs    r2, r2, 1
-            cmp     r2, 0
-            bgt     SHORT G_M10596_IG04
-                       ;; size=10 bbWeight=2 PerfScore 8.00
-G_M10596_IG06:        ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
-            ldr     lr, [r3]
+                       ;; size=6 bbWeight=8.33 PerfScore 25.00
+G_M10596_IG04:        ; bbWeight=2, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
+            adds    r6, r6, 4
+            subs    r5, r5, 1
+            cmp     r5, 0
+            bgt     SHORT G_M10596_IG03
+                       ;; size=8 bbWeight=2 PerfScore 8.00
+G_M10596_IG05:        ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
+            ldr     r3, [r4]
             movw    r2, 0xd1ff
             movt    r2, 0xd1ff
-            ands    r3, lr, r2
+            ands    r3, r2
             cmp     r3, 0
-            bne     SHORT G_M10596_IG09
+            bne     SHORT G_M10596_IG08
             movs    r1, 0
             ; gcrRegs -[r1]
-                       ;; size=22 bbWeight=1 PerfScore 7.00
-G_M10596_IG07:        ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref
+                       ;; size=18 bbWeight=1 PerfScore 7.00
+G_M10596_IG06:        ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref
             ; gcrRegs +[r1]
             mov     r0, r1
             ; gcrRegs +[r0]
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M10596_IG08:        ; bbWeight=1, epilog, nogc, extend
-            pop     {r11,pc}
+G_M10596_IG07:        ; bbWeight=1, epilog, nogc, extend
+            pop     {r3,r4,r5,r6,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M10596_IG09:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, gcvars, byref
+G_M10596_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M10596_IG10:        ; bbWeight=0, epilog, nogc, extend
-            pop     {r11,lr}
+G_M10596_IG09:        ; bbWeight=0, epilog, nogc, extend
+            add     sp, 4
+            pop     {r4,r5,r6,r11,lr}
             bx      r3     // <unknown method>
             ; gcr arg pop 0
-                       ;; size=6 bbWeight=0 PerfScore 0.00
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M10596_IG10:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     r3, [r6]
+            cmp     r3, r0
+            beq     SHORT G_M10596_IG06
+            ldr     r3, [r6+0x04]
+            cmp     r3, r0
+            beq     SHORT G_M10596_IG06
+            ldr     r3, [r6+0x08]
+            cmp     r3, r0
+            beq     SHORT G_M10596_IG06
+            ldr     r3, [r6+0x0C]
+            cmp     r3, r0
+            beq     SHORT G_M10596_IG06
+            adds    r6, 16
+            subs    r5, r5, 4
+            cmp     r5, 4
+            bge     SHORT G_M10596_IG10
+            cmp     r5, 0
+            beq     SHORT G_M10596_IG05
+            b       SHORT G_M10596_IG03
+                       ;; size=38 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 134, prolog size 6, PerfScore 53.00, instruction count 50, allocated bytes for code 134 (MethodHash=701ad69b) for method System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
+; Total bytes of code 120, prolog size 8, PerfScore 53.00, instruction count 52, allocated bytes for code 120 (MethodHash=701ad69b) for method System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 1
+  Code Words        : 2
   Epilog Count      : 2
   F bit             : 0
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 67 (0x00043) Actual length = 134 (0x000086)
+  Function Length   : 60 (0x0003c) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -116,10 +118,14 @@ Unwind Info:
   ---- Scope 1
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
   Condition                  : 14 (0xe) (always)
-  Epilog Start Index         : 0 (0x00)
+  Epilog Start Index         : 3 (0x03)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 00       pop {r11,lr}                        ; opsize 32
+    A8 78       pop {r3,r4,r5,r6,r11,lr}            ; opsize 32
+    FF          end
+    ---- Epilog start at index 3 ----
+    01          add sp, sp, #4                      ; opsize 16
+    A8 70       pop {r4,r5,r6,r11,lr}               ; opsize 32
     FF          end
     FF          end
 

-14 (-10.45%) : 139916.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)

@@ -11,103 +11,105 @@
 ;
 ;  V00 arg0         [V00,T01] (  8,102   )     int  ->   r0         single-def
 ;  V01 arg1         [V01,T03] (  7,  6   )     ref  ->   r1         class-hnd <System.Object>
-;  V02 loc0         [V02,T04] (  4,  4   )     int  ->   r3        
-;  V03 loc1         [V03,T02] ( 10,  9   )     int  ->   r2        
-;  V04 loc2         [V04,T00] ( 10,105   )     int  ->   lr        
+;  V02 loc0         [V02,T04] (  4,  4   )     int  ->   r4        
+;  V03 loc1         [V03,T02] ( 10,  9   )     int  ->   r5        
+;  V04 loc2         [V04,T00] ( 10,105   )     int  ->   r6        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 4
 
-G_M10596_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r11,lr}
-            mov     r11, sp
-                       ;; size=6 bbWeight=1 PerfScore 2.00
+G_M10596_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+            push    {r3,r4,r5,r6,r11,lr}
+            add     r11, sp, 16
+                       ;; size=8 bbWeight=1 PerfScore 2.00
 G_M10596_IG02:        ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r1]
             cmp     r1, 0
-            beq     SHORT G_M10596_IG07
-            ldr     r3, [r1]
-            ldrh    r2, [r3+0x0E]
-            cmp     r2, 0
             beq     SHORT G_M10596_IG06
-            ldr     lr, [r3+0x28]
-            cmp     r2, 4
-            blt     SHORT G_M10596_IG04
-                       ;; size=20 bbWeight=1 PerfScore 9.00
-G_M10596_IG03:        ; bbWeight=0, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
-            ldr     r12, [lr]
-            cmp     r12, r0
-            beq     SHORT G_M10596_IG07
-            ldr     r12, [lr+0x04]
-            cmp     r12, r0
-            beq     SHORT G_M10596_IG07
-            ldr     r12, [lr+0x08]
-            cmp     r12, r0
-            beq     SHORT G_M10596_IG07
-            ldr     r12, [lr+0x0C]
-            cmp     r12, r0
-            beq     SHORT G_M10596_IG07
-            add     lr, lr, 16
-            subs    r2, r2, 4
-            cmp     r2, 4
-            bge     SHORT G_M10596_IG03
-            cmp     r2, 0
+            ldr     r4, [r1]
+            ldrh    r5, [r4+0x0E]
+            cmp     r5, 0
+            beq     SHORT G_M10596_IG05
+            ldr     r6, [r4+0x28]
+            cmp     r5, 4
+            bge     SHORT G_M10596_IG10
+                       ;; size=18 bbWeight=1 PerfScore 9.00
+G_M10596_IG03:        ; bbWeight=100, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
+            ldr     r3, [r6]
+            cmp     r3, r0
             beq     SHORT G_M10596_IG06
-                       ;; size=46 bbWeight=0 PerfScore 0.00
-G_M10596_IG04:        ; bbWeight=100, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
-            ldr     r12, [lr]
-            cmp     r12, r0
-            beq     SHORT G_M10596_IG07
-                       ;; size=8 bbWeight=100 PerfScore 300.00
-G_M10596_IG05:        ; bbWeight=2, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
-            add     lr, lr, 4
-            subs    r2, r2, 1
-            cmp     r2, 0
-            bgt     SHORT G_M10596_IG04
-                       ;; size=10 bbWeight=2 PerfScore 8.00
-G_M10596_IG06:        ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
-            ldr     lr, [r3]
+                       ;; size=6 bbWeight=100 PerfScore 300.00
+G_M10596_IG04:        ; bbWeight=2, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
+            adds    r6, r6, 4
+            subs    r5, r5, 1
+            cmp     r5, 0
+            bgt     SHORT G_M10596_IG03
+                       ;; size=8 bbWeight=2 PerfScore 8.00
+G_M10596_IG05:        ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
+            ldr     r3, [r4]
             movw    r2, 0xd1ff
             movt    r2, 0xd1ff
-            ands    r3, lr, r2
+            ands    r3, r2
             cmp     r3, 0
-            bne     SHORT G_M10596_IG09
+            bne     SHORT G_M10596_IG08
             movs    r1, 0
             ; gcrRegs -[r1]
-                       ;; size=22 bbWeight=1 PerfScore 7.00
-G_M10596_IG07:        ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref
+                       ;; size=18 bbWeight=1 PerfScore 7.00
+G_M10596_IG06:        ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref
             ; gcrRegs +[r1]
             mov     r0, r1
             ; gcrRegs +[r0]
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M10596_IG08:        ; bbWeight=1, epilog, nogc, extend
-            pop     {r11,pc}
+G_M10596_IG07:        ; bbWeight=1, epilog, nogc, extend
+            pop     {r3,r4,r5,r6,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M10596_IG09:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, gcvars, byref
+G_M10596_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M10596_IG10:        ; bbWeight=0, epilog, nogc, extend
-            pop     {r11,lr}
+G_M10596_IG09:        ; bbWeight=0, epilog, nogc, extend
+            add     sp, 4
+            pop     {r4,r5,r6,r11,lr}
             bx      r3     // <unknown method>
             ; gcr arg pop 0
-                       ;; size=6 bbWeight=0 PerfScore 0.00
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M10596_IG10:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     r3, [r6]
+            cmp     r3, r0
+            beq     SHORT G_M10596_IG06
+            ldr     r3, [r6+0x04]
+            cmp     r3, r0
+            beq     SHORT G_M10596_IG06
+            ldr     r3, [r6+0x08]
+            cmp     r3, r0
+            beq     SHORT G_M10596_IG06
+            ldr     r3, [r6+0x0C]
+            cmp     r3, r0
+            beq     SHORT G_M10596_IG06
+            adds    r6, 16
+            subs    r5, r5, 4
+            cmp     r5, 4
+            bge     SHORT G_M10596_IG10
+            cmp     r5, 0
+            beq     SHORT G_M10596_IG05
+            b       SHORT G_M10596_IG03
+                       ;; size=38 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 134, prolog size 6, PerfScore 328.00, instruction count 50, allocated bytes for code 134 (MethodHash=701ad69b) for method System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
+; Total bytes of code 120, prolog size 8, PerfScore 328.00, instruction count 52, allocated bytes for code 120 (MethodHash=701ad69b) for method System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 1
+  Code Words        : 2
   Epilog Count      : 2
   F bit             : 0
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 67 (0x00043) Actual length = 134 (0x000086)
+  Function Length   : 60 (0x0003c) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -116,10 +118,14 @@ Unwind Info:
   ---- Scope 1
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
   Condition                  : 14 (0xe) (always)
-  Epilog Start Index         : 0 (0x00)
+  Epilog Start Index         : 3 (0x03)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 00       pop {r11,lr}                        ; opsize 32
+    A8 78       pop {r3,r4,r5,r6,r11,lr}            ; opsize 32
+    FF          end
+    ---- Epilog start at index 3 ----
+    01          add sp, sp, #4                      ; opsize 16
+    A8 70       pop {r4,r5,r6,r11,lr}               ; opsize 32
     FF          end
     FF          end
 

+38 (+38.00%) : 424180.dasm - Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)

@@ -9,16 +9,16 @@
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V01 arg1         [V01,T03] (  3,  3   )     int  ->   r1         single-def
+;  V01 arg1         [V01,T05] (  3,  3   )     int  ->   r1         single-def
 ;* V02 arg2         [V02    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V03 arg3         [V03,T01] (  4,  4   )     ref  ->   r3         class-hnd single-def <double[]>
+;  V03 arg3         [V03,T03] (  4,  4   )     ref  ->   r3         class-hnd single-def <double[]>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T00] (  2, 16   )     ref  ->   r0         class-hnd exact "NewObj constructor temp" <Test.AA>
-;* V06 cse0         [V06,T06] (  0,  0   )   float  ->  zero-ref    "CSE - aggressive"
-;  V07 cse1         [V07,T02] (  2,  2   )  double  ->  f16:f17     "CSE - aggressive"
-;  V08 cse2         [V08,T04] (  2,  5   )   float  ->  f18         hoist "CSE - aggressive"
-;* V09 cse3         [V09,T07] (  0,  0   )   float  ->  zero-ref    hoist "CSE - aggressive"
-;  V10 cse4         [V10,T05] (  2,  5   )     int  ->   r4         hoist "CSE - aggressive"
+;  V05 tmp1         [V05,T01] (  2, 16   )     ref  ->   r0         class-hnd exact "NewObj constructor temp" <Test.AA>
+;  V06 cse0         [V06,T00] (  4, 16   )   float  ->   f0         "CSE - aggressive"
+;  V07 cse1         [V07,T04] (  3,  6   )  double  ->  f16:f17     "CSE - aggressive"
+;  V08 cse2         [V08,T02] (  3,  9   )   float  ->  f18         hoist "CSE - aggressive"
+;  V09 cse3         [V09,T06] (  2,  5   )   float  ->  f19         hoist "CSE - aggressive"
+;  V10 cse4         [V10,T07] (  2,  5   )     int  ->   r4         hoist "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -43,7 +43,10 @@ G_M18129_IG02:        ; bbWeight=1, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byre
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             vmov.i2f s18, r0
-                       ;; size=44 bbWeight=1 PerfScore 14.00
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
+            vmov.i2f s19, r0
+                       ;; size=56 bbWeight=1 PerfScore 17.00
 G_M18129_IG03:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r3]
             mov     r0, r4
@@ -53,8 +56,15 @@ G_M18129_IG03:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[r0]
             ; gcr arg pop 0
             vstr    s18, [r0+0x04]
+            vcvt.d2f s0, d8
+            vsub    s8, s18, s0
+            vadd    s0, s0, s0
+            vadd    s0, s8, s0
+            vcmp    s0, s19
+            vmrs    APSR, FPSCR
+            beq     SHORT G_M18129_IG03
             b       SHORT G_M18129_IG03
-                       ;; size=18 bbWeight=4 PerfScore 24.00
+                       ;; size=44 bbWeight=4 PerfScore 52.00
 G_M18129_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r0]
             movs    r3, 0
@@ -72,7 +82,7 @@ G_M18129_IG06:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 100, prolog size 12, PerfScore 45.00, instruction count 31, allocated bytes for code 100 (MethodHash=704ab92e) for method Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
+; Total bytes of code 138, prolog size 12, PerfScore 76.00, instruction count 41, allocated bytes for code 138 (MethodHash=704ab92e) for method Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -84,7 +94,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 100 (0x000064)
+  Function Length   : 69 (0x00045) Actual length = 138 (0x00008a)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+30 (+39.47%) : 409273.dasm - Test10w250d.testout1:Func01111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_1():float (FullOpts)

@@ -8,47 +8,62 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T00] (  3,  3   )   float  ->  [sp+0x04]  spill-single-def
+;  V00 loc0         [V00,T00] (  5,  4   )   float  ->  f16         single-def
 ;* V01 loc1         [V01    ] (  0,  0   )   float  ->  zero-ref   
 ;* V02 loc2         [V02    ] (  0,  0   )   float  ->  zero-ref   
 ;* V03 loc3         [V03    ] (  0,  0   )   float  ->  zero-ref   
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 cse0         [V05,T01] (  2,  2   )   float  ->   f8         "CSE - aggressive"
+;  V05 cse0         [V05,T01] (  4,  3   )   float  ->   f8         "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M28447_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r2,r3,r11,lr}
+            push    {r11,lr}
+            vpush   {d8-d8}
             add     r11, sp, 8
-                       ;; size=8 bbWeight=1 PerfScore 2.00
+                       ;; size=12 bbWeight=1 PerfScore 3.00
 G_M28447_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // 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():float
-            vstr    s0, [sp+0x04]
+            vmov    s16, s0
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             vmov.i2f s8, r0
-            vcmp    s0, s8
+            vcmp    s16, s8
             vmrs    APSR, FPSCR
-            bhi     SHORT G_M28447_IG04
+            bhi     SHORT G_M28447_IG07
                        ;; size=38 bbWeight=1 PerfScore 11.00
-G_M28447_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            pop     {r2,r3,r11,pc}
+G_M28447_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            vcmp    s16, s8
+            vmrs    APSR, FPSCR
+            blt     SHORT G_M28447_IG06
+                       ;; size=10 bbWeight=0.50 PerfScore 1.50
+G_M28447_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            vmov    s0, s16
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M28447_IG04:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M28447_IG05:        ; bbWeight=1, epilog, nogc, extend
+            vpop    {d8-d8}
+            pop     {r11,pc}
+                       ;; size=8 bbWeight=1 PerfScore 2.00
+G_M28447_IG06:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            vcmp    s16, s8
+            vmrs    APSR, FPSCR
+            ble     SHORT G_M28447_IG04
+            b       SHORT G_M28447_IG04
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+G_M28447_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            vldr    s0, [sp+0x04]  // [V00 loc0]
-            b       SHORT G_M28447_IG03
-                       ;; size=26 bbWeight=0.50 PerfScore 4.00
+            b       SHORT G_M28447_IG04
+                       ;; size=22 bbWeight=0.50 PerfScore 3.50
 
-; Total bytes of code 76, prolog size 8, PerfScore 18.00, instruction count 22, allocated bytes for code 76 (MethodHash=2d4290e0) 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():float (FullOpts)
+; Total bytes of code 106, prolog size 12, PerfScore 24.00, instruction count 31, allocated bytes for code 106 (MethodHash=2d4290e0) 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():float (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -60,7 +75,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 38 (0x00026) Actual length = 76 (0x00004c)
+  Function Length   : 53 (0x00035) Actual length = 106 (0x00006a)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -68,7 +83,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 0C       pop {r2,r3,r11,lr}                  ; opsize 32
-    FF          end
+    E0          vpop {d8}                           ; opsize 32
+    A8 00       pop {r11,lr}                        ; opsize 32
     FF          end
 

+40 (+250.00%) : 413157.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)

@@ -2,48 +2,65 @@
 ; Emitting BLENDED_CODE for generic ARM - Unix
 ; FullOpts code
 ; optimized code
-; sp based frame
+; r11 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  ->   f0         single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V02 cse0         [V02,T01] (  3,  2.50)   float  ->   f8         "CSE - aggressive"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M53663_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,lr}
-                       ;; size=2 bbWeight=1 PerfScore 1.00
-G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            push    {r11,lr}
+            mov     r11, sp
+                       ;; size=6 bbWeight=1 PerfScore 2.00
+G_M53663_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // 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
-                       ;; size=12 bbWeight=1 PerfScore 4.00
-G_M53663_IG03:        ; bbWeight=1, epilog, nogc, extend
-            pop     {r3,pc}
-                       ;; size=2 bbWeight=1 PerfScore 1.00
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            vmov.i2f s8, r3
+            vcmp    s0, s8
+            vmrs    APSR, FPSCR
+            bhs     SHORT G_M53663_IG04
+                       ;; size=34 bbWeight=1 PerfScore 10.00
+G_M53663_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            pop     {r11,pc}
+                       ;; size=4 bbWeight=1 PerfScore 1.00
+G_M53663_IG04:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            vcmp    s0, s8
+            vmrs    APSR, FPSCR
+            bne     SHORT G_M53663_IG03
+            b       SHORT G_M53663_IG03
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 16, prolog size 2, PerfScore 6.00, 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 56, prolog size 6, PerfScore 15.00, instruction count 17, allocated bytes for code 56 (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:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Code Words        : 1
-  Epilog Count      : 0
+  Epilog Count      : 1
   F bit             : 0
-  E bit             : 1
+  E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 8 (0x00008) Actual length = 16 (0x000010)
-  --- One epilog, unwind codes at 0
+  Function Length   : 28 (0x0001c) Actual length = 56 (0x000038)
+  ---- Epilog scopes ----
+  ---- Scope 0
+  Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+  Condition                  : 14 (0xe) (always)
+  Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    ED 08       pop {r3,lr}                         ; opsize 16
+    A8 00       pop {r11,lr}                        ; opsize 32
     FF          end
     FF          end
 

libraries.crossgen2.linux.arm.checked.mch

-4 (-3.45%) : 78827.dasm - Microsoft.Diagnostics.Tracing.Ctf.CtfEnum:GetName(int):System.String:this (FullOpts)

@@ -11,16 +11,16 @@
 ;
 ;  V00 this         [V00,T08] (  3,  3   )     ref  ->   r0         this class-hnd single-def <Microsoft.Diagnostics.Tracing.Ctf.CtfEnum>
 ;  V01 arg1         [V01,T02] (  4, 14   )     int  ->   r1         single-def
-;  V02 loc0         [V02,T05] (  3, 10   )     ref  ->   r0         class-hnd exact single-def <Microsoft.Diagnostics.Tracing.Ctf.CtfNamedRange[]>
-;  V03 loc1         [V03,T01] (  5, 21   )     int  ->   r3        
+;  V02 loc0         [V02,T05] (  3, 10   )     ref  ->   r3         class-hnd exact single-def <Microsoft.Diagnostics.Tracing.Ctf.CtfNamedRange[]>
+;  V03 loc1         [V03,T01] (  5, 21   )     int  ->   r2        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (12) zero-ref    <Microsoft.Diagnostics.Tracing.Ctf.CtfNamedRange>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06,T09] (  3,  0   )     ref  ->   r5         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V07 tmp2         [V07,T06] (  2,  9   )     ref  ->  r12         "field V04.Name (fldOffset=0x0)" P-INDEP
 ;  V08 tmp3         [V08,T03] (  2, 16   )     int  ->   r4         "field V04.Begin (fldOffset=0x4)" P-INDEP
-;  V09 tmp4         [V09,T04] (  2, 12   )     int  ->   lr         "field V04.End (fldOffset=0x8)" P-INDEP
-;  V10 tmp5         [V10,T00] (  4, 64   )   byref  ->   lr         "BlockOp address local"
-;  V11 cse0         [V11,T07] (  3,  6   )     int  ->   r2         "CSE - aggressive"
+;  V09 tmp4         [V09,T04] (  2, 12   )     int  ->   r0         "field V04.End (fldOffset=0x8)" P-INDEP
+;  V10 tmp5         [V10,T00] (  4, 64   )   byref  ->   r0         "BlockOp address local"
+;  V11 cse0         [V11,T07] (  3,  6   )     int  ->   lr         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -30,39 +30,41 @@ G_M8684_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=8 bbWeight=1 PerfScore 2.00
 G_M8684_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r0]
-            ldr     r0, [r0+0x10]
-            movs    r3, 0
-            ldr     r2, [r0+0x04]
-            cmp     r2, 0
+            ldr     r3, [r0+0x10]
+            ; gcrRegs +[r3]
+            movs    r2, 0
+            ldr     lr, [r3+0x04]
+            cmp     lr, 0
             ble     SHORT G_M8684_IG08
-                       ;; size=10 bbWeight=1 PerfScore 5.00
-G_M8684_IG03:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
-            mov     lr, 12
-            mul     lr, r3, lr
-            add     lr, lr, 8
-            add     lr, r0
-            ; byrRegs +[lr]
-            ldr     r12, [lr]
+                       ;; size=14 bbWeight=1 PerfScore 5.00
+G_M8684_IG03:        ; bbWeight=8, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r0]
+            movs    r0, 12
+            mul     r0, r2, r0
+            adds    r0, 8
+            adds    r0, r3, r0
+            ; byrRegs +[r0]
+            ldr     r12, [r0]
             ; gcrRegs +[r12]
-            ldr     r4, [lr+0x04]
-            ldr     lr, [lr+0x08]
-            ; byrRegs -[lr]
+            ldr     r4, [r0+0x04]
+            ldr     r0, [r0+0x08]
+            ; byrRegs -[r0]
             cmp     r4, r1
             bgt     SHORT G_M8684_IG05
-                       ;; size=30 bbWeight=8 PerfScore 72.00
-G_M8684_IG04:        ; bbWeight=4, gcrefRegs=1001 {r0 r12}, byrefRegs=0000 {}, byref, isz
-            cmp     r1, lr
+                       ;; size=22 bbWeight=8 PerfScore 72.00
+G_M8684_IG04:        ; bbWeight=4, gcrefRegs=1008 {r3 r12}, byrefRegs=0000 {}, byref, isz
+            cmp     r1, r0
             ble     SHORT G_M8684_IG06
                        ;; size=4 bbWeight=4 PerfScore 8.00
-G_M8684_IG05:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+G_M8684_IG05:        ; bbWeight=4, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r12]
-            adds    r3, r3, 1
-            cmp     r2, r3
+            adds    r2, r2, 1
+            cmp     lr, r2
             ble     SHORT G_M8684_IG08
             b       SHORT G_M8684_IG03
                        ;; size=8 bbWeight=4 PerfScore 16.00
 G_M8684_IG06:        ; bbWeight=1, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r0] +[r12]
+            ; gcrRegs -[r3] +[r12]
             mov     r0, r12
             ; gcrRegs +[r0]
                        ;; size=2 bbWeight=1 PerfScore 1.00
@@ -100,7 +102,7 @@ G_M8684_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefR
             bkpt    
                        ;; size=50 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 116, prolog size 8, PerfScore 105.00, instruction count 43, allocated bytes for code 116 (MethodHash=c8d5de13) for method Microsoft.Diagnostics.Tracing.Ctf.CtfEnum:GetName(int):System.String:this (FullOpts)
+; Total bytes of code 112, prolog size 8, PerfScore 105.00, instruction count 43, allocated bytes for code 112 (MethodHash=c8d5de13) for method Microsoft.Diagnostics.Tracing.Ctf.CtfEnum:GetName(int):System.String:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -112,7 +114,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 58 (0x0003a) Actual length = 116 (0x000074)
+  Function Length   : 56 (0x00038) Actual length = 112 (0x000070)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-16 (-2.23%) : 126370.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.Canon,System.Canon]:FindValue(System.__Canon):byref:this (FullOpts)

@@ -14,8 +14,8 @@
 ;  V02 loc0         [V02,T00] ( 10, 29   )   byref  ->  registers  
 ;  V03 loc1         [V03,T27] (  3,  2   )   byref  ->   r0        
 ;  V04 loc2         [V04,T13] (  4,  3.50)     ref  ->   r7         class-hnd single-def <<unknown class>>
-;  V05 loc3         [V05,T10] (  3,  5   )     int  ->   r7         single-def
-;  V06 loc4         [V06,T04] (  6, 13.50)     int  ->   r8        
+;  V05 loc3         [V05,T10] (  3,  5   )     int  ->   r8         single-def
+;  V06 loc4         [V06,T04] (  6, 13.50)     int  ->   r7        
 ;  V07 loc5         [V07    ] (  4, 12.50)  struct ( 8) [sp+0x34]  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,T06] (  4, 12.50)     int  ->   r9        
 ;  V09 loc7         [V09,T26] (  2,  2.50)     ref  ->  r10         class-hnd single-def <<unknown class>>
@@ -47,7 +47,7 @@
 ;  V35 tmp21        [V35    ] (  4, 12.50)     int  ->  [sp+0x38]  do-not-enreg[X] addr-exposed "field V07._length (fldOffset=0x4)" P-DEP
 ;  V36 tmp22        [V36    ] (  2,  4.50)     ref  ->  [sp+0x2C]  do-not-enreg[X] addr-exposed "field V12._items (fldOffset=0x0)" P-DEP
 ;  V37 tmp23        [V37    ] (  4, 12.50)     int  ->  [sp+0x30]  do-not-enreg[X] addr-exposed "field V12._length (fldOffset=0x4)" P-DEP
-;  V38 tmp24        [V38,T29] (  3,  1.50)     ref  ->   r8         single-def "field V18._items (fldOffset=0x0)" P-INDEP
+;  V38 tmp24        [V38,T29] (  3,  1.50)     ref  ->   r7         single-def "field V18._items (fldOffset=0x0)" P-INDEP
 ;  V39 tmp25        [V39,T35] (  2,  1   )     int  ->   r4         single-def "field V18._length (fldOffset=0x4)" P-INDEP
 ;  V40 tmp26        [V40,T30] (  3,  1.50)     ref  ->   r9         single-def "field V26._items (fldOffset=0x0)" P-INDEP
 ;  V41 tmp27        [V41,T36] (  2,  1   )     int  ->   r4         single-def "field V26._length (fldOffset=0x4)" P-INDEP
@@ -120,16 +120,16 @@ G_M65447_IG03:        ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}
             ldr     r3, [r4]
             blx     r3     // <unknown method>
             ; gcrRegs -[r0 r7]
-            mov     r7, r0
-            ldr     r8, [r5+0x2C]
-            ; gcrRegs +[r8]
+            mov     r8, r0
+            ldr     r7, [r5+0x2C]
+            ; gcrRegs +[r7]
             ldr     r4, [r5+0x30]
             add     r1, r5, 8
             ; byrRegs +[r1]
             ldr     r0, [r1]
             ldr     r1, [r1+0x04]
             ; byrRegs -[r1]
-            mov     r2, r7
+            mov     r2, r8
             movs    r3, 0
             movw    lr, LOW RELOC 0xD1FFAB1E
             movt    lr, HIGH RELOC 0xD1FFAB1E
@@ -144,8 +144,8 @@ G_M65447_IG03:        ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}
             mov     r0, r1
             mov     r1, r2
             mov     r2, r4
-                       ;; size=78 bbWeight=0.50 PerfScore 15.00
-G_M65447_IG04:        ; bbWeight=0.50, gcrefRegs=0160 {r5 r6 r8}, byrefRegs=0000 {}, byref, isz
+                       ;; size=76 bbWeight=0.50 PerfScore 15.00
+G_M65447_IG04:        ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref, isz
             movw    lr, LOW RELOC 0xD1FFAB1E
             movt    lr, HIGH RELOC 0xD1FFAB1E
             add     lr, pc
@@ -161,10 +161,10 @@ G_M65447_IG04:        ; bbWeight=0.50, gcrefRegs=0160 {r5 r6 r8}, byrefRegs=0000
             ldr     r3, [r0+0x174]
             and     r3, r3, 31
             asr     r3, r9, r3
-            ldr     r2, [r8+0x04]
+            ldr     r2, [r7+0x04]
             cmp     r3, r2
             bhs     G_M65447_IG21
-            add     r2, r8, 8
+            add     r2, r7, 8
             ; byrRegs +[r2]
             lsls    r3, r3, 2
             ldr     r3, [r2+r3]
@@ -180,9 +180,9 @@ G_M65447_IG04:        ; bbWeight=0.50, gcrefRegs=0160 {r5 r6 r8}, byrefRegs=0000
             ; gcrRegs -[r3]
             ; byrRegs +[r3]
             lsls    r0, r0, 2
-            ldr     r8, [r3+r0]
-            ; gcrRegs -[r8]
-                       ;; size=86 bbWeight=0.50 PerfScore 14.00
+            ldr     r7, [r3+r0]
+            ; gcrRegs -[r7]
+                       ;; size=82 bbWeight=0.50 PerfScore 14.00
 G_M65447_IG05:        ; bbWeight=0.50, nogc, extend
             ldr     r0, [r5+0x34]
             str     r0, [sp+0x34]
@@ -207,12 +207,12 @@ G_M65447_IG06:        ; bbWeight=0.50, extend
             ; gcrRegs +[r0]
             mov     r10, r0
             ; gcrRegs +[r10]
-            add     r8, r8, -1
-                       ;; size=44 bbWeight=0.50 PerfScore 7.50
+            subs    r7, r7, 1
+                       ;; size=42 bbWeight=0.50 PerfScore 7.50
 G_M65447_IG07:        ; bbWeight=4, gcrefRegs=0460 {r5 r6 r10}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
             ldr     r0, [sp+0x38]
-            cmp     r8, r0
+            cmp     r7, r0
             bhs     G_M65447_IG20
             ldr     r0, [r5]
             movw    r4, LOW RELOC 0xD1FFAB1E
@@ -222,22 +222,22 @@ G_M65447_IG07:        ; bbWeight=4, gcrefRegs=0460 {r5 r6 r10}, byrefRegs=0000 {
             blx     r3     // CORINFO_HELP_READYTORUN_GENERIC_HANDLE
             mov     r1, r0
             add     r0, sp, 52
-            mov     r2, r8
+            mov     r2, r7
             movw    r4, LOW RELOC 0xD1FFAB1E
             movt    r4, HIGH RELOC 0xD1FFAB1E
             add     r4, pc
             ldr     r3, [r4]
             blx     r3     // Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[System.__Canon,System.__Canon]]:get_Item(int):byref:this
             ; byrRegs +[r0]
-            mov     r8, r0
-            ; byrRegs +[r8]
-            ldr     r1, [r8+0x08]
-            cmp     r1, r7
+            mov     r7, r0
+            ; byrRegs +[r7]
+            ldr     r1, [r7+0x08]
+            cmp     r1, r8
             bne     SHORT G_M65447_IG09
-                       ;; size=54 bbWeight=4 PerfScore 84.00
-G_M65447_IG08:        ; bbWeight=2, gcrefRegs=0460 {r5 r6 r10}, byrefRegs=0100 {r8}, byref, isz
+                       ;; size=52 bbWeight=4 PerfScore 84.00
+G_M65447_IG08:        ; bbWeight=2, gcrefRegs=0460 {r5 r6 r10}, byrefRegs=0080 {r7}, byref, isz
             ; byrRegs -[r0]
-            ldr     r1, [r8]
+            ldr     r1, [r7]
             ; gcrRegs +[r1]
             mov     r0, r10
             ; gcrRegs +[r0]
@@ -252,16 +252,16 @@ G_M65447_IG08:        ; bbWeight=2, gcrefRegs=0460 {r5 r6 r10}, byrefRegs=0100 {
             ; gcrRegs -[r0-r2]
             cmp     r0, 0
             bne     G_M65447_IG18
-                       ;; size=32 bbWeight=2 PerfScore 22.00
-G_M65447_IG09:        ; bbWeight=4, gcrefRegs=0460 {r5 r6 r10}, byrefRegs=0100 {r8}, byref, isz
-            ldr     r8, [r8+0x0C]
-            ; byrRegs -[r8]
+                       ;; size=30 bbWeight=2 PerfScore 22.00
+G_M65447_IG09:        ; bbWeight=4, gcrefRegs=0460 {r5 r6 r10}, byrefRegs=0080 {r7}, byref, isz
+            ldr     r7, [r7+0x0C]
+            ; byrRegs -[r7]
             add     r9, r9, 1
             ldr     r0, [sp+0x38]
             cmp     r9, r0
             bhi     G_M65447_IG23
             b       SHORT G_M65447_IG07
-                       ;; size=18 bbWeight=4 PerfScore 24.00
+                       ;; size=16 bbWeight=4 PerfScore 24.00
 G_M65447_IG10:        ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r10] +[r7]
             ldr     r10, [r5]
@@ -409,24 +409,24 @@ G_M65447_IG16:        ; bbWeight=4, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0200 {r
             adds    r4, r4, 1
             ldr     r0, [sp+0x30]  // [V37 tmp23]
             cmp     r4, r0
-            str     r4, [sp+0x28]  // [V13 loc11]
             bhi     SHORT G_M65447_IG23
+            str     r4, [sp+0x28]  // [V13 loc11]
             b       SHORT G_M65447_IG14
                        ;; size=18 bbWeight=4 PerfScore 32.00
 G_M65447_IG17:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0200 {r9}, byref
             ; gcrRegs -[r6-r7]
             ; byrRegs +[r9]
-            mov     r8, r9
-            ; byrRegs +[r8]
+            mov     r7, r9
+            ; byrRegs +[r7]
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M65447_IG18:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0100 {r8}, byref
+G_M65447_IG18:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0080 {r7}, byref
             ; byrRegs -[r9]
-            ldrsb   r0, [r8]
-            add     r0, r8, 4
+            ldrsb   r0, [r7]
+            adds    r0, r7, 4
             ; byrRegs +[r0]
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+                       ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M65447_IG19:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0001 {r0}, byref, epilog, nogc
-            ; byrRegs -[r8]
+            ; byrRegs -[r7]
             add     sp, 68
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=6 bbWeight=1 PerfScore 2.00
@@ -460,7 +460,7 @@ G_M65447_IG23:        ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
             bkpt    
                        ;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 718, prolog size 24, PerfScore 368.50, instruction count 269, allocated bytes for code 718 (MethodHash=66130058) for method Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (FullOpts)
+; Total bytes of code 702, prolog size 24, PerfScore 368.50, instruction count 269, allocated bytes for code 702 (MethodHash=66130058) for method Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -472,7 +472,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 359 (0x00167) Actual length = 718 (0x0002ce)
+  Function Length   : 351 (0x0015f) Actual length = 702 (0x0002be)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-2 (-2.17%) : 185550.dasm - System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)

@@ -48,9 +48,8 @@ G_M9062_IG06:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, b
             cmp     r1, 0x400
             beq     SHORT G_M9062_IG04
             cmp     r1, 0x600
-            bne     SHORT G_M9062_IG07
-            b       SHORT G_M9062_IG04
-                       ;; size=14 bbWeight=0.50 PerfScore 2.50
+            beq     SHORT G_M9062_IG04
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M9062_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r0]
             mov     r0, r1
@@ -69,7 +68,7 @@ G_M9062_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=32 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 92, prolog size 8, PerfScore 15.50, instruction count 32, allocated bytes for code 92 (MethodHash=f1e0dc99) for method System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
+; Total bytes of code 90, prolog size 8, PerfScore 15.00, instruction count 31, allocated bytes for code 90 (MethodHash=f1e0dc99) for method System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -81,7 +80,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 46 (0x0002e) Actual length = 92 (0x00005c)
+  Function Length   : 45 (0x0002d) Actual length = 90 (0x00005a)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+10.53%) : 159627.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)

@@ -8,7 +8,7 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  5,  3   )     int  ->   r5         single-def
+;  V00 arg0         [V00,T00] (  7,  3   )     int  ->   r5         single-def
 ;  V01 arg1         [V01,T01] (  4,  2   )     ref  ->   r6         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  ->   r7         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -26,7 +26,7 @@ G_M40495_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=12 bbWeight=1 PerfScore 4.00
 G_M40495_IG02:        ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
             cmp     r5, 354
-            bne     SHORT G_M40495_IG04
+            bne     SHORT G_M40495_IG06
                        ;; size=6 bbWeight=1 PerfScore 2.00
 G_M40495_IG03:        ; bbWeight=1, epilog, nogc, extend
             pop     {r4,r5,r6,r7,r11,pc}
@@ -96,10 +96,19 @@ G_M40495_IG05:        ; bbWeight=0, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byre
             ldr     r3, [r3]
             blx     r3     // CORINFO_HELP_THROW
             ; gcrRegs -[r0 r7]
-            bkpt    
-                       ;; size=58 bbWeight=0 PerfScore 0.00
+                       ;; size=56 bbWeight=0 PerfScore 0.00
+G_M40495_IG06:        ; bbWeight=0, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r6]
+            movw    r3, 0xd1ff
+            cmp     r5, r3
+            beq     SHORT G_M40495_IG04
+            movw    r3, 0xd1ff
+            cmp     r5, r3
+            beq     SHORT G_M40495_IG04
+            b       SHORT G_M40495_IG04
+                       ;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 152, prolog size 8, PerfScore 7.00, instruction count 56, allocated bytes for code 152 (MethodHash=165c61d0) for method System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 168, prolog size 8, PerfScore 7.00, instruction count 62, allocated bytes for code 168 (MethodHash=165c61d0) for method System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -111,7 +120,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 76 (0x0004c) Actual length = 152 (0x000098)
+  Function Length   : 84 (0x00054) Actual length = 168 (0x0000a8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+22 (+14.86%) : 50823.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  ->   r5         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
+;  V00 arg0         [V00,T00] (  5,  4   )     ref  ->   r5         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
 ;  V01 arg1         [V01,T01] (  4,  3   )     ref  ->   r6         class-hnd single-def <System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]>
 ;  V02 loc0         [V02,T03] (  4,  2   )     ref  ->   r0         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDagFieldEvaluation>
 ;  V03 loc1         [V03,T05] (  3,  1.50)     ref  ->   r8         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol>
@@ -40,10 +40,23 @@ G_M26195_IG02:        ; bbWeight=1, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, b
             mov     r7, r0
             ; gcrRegs +[r7]
             cmp     r7, 0
-            beq     SHORT G_M26195_IG05
+            bne     SHORT G_M26195_IG04
                        ;; size=22 bbWeight=1 PerfScore 9.00
-G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r0]
+G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r0 r7]
+            mov     r0, r5
+            ; gcrRegs +[r0]
+            movw    r4, LOW RELOC 0xD1FFAB1E
+            movt    r4, HIGH RELOC 0xD1FFAB1E
+            add     r4, pc
+            ldr     r3, [r4]
+            blx     r3     // CORINFO_HELP_READYTORUN_ISINSTANCEOF
+            cmp     r0, 0
+            bne     SHORT G_M26195_IG06
+            b       SHORT G_M26195_IG06
+                       ;; size=22 bbWeight=0.50 PerfScore 4.50
+G_M26195_IG04:        ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r0] +[r7]
             ldr     r0, [r7+0x0C]
             ; gcrRegs +[r0]
             movw    r4, LOW RELOC 0xD1FFAB1E
@@ -52,12 +65,12 @@ G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000
             ldr     r3, [r4]
             blx     r3     // CORINFO_HELP_READYTORUN_ISINSTANCEOF
             cmp     r0, 0
-            beq     SHORT G_M26195_IG05
+            beq     SHORT G_M26195_IG06
             ldr     r3, [r0+0x0C]
             ; gcrRegs +[r3]
             ldr     r3, [r3+0x10]
             cmp     r3, 0
-            bne     SHORT G_M26195_IG05
+            bne     SHORT G_M26195_IG06
             ldr     r8, [r0+0x10]
             ; gcrRegs +[r8]
             mov     r0, r8
@@ -69,7 +82,7 @@ G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000
             ; gcrRegs -[r3]
             blx     r3     // <unknown method>
             cmp     r0, 0
-            beq     SHORT G_M26195_IG05
+            beq     SHORT G_M26195_IG06
             mov     r0, r8
             movw    r4, LOW RELOC 0xD1FFAB1E
             movt    r4, HIGH RELOC 0xD1FFAB1E
@@ -88,10 +101,10 @@ G_M26195_IG03:        ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000
             blx     r3     // <unknown method>
             ; gcrRegs -[r1 r6-r7]
                        ;; size=88 bbWeight=0.50 PerfScore 17.50
-G_M26195_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r3,r4,r5,r6,r7,r8,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M26195_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, gcvars, byref
+G_M26195_IG06:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0] +[r5-r6]
             mov     r1, r6
             ; gcrRegs +[r1]
@@ -104,11 +117,11 @@ G_M26195_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0060 {r5 r6
             blx     r3     // <unknown method>
             ; gcrRegs -[r1 r5-r6]
                        ;; size=18 bbWeight=0.50 PerfScore 3.50
-G_M26195_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r3,r4,r5,r6,r7,r8,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 148, prolog size 8, PerfScore 35.00, instruction count 57, allocated bytes for code 148 (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 170, prolog size 8, PerfScore 39.50, instruction count 66, allocated bytes for code 170 (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 +133,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 74 (0x0004a) Actual length = 148 (0x000094)
+  Function Length   : 85 (0x00055) Actual length = 170 (0x0000aa)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+15.38%) : 159701.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  ->   r5         single-def
+;  V00 arg0         [V00,T00] (  9,  4   )     int  ->   r5         single-def
 ;  V01 arg1         [V01,T01] (  4,  2   )     ref  ->   r6         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  ->   r7         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -26,9 +26,9 @@ G_M20631_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=12 bbWeight=1 PerfScore 4.00
 G_M20631_IG02:        ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
             cmp     r5, 452
-            bgt     SHORT G_M20631_IG04
+            bgt     SHORT G_M20631_IG07
             cmp     r5, 250
-            bne     SHORT G_M20631_IG04
+            bne     SHORT G_M20631_IG06
                        ;; size=10 bbWeight=1 PerfScore 4.00
 G_M20631_IG03:        ; bbWeight=1, epilog, nogc, extend
             pop     {r4,r5,r6,r7,r11,pc}
@@ -98,10 +98,24 @@ G_M20631_IG05:        ; bbWeight=0, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byre
             ldr     r3, [r3]
             blx     r3     // CORINFO_HELP_THROW
             ; gcrRegs -[r0 r7]
-            bkpt    
-                       ;; size=58 bbWeight=0 PerfScore 0.00
+                       ;; size=56 bbWeight=0 PerfScore 0.00
+G_M20631_IG06:        ; bbWeight=0, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r6]
+            subw    r3, r5, 451
+            cmp     r3, 1
+            bls     SHORT G_M20631_IG04
+            b       SHORT G_M20631_IG04
+                       ;; size=10 bbWeight=0 PerfScore 0.00
+G_M20631_IG07:        ; bbWeight=0, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
+            cmp     r5, 552
+            beq     SHORT G_M20631_IG04
+            movw    r3, 0xd1ff
+            cmp     r5, r3
+            beq     SHORT G_M20631_IG04
+            b       SHORT G_M20631_IG04
+                       ;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 156, prolog size 8, PerfScore 9.00, instruction count 58, allocated bytes for code 156 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 180, prolog size 8, PerfScore 9.00, instruction count 67, allocated bytes for code 180 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -113,7 +127,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 78 (0x0004e) Actual length = 156 (0x00009c)
+  Function Length   : 90 (0x0005a) Actual length = 180 (0x0000b4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries.pmi.linux.arm.checked.mch

-10 (-23.81%) : 206628.dasm - Microsoft.Build.BackEnd.SchedulingData:GetBlockedRequestIfAny(int):Microsoft.Build.BackEnd.SchedulableRequest:this (FullOpts)

@@ -2,7 +2,7 @@
 ; Emitting BLENDED_CODE for generic ARM - Unix
 ; FullOpts code
 ; optimized code
-; r11 based frame
+; sp based frame
 ; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
@@ -10,18 +10,17 @@
 ;
 ;  V00 this         [V00,T01] (  3,  3   )     ref  ->   r0         this class-hnd single-def <Microsoft.Build.BackEnd.SchedulingData>
 ;  V01 arg1         [V01,T02] (  3,  3   )     int  ->   r1         single-def
-;  V02 loc0         [V02,T04] (  2,  0.66)     ref  ->   r0         ld-addr-op class-hnd <Microsoft.Build.BackEnd.SchedulableRequest>
+;  V02 loc0         [V02,T04] (  2,  1   )     ref  ->   r0         ld-addr-op class-hnd <Microsoft.Build.BackEnd.SchedulableRequest>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04,T05] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V05 tmp2         [V05,T00] (  3,  6   )     ref  ->   r0         class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V06 tmp3         [V06,T03] (  3,  2.16)   byref  ->   r0         single-def "Inline stloc first use temp"
+;  V06 tmp3         [V06,T03] (  3,  2.50)   byref  ->   r0         single-def "Inline stloc first use temp"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 4
 
 G_M11913_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r11,lr}
-            mov     r11, sp
-                       ;; size=6 bbWeight=1 PerfScore 2.00
+            push    {r3,lr}
+                       ;; size=2 bbWeight=1 PerfScore 1.00
 G_M11913_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r0]
             ldr     r0, [r0+0x08]
@@ -32,28 +31,27 @@ G_M11913_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byre
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
+            ; gcr arg pop 0
             cmp     r0, 0
-            beq     SHORT G_M11913_IG04
+            beq     SHORT G_M11913_IG05
                        ;; size=22 bbWeight=1 PerfScore 8.00
-G_M11913_IG03:        ; bbWeight=0.16, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
+G_M11913_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref
             ldr     r0, [r0]
             ; gcrRegs +[r0]
             ; byrRegs -[r0]
-            b       SHORT G_M11913_IG06
-                       ;; size=4 bbWeight=0.16 PerfScore 0.33
-G_M11913_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M11913_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r3,pc}
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M11913_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0]
             movs    r0, 0
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M11913_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r11,pc}
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M11913_IG06:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs +[r0]
-            pop     {r11,pc}
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
+G_M11913_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r3,pc}
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 42, prolog size 6, PerfScore 11.83, instruction count 15, allocated bytes for code 42 (MethodHash=ea3ad176) for method Microsoft.Build.BackEnd.SchedulingData:GetBlockedRequestIfAny(int):Microsoft.Build.BackEnd.SchedulableRequest:this (FullOpts)
+; Total bytes of code 32, prolog size 2, PerfScore 11.00, instruction count 13, allocated bytes for code 32 (MethodHash=ea3ad176) for method Microsoft.Build.BackEnd.SchedulingData:GetBlockedRequestIfAny(int):Microsoft.Build.BackEnd.SchedulableRequest:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -65,7 +63,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 21 (0x00015) Actual length = 42 (0x00002a)
+  Function Length   : 16 (0x00010) Actual length = 32 (0x000020)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -77,7 +75,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 00       pop {r11,lr}                        ; opsize 32
+    ED 08       pop {r3,lr}                         ; opsize 16
     FF          end
     FF          end
 

-18 (-23.68%) : 244403.dasm - System.IO.Packaging.OrderedDictionary2[long,System.Nullable1[int]]:TryGetValue(long,byref):ubyte:this (FullOpts)

@@ -2,7 +2,7 @@
 ; Emitting BLENDED_CODE for generic ARM - Unix
 ; FullOpts code
 ; optimized code
-; r11 based frame
+; sp based frame
 ; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
@@ -10,25 +10,23 @@
 ;
 ;  V00 this         [V00,T01] (  3,  3   )     ref  ->   r0         this class-hnd single-def <System.IO.Packaging.OrderedDictionary`2[long,System.Nullable`1[int]]>
 ;  V01 arg1         [V01    ] (  4,  4   )    long  ->  [sp+0x00]  single-def
-;  V02 arg2         [V02,T06] (  2,  1   )   byref  ->  [sp+0x18]  single-def
-;  V03 loc0         [V03,T05] (  2,  0.61)     ref  ->   r3         ld-addr-op class-hnd <System.Collections.Generic.LinkedListNode`1[System.Nullable`1[int]]>
+;  V02 arg2         [V02,T06] (  2,  1   )   byref  ->  [sp+0x10]  single-def
+;  V03 loc0         [V03,T05] (  2,  1   )     ref  ->   r0         ld-addr-op class-hnd <System.Collections.Generic.LinkedListNode`1[System.Nullable`1[int]]>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V06 tmp2         [V06,T00] (  3,  6   )     ref  ->   r0         class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V07 tmp3         [V07,T04] (  3,  2.11)   byref  ->   r0         single-def "Inline stloc first use temp"
+;  V07 tmp3         [V07,T04] (  3,  2.50)   byref  ->   r0         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]]>
 ;  V09 rat0         [V09,T02] (  3,  3   )     int  ->  [sp+0x00]  do-not-enreg[] "field V01.lo (fldOffset=0x0)" P-DEP
 ;  V10 rat1         [V10,T03] (  3,  3   )     int  ->  [sp+0x04]  do-not-enreg[] "field V01.hi (fldOffset=0x4)" P-DEP
 ;
-; Lcl frame size = 12
+; Lcl frame size = 8
 
-G_M63935_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r4,r11,lr}
-            sub     sp, 12
-            add     r11, sp, 16
+G_M63935_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+            push    {r2,r3,r4,lr}
             str     r2, [sp]   // [V01 arg1]
             str     r3, [sp+0x04]  // [V01 arg1+0x04]
-                       ;; size=14 bbWeight=1 PerfScore 5.00
+                       ;; size=6 bbWeight=1 PerfScore 3.00
 G_M63935_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r0]
             ldr     r0, [r0+0x04]
@@ -41,44 +39,40 @@ G_M63935_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byre
             blx     r1     // <unknown method>
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
+            ; gcr arg pop 0
             cmp     r0, 0
-            beq     SHORT G_M63935_IG04
+            beq     SHORT G_M63935_IG05
                        ;; size=26 bbWeight=1 PerfScore 10.00
-G_M63935_IG03:        ; bbWeight=0.11, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
-            ldr     r3, [r0]
-            ; gcrRegs +[r3]
-            b       SHORT G_M63935_IG06
-                       ;; size=4 bbWeight=0.11 PerfScore 0.21
-G_M63935_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r3]
+G_M63935_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref
+            ldr     r0, [r0]
+            ; gcrRegs +[r0]
             ; byrRegs -[r0]
+            ldr     r4, [sp+0x10]  // [V02 arg2]
+            ; byrRegs +[r4]
+            ldr     r3, [r0+0x10]
+            str     r3, [r4]
+            ldr     r3, [r0+0x14]
+            str     r3, [r4+0x04]
+            movs    r0, 1
+            ; gcrRegs -[r0]
+                       ;; size=14 bbWeight=0.50 PerfScore 3.50
+G_M63935_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r2,r3,r4,pc}
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M63935_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; byrRegs -[r4]
             movs    r0, 0
-            ldr     r4, [sp+0x18]  // [V02 arg2]
+            ldr     r4, [sp+0x10]  // [V02 arg2]
             ; byrRegs +[r4]
             str     r0, [r4]
             str     r0, [r4+0x04]
                        ;; size=8 bbWeight=0.50 PerfScore 2.00
-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 -[r4]
-            add     sp, 12
-            pop     {r4,r11,pc}
-                       ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M63935_IG06:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[r3]
-            ldr     r4, [sp+0x18]  // [V02 arg2]
-            ; byrRegs +[r4]
-            ldr     r0, [r3+0x10]
-            str     r0, [r4]
-            ldr     r0, [r3+0x14]
-            str     r0, [r4+0x04]
-            movs    r0, 1
-                       ;; size=12 bbWeight=0.50 PerfScore 3.00
-G_M63935_IG07:        ; bbWeight=0.50, epilog, nogc, extend
-            add     sp, 12
-            pop     {r4,r11,pc}
-                       ;; size=6 bbWeight=0.50 PerfScore 1.00
+            pop     {r2,r3,r4,pc}
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 76, prolog size 10, PerfScore 22.21, instruction count 31, allocated bytes for code 76 (MethodHash=0a220640) for method System.IO.Packaging.OrderedDictionary`2[long,System.Nullable`1[int]]:TryGetValue(long,byref):ubyte:this (FullOpts)
+; Total bytes of code 58, prolog size 2, PerfScore 19.50, instruction count 26, allocated bytes for code 58 (MethodHash=0a220640) for method System.IO.Packaging.OrderedDictionary`2[long,System.Nullable`1[int]]:TryGetValue(long,byref):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -90,7 +84,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 38 (0x00026) Actual length = 76 (0x00004c)
+  Function Length   : 29 (0x0001d) Actual length = 58 (0x00003a)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -102,7 +96,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    03          add sp, sp, #12                     ; opsize 16
-    A8 10       pop {r4,r11,lr}                     ; opsize 32
+    ED 1C       pop {r2,r3,r4,lr}                   ; opsize 16
+    FF          end
     FF          end
 

-12 (-20.00%) : 244391.dasm - System.IO.Packaging.OrderedDictionary2[int,System.Nullable1[int]]:TryGetValue(int,byref):ubyte:this (FullOpts)

@@ -2,7 +2,7 @@
 ; Emitting BLENDED_CODE for generic ARM - Unix
 ; FullOpts code
 ; optimized code
-; r11 based frame
+; sp based frame
 ; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
@@ -11,21 +11,20 @@
 ;  V00 this         [V00,T02] (  3,  3   )     ref  ->   r0         this class-hnd single-def <System.IO.Packaging.OrderedDictionary`2[int,System.Nullable`1[int]]>
 ;  V01 arg1         [V01,T03] (  3,  3   )     int  ->   r1         single-def
 ;  V02 arg2         [V02,T01] (  4,  3   )   byref  ->   r4         single-def
-;  V03 loc0         [V03,T05] (  2,  0.66)     ref  ->   r3         ld-addr-op class-hnd <System.Collections.Generic.LinkedListNode`1[System.Nullable`1[int]]>
+;  V03 loc0         [V03,T05] (  2,  1   )     ref  ->   r0         ld-addr-op class-hnd <System.Collections.Generic.LinkedListNode`1[System.Nullable`1[int]]>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+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  ->   r0         class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V07 tmp3         [V07,T04] (  3,  2.16)   byref  ->   r0         single-def "Inline stloc first use temp"
+;  V07 tmp3         [V07,T04] (  3,  2.50)   byref  ->   r0         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 = 4
+; Lcl frame size = 0
 
-G_M14175_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r3,r4,r11,lr}
-            add     r11, sp, 8
+G_M14175_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+            push    {r4,lr}
             mov     r4, r2
             ; byrRegs +[r4]
-                       ;; size=10 bbWeight=1 PerfScore 3.00
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M14175_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, byref, isz
             ; gcrRegs +[r0]
             ldr     r0, [r0+0x04]
@@ -36,39 +35,35 @@ G_M14175_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, by
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
+            ; gcr arg pop 0
             cmp     r0, 0
-            beq     SHORT G_M14175_IG04
+            beq     SHORT G_M14175_IG05
                        ;; size=22 bbWeight=1 PerfScore 8.00
-G_M14175_IG03:        ; bbWeight=0.16, gcrefRegs=0000 {}, byrefRegs=0011 {r0 r4}, byref, isz
-            ldr     r3, [r0]
-            ; gcrRegs +[r3]
-            b       SHORT G_M14175_IG06
-                       ;; size=4 bbWeight=0.16 PerfScore 0.33
-G_M14175_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
-            ; gcrRegs -[r3]
+G_M14175_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0011 {r0 r4}, byref
+            ldr     r0, [r0]
+            ; gcrRegs +[r0]
             ; byrRegs -[r0]
+            ldr     r3, [r0+0x10]
+            str     r3, [r4]
+            ldr     r3, [r0+0x14]
+            str     r3, [r4+0x04]
+            movs    r0, 1
+            ; gcrRegs -[r0]
+                       ;; size=12 bbWeight=0.50 PerfScore 3.00
+G_M14175_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r4,pc}
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M14175_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, gcvars, byref
             movs    r0, 0
             str     r0, [r4]
             str     r0, [r4+0x04]
                        ;; size=6 bbWeight=0.50 PerfScore 1.50
-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 -[r4]
-            pop     {r3,r4,r11,pc}
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M14175_IG06:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0008 {r3}, byrefRegs=0010 {r4}, gcvars, byref
-            ; gcrRegs +[r3]
-            ; byrRegs +[r4]
-            ldr     r0, [r3+0x10]
-            str     r0, [r4]
-            ldr     r0, [r3+0x14]
-            str     r0, [r4+0x04]
-            movs    r0, 1
-                       ;; size=10 bbWeight=0.50 PerfScore 2.50
-G_M14175_IG07:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r11,pc}
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
+            pop     {r4,pc}
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 60, prolog size 8, PerfScore 16.33, instruction count 23, allocated bytes for code 60 (MethodHash=2d9bc8a0) for method System.IO.Packaging.OrderedDictionary`2[int,System.Nullable`1[int]]:TryGetValue(int,byref):ubyte:this (FullOpts)
+; Total bytes of code 48, prolog size 2, PerfScore 15.50, instruction count 21, allocated bytes for code 48 (MethodHash=2d9bc8a0) for method System.IO.Packaging.OrderedDictionary`2[int,System.Nullable`1[int]]:TryGetValue(int,byref):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -80,7 +75,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 30 (0x0001e) Actual length = 60 (0x00003c)
+  Function Length   : 24 (0x00018) Actual length = 48 (0x000030)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -92,7 +87,8 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 18       pop {r3,r4,r11,lr}                  ; opsize 32
+    D4          pop {r4,lr}                         ; opsize 16
+    FF          end
     FF          end
     FF          end
 

+12 (+19.35%) : 256451.dasm - System.IO.FileSystemWatcher+NormalizedFilterCollection+ImmutableStringList:get_Item(int):System.String:this (FullOpts)

@@ -2,28 +2,29 @@
 ; Emitting BLENDED_CODE for generic ARM - Unix
 ; FullOpts code
 ; optimized code
-; sp based frame
+; r11 based frame
 ; partially interruptible
 ; No matching PGO data
 ; 2 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  3,  3   )     ref  ->   r0         this class-hnd single-def <System.IO.FileSystemWatcher+NormalizedFilterCollection+ImmutableStringList>
-;  V01 arg1         [V01,T00] (  5,  4   )     int  ->   r4         single-def
+;  V01 arg1         [V01,T00] (  6,  4.11)     int  ->   r4         single-def
 ;  V02 loc0         [V02,T03] (  3,  3   )     ref  ->   r0         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    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V05 tmp2         [V05,T02] (  3,  4   )     int  ->   r5         "Inlining Arg"
+;  V05 tmp2         [V05,T02] (  4,  4.22)     int  ->   r5         "Inlining Arg"
 ;* V06 tmp3         [V06,T05] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V07 tmp4         [V07,T06] (  2,  0   )     ref  ->   r2         single-def "argument with side effect"
 ;  V08 cse0         [V08,T04] (  2,  2   )     int  ->   r5         "CSE - aggressive"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M30474_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,r4,r5,lr}
+            push    {r4,r5,r11,lr}
+            add     r11, sp, 8
             mov     r4, r1
-                       ;; size=4 bbWeight=1 PerfScore 2.00
+                       ;; size=10 bbWeight=1 PerfScore 3.00
 G_M30474_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r0]
             ldr     r0, [r0+0x04]
@@ -39,10 +40,14 @@ G_M30474_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byre
             ; byrRegs -[r0]
                        ;; size=14 bbWeight=1 PerfScore 7.00
 G_M30474_IG03:        ; bbWeight=1, epilog, nogc, extend
-            pop     {r3,r4,r5,pc}
-                       ;; size=2 bbWeight=1 PerfScore 1.00
-G_M30474_IG04:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            pop     {r4,r5,r11,pc}
+                       ;; size=4 bbWeight=1 PerfScore 1.00
+G_M30474_IG04:        ; bbWeight=0.11, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0]
+            cmp     r4, r5
+            bls     SHORT G_M30474_IG05
+                       ;; size=4 bbWeight=0.11 PerfScore 0.22
+G_M30474_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
@@ -50,7 +55,6 @@ G_M30474_IG04:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_STRCNS
             ; gcrRegs +[r0]
-            ; gcr arg pop 0
             mov     r2, r0
             ; gcrRegs +[r2]
             mov     r1, r5
@@ -61,11 +65,10 @@ G_M30474_IG04:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             ldr     r3, [r3]
             blx     r3     // System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
             ; gcrRegs -[r2]
-            ; gcr arg pop 0
             bkpt    
                        ;; size=42 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 62, prolog size 2, PerfScore 10.00, instruction count 24, allocated bytes for code 62 (MethodHash=9dbb88f5) for method System.IO.FileSystemWatcher+NormalizedFilterCollection+ImmutableStringList:get_Item(int):System.String:this (FullOpts)
+; Total bytes of code 74, prolog size 8, PerfScore 11.22, instruction count 27, allocated bytes for code 74 (MethodHash=9dbb88f5) for method System.IO.FileSystemWatcher+NormalizedFilterCollection+ImmutableStringList:get_Item(int):System.String:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -77,7 +80,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 31 (0x0001f) Actual length = 62 (0x00003e)
+  Function Length   : 37 (0x00025) Actual length = 74 (0x00004a)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -85,7 +88,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    ED 38       pop {r3,r4,r5,lr}                   ; opsize 16
+    A8 30       pop {r4,r5,r11,lr}                  ; opsize 32
     FF          end
     FF          end
 

+16 (+21.05%) : 243314.dasm - System.ComponentModel.TypeDescriptor:GetNodeForBaseType(System.Type):System.Type (FullOpts)

@@ -8,10 +8,10 @@
 ; 1 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6,  4.50)     ref  ->   r4         class-hnd single-def <System.Type>
+;  V00 arg0         [V00,T00] (  7,  4.99)     ref  ->   r4         class-hnd single-def <System.Type>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V02 tmp1         [V02,T01] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V03 tmp2         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V03 tmp2         [V03,T02] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;
 ; Lcl frame size = 4
 
@@ -46,26 +46,40 @@ G_M8853_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, b
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             cmp     r4, r0
-            bne     SHORT G_M8853_IG07
+            beq     SHORT G_M8853_IG08
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+G_M8853_IG06:        ; bbWeight=0.49, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r4]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            cmp     r0, r3
+            beq     SHORT G_M8853_IG10
+                       ;; size=14 bbWeight=0.49 PerfScore 2.47
+G_M8853_IG07:        ; bbWeight=0.49, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M8853_IG10
+                       ;; size=2 bbWeight=0.49 PerfScore 0.49
+G_M8853_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r4]
             movs    r0, 0
-                       ;; size=14 bbWeight=0.50 PerfScore 2.50
-G_M8853_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M8853_IG09:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r3,r4,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M8853_IG07:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
+G_M8853_IG10:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[r4]
             mov     r0, r4
             ; gcrRegs +[r0]
             ldr     r3, [r4]
             ldr     r3, [r3+0x58]
             ldr     r3, [r3+0x10]
                        ;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M8853_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M8853_IG11:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 4
             pop     {r4,r11,lr}
             bx      r3     // <unknown method>
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 76, prolog size 8, PerfScore 19.00, instruction count 27, allocated bytes for code 76 (MethodHash=a7e7dd6a) for method System.ComponentModel.TypeDescriptor:GetNodeForBaseType(System.Type):System.Type (FullOpts)
+; Total bytes of code 92, prolog size 8, PerfScore 21.96, instruction count 33, allocated bytes for code 92 (MethodHash=a7e7dd6a) for method System.ComponentModel.TypeDescriptor:GetNodeForBaseType(System.Type):System.Type (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -77,7 +91,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 38 (0x00026) Actual length = 76 (0x00004c)
+  Function Length   : 46 (0x0002e) Actual length = 92 (0x00005c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+10 (+71.43%) : 176585.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)

@@ -2,7 +2,7 @@
 ; Emitting BLENDED_CODE for generic ARM - Unix
 ; FullOpts code
 ; optimized code
-; sp based frame
+; r11 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) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M40773_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,lr}
-                       ;; size=2 bbWeight=1 PerfScore 1.00
+            push    {r11,lr}
+            mov     r11, sp
+                       ;; size=6 bbWeight=1 PerfScore 2.00
 G_M40773_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r0]
             uxtb    r3, r1
@@ -26,15 +27,18 @@ G_M40773_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byre
                        ;; size=6 bbWeight=1 PerfScore 3.00
 G_M40773_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[r0]
-            pop     {r3,pc}
-                       ;; size=2 bbWeight=1 PerfScore 1.00
+            pop     {r11,pc}
+                       ;; size=4 bbWeight=1 PerfScore 1.00
 G_M40773_IG04:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[r0]
             ldr     r3, [r0+0x08]
+            ; gcrRegs +[r3]
+            cmp     r3, 0
+            beq     SHORT G_M40773_IG03
             b       SHORT G_M40773_IG03
-                       ;; size=4 bbWeight=0.50 PerfScore 1.00
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 14, prolog size 2, PerfScore 6.00, instruction count 7, allocated bytes for code 14 (MethodHash=8a3760ba) for method System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
+; Total bytes of code 24, prolog size 6, PerfScore 8.00, instruction count 10, allocated bytes for code 24 (MethodHash=8a3760ba) for method System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -46,7 +50,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 7 (0x00007) Actual length = 14 (0x00000e)
+  Function Length   : 12 (0x0000c) Actual length = 24 (0x000018)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -54,7 +58,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    ED 08       pop {r3,lr}                         ; opsize 16
+    A8 00       pop {r11,lr}                        ; opsize 32
     FF          end
     FF          end
 

libraries_tests.run.linux.arm.Release.mch

-10 (-21.74%) : 46054.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)

@@ -3,7 +3,7 @@
 ; Tier1 code
 ; optimized code
 ; optimized using Dynamic PGO
-; r11 based frame
+; sp based frame
 ; partially interruptible
 ; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 482
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
@@ -11,7 +11,7 @@
 ;
 ;  V00 this         [V00,T00] (  3,  3   )     ref  ->   r0         this class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver>
 ;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   r1         class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer>
-;  V02 loc0         [V02,T05] (  2,  0.06)     ref  ->   r0         ld-addr-op class-hnd <System.Threading.SemaphoreSlim>
+;  V02 loc0         [V02,T05] (  2,  0.11)     ref  ->   r0         ld-addr-op class-hnd <System.Threading.SemaphoreSlim>
 ;* V03 loc1         [V03    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.Collections.ImmutableSegmentedDictionary`2[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,System.Threading.SemaphoreSlim]>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
@@ -20,12 +20,11 @@
 ;  V08 tmp4         [V08,T03] (  3,  3   )     ref  ->   r0         single-def "field V03._dictionary (fldOffset=0x0)" P-INDEP
 ;  V09 tmp5         [V09,T02] (  2,  4   )     int  ->   r3         "Cast away GC"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 4
 
 G_M65411_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r11,lr}
-            mov     r11, sp
-                       ;; size=6 bbWeight=1 PerfScore 2.00
+            push    {r3,lr}
+                       ;; size=2 bbWeight=1 PerfScore 1.00
 G_M65411_IG02:        ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r0-r1]
             ldr     r0, [r0+0xA0]
@@ -36,29 +35,27 @@ G_M65411_IG02:        ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, b
             blx     r3     // <unknown method>
             ; gcrRegs -[r0-r1]
             ; byrRegs +[r0]
+            ; gcr arg pop 0
             mov     r3, r0
             cmp     r3, 0
-            beq     SHORT G_M65411_IG04
-                       ;; size=26 bbWeight=1 PerfScore 9.00
-G_M65411_IG03:        ; bbWeight=0.06, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
+            bne     SHORT G_M65411_IG04
+            movs    r0, 0
+            ; byrRegs -[r0]
+                       ;; size=28 bbWeight=1 PerfScore 10.00
+G_M65411_IG03:        ; bbWeight=1, epilog, nogc, extend
+            pop     {r3,pc}
+                       ;; size=2 bbWeight=1 PerfScore 1.00
+G_M65411_IG04:        ; bbWeight=0.06, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, gcvars, byref
+            ; byrRegs +[r0]
             ldr     r0, [r0]
             ; gcrRegs +[r0]
             ; byrRegs -[r0]
-            b       SHORT G_M65411_IG06
-                       ;; size=4 bbWeight=0.06 PerfScore 0.11
-G_M65411_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r0]
-            movs    r0, 0
-                       ;; size=2 bbWeight=1 PerfScore 1.00
-G_M65411_IG05:        ; bbWeight=1, epilog, nogc, extend
-            pop     {r11,pc}
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M65411_IG06:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs +[r0]
-            pop     {r11,pc}
-                       ;; size=4 bbWeight=0 PerfScore 0.00
+                       ;; size=2 bbWeight=0.06 PerfScore 0.06
+G_M65411_IG05:        ; bbWeight=0.06, epilog, nogc, extend
+            pop     {r3,pc}
+                       ;; size=2 bbWeight=0.06 PerfScore 0.06
 
-; Total bytes of code 46, prolog size 6, PerfScore 13.11, instruction count 16, allocated bytes for code 46 (MethodHash=b255007c) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
+; Total bytes of code 36, prolog size 2, PerfScore 12.11, instruction count 14, allocated bytes for code 36 (MethodHash=b255007c) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -70,7 +67,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 23 (0x00017) Actual length = 46 (0x00002e)
+  Function Length   : 18 (0x00012) Actual length = 36 (0x000024)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -82,7 +79,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 00       pop {r11,lr}                        ; opsize 32
+    ED 08       pop {r3,lr}                         ; opsize 16
     FF          end
     FF          end
 

-10 (-21.74%) : 85676.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)

@@ -3,7 +3,7 @@
 ; Tier1 code
 ; optimized code
 ; optimized using Dynamic PGO
-; r11 based frame
+; sp based frame
 ; partially interruptible
 ; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 4577
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
@@ -11,7 +11,7 @@
 ;
 ;  V00 this         [V00,T00] (  3,  3   )     ref  ->   r0         this class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver>
 ;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   r1         class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer>
-;  V02 loc0         [V02,T05] (  2,  0.07)     ref  ->   r0         ld-addr-op class-hnd <System.Threading.SemaphoreSlim>
+;  V02 loc0         [V02,T05] (  2,  0.14)     ref  ->   r0         ld-addr-op class-hnd <System.Threading.SemaphoreSlim>
 ;* V03 loc1         [V03    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.Collections.ImmutableSegmentedDictionary`2[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,System.Threading.SemaphoreSlim]>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
@@ -20,12 +20,11 @@
 ;  V08 tmp4         [V08,T03] (  3,  3   )     ref  ->   r0         single-def "field V03._dictionary (fldOffset=0x0)" P-INDEP
 ;  V09 tmp5         [V09,T02] (  2,  4   )     int  ->   r3         "Cast away GC"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 4
 
 G_M65411_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r11,lr}
-            mov     r11, sp
-                       ;; size=6 bbWeight=1 PerfScore 2.00
+            push    {r3,lr}
+                       ;; size=2 bbWeight=1 PerfScore 1.00
 G_M65411_IG02:        ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r0-r1]
             ldr     r0, [r0+0xA0]
@@ -36,29 +35,27 @@ G_M65411_IG02:        ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, b
             blx     r3     // <unknown method>
             ; gcrRegs -[r0-r1]
             ; byrRegs +[r0]
+            ; gcr arg pop 0
             mov     r3, r0
             cmp     r3, 0
-            beq     SHORT G_M65411_IG04
-                       ;; size=26 bbWeight=1 PerfScore 9.00
-G_M65411_IG03:        ; bbWeight=0.07, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
+            bne     SHORT G_M65411_IG04
+            movs    r0, 0
+            ; byrRegs -[r0]
+                       ;; size=28 bbWeight=1 PerfScore 10.00
+G_M65411_IG03:        ; bbWeight=1, epilog, nogc, extend
+            pop     {r3,pc}
+                       ;; size=2 bbWeight=1 PerfScore 1.00
+G_M65411_IG04:        ; bbWeight=0.07, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, gcvars, byref
+            ; byrRegs +[r0]
             ldr     r0, [r0]
             ; gcrRegs +[r0]
             ; byrRegs -[r0]
-            b       SHORT G_M65411_IG06
-                       ;; size=4 bbWeight=0.07 PerfScore 0.14
-G_M65411_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r0]
-            movs    r0, 0
-                       ;; size=2 bbWeight=1 PerfScore 1.00
-G_M65411_IG05:        ; bbWeight=1, epilog, nogc, extend
-            pop     {r11,pc}
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M65411_IG06:        ; bbWeight=0.00, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs +[r0]
-            pop     {r11,pc}
-                       ;; size=4 bbWeight=0.00 PerfScore 0.00
+                       ;; size=2 bbWeight=0.07 PerfScore 0.07
+G_M65411_IG05:        ; bbWeight=0.07, epilog, nogc, extend
+            pop     {r3,pc}
+                       ;; size=2 bbWeight=0.07 PerfScore 0.07
 
-; Total bytes of code 46, prolog size 6, PerfScore 13.14, instruction count 16, allocated bytes for code 46 (MethodHash=b255007c) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
+; Total bytes of code 36, prolog size 2, PerfScore 12.14, instruction count 14, allocated bytes for code 36 (MethodHash=b255007c) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -70,7 +67,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 23 (0x00017) Actual length = 46 (0x00002e)
+  Function Length   : 18 (0x00012) Actual length = 36 (0x000024)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -82,7 +79,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 00       pop {r11,lr}                        ; opsize 32
+    ED 08       pop {r3,lr}                         ; opsize 16
     FF          end
     FF          end
 

-20 (-17.24%) : 110318.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GuardedGetBoundNodesFromMap(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]:this (Tier1)

@@ -3,32 +3,30 @@
 ; Tier1 code
 ; optimized code
 ; optimized using Dynamic PGO
-; r11 based frame
+; sp based frame
 ; partially interruptible
 ; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 7
 ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] (  3,  3   )     ref  ->   r0         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.MemberSemanticModel>
-;  V01 RetBuf       [V01,T01] (  5,  3   )   byref  ->   r4         single-def
+;  V01 RetBuf       [V01,T01] (  5,  3.44)   byref  ->   r4         single-def
 ;  V02 arg1         [V02,T03] (  3,  3   )     ref  ->   r2         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode>
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V06 tmp2         [V06,T00] (  3,  6   )     ref  ->   r0         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;  V07 tmp3         [V07,T04] (  4,  2.44)   byref  ->   r0         single-def "Inline stloc first use temp"
-;  V08 tmp4         [V08,T05] (  2,  0.22)     ref  ->   r1         "field V03._one (fldOffset=0x0)" P-INDEP
-;  V09 tmp5         [V09,T06] (  2,  0.22)     ref  ->  [sp+0x04]  spill-single-def "field V03._many (fldOffset=0x4)" P-INDEP
+;  V08 tmp4         [V08,T05] (  2,  0.44)     ref  ->   r1         "field V03._one (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T06] (  2,  0.44)     ref  ->   r2         "field V03._many (fldOffset=0x4)" P-INDEP
 ;
-; Lcl frame size = 12
+; Lcl frame size = 0
 
 G_M16819_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r4,r11,lr}
-            sub     sp, 12
-            add     r11, sp, 16
+            push    {r4,lr}
             mov     r4, r1
             ; byrRegs +[r4]
-                       ;; size=12 bbWeight=1 PerfScore 4.00
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M16819_IG02:        ; bbWeight=1, gcrefRegs=0005 {r0 r2}, byrefRegs=0010 {r4}, byref, isz
             ; gcrRegs +[r0 r2]
             ldr     r0, [r0+0x10]
@@ -41,22 +39,9 @@ G_M16819_IG02:        ; bbWeight=1, gcrefRegs=0005 {r0 r2}, byrefRegs=0010 {r4},
             blx     r3     // <unknown method>
             ; gcrRegs -[r0-r2]
             ; byrRegs +[r0]
+            ; gcr arg pop 0
             cmp     r0, 0
-            beq     SHORT G_M16819_IG04
-                       ;; size=24 bbWeight=1 PerfScore 9.00
-G_M16819_IG03:        ; bbWeight=0.22, gcrefRegs=0000 {}, byrefRegs=0011 {r0 r4}, byref, isz
-            ldr     r1, [r0]
-            ; gcrRegs +[r1]
-            ldr     r3, [r0+0x04]
-            ; gcrRegs +[r3]
-            str     r3, [sp+0x04]  // [V09 tmp5]
-            ; GC ptr vars +{V09}
-            b       SHORT G_M16819_IG06
-                       ;; size=8 bbWeight=0.22 PerfScore 0.89
-G_M16819_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
-            ; gcrRegs -[r1 r3]
-            ; byrRegs -[r0]
-            ; GC ptr vars -{V09}
+            bne     SHORT G_M16819_IG04
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
             ldr     r1, [r1]
@@ -65,7 +50,6 @@ G_M16819_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byre
             ; gcrRegs -[r1]
             ; byrRegs +[r1]
             mov     r0, r4
-            ; byrRegs +[r0]
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
             blx     r12        // CORINFO_HELP_ASSIGN_BYREF
@@ -73,17 +57,17 @@ G_M16819_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byre
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
             blx     r12        // CORINFO_HELP_ASSIGN_BYREF
-                       ;; size=34 bbWeight=1 PerfScore 11.00
-G_M16819_IG05:        ; bbWeight=1, epilog, nogc, extend
-            add     sp, 12
-            pop     {r4,r11,pc}
-                       ;; size=6 bbWeight=1 PerfScore 2.00
-G_M16819_IG06:        ; bbWeight=0, gcVars=00000040 {V09}, gcrefRegs=0002 {r1}, byrefRegs=0010 {r4}, gcvars, byref
+                       ;; size=58 bbWeight=1 PerfScore 20.00
+G_M16819_IG03:        ; bbWeight=1, epilog, nogc, extend
+            pop     {r4,pc}
+                       ;; size=2 bbWeight=1 PerfScore 1.00
+G_M16819_IG04:        ; bbWeight=0.22, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0011 {r0 r4}, gcvars, byref
+            ; byrRegs -[r1] +[r4]
+            ldr     r1, [r0]
             ; gcrRegs +[r1]
-            ; byrRegs -[r0-r1] +[r4]
-            ; GC ptr vars +{V06 V09}
+            ldr     r2, [r0+0x04]
+            ; gcrRegs +[r2]
             mov     r0, r4
-            ; byrRegs +[r0]
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
             blx     r12        // CORINFO_HELP_CHECKED_ASSIGN_REF
@@ -91,21 +75,19 @@ G_M16819_IG06:        ; bbWeight=0, gcVars=00000040 {V09}, gcrefRegs=0002 {r1},
             ; byrRegs -[r0]
             adds    r0, r4, 4
             ; byrRegs +[r0]
-            ldr     r1, [sp+0x04]  // [V09 tmp5]
+            mov     r1, r2
             ; gcrRegs +[r1]
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
-            ; GC ptr vars -{V06 V09}
             blx     r12        // CORINFO_HELP_CHECKED_ASSIGN_REF
-            ; gcrRegs -[r1]
+            ; gcrRegs -[r1-r2]
             ; byrRegs -[r0 r4]
-                       ;; size=26 bbWeight=0 PerfScore 0.00
-G_M16819_IG07:        ; bbWeight=0, epilog, nogc, extend
-            add     sp, 12
-            pop     {r4,r11,pc}
-                       ;; size=6 bbWeight=0 PerfScore 0.00
+                       ;; size=30 bbWeight=0.22 PerfScore 2.44
+G_M16819_IG05:        ; bbWeight=0.22, epilog, nogc, extend
+            pop     {r4,pc}
+                       ;; size=2 bbWeight=0.22 PerfScore 0.22
 
-; Total bytes of code 116, prolog size 10, PerfScore 26.89, instruction count 41, allocated bytes for code 116 (MethodHash=3ddcbe4c) for method Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GuardedGetBoundNodesFromMap(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]:this (Tier1)
+; Total bytes of code 96, prolog size 2, PerfScore 25.67, instruction count 35, allocated bytes for code 96 (MethodHash=3ddcbe4c) for method Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GuardedGetBoundNodesFromMap(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -117,7 +99,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 58 (0x0003a) Actual length = 116 (0x000074)
+  Function Length   : 48 (0x00030) Actual length = 96 (0x000060)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -129,7 +111,8 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    03          add sp, sp, #12                     ; opsize 16
-    A8 10       pop {r4,r11,lr}                     ; opsize 32
+    D4          pop {r4,lr}                         ; opsize 16
+    FF          end
+    FF          end
     FF          end
 

+30 (+51.72%) : 151680.dasm - Roslyn.Utilities.AsyncLazy1[System.__Canon]:.ctor(System.Func2[System.Threading.CancellationToken,System.__Canon],ubyte):this (Tier1)

@@ -2,46 +2,46 @@
 ; Emitting BLENDED_CODE for generic ARM - Unix
 ; Tier1 code
 ; optimized code
-; sp based frame
+; r11 based frame
 ; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  6,  6   )     ref  ->   r4         this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[System.__Canon]>
-;  V01 arg1         [V01,T01] (  4,  4   )     ref  ->   r5         class-hnd single-def <System.Func`2[System.Threading.CancellationToken,System.__Canon]>
+;  V01 arg1         [V01,T01] (  5,  4   )     ref  ->   r5         class-hnd single-def <System.Func`2[System.Threading.CancellationToken,System.__Canon]>
 ;  V02 arg2         [V02,T03] (  3,  3   )   ubyte  ->   r6         single-def
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )     int  ->  zero-ref    "spilling helperCall"
-;* V05 rat0         [V05,T04] (  0,  0   )     int  ->  zero-ref    "Spilling to split statement for tree"
+;  V05 rat0         [V05,T04] (  2,  4   )     int  ->   r1         "Spilling to split statement for tree"
 ;* V06 rat1         [V06,T05] (  0,  0   )     int  ->  zero-ref    "runtime lookup"
-;* V07 rat2         [V07,T02] (  0,  0   )     int  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V07 rat2         [V07,T02] (  2,  4   )     int  ->   r1         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 12
 
 G_M51244_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r2,r3,r4,r5,r6,lr}
-            str     r0, [sp+0x04]
+            push    {r4,r5,r6,r11,lr}
+            sub     sp, 12
+            add     r11, sp, 24
+            str     r0, [r11-0x14]
             mov     r4, r0
             ; gcrRegs +[r4]
             mov     r5, r1
             ; gcrRegs +[r5]
             mov     r6, r2
-                       ;; size=10 bbWeight=1 PerfScore 5.00
+                       ;; size=20 bbWeight=1 PerfScore 7.00
 G_M51244_IG02:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ldr     r1, [r4]
+            ldr     r1, [r1+0x24]
+            ldr     r1, [r1+0x04]
+            ldr     r1, [r1+0x08]
+            cmp     r1, 0
+            beq     SHORT G_M51244_IG06
+                       ;; size=12 bbWeight=1 PerfScore 6.00
+G_M51244_IG03:        ; bbWeight=0.80, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             cmp     r5, 0
-            bne     SHORT G_M51244_IG04
-                       ;; size=6 bbWeight=1 PerfScore 3.00
-G_M51244_IG03:        ; bbWeight=0, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
-            movw    r0, 0xd1ff
-            movt    r0, 0xd1ff
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            ldr     r3, [r3]
-            blx     r3     // <unknown method>
-            ; gcr arg pop 0
-                       ;; size=20 bbWeight=0 PerfScore 0.00
+            beq     SHORT G_M51244_IG07
+                       ;; size=4 bbWeight=0.80 PerfScore 1.60
 G_M51244_IG04:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
             adds    r0, r4, 4
             ; byrRegs +[r0]
@@ -57,26 +57,45 @@ G_M51244_IG04:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             strb    r6, [r4+0x18]
                        ;; size=20 bbWeight=1 PerfScore 8.00
 G_M51244_IG05:        ; bbWeight=1, epilog, nogc, extend
-            pop     {r2,r3,r4,r5,r6,pc}
-                       ;; size=2 bbWeight=1 PerfScore 1.00
+            add     sp, 12
+            pop     {r4,r5,r6,r11,pc}
+                       ;; size=6 bbWeight=1 PerfScore 2.00
+G_M51244_IG06:        ; bbWeight=0.20, gcVars=00000000 {}, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[r5]
+            cmp     r5, 0
+            bne     SHORT G_M51244_IG04
+                       ;; size=4 bbWeight=0.20 PerfScore 0.40
+G_M51244_IG07:        ; bbWeight=0, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // <unknown method>
+            b       SHORT G_M51244_IG04
+                       ;; size=22 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 58, prolog size 4, PerfScore 17.00, instruction count 23, allocated bytes for code 58 (MethodHash=6aec37d3) for method Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],ubyte):this (Tier1)
+; Total bytes of code 88, prolog size 14, PerfScore 25.00, instruction count 34, allocated bytes for code 88 (MethodHash=6aec37d3) for method Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],ubyte):this (Tier1)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Code Words        : 1
-  Epilog Count      : 0
+  Epilog Count      : 1
   F bit             : 0
-  E bit             : 1
+  E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 29 (0x0001d) Actual length = 58 (0x00003a)
-  --- One epilog, unwind codes at 0
+  Function Length   : 44 (0x0002c) Actual length = 88 (0x000058)
+  ---- Epilog scopes ----
+  ---- Scope 0
+  Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+  Condition                  : 14 (0xe) (always)
+  Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    ED 7C       pop {r2,r3,r4,r5,r6,lr}             ; opsize 16
-    FF          end
+    03          add sp, sp, #12                     ; opsize 16
+    A8 70       pop {r4,r5,r6,r11,lr}               ; opsize 32
     FF          end
 

+12 (+54.55%) : 450473.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThanint (Tier1)

@@ -3,42 +3,49 @@
 ; Tier1 code
 ; optimized code
 ; optimized using Dynamic PGO
-; sp based frame
+; r11 based frame
 ; partially interruptible
 ; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 2
 ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  4,  3   )     int  ->   r0         ld-addr-op single-def
-;  V01 arg1         [V01,T01] (  4,  3   )     int  ->   r1         single-def
+;  V00 arg0         [V00,T00] (  5,  3   )     int  ->   r0         ld-addr-op single-def
+;  V01 arg1         [V01,T01] (  5,  3   )     int  ->   r1         single-def
 ;  V02 arg2         [V02,T02] (  3,  2   )     ref  ->   r2         class-hnd single-def <System.String>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04,T03] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M40926_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,lr}
-                       ;; size=2 bbWeight=1 PerfScore 1.00
+            push    {r11,lr}
+            mov     r11, sp
+                       ;; size=6 bbWeight=1 PerfScore 2.00
 G_M40926_IG02:        ; bbWeight=1, gcrefRegs=0004 {r2}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r2]
             cmp     r0, r1
-            bge     SHORT G_M40926_IG04
+            blt     SHORT G_M40926_IG04
                        ;; size=4 bbWeight=1 PerfScore 2.00
-G_M40926_IG03:        ; bbWeight=0, gcrefRegs=0004 {r2}, byrefRegs=0000 {}, byref
+G_M40926_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r2]
+            cmp     r0, r1
+            ble     SHORT G_M40926_IG05
+            b       SHORT G_M40926_IG05
+                       ;; size=6 bbWeight=0 PerfScore 0.00
+G_M40926_IG04:        ; bbWeight=0, gcrefRegs=0004 {r2}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[r2]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // System.ArgumentOutOfRangeException:ThrowLess[int](int,int,System.String)
             ; gcrRegs -[r2]
-            ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M40926_IG04:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            pop     {r3,pc}
-                       ;; size=2 bbWeight=0 PerfScore 0.00
+G_M40926_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            pop     {r11,pc}
+                       ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 22, prolog size 2, PerfScore 3.00, instruction count 9, allocated bytes for code 22 (MethodHash=63ec6021) for method System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
+; Total bytes of code 34, prolog size 6, PerfScore 4.00, instruction count 13, allocated bytes for code 34 (MethodHash=63ec6021) for method System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -50,11 +57,11 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 11 (0x0000b) Actual length = 22 (0x000016)
+  Function Length   : 17 (0x00011) Actual length = 34 (0x000022)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    ED 08       pop {r3,lr}                         ; opsize 16
+    A8 00       pop {r11,lr}                        ; opsize 32
     FF          end
     FF          end
 

+16 (+57.14%) : 644582.dasm - Microsoft.CSharp.RuntimeBinder.BinderHelper:IsDynamicallyTypedRuntimeProxy(System.Dynamic.DynamicMetaObject,Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo):ubyte (Tier1)

@@ -5,7 +5,7 @@
 ; optimized using Dynamic PGO
 ; r11 based frame
 ; partially interruptible
-; with Dynamic PGO: edge weights are valid, and fgCalledCount is 3
+; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 3
 ; 3 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
@@ -16,7 +16,7 @@
 ;* V04 tmp1         [V04    ] (  0,  0   )     int  ->  zero-ref   
 ;* V05 tmp2         [V05,T03] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Object>
 ;* V06 tmp3         [V06    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V07 cse0         [V07,T02] (  0,  0   )     ref  ->  zero-ref    "CSE - conservative"
+;  V07 cse0         [V07,T02] (  2,  0.67)     ref  ->   r0         "CSE - conservative"
 ;
 ; Lcl frame size = 0
 
@@ -27,40 +27,51 @@ G_M52904_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M52904_IG02:        ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r0-r1]
             cmp     r1, 0
-            beq     SHORT G_M52904_IG05
+            beq     SHORT G_M52904_IG04
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M52904_IG03:        ; bbWeight=0.67, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
             ldr     r3, [r1+0x08]
             ands    r3, r3, 1
             cmp     r3, 0
-            bne     SHORT G_M52904_IG05
+            beq     SHORT G_M52904_IG06
                        ;; size=10 bbWeight=0.67 PerfScore 2.67
-G_M52904_IG04:        ; bbWeight=0.33, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r1]
-            ldr     r0, [r0+0x04]
-            ; gcrRegs -[r0]
-                       ;; size=2 bbWeight=0.33 PerfScore 0.33
-G_M52904_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M52904_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r0-r1]
             movs    r0, 0
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M52904_IG06:        ; bbWeight=1, epilog, nogc, extend
+G_M52904_IG05:        ; bbWeight=1, epilog, nogc, extend
             pop     {r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
+G_M52904_IG06:        ; bbWeight=0.33, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[r0]
+            ldr     r0, [r0+0x04]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            ; gcrRegs +[r3]
+            cmp     r0, r3
+            beq     SHORT G_M52904_IG04
+            b       SHORT G_M52904_IG04
+                       ;; size=18 bbWeight=0.33 PerfScore 2.33
 
-; Total bytes of code 28, prolog size 6, PerfScore 9.00, instruction count 11, allocated bytes for code 28 (MethodHash=c74e3157) for method Microsoft.CSharp.RuntimeBinder.BinderHelper:IsDynamicallyTypedRuntimeProxy(System.Dynamic.DynamicMetaObject,Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo):ubyte (Tier1)
+; Total bytes of code 44, prolog size 6, PerfScore 11.00, instruction count 17, allocated bytes for code 44 (MethodHash=c74e3157) for method Microsoft.CSharp.RuntimeBinder.BinderHelper:IsDynamicallyTypedRuntimeProxy(System.Dynamic.DynamicMetaObject,Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo):ubyte (Tier1)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Code Words        : 1
-  Epilog Count      : 0
+  Epilog Count      : 1
   F bit             : 0
-  E bit             : 1
+  E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 14 (0x0000e) Actual length = 28 (0x00001c)
-  --- One epilog, unwind codes at 0
+  Function Length   : 22 (0x00016) Actual length = 44 (0x00002c)
+  ---- Epilog scopes ----
+  ---- Scope 0
+  Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+  Condition                  : 14 (0xe) (always)
+  Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
     A8 00       pop {r11,lr}                        ; opsize 32

librariestestsnotieredcompilation.run.linux.arm.Release.mch

-30 (-11.03%) : 86016.dasm - System.ComponentModel.LookupBindingPropertiesAttribute:Equals(System.Object):ubyte:this (FullOpts)

@@ -13,11 +13,11 @@
 ;  V02 loc0         [V02,T09] (  7,  4.25)     ref  ->   r5         class-hnd exact <System.ComponentModel.LookupBindingPropertiesAttribute>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.ComponentModel.LookupBindingPropertiesAttribute>
-;  V05 tmp2         [V05,T03] (  5,  4.75)     ref  ->   r6         class-hnd exact single-def "impAppendStmt" <System.String>
-;  V06 tmp3         [V06,T04] (  5,  4.75)     ref  ->   r8         class-hnd exact single-def "impAppendStmt" <System.String>
-;  V07 tmp4         [V07,T05] (  5,  4.75)     ref  ->  r10         class-hnd exact single-def "impAppendStmt" <System.String>
+;  V05 tmp2         [V05,T03] (  5,  4.75)     ref  ->   r2         class-hnd exact single-def "impAppendStmt" <System.String>
+;  V06 tmp3         [V06,T04] (  5,  4.75)     ref  ->   r2         class-hnd exact single-def "impAppendStmt" <System.String>
+;  V07 tmp4         [V07,T05] (  5,  4.75)     ref  ->   r2         class-hnd exact single-def "impAppendStmt" <System.String>
 ;  V08 tmp5         [V08,T02] (  6,  4.98)     ref  ->   r2         class-hnd exact single-def "impAppendStmt" <System.String>
-;  V09 tmp6         [V09,T06] (  5,  4.75)     ref  ->   r7         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V09 tmp6         [V09,T06] (  5,  4.75)     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V10 tmp7         [V10,T18] (  2,  1   )   ubyte  ->   r0         "Inline return value spill temp"
 ;  V11 tmp8         [V11,T11] (  2,  2   )   byref  ->   r0         single-def "impAppendStmt"
 ;* V12 tmp9         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -25,17 +25,17 @@
 ;* V14 tmp11        [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp12        [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp13        [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V17 tmp14        [V17,T07] (  5,  4.75)     ref  ->   r9         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V17 tmp14        [V17,T07] (  5,  4.75)     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V18 tmp15        [V18,T19] (  2,  1   )   ubyte  ->   r0         "Inline return value spill temp"
-;  V19 tmp16        [V19,T12] (  2,  2   )   byref  ->   r0         single-def "impAppendStmt"
+;  V19 tmp16        [V19,T12] (  2,  2   )   byref  ->   r3         single-def "impAppendStmt"
 ;* 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    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp21        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V25 tmp22        [V25,T08] (  5,  4.75)     ref  ->   r3         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V25 tmp22        [V25,T08] (  5,  4.75)     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V26 tmp23        [V26,T20] (  2,  1   )   ubyte  ->   r0         "Inline return value spill temp"
-;  V27 tmp24        [V27,T13] (  2,  2   )   byref  ->   r0         single-def "impAppendStmt"
+;  V27 tmp24        [V27,T13] (  2,  2   )   byref  ->   r3         single-def "impAppendStmt"
 ;* V28 tmp25        [V28    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp26        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp27        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -49,15 +49,15 @@
 ;* V38 tmp35        [V38    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V39 tmp36        [V39    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V40 tmp37        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V41 cse0         [V41,T14] (  3,  1.38)     int  ->   r2         "CSE - moderate"
-;  V42 cse1         [V42,T15] (  3,  1.38)     int  ->   r2         "CSE - moderate"
-;  V43 cse2         [V43,T16] (  3,  1.38)     int  ->   r2         "CSE - moderate"
+;  V41 cse0         [V41,T14] (  3,  1.38)     int  ->   r3         "CSE - moderate"
+;  V42 cse1         [V42,T15] (  3,  1.38)     int  ->   r0         "CSE - moderate"
+;  V43 cse2         [V43,T16] (  3,  1.38)     int  ->   r0         "CSE - moderate"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M3330_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            add     r11, sp, 32
+            push    {r4,r5,r11,lr}
+            add     r11, sp, 8
             mov     r4, r0
             ; gcrRegs +[r4]
                        ;; size=10 bbWeight=1 PerfScore 3.00
@@ -66,7 +66,7 @@ G_M3330_IG02:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, by
             mov     r5, r1
             ; gcrRegs +[r5]
             cmp     r5, 0
-            beq     SHORT G_M3330_IG24
+            beq     SHORT G_M3330_IG27
                        ;; size=6 bbWeight=1 PerfScore 3.00
 G_M3330_IG03:        ; bbWeight=0.25, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r1]
@@ -74,105 +74,152 @@ G_M3330_IG03:        ; bbWeight=0.25, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {},
             movw    r2, 0xd1ff
             movt    r2, 0xd1ff
             cmp     r0, r2
-            bne     SHORT G_M3330_IG24
+            bne     SHORT G_M3330_IG27
                        ;; size=14 bbWeight=0.25 PerfScore 1.25
 G_M3330_IG04:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            ldr     r6, [r5+0x04]
-            ; gcrRegs +[r6]
-            ldr     r7, [r4+0x04]
-            ; gcrRegs +[r7]
-            cmp     r6, r7
-            beq     SHORT G_M3330_IG08
+            ldr     r2, [r5+0x04]
+            ; gcrRegs +[r2]
+            ldr     r1, [r4+0x04]
+            ; gcrRegs +[r1]
+            cmp     r2, r1
+            beq     SHORT G_M3330_IG09
                        ;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M3330_IG05:        ; bbWeight=0.44, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, byref, isz
-            cmp     r6, 0
-            beq     SHORT G_M3330_IG24
+G_M3330_IG05:        ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            cmp     r2, 0
+            beq     SHORT G_M3330_IG27
                        ;; size=4 bbWeight=0.44 PerfScore 0.88
-G_M3330_IG06:        ; bbWeight=0.44, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, byref, isz
-            b       SHORT G_M3330_IG22
-                       ;; size=2 bbWeight=0.44 PerfScore 0.44
-G_M3330_IG07:        ; bbWeight=0.50, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, byref, isz
-            add     r0, r6, 8
+G_M3330_IG06:        ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            cmp     r1, 0
+            beq     SHORT G_M3330_IG27
+                       ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M3330_IG07:        ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r3, [r2+0x04]
+            ldr     r0, [r1+0x04]
+            cmp     r3, r0
+            bne     SHORT G_M3330_IG27
+                       ;; size=8 bbWeight=0.44 PerfScore 1.75
+G_M3330_IG08:        ; bbWeight=0.50, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            add     r0, r2, 8
             ; byrRegs +[r0]
-            lsls    r2, r2, 1
-            add     r1, r7, 8
+            lsls    r2, r3, 1
+            ; gcrRegs -[r2]
+            adds    r1, 8
+            ; gcrRegs -[r1]
             ; byrRegs +[r1]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r6-r7]
             ; byrRegs -[r0-r1]
             cmp     r0, 0
-            beq     SHORT G_M3330_IG24
-                       ;; size=26 bbWeight=0.50 PerfScore 4.50
-G_M3330_IG08:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            ldr     r8, [r5+0x08]
-            ; gcrRegs +[r8]
-            ldr     r9, [r4+0x08]
-            ; gcrRegs +[r9]
-            cmp     r8, r9
-            beq     SHORT G_M3330_IG11
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M3330_IG09:        ; bbWeight=0.44, gcrefRegs=0330 {r4 r5 r8 r9}, byrefRegs=0000 {}, byref, isz
-            cmp     r8, 0
-            beq     SHORT G_M3330_IG24
-                       ;; size=6 bbWeight=0.44 PerfScore 0.88
-G_M3330_IG10:        ; bbWeight=0.44, gcrefRegs=0330 {r4 r5 r8 r9}, byrefRegs=0000 {}, byref, isz
-            b       SHORT G_M3330_IG29
-                       ;; size=2 bbWeight=0.44 PerfScore 0.44
-G_M3330_IG11:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r8-r9]
-            ldr     r10, [r5+0x0C]
-            ; gcrRegs +[r10]
-            ldr     r3, [r4+0x0C]
-            ; gcrRegs +[r3]
-            cmp     r10, r3
+            beq     SHORT G_M3330_IG27
+                       ;; size=24 bbWeight=0.50 PerfScore 4.50
+G_M3330_IG09:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r2, [r5+0x08]
+            ; gcrRegs +[r2]
+            ldr     r1, [r4+0x08]
+            ; gcrRegs +[r1]
+            cmp     r2, r1
             beq     SHORT G_M3330_IG14
-                       ;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M3330_IG12:        ; bbWeight=0.44, gcrefRegs=0438 {r3 r4 r5 r10}, byrefRegs=0000 {}, byref, isz
-            cmp     r10, 0
-            beq     SHORT G_M3330_IG24
-                       ;; size=6 bbWeight=0.44 PerfScore 0.88
-G_M3330_IG13:        ; bbWeight=0.44, gcrefRegs=0438 {r3 r4 r5 r10}, byrefRegs=0000 {}, byref, isz
-            b       SHORT G_M3330_IG26
-                       ;; size=2 bbWeight=0.44 PerfScore 0.44
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M3330_IG10:        ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            cmp     r2, 0
+            beq     SHORT G_M3330_IG27
+                       ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M3330_IG11:        ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            cmp     r1, 0
+            beq     SHORT G_M3330_IG27
+                       ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M3330_IG12:        ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r2+0x04]
+            ldr     r3, [r1+0x04]
+            cmp     r0, r3
+            bne     SHORT G_M3330_IG27
+                       ;; size=8 bbWeight=0.44 PerfScore 1.75
+G_M3330_IG13:        ; bbWeight=0.50, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            add     r3, r2, 8
+            ; byrRegs +[r3]
+            lsls    r2, r0, 1
+            ; gcrRegs -[r2]
+            adds    r1, 8
+            ; gcrRegs -[r1]
+            ; byrRegs +[r1]
+            mov     r0, r3
+            ; byrRegs +[r0]
+            movw    r3, 0xd1ff
+            ; byrRegs -[r3]
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // <unknown method>
+            ; byrRegs -[r0-r1]
+            cmp     r0, 0
+            beq     SHORT G_M3330_IG27
+                       ;; size=26 bbWeight=0.50 PerfScore 5.00
 G_M3330_IG14:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r3 r10]
+            ldr     r2, [r5+0x0C]
+            ; gcrRegs +[r2]
+            ldr     r1, [r4+0x0C]
+            ; gcrRegs +[r1]
+            cmp     r2, r1
+            beq     SHORT G_M3330_IG19
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M3330_IG15:        ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            cmp     r2, 0
+            beq     SHORT G_M3330_IG27
+                       ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M3330_IG16:        ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            cmp     r1, 0
+            beq     SHORT G_M3330_IG27
+                       ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M3330_IG17:        ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r2+0x04]
+            ldr     r3, [r1+0x04]
+            cmp     r0, r3
+            bne     SHORT G_M3330_IG27
+                       ;; size=8 bbWeight=0.44 PerfScore 1.75
+G_M3330_IG18:        ; bbWeight=0.50, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            add     r3, r2, 8
+            ; byrRegs +[r3]
+            lsls    r2, r0, 1
+            ; gcrRegs -[r2]
+            adds    r1, 8
+            ; gcrRegs -[r1]
+            ; byrRegs +[r1]
+            mov     r0, r3
+            ; byrRegs +[r0]
+            movw    r3, 0xd1ff
+            ; byrRegs -[r3]
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // <unknown method>
+            ; byrRegs -[r0-r1]
+            cmp     r0, 0
+            beq     SHORT G_M3330_IG27
+                       ;; size=26 bbWeight=0.50 PerfScore 5.00
+G_M3330_IG19:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ldr     r2, [r5+0x10]
             ; gcrRegs +[r2]
             ldr     r1, [r4+0x10]
...

-30 (-10.87%) : 305396.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)

@@ -12,9 +12,9 @@
 ;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   r1         class-hnd single-def <System.Xml.Linq.XNode>
 ;  V02 loc0         [V02,T10] (  6,  4   )     ref  ->   r5         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  ->  r10         class-hnd exact single-def "impAppendStmt" <System.String>
-;  V05 tmp2         [V05,T04] (  5,  4.75)     ref  ->   r6         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V06 tmp3         [V06,T06] (  5,  4.75)     ref  ->   r7         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V04 tmp1         [V04,T03] (  5,  4.75)     ref  ->   r2         class-hnd exact single-def "impAppendStmt" <System.String>
+;  V05 tmp2         [V05,T04] (  5,  4.75)     ref  ->   r2         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V06 tmp3         [V06,T06] (  5,  4.75)     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V07 tmp4         [V07,T18] (  2,  1   )   ubyte  ->   r0         "Inline return value spill temp"
 ;  V08 tmp5         [V08,T11] (  2,  2   )   byref  ->   r0         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  ->   r8         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V15 tmp12        [V15,T07] (  5,  4.75)     ref  ->   r9         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V14 tmp11        [V14,T05] (  5,  4.75)     ref  ->   r2         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V15 tmp12        [V15,T07] (  5,  4.75)     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V16 tmp13        [V16,T19] (  2,  1   )   ubyte  ->   r0         "Inline return value spill temp"
-;  V17 tmp14        [V17,T12] (  2,  2   )   byref  ->   r0         single-def "impAppendStmt"
+;  V17 tmp14        [V17,T12] (  2,  2   )   byref  ->   r3         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  ->   r3         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V23 tmp20        [V23,T08] (  5,  4.75)     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V24 tmp21        [V24,T20] (  2,  1   )   ubyte  ->   r0         "Inline return value spill temp"
-;  V25 tmp22        [V25,T13] (  2,  2   )   byref  ->   r0         single-def "impAppendStmt"
+;  V25 tmp22        [V25,T13] (  2,  2   )   byref  ->   r3         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,15 +48,15 @@
 ;* 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  ->   r2         "CSE - moderate"
-;  V41 cse1         [V41,T15] (  3,  1.38)     int  ->   r2         "CSE - moderate"
-;  V42 cse2         [V42,T16] (  3,  1.38)     int  ->   r2         "CSE - moderate"
+;  V40 cse0         [V40,T14] (  3,  1.38)     int  ->   r3         "CSE - moderate"
+;  V41 cse1         [V41,T15] (  3,  1.38)     int  ->   r0         "CSE - moderate"
+;  V42 cse2         [V42,T16] (  3,  1.38)     int  ->   r0         "CSE - moderate"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M37476_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            add     r11, sp, 32
+            push    {r4,r5,r11,lr}
+            add     r11, sp, 8
             mov     r4, r0
             ; gcrRegs +[r4]
                        ;; size=10 bbWeight=1 PerfScore 3.00
@@ -71,106 +71,153 @@ G_M37476_IG02:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, b
             mov     r5, r0
             ; gcrRegs +[r5]
             cmp     r5, 0
-            beq     SHORT G_M37476_IG23
+            beq     SHORT G_M37476_IG26
                        ;; size=24 bbWeight=1 PerfScore 8.00
 G_M37476_IG03:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
-            ldr     r6, [r4+0x10]
-            ; gcrRegs +[r6]
-            ldr     r7, [r5+0x10]
-            ; gcrRegs +[r7]
-            cmp     r6, r7
-            beq     SHORT G_M37476_IG07
+            ldr     r2, [r4+0x10]
+            ; gcrRegs +[r2]
+            ldr     r1, [r5+0x10]
+            ; gcrRegs +[r1]
+            cmp     r2, r1
+            beq     SHORT G_M37476_IG08
                        ;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M37476_IG04:        ; bbWeight=0.44, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, byref, isz
-            cmp     r6, 0
-            beq     SHORT G_M37476_IG23
+G_M37476_IG04:        ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            cmp     r2, 0
+            beq     SHORT G_M37476_IG26
                        ;; size=4 bbWeight=0.44 PerfScore 0.88
-G_M37476_IG05:        ; bbWeight=0.44, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, byref, isz
-            b       SHORT G_M37476_IG21
-                       ;; size=2 bbWeight=0.44 PerfScore 0.44
-G_M37476_IG06:        ; bbWeight=0.50, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, byref, isz
-            add     r0, r6, 8
+G_M37476_IG05:        ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            cmp     r1, 0
+            beq     SHORT G_M37476_IG26
+                       ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M37476_IG06:        ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r3, [r2+0x04]
+            ldr     r0, [r1+0x04]
+            cmp     r3, r0
+            bne     SHORT G_M37476_IG26
+                       ;; size=8 bbWeight=0.44 PerfScore 1.75
+G_M37476_IG07:        ; bbWeight=0.50, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            add     r0, r2, 8
             ; byrRegs +[r0]
-            lsls    r2, r2, 1
-            add     r1, r7, 8
+            lsls    r2, r3, 1
+            ; gcrRegs -[r2]
+            adds    r1, 8
+            ; gcrRegs -[r1]
             ; byrRegs +[r1]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r6-r7]
             ; byrRegs -[r0-r1]
             cmp     r0, 0
-            beq     SHORT G_M37476_IG23
-                       ;; size=26 bbWeight=0.50 PerfScore 4.50
-G_M37476_IG07:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            ldr     r8, [r4+0x14]
-            ; gcrRegs +[r8]
-            ldr     r9, [r5+0x14]
-            ; gcrRegs +[r9]
-            cmp     r8, r9
-            beq     SHORT G_M37476_IG10
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M37476_IG08:        ; bbWeight=0.44, gcrefRegs=0330 {r4 r5 r8 r9}, byrefRegs=0000 {}, byref, isz
-            cmp     r8, 0
-            beq     SHORT G_M37476_IG23
-                       ;; size=6 bbWeight=0.44 PerfScore 0.88
-G_M37476_IG09:        ; bbWeight=0.44, gcrefRegs=0330 {r4 r5 r8 r9}, byrefRegs=0000 {}, byref, isz
-            b       SHORT G_M37476_IG28
-                       ;; size=2 bbWeight=0.44 PerfScore 0.44
-G_M37476_IG10:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r8-r9]
-            ldr     r10, [r4+0x18]
-            ; gcrRegs +[r10]
-            ldr     r3, [r5+0x18]
-            ; gcrRegs +[r3]
-            cmp     r10, r3
+            beq     SHORT G_M37476_IG26
+                       ;; size=24 bbWeight=0.50 PerfScore 4.50
+G_M37476_IG08:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r2, [r4+0x14]
+            ; gcrRegs +[r2]
+            ldr     r1, [r5+0x14]
+            ; gcrRegs +[r1]
+            cmp     r2, r1
             beq     SHORT G_M37476_IG13
-                       ;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M37476_IG11:        ; bbWeight=0.44, gcrefRegs=0438 {r3 r4 r5 r10}, byrefRegs=0000 {}, byref, isz
-            cmp     r10, 0
-            beq     SHORT G_M37476_IG23
-                       ;; size=6 bbWeight=0.44 PerfScore 0.88
-G_M37476_IG12:        ; bbWeight=0.44, gcrefRegs=0438 {r3 r4 r5 r10}, byrefRegs=0000 {}, byref, isz
-            b       SHORT G_M37476_IG25
-                       ;; size=2 bbWeight=0.44 PerfScore 0.44
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M37476_IG09:        ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            cmp     r2, 0
+            beq     SHORT G_M37476_IG26
+                       ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M37476_IG10:        ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            cmp     r1, 0
+            beq     SHORT G_M37476_IG26
+                       ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M37476_IG11:        ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r2+0x04]
+            ldr     r3, [r1+0x04]
+            cmp     r0, r3
+            bne     SHORT G_M37476_IG26
+                       ;; size=8 bbWeight=0.44 PerfScore 1.75
+G_M37476_IG12:        ; bbWeight=0.50, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            add     r3, r2, 8
+            ; byrRegs +[r3]
+            lsls    r2, r0, 1
+            ; gcrRegs -[r2]
+            adds    r1, 8
+            ; gcrRegs -[r1]
+            ; byrRegs +[r1]
+            mov     r0, r3
+            ; byrRegs +[r0]
+            movw    r3, 0xd1ff
+            ; byrRegs -[r3]
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // <unknown method>
+            ; byrRegs -[r0-r1]
+            cmp     r0, 0
+            beq     SHORT G_M37476_IG26
+                       ;; size=26 bbWeight=0.50 PerfScore 5.00
 G_M37476_IG13:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r3 r10]
+            ldr     r2, [r4+0x18]
+            ; gcrRegs +[r2]
+            ldr     r1, [r5+0x18]
+            ; gcrRegs +[r1]
+            cmp     r2, r1
+            beq     SHORT G_M37476_IG18
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M37476_IG14:        ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            cmp     r2, 0
+            beq     SHORT G_M37476_IG26
+                       ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M37476_IG15:        ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            cmp     r1, 0
+            beq     SHORT G_M37476_IG26
+                       ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M37476_IG16:        ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r2+0x04]
+            ldr     r3, [r1+0x04]
+            cmp     r0, r3
+            bne     SHORT G_M37476_IG26
+                       ;; size=8 bbWeight=0.44 PerfScore 1.75
+G_M37476_IG17:        ; bbWeight=0.50, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+            add     r3, r2, 8
+            ; byrRegs +[r3]
+            lsls    r2, r0, 1
+            ; gcrRegs -[r2]
+            adds    r1, 8
+            ; gcrRegs -[r1]
+            ; byrRegs +[r1]
+            mov     r0, r3
+            ; byrRegs +[r0]
+            movw    r3, 0xd1ff
+            ; byrRegs -[r3]
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // <unknown method>
+            ; byrRegs -[r0-r1]
+            cmp     r0, 0
+            beq     SHORT G_M37476_IG26
+                       ;; size=26 bbWeight=0.50 PerfScore 5.00
+G_M37476_IG18:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ldr     r2, [r4+0x1C]
             ; gcrRegs +[r2]
             ldr     r1, [r5+0x1C]
             ; gcrRegs +[r1]
             cmp     r2, r1
-            bne     SHORT G_M37476_IG15
+            beq     SHORT G_M37476_IG25
                        ;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M37476_IG14:        ; bbWeight=0.06, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r1-r2 r4-r5]
-            movs    r0, 1
-            b       SHORT G_M37476_IG20
...

-32 (-10.06%) : 97331.dasm - System.Diagnostics.Tests.ActivitySourceTests+<>cDisplayClass9_1:b7(System.Diagnostics.ActivityLink):ubyte:this (FullOpts)

@@ -9,7 +9,7 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] (  3,  3   )     ref  ->   r0         this class-hnd single-def <System.Diagnostics.Tests.ActivitySourceTests+<>c__DisplayClass9_1>
-;  V01 arg1         [V01,T01] (  8,  8   )  struct (24) [sp+0x3C]  do-not-enreg[S] single-def <System.Diagnostics.ActivityLink>
+;  V01 arg1         [V01,T01] (  8,  8   )  struct (24) [sp+0x34]  do-not-enreg[S] single-def <System.Diagnostics.ActivityLink>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Diagnostics.ActivityLink>
 ;  V04 tmp2         [V04,T09] (  3,  2   )   ubyte  ->   r0         "Inline return value spill temp"
@@ -41,7 +41,7 @@
 ;* V30 tmp28        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
 ;  V31 tmp29        [V31,T21] (  2,  1   )   ubyte  ->   r0         "Inline return value spill temp"
 ;* V32 tmp30        [V32    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
-;  V33 tmp31        [V33,T11] (  2,  2   )   byref  ->  [sp+0x0C]  spill-single-def "impAppendStmt"
+;  V33 tmp31        [V33,T11] (  2,  2   )   byref  ->   r0         single-def "impAppendStmt"
 ;* V34 tmp32        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V35 tmp33        [V35    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp34        [V36    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -58,18 +58,18 @@
 ;* V47 tmp45        [V47    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V13._hexString (fldOffset=0x0)" P-INDEP
 ;* V48 tmp46        [V48    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V14._hexString (fldOffset=0x0)" P-INDEP
 ;* V49 tmp47        [V49    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V15._hexString (fldOffset=0x0)" P-INDEP
-;  V50 tmp48        [V50,T14] (  2,  1.50)     ref  ->   r4         single-def "V03.[000..004)"
+;  V50 tmp48        [V50,T14] (  2,  1.50)     ref  ->  [sp+0x04]  spill-single-def "V03.[000..004)"
 ;  V51 tmp49        [V51,T07] (  5,  2.88)     ref  ->   r5         single-def "V03.[004..008)"
 ;  V52 tmp50        [V52,T16] (  2,  1.50)     int  ->   r6         "V03.[008..012)"
 ;  V53 tmp51        [V53,T17] (  2,  1.50)   ubyte  ->   r7         "V03.[012..013)"
-;  V54 tmp52        [V54,T04] (  6,  3.38)     ref  ->  [sp+0x08]  single-def "V03.[016..020)"
-;  V55 tmp53        [V55,T03] (  6,  3.88)     ref  ->   r9         single-def "V03.[020..024)"
-;  V56 tmp54        [V56,T15] (  2,  1.50)     ref  ->  r10         single-def "V05.[000..004)"
-;  V57 tmp55        [V57,T05] (  6,  3.38)     ref  ->  [sp+0x04]  spill-single-def "V05.[004..008)"
-;  V58 tmp56        [V58,T18] (  2,  1.50)     int  ->  [sp+0x14]  spill-single-def "V05.[008..012)"
-;  V59 tmp57        [V59,T19] (  2,  1.50)   ubyte  ->  [sp+0x10]  spill-single-def "V05.[012..013)"
-;  V60 tmp58        [V60,T08] (  5,  2.88)     ref  ->  [sp+0x00]  single-def "V05.[016..020)"
-;  V61 tmp59        [V61,T06] (  5,  3.38)     ref  ->   r2         single-def "V05.[020..024)"
+;  V54 tmp52        [V54,T04] (  6,  3.38)     ref  ->   r8         single-def "V03.[016..020)"
+;  V55 tmp53        [V55,T03] (  6,  3.88)     ref  ->   r2         single-def "V03.[020..024)"
+;  V56 tmp54        [V56,T15] (  2,  1.50)     ref  ->   r9         single-def "V05.[000..004)"
+;  V57 tmp55        [V57,T05] (  6,  3.38)     ref  ->  r10         single-def "V05.[004..008)"
+;  V58 tmp56        [V58,T18] (  2,  1.50)     int  ->  [sp+0x0C]  spill-single-def "V05.[008..012)"
+;  V59 tmp57        [V59,T19] (  2,  1.50)   ubyte  ->  [sp+0x08]  spill-single-def "V05.[012..013)"
+;  V60 tmp58        [V60,T08] (  5,  2.88)     ref  ->  [sp+0x00]  spill-single-def "V05.[016..020)"
+;  V61 tmp59        [V61,T06] (  5,  3.38)     ref  ->   r1         single-def "V05.[020..024)"
 ;* V62 tmp60        [V62    ] (  0,  0   )     ref  ->  zero-ref    single-def "V09.[000..004)"
 ;* V63 tmp61        [V63    ] (  0,  0   )     int  ->  zero-ref    "V09.[004..008)"
 ;* V64 tmp62        [V64    ] (  0,  0   )   ubyte  ->  zero-ref    "V09.[008..009)"
@@ -93,13 +93,13 @@
 ;  V82 tmp80        [V82,T00] (  7, 14   )   byref  ->   r1         single-def "Spilling address for field-by-field copy"
 ;  V83 cse0         [V83,T13] (  4,  1.88)     int  ->   r6         "CSE - moderate"
 ;
-; Lcl frame size = 24
+; Lcl frame size = 16
 
 G_M4102_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r1,r2,r3}
             push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            sub     sp, 24
-            add     r11, sp, 52
+            sub     sp, 16
+            add     r11, sp, 44
                        ;; size=12 bbWeight=1 PerfScore 4.00
 G_M4102_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r0]
@@ -107,216 +107,190 @@ G_M4102_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
             ; byrRegs +[r1]
             ldr     r4, [r1]
             ; gcrRegs +[r4]
+            str     r4, [sp+0x04]  // [V50 tmp48]
+            ; GC ptr vars +{V50}
             ldr     r5, [r1+0x04]
             ; gcrRegs +[r5]
             ldr     r6, [r1+0x08]
             ldrb    r7, [r1+0x0C]
             ldr     r8, [r1+0x10]
             ; gcrRegs +[r8]
-            ldr     r9, [r1+0x14]
-            ; gcrRegs +[r9]
-            ldr     r10, [sp+0x3C]
-            ; gcrRegs +[r10]
-            ldr     r3, [sp+0x40]
-            ; gcrRegs +[r3]
-            str     r3, [sp+0x04]  // [V57 tmp55]
-            ; GC ptr vars +{V57}
-            ldr     lr, [sp+0x44]  // [V01 arg1+0x08]
-            str     lr, [sp+0x14]  // [V58 tmp56]
-            ldrb    r12, [sp+0x48] // [V01 arg1+0x0c]
-            str     r12, [sp+0x10] // [V59 tmp57]
-            ldr     r0, [sp+0x4C]  // [V01 arg1+0x10]
-            ldr     r2, [sp+0x50]  // [V01 arg1+0x14]
+            ldr     r2, [r1+0x14]
             ; gcrRegs +[r2]
-            cmp     r9, r2
-            beq     SHORT G_M4102_IG05
-                       ;; size=50 bbWeight=1 PerfScore 18.00
-G_M4102_IG03:        ; bbWeight=0.44, gcVars=00000020 {V57}, gcrefRegs=0735 {r0 r2 r4 r5 r8 r9 r10}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[r3]
+            ldr     r9, [sp+0x34]  // [V01 arg1]
+            ; gcrRegs +[r9]
+            ldr     r10, [sp+0x38] // [V01 arg1+0x04]
+            ; gcrRegs +[r10]
+            ldr     r3, [sp+0x3C]  // [V01 arg1+0x08]
+            str     r3, [sp+0x0C]  // [V58 tmp56]
+            ldrb    lr, [sp+0x40]  // [V01 arg1+0x0c]
+            str     lr, [sp+0x08]  // [V59 tmp57]
+            ldr     r12, [sp+0x44] // [V01 arg1+0x10]
+            ; gcrRegs +[r12]
+            str     r12, [sp]  // [V60 tmp58]
+            ; GC ptr vars +{V60}
+            ldr     r1, [sp+0x48]  // [V01 arg1+0x14]
+            ; gcrRegs +[r1]
             ; byrRegs -[r1]
-            cmp     r9, 0
-            beq     SHORT G_M4102_IG24
-                       ;; size=6 bbWeight=0.44 PerfScore 0.88
-G_M4102_IG04:        ; bbWeight=0.44, gcrefRegs=0735 {r0 r2 r4 r5 r8 r9 r10}, byrefRegs=0000 {}, byref, isz
-            mov     r3, r8
-            ; gcrRegs +[r3]
-            mov     lr, r0
-            ; gcrRegs +[lr]
-            b       SHORT G_M4102_IG18
-                       ;; size=6 bbWeight=0.44 PerfScore 1.31
-G_M4102_IG05:        ; bbWeight=0.50, gcrefRegs=0531 {r0 r4 r5 r8 r10}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r2-r3 r9 lr]
-            cmp     r8, r0
-            beq     SHORT G_M4102_IG10
-                       ;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M4102_IG06:        ; bbWeight=0.44, gcrefRegs=0531 {r0 r4 r5 r8 r10}, byrefRegs=0000 {}, byref, isz
-            cmp     r8, 0
-            beq     SHORT G_M4102_IG24
-                       ;; size=6 bbWeight=0.44 PerfScore 0.88
-G_M4102_IG07:        ; bbWeight=0.44, gcrefRegs=0531 {r0 r4 r5 r8 r10}, byrefRegs=0000 {}, byref, isz
-            cmp     r0, 0
-            beq     SHORT G_M4102_IG24
+            cmp     r2, r1
+            beq     SHORT G_M4102_IG07
+                       ;; size=52 bbWeight=1 PerfScore 19.00
+G_M4102_IG03:        ; bbWeight=0.44, gcVars=00004100 {V50 V60}, gcrefRegs=0726 {r1 r2 r5 r8 r9 r10}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[r0 r4 r12]
+            cmp     r2, 0
+            beq     SHORT G_M4102_IG20
                        ;; size=4 bbWeight=0.44 PerfScore 0.88
-G_M4102_IG08:        ; bbWeight=0.44, gcrefRegs=0531 {r0 r4 r5 r8 r10}, byrefRegs=0000 {}, byref, isz
-            ldr     r1, [r8+0x04]
-            ldr     r2, [r0+0x04]
-            cmp     r1, r2
-            bne     SHORT G_M4102_IG24
-                       ;; size=10 bbWeight=0.44 PerfScore 1.75
-G_M4102_IG09:        ; bbWeight=0.50, gcrefRegs=0531 {r0 r4 r5 r8 r10}, byrefRegs=0000 {}, byref, isz
-            add     r2, r8, 8
-            ; byrRegs +[r2]
-            str     r2, [sp+0x0C]  // [V33 tmp31]
-            ; GC ptr vars +{V33}
-            add     r1, r0, 8
-            ; byrRegs +[r1]
-            ldr     r0, [r8+0x04]
-            ; gcrRegs -[r0]
-            lsls    r2, r0, 1
-            ; byrRegs -[r2]
-            ldr     r0, [sp+0x0C]  // [V33 tmp31]
+G_M4102_IG04:        ; bbWeight=0.44, gcrefRegs=0726 {r1 r2 r5 r8 r9 r10}, byrefRegs=0000 {}, byref, isz
+            cmp     r1, 0
+            beq     SHORT G_M4102_IG20
+                       ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M4102_IG05:        ; bbWeight=0.44, gcrefRegs=0726 {r1 r2 r5 r8 r9 r10}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r2+0x04]
+            ldr     r4, [r1+0x04]
+            cmp     r0, r4
+            bne     SHORT G_M4102_IG20
+                       ;; size=8 bbWeight=0.44 PerfScore 1.75
+G_M4102_IG06:        ; bbWeight=0.50, gcrefRegs=0726 {r1 r2 r5 r8 r9 r10}, byrefRegs=0000 {}, byref, isz
+            add     r0, r2, 8
             ; byrRegs +[r0]
-            movw    r8, 0xd1ff
-            ; gcrRegs -[r8]
-            movt    r8, 0xd1ff
-            ldr     r9, [r8]
-            ; GC ptr vars -{V33}
-            blx     r9     // <unknown method>
+            adds    r1, 8
+            ; gcrRegs -[r1]
+            ; byrRegs +[r1]
+            ldr     r2, [r2+0x04]
+            ; gcrRegs -[r2]
+            lsls    r2, r2, 1
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            ldr     r4, [r4]
+            blx     r4     // <unknown method>
             ; byrRegs -[r0-r1]
             cmp     r0, 0
-            beq     SHORT G_M4102_IG24
-                       ;; size=36 bbWeight=0.50 PerfScore 6.00
-G_M4102_IG10:        ; bbWeight=0.50, gcrefRegs=0430 {r4 r5 r10}, byrefRegs=0000 {}, byref, isz
-            ldr     lr, [sp+0x14]  // [V58 tmp56]
-            cmp     r6, lr
-            bne     SHORT G_M4102_IG24
-            ldr     r3, [sp+0x04]  // [V57 tmp55]
-            ; gcrRegs +[r3]
-            cmp     r5, r3
-            beq     SHORT G_M4102_IG17
-                       ;; size=14 bbWeight=0.50 PerfScore 3.00
-G_M4102_IG11:        ; bbWeight=0.44, gcrefRegs=0438 {r3 r4 r5 r10}, byrefRegs=0000 {}, byref, isz
-            cmp     r5, 0
-            beq     SHORT G_M4102_IG24
-                       ;; size=4 bbWeight=0.44 PerfScore 0.88
-G_M4102_IG12:        ; bbWeight=0.44, gcrefRegs=0438 {r3 r4 r5 r10}, byrefRegs=0000 {}, byref, isz
-            cmp     r3, 0
-            beq     SHORT G_M4102_IG24
-                       ;; size=4 bbWeight=0.44 PerfScore 0.88
-G_M4102_IG13:        ; bbWeight=0.44, gcrefRegs=0438 {r3 r4 r5 r10}, byrefRegs=0000 {}, byref, isz
-            ldr     r6, [r5+0x04]
-            ldr     r0, [r3+0x04]
-            cmp     r6, r0
-            bne     SHORT G_M4102_IG24
-                       ;; size=8 bbWeight=0.44 PerfScore 1.75
-G_M4102_IG14:        ; bbWeight=0.50, gcrefRegs=0438 {r3 r4 r5 r10}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r3+0x04]
-            cmp     r0, r6
-            beq     SHORT G_M4102_IG15
-            movs    r0, 0
-            b       SHORT G_M4102_IG16
+            beq     SHORT G_M4102_IG20
+                       ;; size=26 bbWeight=0.50 PerfScore 5.00
+G_M4102_IG07:        ; bbWeight=0.50, gcrefRegs=0720 {r5 r8 r9 r10}, byrefRegs=0000 {}, byref, isz
+            ldr     r12, [sp]  // [V60 tmp58]
+            ; gcrRegs +[r12]
+            cmp     r8, r12
+            beq     SHORT G_M4102_IG12
+                       ;; size=8 bbWeight=0.50 PerfScore 1.50
+G_M4102_IG08:        ; bbWeight=0.44, gcrefRegs=1720 {r5 r8 r9 r10 r12}, byrefRegs=0000 {}, byref, isz
+            cmp     r8, 0
+            beq     SHORT G_M4102_IG20
+                       ;; size=6 bbWeight=0.44 PerfScore 0.88
+G_M4102_IG09:        ; bbWeight=0.44, gcrefRegs=1720 {r5 r8 r9 r10 r12}, byrefRegs=0000 {}, byref, isz
+            cmp     r12, 0
+            beq     SHORT G_M4102_IG20
+                       ;; size=6 bbWeight=0.44 PerfScore 0.88
+G_M4102_IG10:        ; bbWeight=0.44, gcrefRegs=1720 {r5 r8 r9 r10 r12}, byrefRegs=0000 {}, byref, isz
+            ldr     r1, [r8+0x04]
+            ldr     r2, [r12+0x04]
+            cmp     r1, r2
+            bne     SHORT G_M4102_IG20
+                       ;; size=12 bbWeight=0.44 PerfScore 1.75
+G_M4102_IG11:        ; bbWeight=0.50, gcrefRegs=1720 {r5 r8 r9 r10 r12}, byrefRegs=0000 {}, byref, isz
+            add     r0, r8, 8
+            ; byrRegs +[r0]
+            add     r1, r12, 8
+            ; byrRegs +[r1]
+            ldr     r2, [r8+0x04]
+            lsls    r2, r2, 1
...

+22 (+29.73%) : 49333.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  ->   r4         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+;  V00 this         [V00,T00] (  5,  4   )     ref  ->   r4         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   r1         class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
 ;  V02 loc0         [V02,T06] (  3,  1.50)     int  ->   r3         ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.__Canon>
@@ -20,18 +20,20 @@
 ;  V09 tmp4         [V09,T04] (  3,  2.50)   byref  ->   r0         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  ->   r2         single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V12 rat0         [V12,T05] (  0,  0   )     int  ->  zero-ref    "Spilling to split statement for tree"
+;  V12 rat0         [V12,T05] (  2,  2   )     int  ->   r0         "Spilling to split statement for tree"
 ;* V13 rat1         [V13,T09] (  0,  0   )     int  ->  zero-ref    "runtime lookup"
-;* V14 rat2         [V14,T03] (  0,  0   )     int  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V14 rat2         [V14,T03] (  2,  2   )     int  ->   r0         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 12
 
 G_M43979_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,r4,r11,lr}
-            add     r11, sp, 8
+            push    {r4,r11,lr}
+            sub     sp, 12
+            add     r11, sp, 16
+            str     r0, [r11-0x0C]
             mov     r4, r0
             ; gcrRegs +[r4]
-                       ;; size=10 bbWeight=1 PerfScore 3.00
+                       ;; size=16 bbWeight=1 PerfScore 5.00
 G_M43979_IG02:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r1]
             ldr     r0, [r4+0x10]
@@ -44,27 +46,36 @@ G_M43979_IG02:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0-r1]
             ; byrRegs +[r0]
             cmp     r0, 0
-            beq     SHORT G_M43979_IG04
+            beq     SHORT G_M43979_IG05
                        ;; size=22 bbWeight=1 PerfScore 8.00
 G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0001 {r0}, byref, isz
             ldr     r3, [r0]
             ldr     r2, [r4+0x44]
             ; gcrRegs +[r2]
-            b       SHORT G_M43979_IG06
-                       ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M43979_IG04:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r2]
+            ldr     r0, [r4]
             ; byrRegs -[r0]
+            ldr     r0, [r0+0x24]
+            ldr     r0, [r0]
+            ldr     r0, [r0+0x60]
+            cmp     r0, 0
+            bne     SHORT G_M43979_IG07
+                       ;; size=16 bbWeight=0.50 PerfScore 4.00
+G_M43979_IG04:        ; bbWeight=0.10, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M43979_IG07
+                       ;; size=2 bbWeight=0.10 PerfScore 0.10
+G_M43979_IG05:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r2]
             movs    r0, 0
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M43979_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r11,pc}
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M43979_IG06:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+            add     sp, 12
+            pop     {r4,r11,pc}
+                       ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M43979_IG07:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[r2]
             ldr     r0, [r2+0x04]
             cmp     r3, r0
-            bhs     SHORT G_M43979_IG08
+            bhs     SHORT G_M43979_IG09
             add     r0, r2, 8
             ; byrRegs +[r0]
             lsls    r3, r3, 2
@@ -72,10 +83,11 @@ G_M43979_IG06:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0014 {r2 r4
             ; gcrRegs +[r0]
             ; byrRegs -[r0]
                        ;; size=14 bbWeight=0.50 PerfScore 3.00
-G_M43979_IG07:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r11,pc}
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M43979_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+            add     sp, 12
+            pop     {r4,r11,pc}
+                       ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M43979_IG09:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0 r2]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -83,7 +95,7 @@ G_M43979_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byr
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 74, prolog size 8, PerfScore 17.00, instruction count 27, 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 96, prolog size 14, PerfScore 22.60, instruction count 37, allocated bytes for code 96 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -95,7 +107,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 74 (0x00004a)
+  Function Length   : 48 (0x00030) Actual length = 96 (0x000060)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -107,7 +119,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 18       pop {r3,r4,r11,lr}                  ; opsize 32
-    FF          end
+    03          add sp, sp, #12                     ; opsize 16
+    A8 10       pop {r4,r11,lr}                     ; opsize 32
     FF          end
 

+22 (+29.73%) : 43394.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  ->   r4         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+;  V00 this         [V00,T00] (  5,  4   )     ref  ->   r4         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   r1         class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
 ;  V02 loc0         [V02,T06] (  3,  1.50)     int  ->   r3         ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.__Canon>
@@ -20,18 +20,20 @@
 ;  V09 tmp4         [V09,T04] (  3,  2.50)   byref  ->   r0         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  ->   r2         single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V12 rat0         [V12,T05] (  0,  0   )     int  ->  zero-ref    "Spilling to split statement for tree"
+;  V12 rat0         [V12,T05] (  2,  2   )     int  ->   r0         "Spilling to split statement for tree"
 ;* V13 rat1         [V13,T09] (  0,  0   )     int  ->  zero-ref    "runtime lookup"
-;* V14 rat2         [V14,T03] (  0,  0   )     int  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V14 rat2         [V14,T03] (  2,  2   )     int  ->   r0         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 12
 
 G_M43979_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,r4,r11,lr}
-            add     r11, sp, 8
+            push    {r4,r11,lr}
+            sub     sp, 12
+            add     r11, sp, 16
+            str     r0, [r11-0x0C]
             mov     r4, r0
             ; gcrRegs +[r4]
-                       ;; size=10 bbWeight=1 PerfScore 3.00
+                       ;; size=16 bbWeight=1 PerfScore 5.00
 G_M43979_IG02:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r1]
             ldr     r0, [r4+0x10]
@@ -44,27 +46,36 @@ G_M43979_IG02:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0-r1]
             ; byrRegs +[r0]
             cmp     r0, 0
-            beq     SHORT G_M43979_IG04
+            beq     SHORT G_M43979_IG05
                        ;; size=22 bbWeight=1 PerfScore 8.00
 G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0001 {r0}, byref, isz
             ldr     r3, [r0]
             ldr     r2, [r4+0x44]
             ; gcrRegs +[r2]
-            b       SHORT G_M43979_IG06
-                       ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M43979_IG04:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r2]
+            ldr     r0, [r4]
             ; byrRegs -[r0]
+            ldr     r0, [r0+0x24]
+            ldr     r0, [r0]
+            ldr     r0, [r0+0x60]
+            cmp     r0, 0
+            bne     SHORT G_M43979_IG07
+                       ;; size=16 bbWeight=0.50 PerfScore 4.00
+G_M43979_IG04:        ; bbWeight=0.10, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M43979_IG07
+                       ;; size=2 bbWeight=0.10 PerfScore 0.10
+G_M43979_IG05:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r2]
             movs    r0, 0
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M43979_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r11,pc}
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M43979_IG06:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+            add     sp, 12
+            pop     {r4,r11,pc}
+                       ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M43979_IG07:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[r2]
             ldr     r0, [r2+0x04]
             cmp     r3, r0
-            bhs     SHORT G_M43979_IG08
+            bhs     SHORT G_M43979_IG09
             add     r0, r2, 8
             ; byrRegs +[r0]
             lsls    r3, r3, 2
@@ -72,10 +83,11 @@ G_M43979_IG06:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0014 {r2 r4
             ; gcrRegs +[r0]
             ; byrRegs -[r0]
                        ;; size=14 bbWeight=0.50 PerfScore 3.00
-G_M43979_IG07:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r11,pc}
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M43979_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+            add     sp, 12
+            pop     {r4,r11,pc}
+                       ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M43979_IG09:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0 r2]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -83,7 +95,7 @@ G_M43979_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byr
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 74, prolog size 8, PerfScore 17.00, instruction count 27, 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 96, prolog size 14, PerfScore 22.60, instruction count 37, allocated bytes for code 96 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -95,7 +107,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 74 (0x00004a)
+  Function Length   : 48 (0x00030) Actual length = 96 (0x000060)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -107,7 +119,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 18       pop {r3,r4,r11,lr}                  ; opsize 32
-    FF          end
+    03          add sp, sp, #12                     ; opsize 16
+    A8 10       pop {r4,r11,lr}                     ; opsize 32
     FF          end
 

+24 (+32.43%) : 5259.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  ->   r4         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+;  V00 this         [V00,T00] (  5,  4   )     ref  ->   r4         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   r1         class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
 ;  V02 loc0         [V02,T06] (  3,  1.50)     int  ->   r3         ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.__Canon>
@@ -20,18 +20,20 @@
 ;  V09 tmp4         [V09,T04] (  3,  2.50)   byref  ->   r0         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  ->   r2         single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V12 rat0         [V12,T05] (  0,  0   )     int  ->  zero-ref    "Spilling to split statement for tree"
+;  V12 rat0         [V12,T05] (  2,  2   )     int  ->   r0         "Spilling to split statement for tree"
 ;* V13 rat1         [V13,T09] (  0,  0   )     int  ->  zero-ref    "runtime lookup"
-;* V14 rat2         [V14,T03] (  0,  0   )     int  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V14 rat2         [V14,T03] (  2,  2   )     int  ->   r0         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 12
 
 G_M43979_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,r4,r11,lr}
-            add     r11, sp, 8
+            push    {r4,r11,lr}
+            sub     sp, 12
+            add     r11, sp, 16
+            str     r0, [r11-0x0C]
             mov     r4, r0
             ; gcrRegs +[r4]
-                       ;; size=10 bbWeight=1 PerfScore 3.00
+                       ;; size=16 bbWeight=1 PerfScore 5.00
 G_M43979_IG02:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r1]
             ldr     r0, [r4+0x10]
@@ -44,27 +46,36 @@ G_M43979_IG02:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0-r1]
             ; byrRegs +[r0]
             cmp     r0, 0
-            beq     SHORT G_M43979_IG04
+            beq     SHORT G_M43979_IG05
                        ;; size=22 bbWeight=1 PerfScore 8.00
 G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0001 {r0}, byref, isz
             ldr     r3, [r0]
             ldr     r2, [r4+0x44]
             ; gcrRegs +[r2]
-            b       SHORT G_M43979_IG06
-                       ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M43979_IG04:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r2]
+            ldr     r0, [r4]
             ; byrRegs -[r0]
+            ldr     r0, [r0+0x24]
+            ldr     r0, [r0]
+            ldr     r0, [r0+0x84]
+            cmp     r0, 0
+            bne     SHORT G_M43979_IG07
+                       ;; size=18 bbWeight=0.50 PerfScore 4.00
+G_M43979_IG04:        ; bbWeight=0.10, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M43979_IG07
+                       ;; size=2 bbWeight=0.10 PerfScore 0.10
+G_M43979_IG05:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r2]
             movs    r0, 0
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M43979_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r11,pc}
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M43979_IG06:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+            add     sp, 12
+            pop     {r4,r11,pc}
+                       ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M43979_IG07:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[r2]
             ldr     r0, [r2+0x04]
             cmp     r3, r0
-            bhs     SHORT G_M43979_IG08
+            bhs     SHORT G_M43979_IG09
             add     r0, r2, 8
             ; byrRegs +[r0]
             lsls    r3, r3, 2
@@ -72,10 +83,11 @@ G_M43979_IG06:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0014 {r2 r4
             ; gcrRegs +[r0]
             ; byrRegs -[r0]
                        ;; size=14 bbWeight=0.50 PerfScore 3.00
-G_M43979_IG07:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r11,pc}
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M43979_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+            add     sp, 12
+            pop     {r4,r11,pc}
+                       ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M43979_IG09:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0 r2]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -83,7 +95,7 @@ G_M43979_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byr
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 74, prolog size 8, PerfScore 17.00, instruction count 27, 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 98, prolog size 14, PerfScore 22.60, instruction count 37, allocated bytes for code 98 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -95,7 +107,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 74 (0x00004a)
+  Function Length   : 49 (0x00031) Actual length = 98 (0x000062)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -107,7 +119,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 18       pop {r3,r4,r11,lr}                  ; opsize 32
-    FF          end
+    03          add sp, sp, #12                     ; opsize 16
+    A8 10       pop {r4,r11,lr}                     ; opsize 32
     FF          end
 

realworld.run.linux.arm.checked.mch

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

@@ -78,9 +78,8 @@ G_M20310_IG06:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             ; byrRegs +[r3]
             ldr     r2, [r3+0x04]
             cmp     r2, -1
-            bge     SHORT G_M20310_IG07
-            b       SHORT G_M20310_IG03
-                       ;; size=32 bbWeight=2 PerfScore 30.00
+            blt     SHORT G_M20310_IG03
+                       ;; size=30 bbWeight=2 PerfScore 28.00
 G_M20310_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0009 {r0 r3}, byref
             ldr     r2, [r3+0x08]
             ldr     r3, [r3+0x0C]
@@ -108,7 +107,7 @@ G_M20310_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 116, prolog size 6, PerfScore 84.50, instruction count 50, allocated bytes for code 116 (MethodHash=5c1ab0a9) for method System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 114, prolog size 6, PerfScore 82.50, instruction count 49, allocated bytes for code 114 (MethodHash=5c1ab0a9) for method System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -120,7 +119,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 58 (0x0003a) Actual length = 116 (0x000074)
+  Function Length   : 57 (0x00039) Actual length = 114 (0x000072)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

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

@@ -73,9 +73,8 @@ G_M18821_IG06:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             ; byrRegs +[r3]
             ldr     r2, [r3+0x04]
             cmp     r2, -1
-            bge     SHORT G_M18821_IG07
-            b       SHORT G_M18821_IG03
-                       ;; size=32 bbWeight=2 PerfScore 30.00
+            blt     SHORT G_M18821_IG03
+                       ;; size=30 bbWeight=2 PerfScore 28.00
 G_M18821_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0009 {r0 r3}, byref
             ldr     r2, [r3+0x10]
             str     r2, [r0+0x0C]
@@ -105,7 +104,7 @@ G_M18821_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 122, prolog size 6, PerfScore 86.00, instruction count 53, allocated bytes for code 122 (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 120, prolog size 6, PerfScore 84.00, instruction count 52, allocated bytes for code 120 (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:
@@ -117,7 +116,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 61 (0x0003d) Actual length = 122 (0x00007a)
+  Function Length   : 60 (0x0003c) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-2 (-1.59%) : 111.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)

@@ -72,9 +72,8 @@ G_M25445_IG06:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             ; byrRegs +[r1]
             ldr     r3, [r1+0x08]
             cmp     r3, -1
-            bge     SHORT G_M25445_IG07
-            b       SHORT G_M25445_IG03
-                       ;; size=38 bbWeight=2 PerfScore 30.00
+            blt     SHORT G_M25445_IG03
+                       ;; size=36 bbWeight=2 PerfScore 28.00
 G_M25445_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {r0 r1}, byref
             ldr     r1, [r1]
             ; gcrRegs +[r1]
@@ -105,7 +104,7 @@ G_M25445_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 126, prolog size 6, PerfScore 84.50, instruction count 50, allocated bytes for code 126 (MethodHash=60f49c9a) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 124, prolog size 6, PerfScore 82.50, instruction count 49, allocated bytes for code 124 (MethodHash=60f49c9a) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -117,7 +116,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 63 (0x0003f) Actual length = 126 (0x00007e)
+  Function Length   : 62 (0x0003e) Actual length = 124 (0x00007c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+26 (+10.24%) : 31645.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  ->   r4         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator>
+;  V00 this         [V00,T02] (  6,  4   )     ref  ->   r4         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator>
 ;  V01 arg1         [V01,T00] (  6,  5   )     ref  ->   r1         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator>
-;  V02 arg2         [V02,T02] (  6,  4   )   ubyte  ->   r5         single-def
+;  V02 arg2         [V02,T03] (  6,  4   )   ubyte  ->   r5         single-def
 ;  V03 loc0         [V03,T06] (  4,  2   )     ref  ->   r0         class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V04 loc1         [V04    ] (  0,  0   )    byte  ->  zero-ref   
-;  V05 loc2         [V05,T03] (  7,  4.50)     int  ->   r0         single-def
+;  V05 loc2         [V05,T01] ( 10,  6   )     int  ->   r0         single-def
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+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,42 +45,57 @@ G_M22690_IG02:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, b
 G_M22690_IG03:        ; bbWeight=0.50, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref, isz
             movw    r3, 0xd1ff
             cmp     r0, r3
-            beq     SHORT G_M22690_IG05
+            beq     SHORT G_M22690_IG06
             movw    r3, 0xd1ff
             cmp     r0, r3
-            beq     SHORT G_M22690_IG06
+            beq     SHORT G_M22690_IG07
             movw    r3, 0xd1ff
             sxth    r3, r3
             adds    r0, r0, r3
             cmp     r0, 1
-            bls     SHORT G_M22690_IG05
-            b       SHORT G_M22690_IG16
+            bls     SHORT G_M22690_IG06
+            b       SHORT G_M22690_IG17
                        ;; size=30 bbWeight=0.50 PerfScore 6.00
 G_M22690_IG04:        ; bbWeight=0.50, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref, isz
             movw    r3, 0xd1ff
             cmp     r0, r3
-            bgt     SHORT G_M22690_IG16
+            bgt     SHORT G_M22690_IG05
             movw    r3, 0xd1ff
             cmp     r0, r3
-            beq     SHORT G_M22690_IG06
-            b       SHORT G_M22690_IG16
+            beq     SHORT G_M22690_IG07
+            movw    r1, 0xd1ff
+            ; gcrRegs -[r1]
+            cmp     r0, r1
+            beq     SHORT G_M22690_IG17
+            b       SHORT G_M22690_IG17
+                       ;; size=26 bbWeight=0.50 PerfScore 5.00
+G_M22690_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r4]
+            movw    r3, 0xd1ff
+            cmp     r0, r3
+            beq     SHORT G_M22690_IG17
+            movw    r3, 0xd1ff
+            cmp     r0, r3
+            beq     SHORT G_M22690_IG17
+            b       SHORT G_M22690_IG17
                        ;; size=18 bbWeight=0.50 PerfScore 3.50
-G_M22690_IG05:        ; bbWeight=0.50, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref, isz
+G_M22690_IG06:        ; bbWeight=0.50, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r1 r4]
             ldr     r1, [r1+0x10]
             ldr     r0, [r1+0x0C]
             ; gcrRegs +[r0]
-            b       SHORT G_M22690_IG07
+            b       SHORT G_M22690_IG08
                        ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M22690_IG06:        ; bbWeight=0.50, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref
+G_M22690_IG07:        ; bbWeight=0.50, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r0]
             ldr     r0, [r1+0x14]
             ; gcrRegs +[r0]
             ldr     r0, [r0+0x0C]
                        ;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M22690_IG07:        ; bbWeight=0.50, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, byref, isz
+G_M22690_IG08:        ; bbWeight=0.50, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r1]
             cmp     r0, 0
-            beq     SHORT G_M22690_IG16
+            beq     SHORT G_M22690_IG17
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -92,18 +107,18 @@ G_M22690_IG07:        ; bbWeight=0.50, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}
             ; gcrRegs -[r0]
             subs    r0, 9
             cmp     r0, 3
-            bhi     SHORT G_M22690_IG16
+            bhi     SHORT G_M22690_IG17
             movw    r3, LOW ADDRESS J_M22690_DS00
             movt    r3, HIGH ADDRESS J_M22690_DS00
 
     J_M22690_DS00 LABEL   DWORD
-            DD      G_M22690_IG10
-            DD      G_M22690_IG08
-            DD      G_M22690_IG12
-            DD      G_M22690_IG14
+            DD      G_M22690_IG11
+            DD      G_M22690_IG09
+            DD      G_M22690_IG13
+            DD      G_M22690_IG15
             ldr     pc, [r3+4*r0]
                        ;; size=42 bbWeight=0.50 PerfScore 8.00
-G_M22690_IG08:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M22690_IG09:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ldr     r0, [r4+0x10]
             ; gcrRegs +[r0]
             uxtb    r3, r5
@@ -114,11 +129,11 @@ G_M22690_IG08:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
             ldr     r12, [lr]
             ldr     lr, [r0]
                        ;; size=24 bbWeight=0.50 PerfScore 4.00
-G_M22690_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+G_M22690_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r4,r5,r11,lr}
             bx      r12        // <unknown method>
                        ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M22690_IG10:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
+G_M22690_IG11:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0]
             ldr     r0, [r4+0x10]
             ; gcrRegs +[r0]
@@ -130,11 +145,11 @@ G_M22690_IG10:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4},
             ldr     r12, [lr]
             ldr     lr, [r0]
                        ;; size=24 bbWeight=0.50 PerfScore 4.00
-G_M22690_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+G_M22690_IG12:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r4,r5,r11,lr}
             bx      r12        // <unknown method>
                        ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M22690_IG12:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
+G_M22690_IG13:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0]
             ldr     r0, [r4+0x10]
             ; gcrRegs +[r0]
@@ -146,11 +161,11 @@ G_M22690_IG12:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4},
             ldr     r12, [lr]
             ldr     lr, [r0]
                        ;; size=24 bbWeight=0.50 PerfScore 4.00
-G_M22690_IG13:        ; bbWeight=0.50, epilog, nogc, extend
+G_M22690_IG14:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r4,r5,r11,lr}
             bx      r12        // <unknown method>
                        ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M22690_IG14:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
+G_M22690_IG15:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0]
             ldr     r0, [r4+0x10]
             ; gcrRegs +[r0]
@@ -162,21 +177,21 @@ G_M22690_IG14:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4},
             ldr     r12, [lr]
             ldr     lr, [r0]
                        ;; size=24 bbWeight=0.50 PerfScore 4.00
-G_M22690_IG15:        ; bbWeight=0.50, epilog, nogc, extend
+G_M22690_IG16:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r4,r5,r11,lr}
             bx      r12        // <unknown method>
                        ;; size=6 bbWeight=0.50 PerfScore 1.00
-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 -[r0 r4]
             pop     {r4,r5,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-RWD00      dd  G_M22690_IG10
-           dd  G_M22690_IG08
-           dd  G_M22690_IG12
-           dd  G_M22690_IG14
+RWD00      dd  G_M22690_IG11
+           dd  G_M22690_IG09
+           dd  G_M22690_IG13
+           dd  G_M22690_IG15
 
 
-; Total bytes of code 254, prolog size 8, PerfScore 51.50, instruction count 92, allocated bytes for code 254 (MethodHash=a8a6a75d) for method Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
+; Total bytes of code 280, prolog size 8, PerfScore 56.50, instruction count 102, allocated bytes for code 280 (MethodHash=a8a6a75d) for method Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -188,7 +203,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 127 (0x0007f) Actual length = 254 (0x0000fe)
+  Function Length   : 140 (0x0008c) Actual length = 280 (0x000118)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+22 (+16.92%) : 32925.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)

@@ -8,21 +8,20 @@
 ; 0 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  5,  4   )     ref  ->   r5         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
+;  V00 arg0         [V00,T00] (  6,  4.50)     ref  ->   r5         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
 ;  V01 arg1         [V01,T01] (  4,  3   )     ref  ->   r6         class-hnd single-def <System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]>
-;  V02 loc0         [V02,T03] (  5,  2.25)     ref  ->   r0         class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundDagFieldEvaluation>
-;  V03 loc1         [V03,T04] (  4,  2   )     ref  ->   r7         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol>
+;  V02 loc0         [V02,T04] (  5,  2.25)     ref  ->   r0         class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundDagFieldEvaluation>
+;  V03 loc1         [V03,T05] (  4,  2   )     ref  ->   r7         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol>
 ;  V04 loc2         [V04,T02] (  4,  2.75)     ref  ->   r4         class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundEvaluationDecisionDagNode>
 ;# 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" <Microsoft.CodeAnalysis.CSharp.BoundEvaluationDecisionDagNode>
-;  V07 tmp2         [V07,T05] (  2,  2   )     ref  ->   r0         single-def "CASTCLASS eval op1"
+;  V07 tmp2         [V07,T06] (  2,  2   )     ref  ->   r0         single-def "CASTCLASS eval op1"
 ;* V08 tmp3         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.BoundDagFieldEvaluation>
-;* V09 tmp4         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
-;  V10 tmp5         [V10,T06] (  2,  2   )     ref  ->   r3         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
+;  V09 tmp4         [V09,T03] (  3,  2.50)     ref  ->   r0         class-hnd "spilling QMark2" <<unknown class>>
+;  V10 tmp5         [V10,T07] (  2,  2   )     ref  ->   r3         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
 ;* V11 tmp6         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V12 tmp7         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol>
-;  V13 cse0         [V13,T07] (  3,  1.50)     int  ->   r8         "CSE - moderate"
-;  V14 cse1         [V14,T08] (  2,  0.50)     int  ->   r0         "CSE - conservative"
+;  V13 cse0         [V13,T08] (  3,  1.50)     int  ->   r8         "CSE - moderate"
 ;
 ; Lcl frame size = 4
 
@@ -38,34 +37,53 @@ G_M26195_IG02:        ; bbWeight=1, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, b
             mov     r4, r5
             ; gcrRegs +[r4]
             cmp     r4, 0
-            beq     SHORT G_M26195_IG08
+            beq     SHORT G_M26195_IG04
                        ;; size=6 bbWeight=1 PerfScore 3.00
 G_M26195_IG03:        ; bbWeight=0.25, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             cmp     r0, r3
-            bne     SHORT G_M26195_IG08
+            beq     SHORT G_M26195_IG07
                        ;; size=14 bbWeight=0.25 PerfScore 1.25
-G_M26195_IG04:        ; bbWeight=0.50, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+G_M26195_IG04:        ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r4]
+            mov     r0, r5
+            ; gcrRegs +[r0]
+            cmp     r0, 0
+            beq     SHORT G_M26195_IG11
+                       ;; size=6 bbWeight=0.50 PerfScore 1.50
+G_M26195_IG05:        ; bbWeight=0.25, gcrefRegs=0061 {r0 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r0]
+            ; gcrRegs -[r0]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            cmp     r0, r3
+            beq     SHORT G_M26195_IG11
+                       ;; size=14 bbWeight=0.25 PerfScore 1.25
+G_M26195_IG06:        ; bbWeight=0.12, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M26195_IG11
+                       ;; size=2 bbWeight=0.12 PerfScore 0.12
+G_M26195_IG07:        ; bbWeight=0.50, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r4]
             ldr     r0, [r5+0x0C]
             ; gcrRegs +[r0]
             cmp     r0, 0
-            beq     SHORT G_M26195_IG08
+            beq     SHORT G_M26195_IG11
                        ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M26195_IG05:        ; bbWeight=0.25, gcrefRegs=0071 {r0 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+G_M26195_IG08:        ; bbWeight=0.25, gcrefRegs=0071 {r0 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
             ldr     r3, [r0]
             movw    r2, 0xd1ff
             movt    r2, 0xd1ff
             cmp     r3, r2
-            bne     SHORT G_M26195_IG08
+            bne     SHORT G_M26195_IG11
                        ;; size=14 bbWeight=0.25 PerfScore 1.25
-G_M26195_IG06:        ; bbWeight=0.50, gcrefRegs=0071 {r0 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+G_M26195_IG09:        ; bbWeight=0.50, gcrefRegs=0071 {r0 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
             ldr     r3, [r0+0x0C]
             ; gcrRegs +[r3]
             ldr     r3, [r3+0x10]
             cmp     r3, 0
-            bne     SHORT G_M26195_IG08
+            bne     SHORT G_M26195_IG11
             ldr     r7, [r0+0x10]
             ; gcrRegs +[r7]
             mov     r0, r7
@@ -76,7 +94,7 @@ G_M26195_IG06:        ; bbWeight=0.50, gcrefRegs=0071 {r0 r4 r5 r6}, byrefRegs=0
             blx     r3     // <unknown method>
             ; gcr arg pop 0
             cmp     r0, 0
-            beq     SHORT G_M26195_IG08
+            beq     SHORT G_M26195_IG11
             mov     r0, r7
             ldr     r3, [r8+0x14]
             blx     r3     // <unknown method>
@@ -94,10 +112,10 @@ G_M26195_IG06:        ; bbWeight=0.50, gcrefRegs=0071 {r0 r4 r5 r6}, byrefRegs=0
             ; gcrRegs -[r1 r6]
             ; gcr arg pop 0
                        ;; size=52 bbWeight=0.50 PerfScore 10.50
-G_M26195_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r3,r4,r5,r6,r7,r8,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M26195_IG08:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, gcvars, byref
+G_M26195_IG11:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0] +[r5-r6]
             mov     r0, r5
             ; gcrRegs +[r0]
@@ -107,14 +125,14 @@ G_M26195_IG08:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0060 {r5 r6
             movt    r3, 0xd1ff
             ldr     r3, [r3]
                        ;; size=14 bbWeight=0.50 PerfScore 2.50
-G_M26195_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG12:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 4
             pop     {r4,r5,r6,r7,r8,r11,lr}
             bx      r3     // <unknown method>
             ; gcr arg pop 0
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 130, prolog size 12, PerfScore 26.00, instruction count 50, allocated bytes for code 130 (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 152, prolog size 12, PerfScore 28.88, instruction count 59, allocated bytes for code 152 (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:
@@ -126,7 +144,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 65 (0x00041) Actual length = 130 (0x000082)
+  Function Length   : 76 (0x0004c) Actual length = 152 (0x000098)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+26 (+35.14%) : 11360.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  ->   r4         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  ->   r4         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  ->   r0         class-hnd exact single-def <<unknown class>>
 ;* V04 loc3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <FSharp.Compiler.TypedTree+ValRef>
@@ -38,39 +38,54 @@ G_M3270_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r1] +[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            beq     SHORT G_M3270_IG05
+            bne     SHORT G_M3270_IG04
                        ;; size=24 bbWeight=1 PerfScore 8.00
 G_M3270_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
+            mov     r1, r4
+            ; gcrRegs +[r1]
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            blx     r3     // CORINFO_HELP_ISINSTANCEOFCLASS
+            ; gcrRegs -[r1 r4] +[r0]
+            ; gcr arg pop 0
+            cmp     r0, 0
+            bne     SHORT G_M3270_IG06
+            b       SHORT G_M3270_IG06
+                       ;; size=26 bbWeight=0.50 PerfScore 4.50
+G_M3270_IG04:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r0] +[r4]
             ldr     r0, [r4+0x0C]
             ; gcrRegs +[r0]
             cmp     r0, 0
-            beq     SHORT G_M3270_IG05
+            beq     SHORT G_M3270_IG06
             ldr     r1, [r4+0x10]
             ; gcrRegs +[r1]
             cmp     r1, 0
-            bne     SHORT G_M3270_IG05
+            bne     SHORT G_M3270_IG06
             ldr     r0, [r0+0x04]
             ldr     r1, [r4+0x04]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
                        ;; size=26 bbWeight=0.50 PerfScore 5.50
-G_M3270_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 4
             pop     {r4,r11,lr}
             bx      r3     // FSharp.Compiler.Infos:ValRef.IsFSharpEventProperty(FSharp.Compiler.TypedTree+ValRef,FSharp.Compiler.TcGlobals+TcGlobals):ubyte
             ; gcr arg pop 0
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M3270_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M3270_IG06:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0-r1 r4]
             movs    r0, 0
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M3270_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r3,r4,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 74, prolog size 10, PerfScore 19.00, instruction count 27, allocated bytes for code 74 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
+; Total bytes of code 100, prolog size 10, PerfScore 23.50, instruction count 36, allocated bytes for code 100 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -82,7 +97,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 74 (0x00004a)
+  Function Length   : 50 (0x00032) Actual length = 100 (0x000064)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.arm.checked.mch 459 81 110 268 -300 +918
benchmarks.run_pgo.linux.arm.checked.mch 45,529 4,666 36,068 4,795 -21,512 +1,054,490
benchmarks.run_tiered.linux.arm.checked.mch 393 76 95 222 -296 +796
coreclr_tests.run.linux.arm.checked.mch 53,009 11,126 17,708 24,175 -30,766 +191,190
libraries.crossgen2.linux.arm.checked.mch 878 90 163 625 -422 +1,120
libraries.pmi.linux.arm.checked.mch 27,941 3,440 11,263 13,238 -12,674 +78,626
libraries_tests.run.linux.arm.Release.mch 109,226 19,229 63,269 26,728 -85,768 +979,476
librariestestsnotieredcompilation.run.linux.arm.Release.mch 64,233 8,064 34,369 21,800 -25,818 +186,610
realworld.run.linux.arm.checked.mch 364 49 132 183 -160 +1,520
302,032 46,821 163,177 92,034 -177,716 +2,494,746

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.arm.checked.mch 46,284 5,344 40,940 1,203 (2.53%) 1,208 (2.54%)
benchmarks.run_pgo.linux.arm.checked.mch 155,310 54,949 100,361 3,303 (2.08%) 3,309 (2.09%)
benchmarks.run_tiered.linux.arm.checked.mch 81,826 45,099 36,727 1,118 (1.35%) 1,122 (1.35%)
coreclr_tests.run.linux.arm.checked.mch 471,777 258,996 212,781 7,540 (1.57%) 7,543 (1.57%)
libraries.crossgen2.linux.arm.checked.mch 193,690 14 193,676 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.arm.checked.mch 270,798 6 270,792 7,820 (2.81%) 7,827 (2.81%)
libraries_tests.run.linux.arm.Release.mch 707,758 441,682 266,076 18,876 (2.60%) 18,888 (2.60%)
librariestestsnotieredcompilation.run.linux.arm.Release.mch 273,849 21,565 252,284 33,275 (10.83%) 33,279 (10.84%)
realworld.run.linux.arm.checked.mch 36,398 157 36,241 1,408 (3.72%) 1,412 (3.73%)
2,237,690 827,812 1,409,878 74,543 (3.22%) 74,588 (3.23%)

jit-analyze output

benchmarks.run.linux.arm.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15302516 (overridden on cmd)
Total bytes of diff: 15303134 (overridden on cmd)
Total bytes of delta: 618 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          38 : 1878.dasm (1.67 % of base)
          36 : 15039.dasm (2.94 % of base)
          26 : 20850.dasm (1.24 % of base)
          26 : 26046.dasm (0.55 % of base)
          24 : 20840.dasm (6.19 % of base)
          24 : 25023.dasm (2.69 % of base)
          24 : 10794.dasm (0.24 % of base)
          24 : 5476.dasm (6.19 % of base)
          20 : 14865.dasm (1.63 % of base)
          20 : 15155.dasm (0.34 % of base)
          20 : 24759.dasm (2.33 % of base)
          20 : 31069.dasm (12.35 % of base)
          18 : 24793.dasm (0.80 % of base)
          16 : 8816.dasm (1.77 % of base)
          14 : 16608.dasm (1.64 % of base)
          14 : 7169.dasm (3.23 % of base)
          14 : 8803.dasm (0.69 % of base)
          12 : 25396.dasm (3.24 % of base)
          12 : 7374.dasm (2.47 % of base)
          12 : 22584.dasm (8.82 % of base)

Top file improvements (bytes):
         -14 : 42901.dasm (-2.68 % of base)
         -12 : 10942.dasm (-1.07 % of base)
         -12 : 28650.dasm (-1.08 % of base)
         -12 : 4892.dasm (-1.56 % of base)
         -12 : 5307.dasm (-1.57 % of base)
         -10 : 12147.dasm (-0.83 % of base)
         -10 : 24173.dasm (-1.21 % of base)
         -10 : 28367.dasm (-0.54 % of base)
          -8 : 10687.dasm (-0.08 % of base)
          -8 : 14544.dasm (-0.08 % of base)
          -8 : 11534.dasm (-0.71 % of base)
          -6 : 2074.dasm (-0.12 % of base)
          -6 : 38036.dasm (-0.07 % of base)
          -6 : 5679.dasm (-1.69 % of base)
          -4 : 14058.dasm (-0.80 % of base)
          -4 : 18001.dasm (-0.97 % of base)
          -4 : 3513.dasm (-0.40 % of base)
          -4 : 6211.dasm (-1.23 % of base)
          -4 : 12209.dasm (-0.14 % of base)
          -4 : 1294.dasm (-0.44 % of base)

67 total files with Code Size differences (36 improved, 31 regressed), 20 unchanged.

Top method regressions (bytes):
          38 (1.67 % of base) : 1878.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (FullOpts)
          36 (2.94 % of base) : 15039.dasm - System.IO.RandomAccess:WriteGatherAtOffset(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList`1[System.ReadOnlyMemory`1[ubyte]],long) (FullOpts)
          26 (0.55 % of base) : 26046.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          26 (1.24 % of base) : 20850.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (FullOpts)
          24 (0.24 % of base) : 10794.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
          24 (6.19 % of base) : 5476.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
          24 (2.69 % of base) : 25023.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)
          24 (6.19 % of base) : 20840.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (FullOpts)
          20 (2.33 % of base) : 24759.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)
          20 (12.35 % of base) : 31069.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
          20 (1.63 % of base) : 14865.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
          20 (0.34 % of base) : 15155.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (FullOpts)
          18 (0.80 % of base) : 24793.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)
          16 (1.77 % of base) : 8816.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (FullOpts)
          14 (3.23 % of base) : 7169.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
          14 (0.69 % of base) : 8803.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
          14 (1.64 % of base) : 16608.dasm - System.Xml.XmlBinaryReader:ReadElementContentAsInt():int:this (FullOpts)
          12 (1.75 % of base) : 25368.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (FullOpts)
          12 (2.91 % of base) : 24756.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyDataForAssemblyBeingBuilt[System.__Canon,System.__Canon]:.ctor(Microsoft.CodeAnalysis.AssemblyIdentity,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule]):this (FullOpts)
          12 (3.19 % of base) : 25298.dasm - Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:MatchMethodSignature(System.__Canon,System.Collections.Immutable.ImmutableArray`1[ubyte]):ubyte:this (FullOpts)

Top method improvements (bytes):
         -14 (-2.68 % of base) : 42901.dasm - MessagePack.Formatters.ListFormatter`1[int]:Deserialize(ubyte[],int,MessagePack.IFormatterResolver,byref):System.Collections.Generic.List`1[int]:this (FullOpts)
         -12 (-1.57 % of base) : 5307.dasm - System.Collections.Generic.Dictionary`2[int,int]:TryInsert(int,int,ubyte):ubyte:this (FullOpts)
         -12 (-1.56 % of base) : 4892.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:TryInsert(int,ubyte,ubyte):ubyte:this (FullOpts)
         -12 (-1.08 % of base) : 28650.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)
         -12 (-1.07 % of base) : 10942.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)
         -10 (-0.54 % of base) : 28367.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (FullOpts)
         -10 (-1.21 % of base) : 24173.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.83 % of base) : 12147.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)
          -8 (-0.08 % of base) : 14544.dasm - Jil.Deserialize.Methods:ParseISO8601Date(System.IO.TextReader,ushort[],int,int):System.DateTime (FullOpts)
          -8 (-0.08 % of base) : 10687.dasm - Jil.Deserialize.Methods:ParseISO8601DateThunkReader(byref,ushort[],int,int):System.DateTime (FullOpts)
          -8 (-0.71 % of base) : 11534.dasm - System.Collections.Utils:FillCollections[System.__Canon,System.__Canon](byref,int,System.__Canon[]) (FullOpts)
          -6 (-0.07 % of base) : 38036.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffset(System.IO.TextReader,ushort[]):System.DateTimeOffset (FullOpts)
          -6 (-1.69 % of base) : 5679.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
          -6 (-0.12 % of base) : 2074.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (FullOpts)
          -4 (-0.40 % of base) : 3513.dasm - System.Collections.Generic.Dictionary`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory+ServiceDescriptorCacheItem]:TryInsert(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory+ServiceDescriptorCacheItem,ubyte):ubyte:this (FullOpts)
          -4 (-0.44 % of base) : 1294.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.ValueTuple`2[System.__Canon,int]]:TryInsert(System.__Canon,System.ValueTuple`2[System.__Canon,int],ubyte):ubyte:this (FullOpts)
          -4 (-1.03 % of base) : 23946.dasm - System.Diagnostics.ProcessManager+<EnumerateProcessIds>d__13:MoveNext():ubyte:this (FullOpts)
          -4 (-0.14 % of base) : 12209.dasm - System.Runtime.Serialization.Json.XmlJsonWriter:WriteStartAttribute(System.String,System.String,System.String):this (FullOpts)
          -4 (-0.80 % of base) : 14058.dasm - System.Security.Cryptography.AesImplementation:CreateTransform(ubyte[],ubyte[],ubyte):System.Security.Cryptography.UniversalCryptoTransform:this (FullOpts)
          -4 (-0.97 % of base) : 18001.dasm - System.Text.Json.Utf8JsonReader:SkipAllComments(byref):ubyte:this (FullOpts)

Top method regressions (percentages):
          20 (12.35 % of base) : 31069.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
          12 (8.82 % of base) : 22584.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableArray():System.__Canon:this (FullOpts)
          24 (6.19 % of base) : 5476.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
          24 (6.19 % of base) : 20840.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (FullOpts)
          12 (5.17 % of base) : 36416.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
          10 (5.15 % of base) : 25915.dasm - Microsoft.CodeAnalysis.BindingDiagnosticBag`1[System.__Canon]:AddDependencies(System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (FullOpts)
           6 (5.08 % of base) : 18555.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
          10 (4.17 % of base) : 7960.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
           8 (3.81 % of base) : 27828.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
          12 (3.24 % of base) : 25396.dasm - Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:MatchPropertySignature(System.__Canon,System.Collections.Immutable.ImmutableArray`1[ubyte]):ubyte:this (FullOpts)
          14 (3.23 % of base) : 7169.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
          12 (3.19 % of base) : 25298.dasm - Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:MatchMethodSignature(System.__Canon,System.Collections.Immutable.ImmutableArray`1[ubyte]):ubyte:this (FullOpts)
          36 (2.94 % of base) : 15039.dasm - System.IO.RandomAccess:WriteGatherAtOffset(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList`1[System.ReadOnlyMemory`1[ubyte]],long) (FullOpts)
          12 (2.91 % of base) : 24756.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyDataForAssemblyBeingBuilt[System.__Canon,System.__Canon]:.ctor(Microsoft.CodeAnalysis.AssemblyIdentity,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule]):this (FullOpts)
          12 (2.84 % of base) : 17756.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
           6 (2.70 % of base) : 25481.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
          24 (2.69 % of base) : 25023.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)
           8 (2.58 % of base) : 15668.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (FullOpts)
          12 (2.47 % of base) : 7374.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,System.__Canon]:FindValue(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant):byref:this (FullOpts)
          20 (2.33 % of base) : 24759.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)

Top method improvements (percentages):
         -14 (-2.68 % of base) : 42901.dasm - MessagePack.Formatters.ListFormatter`1[int]:Deserialize(ubyte[],int,MessagePack.IFormatterResolver,byref):System.Collections.Generic.List`1[int]:this (FullOpts)
          -2 (-1.75 % of base) : 11547.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
          -6 (-1.69 % of base) : 5679.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
          -2 (-1.59 % of base) : 111.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.59 % of base) : 4457.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -12 (-1.57 % of base) : 5307.dasm - System.Collections.Generic.Dictionary`2[int,int]:TryInsert(int,int,ubyte):ubyte:this (FullOpts)
         -12 (-1.56 % of base) : 4892.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:TryInsert(int,ubyte,ubyte):ubyte:this (FullOpts)
          -2 (-1.54 % of base) : 223.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.52 % of base) : 8339.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.41 % of base) : 1783.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-1.41 % of base) : 4662.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-1.41 % of base) : 14407.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-1.41 % of base) : 8661.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-1.41 % of base) : 15955.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-1.41 % of base) : 27704.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-1.41 % of base) : 29170.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-1.41 % of base) : 36833.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-1.23 % of base) : 6211.dasm - Utf8Json.JsonReader:ReadStringSegmentRaw():System.ArraySegment`1[ubyte]:this (FullOpts)
         -10 (-1.21 % of base) : 24173.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)
          -2 (-1.20 % of base) : 4430.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:MoveNext():ubyte:this (FullOpts)


benchmarks.run_pgo.linux.arm.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 60229150 (overridden on cmd)
Total bytes of diff: 61262128 (overridden on cmd)
Total bytes of delta: 1032978 (1.72 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         488 : 101322.dasm (5.28 % of base)
         410 : 92418.dasm (5.55 % of base)
         326 : 93107.dasm (7.94 % of base)
         322 : 92518.dasm (5.98 % of base)
         302 : 93144.dasm (6.83 % of base)
         292 : 92458.dasm (5.52 % of base)
         272 : 100848.dasm (6.15 % of base)
         242 : 101751.dasm (2.93 % of base)
         206 : 93075.dasm (3.50 % of base)
         188 : 92821.dasm (4.41 % of base)
         188 : 125751.dasm (6.14 % of base)
         188 : 131495.dasm (6.14 % of base)
         184 : 67520.dasm (15.21 % of base)
         182 : 121564.dasm (7.82 % of base)
         182 : 126924.dasm (7.82 % of base)
         182 : 78948.dasm (7.82 % of base)
         182 : 111432.dasm (7.82 % of base)
         182 : 120688.dasm (7.82 % of base)
         182 : 128628.dasm (7.82 % of base)
         182 : 136612.dasm (7.82 % of base)

Top file improvements (bytes):
        -162 : 55845.dasm (-5.85 % of base)
         -78 : 102625.dasm (-1.87 % of base)
         -70 : 114076.dasm (-3.03 % of base)
         -64 : 81602.dasm (-4.84 % of base)
         -62 : 128815.dasm (-5.59 % of base)
         -62 : 120872.dasm (-5.59 % of base)
         -58 : 55880.dasm (-6.81 % of base)
         -56 : 67577.dasm (-6.57 % of base)
         -50 : 98102.dasm (-4.95 % of base)
         -46 : 148469.dasm (-3.62 % of base)
         -46 : 106590.dasm (-1.28 % of base)
         -44 : 140411.dasm (-4.06 % of base)
         -44 : 37196.dasm (-4.06 % of base)
         -42 : 131032.dasm (-3.30 % of base)
         -42 : 137886.dasm (-3.30 % of base)
         -42 : 144559.dasm (-3.30 % of base)
         -42 : 152916.dasm (-4.41 % of base)
         -40 : 71178.dasm (-2.07 % of base)
         -40 : 79092.dasm (-4.83 % of base)
         -40 : 99786.dasm (-3.11 % of base)

81 total files with Code Size differences (41 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
         488 (5.28 % of base) : 101322.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (Tier0-FullOpts)
         410 (5.55 % of base) : 92418.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)
         326 (7.94 % of base) : 93107.dasm - System.Reflection.PortableExecutable.ManagedPEBuilder:SerializeTextSection(System.Reflection.PortableExecutable.SectionLocation):System.Reflection.Metadata.BlobBuilder:this (Tier1)
         322 (5.98 % of base) : 92518.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindSimpleBinaryOperator(Microsoft.CodeAnalysis.CSharp.Syntax.BinaryExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
         302 (6.83 % of base) : 93144.dasm - System.Reflection.PortableExecutable.PEBuilder:WritePEHeader(System.Reflection.Metadata.BlobBuilder,System.Reflection.PortableExecutable.PEDirectoriesBuilder,System.Collections.Immutable.ImmutableArray`1[System.Reflection.PortableExecutable.PEBuilder+SerializedSection]):this (Tier1)
         292 (5.52 % of base) : 92458.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CompileMethods(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,ubyte,Microsoft.CodeAnalysis.DiagnosticBag,System.Predicate`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal],System.Threading.CancellationToken):ubyte:this (Tier1)
         272 (6.15 % of base) : 100848.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseLocalDeclaration(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SeparatedSyntaxListBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.VariableDeclaratorSyntax],ubyte,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.AttributeListSyntax],Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken],byref,byref):this (Tier1)
         242 (2.93 % of base) : 101751.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (Tier1)
         206 (3.50 % of base) : 93075.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:.ctor(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],int,ubyte):this (Tier1)
         188 (4.41 % of base) : 92821.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:<EmitInstanceCallExpression>g__emitArgumentsAndCallEpilogue|152_2(Microsoft.CodeAnalysis.CSharp.BoundCall,int,int):this (Tier1)
         188 (6.14 % of base) : 125751.dasm - System.Reflection.InvokerEmitUtil:EmitCallAndReturnHandling(System.Reflection.Emit.ILGenerator,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
         188 (6.14 % of base) : 131495.dasm - System.Reflection.InvokerEmitUtil:EmitCallAndReturnHandling(System.Reflection.Emit.ILGenerator,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
         184 (15.21 % of base) : 67520.dasm - System.Reflection.Emit.RuntimeILGenerator:EmitCall(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo,System.Type[]):this (Tier1)
         182 (7.82 % of base) : 121564.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
         182 (7.82 % of base) : 126924.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
         182 (7.82 % of base) : 78948.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
         182 (7.82 % of base) : 111432.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
         182 (7.82 % of base) : 120688.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
         182 (7.82 % of base) : 128628.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
         182 (7.82 % of base) : 136612.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)

Top method improvements (bytes):
        -162 (-5.85 % of base) : 55845.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FAB93D28E879A1C012F40790EA668F818AB3858873713FA53950E20F52E058952__EnsureArrayIndexRegex_5+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
         -78 (-1.87 % of base) : 102625.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:ApplyNullableTransforms(ubyte,System.Collections.Immutable.ImmutableArray`1[ubyte],byref,byref):ubyte:this (Tier1)
         -70 (-3.03 % of base) : 114076.dasm - System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]:InvokeCore(System.Threading.Tasks.Task):this (Tier1)
         -64 (-4.84 % of base) : 81602.dasm - System.Runtime.Serialization.CodeGenerator:Ldelem(System.Type):this (Tier1)
         -62 (-5.59 % of base) : 128815.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
         -62 (-5.59 % of base) : 120872.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
         -58 (-6.81 % of base) : 55880.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,System.Type):this (Tier1)
         -56 (-6.57 % of base) : 67577.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,System.Type):this (Tier1)
         -50 (-4.95 % of base) : 98102.dasm - System.Text.Json.Utf8JsonWriter:Grow(int):this (Tier1)
         -46 (-3.62 % of base) : 148469.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
         -46 (-1.28 % of base) : 106590.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -44 (-4.06 % of base) : 140411.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
         -44 (-4.06 % of base) : 37196.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
         -42 (-3.30 % of base) : 131032.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
         -42 (-3.30 % of base) : 137886.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
         -42 (-3.30 % of base) : 144559.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
         -42 (-4.41 % of base) : 152916.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,System.Reflection.Emit.Label):this (Tier1)
         -40 (-3.11 % of base) : 99786.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
         -40 (-4.83 % of base) : 79092.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,System.Type):this (Tier1)
         -40 (-2.07 % of base) : 71178.dasm - System.Reflection.MethodBaseInvoker:InvokeWithFewArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (Tier1)

Top method regressions (percentages):
          12 (28.57 % of base) : 145923.dasm - MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
          14 (25.93 % of base) : 90234.dasm - Microsoft.CodeAnalysis.CSharp.BoundNode:CopyAttributes(Microsoft.CodeAnalysis.CSharp.BoundNode):this (Tier1)
          62 (25.41 % of base) : 3869.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Enumerator[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier1)
          30 (25.00 % of base) : 94070.dasm - System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]:BuildStateFlags(System.Text.RegularExpressions.Symbolic.ISolver`1[ulong],ubyte):ubyte:this (Tier1)
          30 (25.00 % of base) : 112403.dasm - System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]:BuildStateFlags(System.Text.RegularExpressions.Symbolic.ISolver`1[ulong],ubyte):ubyte:this (Tier1)
          30 (25.00 % of base) : 40255.dasm - System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]:BuildStateFlags(System.Text.RegularExpressions.Symbolic.ISolver`1[ulong],ubyte):ubyte:this (Tier1)
          16 (24.24 % of base) : 86835.dasm - Microsoft.CodeAnalysis.DiagnosticBag:Free():this (Tier1)
          74 (23.13 % of base) : 90507.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:GetEmbeddedTypes(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (Tier1)
          16 (20.51 % of base) : 25600.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
          16 (20.51 % of base) : 148015.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
          16 (20.51 % of base) : 54719.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
          16 (20.51 % of base) : 78889.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
          16 (20.51 % of base) : 147175.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
          30 (20.27 % of base) : 131822.dasm - System.Net.Sockets.Socket:UpdateLocalEndPointOnConnect():this (Tier1)
          24 (20.00 % of base) : 118748.dasm - System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]:BuildStateFlags(System.Text.RegularExpressions.Symbolic.ISolver`1[ulong],ubyte):ubyte:this (Tier1)
          24 (20.00 % of base) : 72156.dasm - System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]:BuildStateFlags(System.Text.RegularExpressions.Symbolic.ISolver`1[ulong],ubyte):ubyte:this (Tier1)
          92 (19.83 % of base) : 103539.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,System.Reflection.Emit.Label):this (Tier1)
          92 (19.83 % of base) : 71476.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,System.Reflection.Emit.Label):this (Tier1)
          10 (18.52 % of base) : 92377.dasm - System.Reflection.PortableExecutable.ManagedTextSection:get_SizeOfImportTable():int:this (Tier1)
          14 (17.50 % of base) : 87988.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)

Top method improvements (percentages):
         -10 (-19.23 % of base) : 62149.dasm - MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
         -10 (-16.13 % of base) : 112114.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
         -10 (-16.13 % of base) : 128459.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
         -10 (-16.13 % of base) : 78326.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
         -10 (-16.13 % of base) : 108135.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
         -10 (-16.13 % of base) : 111211.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
         -10 (-16.13 % of base) : 107745.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
         -10 (-16.13 % of base) : 127335.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
         -10 (-16.13 % of base) : 73873.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
         -10 (-16.13 % of base) : 74843.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
          -4 (-13.33 % of base) : 91936.dasm - Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
          -4 (-9.09 % of base) : 47965.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -4 (-9.09 % of base) : 24573.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -4 (-9.09 % of base) : 3534.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -4 (-9.09 % of base) : 31393.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -4 (-9.09 % of base) : 38381.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -4 (-9.09 % of base) : 117465.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -4 (-9.09 % of base) : 129505.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -4 (-9.09 % of base) : 17325.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -4 (-9.09 % of base) : 99297.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)


benchmarks.run_tiered.linux.arm.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 22642948 (overridden on cmd)
Total bytes of diff: 22643448 (overridden on cmd)
Total bytes of delta: 500 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          38 : 14496.dasm (1.67 % of base)
          36 : 31113.dasm (2.94 % of base)
          26 : 40376.dasm (1.24 % of base)
          26 : 52888.dasm (0.55 % of base)
          24 : 26764.dasm (0.24 % of base)
          24 : 40364.dasm (6.19 % of base)
          24 : 47589.dasm (2.69 % of base)
          24 : 9380.dasm (6.19 % of base)
          20 : 63411.dasm (12.35 % of base)
          20 : 32024.dasm (0.34 % of base)
          20 : 46969.dasm (2.33 % of base)
          18 : 47096.dasm (0.80 % of base)
          16 : 18172.dasm (1.77 % of base)
          14 : 8190.dasm (3.23 % of base)
          12 : 16548.dasm (0.66 % of base)
          12 : 34558.dasm (2.84 % of base)
          12 : 4862.dasm (2.54 % of base)
          12 : 45371.dasm (8.82 % of base)
          12 : 46966.dasm (2.91 % of base)
          12 : 48344.dasm (1.75 % of base)

Top file improvements (bytes):
         -18 : 4627.dasm (-1.98 % of base)
         -14 : 76726.dasm (-2.68 % of base)
         -12 : 22852.dasm (-1.07 % of base)
         -12 : 58169.dasm (-1.08 % of base)
         -12 : 17888.dasm (-1.57 % of base)
         -12 : 20305.dasm (-1.56 % of base)
         -10 : 57556.dasm (-0.54 % of base)
         -10 : 25999.dasm (-0.83 % of base)
         -10 : 54615.dasm (-1.21 % of base)
          -8 : 25641.dasm (-0.71 % of base)
          -8 : 68045.dasm (-0.08 % of base)
          -8 : 24940.dasm (-0.08 % of base)
          -6 : 68042.dasm (-0.07 % of base)
          -6 : 14413.dasm (-0.12 % of base)
          -4 : 47818.dasm (-0.92 % of base)
          -4 : 19238.dasm (-1.23 % of base)
          -4 : 27393.dasm (-0.14 % of base)
          -4 : 29461.dasm (-0.80 % of base)
          -4 : 73294.dasm (-0.12 % of base)
          -4 : 5025.dasm (-0.40 % of base)

64 total files with Code Size differences (35 improved, 29 regressed), 20 unchanged.

Top method regressions (bytes):
          38 (1.67 % of base) : 14496.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (Tier1)
          36 (2.94 % of base) : 31113.dasm - System.IO.RandomAccess:WriteGatherAtOffset(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList`1[System.ReadOnlyMemory`1[ubyte]],long) (Tier0-FullOpts)
          26 (0.55 % of base) : 52888.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier1)
          26 (1.24 % of base) : 40376.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (Tier0-FullOpts)
          24 (0.24 % of base) : 26764.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
          24 (6.19 % of base) : 9380.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (Tier0-FullOpts)
          24 (2.69 % of base) : 47589.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 (Tier0-FullOpts)
          24 (6.19 % of base) : 40364.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (Tier0-FullOpts)
          20 (2.33 % of base) : 46969.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 (Tier0-FullOpts)
          20 (12.35 % of base) : 63411.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (Tier0-FullOpts)
          20 (0.34 % of base) : 32024.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (Tier0-FullOpts)
          18 (0.80 % of base) : 47096.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier0-FullOpts)
          16 (1.77 % of base) : 18172.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (Tier0-FullOpts)
          14 (3.23 % of base) : 8190.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (Tier0-FullOpts)
          12 (0.66 % of base) : 16548.dasm - Interop+OpenSsl:AllocateSslHandle(System.Net.Security.SslAuthenticationOptions):Microsoft.Win32.SafeHandles.SafeSslHandle (Tier0-FullOpts)
          12 (1.75 % of base) : 48344.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (Tier0-FullOpts)
          12 (2.91 % of base) : 46966.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyDataForAssemblyBeingBuilt[System.__Canon,System.__Canon]:.ctor(Microsoft.CodeAnalysis.AssemblyIdentity,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule]):this (Tier0-FullOpts)
          12 (3.19 % of base) : 48198.dasm - Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:MatchMethodSignature(System.__Canon,System.Collections.Immutable.ImmutableArray`1[ubyte]):ubyte:this (Tier0-FullOpts)
          12 (3.24 % of base) : 48407.dasm - Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:MatchPropertySignature(System.__Canon,System.Collections.Immutable.ImmutableArray`1[ubyte]):ubyte:this (Tier0-FullOpts)
          12 (2.53 % of base) : 4625.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:FindValue(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant):byref:this (Tier0-FullOpts)

Top method improvements (bytes):
         -18 (-1.98 % of base) : 4627.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:TryInsert(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int,ubyte):ubyte:this (Tier0-FullOpts)
         -14 (-2.68 % of base) : 76726.dasm - MessagePack.Formatters.ListFormatter`1[int]:Deserialize(ubyte[],int,MessagePack.IFormatterResolver,byref):System.Collections.Generic.List`1[int]:this (Tier0-FullOpts)
         -12 (-1.57 % of base) : 17888.dasm - System.Collections.Generic.Dictionary`2[int,int]:TryInsert(int,int,ubyte):ubyte:this (Tier0-FullOpts)
         -12 (-1.56 % of base) : 20305.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:TryInsert(int,ubyte,ubyte):ubyte:this (Tier0-FullOpts)
         -12 (-1.08 % of base) : 58169.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 (Tier0-FullOpts)
         -12 (-1.07 % of base) : 22852.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 (Tier0-FullOpts)
         -10 (-0.54 % of base) : 57556.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (Tier0-FullOpts)
         -10 (-1.21 % of base) : 54615.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.__Canon]]):this (Tier0-FullOpts)
         -10 (-0.83 % of base) : 25999.dasm - System.Collections.Generic.PriorityQueue`2[System.Guid,System.Guid]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.Guid,System.Guid]]):this (Tier0-FullOpts)
          -8 (-0.08 % of base) : 68045.dasm - Jil.Deserialize.Methods:ParseISO8601Date(System.IO.TextReader,ushort[],int,int):System.DateTime (Tier1)
          -8 (-0.08 % of base) : 24940.dasm - Jil.Deserialize.Methods:ParseISO8601DateThunkReader(byref,ushort[],int,int):System.DateTime (Tier1)
          -8 (-0.71 % of base) : 25641.dasm - System.Collections.Utils:FillCollections[System.__Canon,System.__Canon](byref,int,System.__Canon[]) (Tier0-FullOpts)
          -6 (-0.07 % of base) : 68042.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffset(System.IO.TextReader,ushort[]):System.DateTimeOffset (Tier0-FullOpts)
          -6 (-0.12 % of base) : 14413.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (Tier0-FullOpts)
          -4 (-0.92 % of base) : 47818.dasm - Microsoft.CodeAnalysis.RuntimeMembers.MemberDescriptor:ParseType(System.Collections.Immutable.ImmutableArray`1+Builder[ubyte],System.IO.Stream,ubyte) (Tier0-FullOpts)
          -4 (-0.40 % of base) : 5025.dasm - System.Collections.Generic.Dictionary`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory+ServiceDescriptorCacheItem]:TryInsert(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory+ServiceDescriptorCacheItem,ubyte):ubyte:this (Tier0-FullOpts)
          -4 (-0.12 % of base) : 73294.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_Task>d__13:MoveNext():this (Tier0-FullOpts)
          -4 (-0.14 % of base) : 27393.dasm - System.Runtime.Serialization.Json.XmlJsonWriter:WriteStartAttribute(System.String,System.String,System.String):this (Tier1)
          -4 (-0.80 % of base) : 29461.dasm - System.Security.Cryptography.AesImplementation:CreateTransform(ubyte[],ubyte[],ubyte):System.Security.Cryptography.UniversalCryptoTransform:this (Tier1)
          -4 (-1.23 % of base) : 19238.dasm - Utf8Json.JsonReader:ReadStringSegmentRaw():System.ArraySegment`1[ubyte]:this (Tier0-FullOpts)

Top method regressions (percentages):
          20 (12.35 % of base) : 63411.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (Tier0-FullOpts)
          12 (8.82 % of base) : 45371.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableArray():System.__Canon:this (Tier0-FullOpts)
          24 (6.19 % of base) : 9380.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (Tier0-FullOpts)
          24 (6.19 % of base) : 40364.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (Tier0-FullOpts)
          12 (5.17 % of base) : 66499.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (Tier0-FullOpts)
          10 (5.15 % of base) : 49574.dasm - Microsoft.CodeAnalysis.BindingDiagnosticBag`1[System.__Canon]:AddDependencies(System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (Tier0-FullOpts)
           6 (5.08 % of base) : 37079.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (Tier0-FullOpts)
          12 (3.24 % of base) : 48407.dasm - Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:MatchPropertySignature(System.__Canon,System.Collections.Immutable.ImmutableArray`1[ubyte]):ubyte:this (Tier0-FullOpts)
          14 (3.23 % of base) : 8190.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (Tier0-FullOpts)
          12 (3.19 % of base) : 48198.dasm - Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:MatchMethodSignature(System.__Canon,System.Collections.Immutable.ImmutableArray`1[ubyte]):ubyte:this (Tier0-FullOpts)
          36 (2.94 % of base) : 31113.dasm - System.IO.RandomAccess:WriteGatherAtOffset(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList`1[System.ReadOnlyMemory`1[ubyte]],long) (Tier0-FullOpts)
          12 (2.91 % of base) : 46966.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyDataForAssemblyBeingBuilt[System.__Canon,System.__Canon]:.ctor(Microsoft.CodeAnalysis.AssemblyIdentity,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule]):this (Tier0-FullOpts)
          12 (2.84 % of base) : 34558.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (Tier1)
          24 (2.69 % of base) : 47589.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 (Tier0-FullOpts)
           8 (2.58 % of base) : 33993.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (Tier1)
          12 (2.54 % of base) : 4862.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,System.__Canon]:FindValue(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant):byref:this (Tier0-FullOpts)
          12 (2.53 % of base) : 4625.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:FindValue(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant):byref:this (Tier0-FullOpts)
          20 (2.33 % of base) : 46969.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 (Tier0-FullOpts)
          10 (2.19 % of base) : 31152.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (Tier0-FullOpts)
           8 (2.16 % of base) : 17892.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (Tier0-FullOpts)

Top method improvements (percentages):
         -14 (-2.68 % of base) : 76726.dasm - MessagePack.Formatters.ListFormatter`1[int]:Deserialize(ubyte[],int,MessagePack.IFormatterResolver,byref):System.Collections.Generic.List`1[int]:this (Tier0-FullOpts)
         -18 (-1.98 % of base) : 4627.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:TryInsert(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int,ubyte):ubyte:this (Tier0-FullOpts)
          -2 (-1.75 % of base) : 25932.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-1.59 % of base) : 271.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-1.59 % of base) : 4905.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
         -12 (-1.57 % of base) : 17888.dasm - System.Collections.Generic.Dictionary`2[int,int]:TryInsert(int,int,ubyte):ubyte:this (Tier0-FullOpts)
         -12 (-1.56 % of base) : 20305.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:TryInsert(int,ubyte,ubyte):ubyte:this (Tier0-FullOpts)
          -2 (-1.54 % of base) : 539.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-1.52 % of base) : 16912.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-1.41 % of base) : 28371.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -2 (-1.41 % of base) : 34060.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -2 (-1.41 % of base) : 59573.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -2 (-1.41 % of base) : 17743.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -2 (-1.41 % of base) : 21203.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -2 (-1.41 % of base) : 56298.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -2 (-1.41 % of base) : 66684.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -2 (-1.41 % of base) : 8541.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -4 (-1.23 % of base) : 19238.dasm - Utf8Json.JsonReader:ReadStringSegmentRaw():System.ArraySegment`1[ubyte]:this (Tier0-FullOpts)
         -10 (-1.21 % of base) : 54615.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.__Canon]]):this (Tier0-FullOpts)
          -2 (-1.20 % of base) : 4744.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:MoveNext():ubyte:this (Tier0-FullOpts)


coreclr_tests.run.linux.arm.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 321630692 (overridden on cmd)
Total bytes of diff: 321791116 (overridden on cmd)
Total bytes of delta: 160424 (0.05 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         382 : 278622.dasm (4.98 % of base)
         354 : 212298.dasm (3.32 % of base)
         354 : 424824.dasm (3.32 % of base)
         272 : 463417.dasm (3.49 % of base)
         212 : 307529.dasm (4.42 % of base)
         212 : 304954.dasm (4.42 % of base)
         208 : 418409.dasm (2.53 % of base)
         208 : 277806.dasm (4.52 % of base)
         204 : 309189.dasm (2.64 % of base)
         202 : 278611.dasm (2.40 % of base)
         192 : 312509.dasm (4.80 % of base)
         192 : 310195.dasm (4.80 % of base)
         178 : 278704.dasm (1.36 % of base)
         176 : 143349.dasm (1.66 % of base)
         172 : 383307.dasm (1.77 % of base)
         172 : 425197.dasm (3.23 % of base)
         162 : 153429.dasm (1.67 % of base)
         160 : 309667.dasm (3.84 % of base)
         156 : 272739.dasm (1.90 % of base)
         136 : 312338.dasm (3.26 % of base)

Top file improvements (bytes):
        -304 : 123635.dasm (-22.69 % of base)
        -102 : 158360.dasm (-2.15 % of base)
         -98 : 303349.dasm (-2.03 % of base)
         -96 : 276682.dasm (-1.98 % of base)
         -96 : 1994.dasm (-1.98 % of base)
         -94 : 212359.dasm (-2.10 % of base)
         -86 : 133686.dasm (-1.77 % of base)
         -86 : 313378.dasm (-1.77 % of base)
         -82 : 2026.dasm (-2.47 % of base)
         -82 : 200115.dasm (-1.84 % of base)
         -80 : 409573.dasm (-1.50 % of base)
         -62 : 167907.dasm (-1.46 % of base)
         -62 : 401667.dasm (-6.53 % of base)
         -60 : 141871.dasm (-1.25 % of base)
         -44 : 416102.dasm (-1.25 % of base)
         -44 : 198113.dasm (-1.25 % of base)
         -44 : 311329.dasm (-0.32 % of base)
         -36 : 278603.dasm (-2.08 % of base)
         -36 : 313945.dasm (-0.46 % of base)
         -36 : 478209.dasm (-0.46 % of base)

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

Top method regressions (bytes):
         382 (4.98 % of base) : 278622.dasm - System.Reflection.PortableExecutable.PEHeader:.ctor(byref):this (Tier1)
         354 (3.32 % of base) : 424824.dasm - ILGEN_0x372a9ae6:Method_0xdc6ff1a4(byte,byte,int,int,ushort,double,long,ulong):int (FullOpts)
         354 (3.32 % of base) : 212298.dasm - ILGEN_0x372a9ae6:Method_0xdc6ff1a4(byte,byte,int,int,ushort,double,long,ulong):int (Tier0-FullOpts)
         272 (3.49 % of base) : 463417.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
         212 (4.42 % of base) : 307529.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
         212 (4.42 % of base) : 304954.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
         208 (2.53 % of base) : 418409.dasm - Runtime_34587:TestEntryPoint():int (FullOpts)
         208 (4.52 % of base) : 277806.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
         204 (2.64 % of base) : 309189.dasm - Internal.JitInterface.CorInfoImpl:ceeInfoGetCallInfo(byref,uint,uint,int,uint,byref,byref,byref,byref,byref,byref,byref,byref):this (Tier1)
         202 (2.40 % of base) : 278611.dasm - System.Reflection.PortableExecutable.PEHeaders:.ctor(System.IO.Stream,int,ubyte):this (Tier1)
         192 (4.80 % of base) : 312509.dasm - System.Diagnostics.StackTrace:ToString(int,System.Text.StringBuilder):this (Tier1)
         192 (4.80 % of base) : 310195.dasm - System.Diagnostics.StackTrace:ToString(int,System.Text.StringBuilder):this (Tier1)
         178 (1.36 % of base) : 278704.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         176 (1.66 % of base) : 143349.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 (Tier0-FullOpts)
         172 (1.77 % of base) : 383307.dasm - System.Text.RegularExpressions.RegexCompiler:EmitMatchCharacterClass(System.String):this (FullOpts)
         172 (3.23 % of base) : 425197.dasm - TestShufflingThunk.Test16833:TestEntryPoint():int (FullOpts)
         162 (1.67 % of base) : 153429.dasm - System.Text.RegularExpressions.RegexCompiler:EmitMatchCharacterClass(System.String):this (Tier0-FullOpts)
         160 (3.84 % of base) : 309667.dasm - Internal.JitInterface.CorInfoImpl:CompileMethodInternal(ILCompiler.DependencyAnalysis.IMethodNode,Internal.IL.MethodIL):int:this (Tier1)
         156 (1.90 % of base) : 272739.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier0-FullOpts)
         136 (3.26 % of base) : 312338.dasm - Internal.JitInterface.CorInfoImpl:CompileMethodInternal(ILCompiler.DependencyAnalysis.IMethodNode,Internal.IL.MethodIL):int:this (Tier1)

Top method improvements (bytes):
        -304 (-22.69 % of base) : 123635.dasm - VectorTest+VectorExpTest`1[double]:VectorExp(System.Numerics.Vector`1[double],double,double,double):int (Tier0-FullOpts)
        -102 (-2.15 % of base) : 158360.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         -98 (-2.03 % of base) : 303349.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         -96 (-1.98 % of base) : 276682.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         -96 (-1.98 % of base) : 1994.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         -94 (-2.10 % of base) : 212359.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
         -86 (-1.77 % of base) : 133686.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         -86 (-1.77 % of base) : 313378.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         -82 (-1.84 % of base) : 200115.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
         -82 (-2.47 % of base) : 2026.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
         -80 (-1.50 % of base) : 409573.dasm - Rotate_explicit2_cs.App+Node:VerifyValid():this (FullOpts)
         -62 (-6.53 % of base) : 401667.dasm - HelloWorld:Main():int (FullOpts)
         -62 (-1.46 % of base) : 167907.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
         -60 (-1.25 % of base) : 141871.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier0-FullOpts)
         -44 (-1.25 % of base) : 416102.dasm - DefaultNamespace.RanCollect:runTest(int,int,int,int):ubyte:this (FullOpts)
         -44 (-1.25 % of base) : 198113.dasm - DefaultNamespace.RanCollect:runTest(int,int,int,int):ubyte:this (Tier0-FullOpts)
         -44 (-0.32 % of base) : 311329.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         -36 (-2.08 % of base) : 278603.dasm - Internal.TypeSystem.Ecma.EcmaModule:CreateMetadataReader(Internal.TypeSystem.TypeSystemContext,System.Reflection.PortableExecutable.PEReader):System.Reflection.Metadata.MetadataReader (Tier1)
         -36 (-0.46 % of base) : 478209.dasm - Test_13662_b:TestEntryPoint():int (FullOpts)
         -36 (-0.46 % of base) : 313945.dasm - Test_13662_b:TestEntryPoint():int (Tier0-FullOpts)

Top method regressions (percentages):
          62 (387.50 % of base) : 413209.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)
          50 (312.50 % of base) : 409232.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)
          40 (250.00 % of base) : 413157.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)
          50 (41.67 % of base) : 408770.dasm - Test_10w5d.testout1:Func_0_2_6_2_2():double (FullOpts)
          30 (39.47 % of base) : 409273.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)
          38 (38.00 % of base) : 424180.dasm - Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
          38 (38.00 % of base) : 211547.dasm - Test.AA:Method1(byref,int,byref,double[]):float (Tier0-FullOpts)
          18 (29.03 % of base) : 328384.dasm - filter1:f4() (FullOpts)
          16 (24.24 % of base) : 145128.dasm - Microsoft.CodeAnalysis.DiagnosticBag:Free():this (Tier1)
           8 (23.53 % of base) : 329696.dasm - try1:f4() (FullOpts)
          16 (21.05 % of base) : 382363.dasm - System.ComponentModel.TypeDescriptor:GetNodeForBaseType(System.Type):System.Type (FullOpts)
          48 (20.00 % of base) : 424258.dasm - ILGEN_0xc53351bb:Method_0x6cf4(short,byte,uint,ulong,int,long,short,short,ubyte,long,float,ubyte,ulong,ubyte):float (FullOpts)
          14 (17.50 % of base) : 146345.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)
          16 (14.81 % of base) : 2534.dasm - System.Collections.Generic.List`1[XUnitWrapperLibrary.TestSummary+TestResult]:Grow(int):this (Tier1)
          26 (14.44 % of base) : 408026.dasm - Test_10w5d.testout1:Func_0_6_1_2():float (FullOpts)
          48 (14.12 % of base) : 421715.dasm - GitHub_19171:Vector3EqualsTest() (FullOpts)
          14 (11.48 % of base) : 202123.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
          14 (11.48 % of base) : 138567.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
          64 (11.31 % of base) : 31140.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
          64 (11.27 % of base) : 141757.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)

Top method improvements (percentages):
        -304 (-22.69 % of base) : 123635.dasm - VectorTest+VectorExpTest`1[double]:VectorExp(System.Numerics.Vector`1[double],double,double,double):int (Tier0-FullOpts)
         -14 (-10.45 % of base) : 213435.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -14 (-10.45 % of base) : 167706.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -14 (-10.45 % of base) : 139916.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -14 (-10.45 % of base) : 278244.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -14 (-10.29 % of base) : 297612.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -12 (-9.09 % of base) : 156562.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -12 (-9.09 % of base) : 156710.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -12 (-9.09 % of base) : 301166.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -12 (-8.96 % of base) : 198846.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -12 (-8.96 % of base) : 314125.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -12 (-8.96 % of base) : 314155.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -12 (-8.96 % of base) : 205595.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -12 (-8.96 % of base) : 313958.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -12 (-8.96 % of base) : 313880.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -12 (-8.96 % of base) : 198259.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -12 (-8.96 % of base) : 198378.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -10 (-7.58 % of base) : 313059.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -10 (-7.58 % of base) : 295226.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -10 (-7.58 % of base) : 296853.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)


libraries.crossgen2.linux.arm.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 35174564 (overridden on cmd)
Total bytes of diff: 35175262 (overridden on cmd)
Total bytes of delta: 698 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         120 : 7421.dasm (23.17 % of base)
          86 : 127173.dasm (0.39 % of base)
          26 : 49532.dasm (9.85 % of base)
          24 : 59520.dasm (2.01 % of base)
          24 : 59715.dasm (0.63 % of base)
          24 : 159701.dasm (15.38 % of base)
          24 : 187632.dasm (3.29 % of base)
          22 : 50823.dasm (14.86 % of base)
          20 : 20813.dasm (0.57 % of base)
          18 : 127959.dasm (2.07 % of base)
          16 : 159627.dasm (10.53 % of base)
          16 : 175585.dasm (0.24 % of base)
          16 : 21878.dasm (0.95 % of base)
          14 : 159538.dasm (9.33 % of base)
          14 : 22748.dasm (6.48 % of base)
          14 : 185708.dasm (3.07 % of base)
          12 : 144211.dasm (0.54 % of base)
          12 : 158272.dasm (2.29 % of base)
          12 : 177179.dasm (1.33 % of base)
          12 : 161932.dasm (3.49 % of base)

Top file improvements (bytes):
         -22 : 89466.dasm (-1.26 % of base)
         -18 : 59457.dasm (-0.45 % of base)
         -16 : 150107.dasm (-2.13 % of base)
         -16 : 102454.dasm (-1.94 % of base)
         -16 : 126370.dasm (-2.23 % of base)
         -14 : 120356.dasm (-1.11 % of base)
         -14 : 92393.dasm (-2.13 % of base)
         -14 : 120367.dasm (-0.39 % of base)
         -12 : 58144.dasm (-0.73 % of base)
         -12 : 134136.dasm (-0.85 % of base)
         -10 : 182901.dasm (-0.30 % of base)
         -10 : 81763.dasm (-0.17 % of base)
         -10 : 55888.dasm (-0.58 % of base)
          -8 : 145598.dasm (-0.11 % of base)
          -8 : 159615.dasm (-1.15 % of base)
          -8 : 162134.dasm (-1.88 % of base)
          -8 : 175592.dasm (-0.30 % of base)
          -8 : 185951.dasm (-0.41 % of base)
          -6 : 151885.dasm (-0.27 % of base)
          -6 : 163745.dasm (-0.09 % of base)

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

Top method regressions (bytes):
         120 (23.17 % of base) : 7421.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
          86 (0.39 % of base) : 127173.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)
          26 (9.85 % of base) : 49532.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          24 (0.63 % of base) : 59715.dasm - System.Data.RBTree`1[System.__Canon]:RBDeleteX(int,int,int):int:this (FullOpts)
          24 (15.38 % of base) : 159701.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          24 (3.29 % of base) : 187632.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
          24 (2.01 % of base) : 59520.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
          22 (14.86 % of base) : 50823.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 (0.57 % of base) : 20813.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          18 (2.07 % of base) : 127959.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
          16 (0.95 % of base) : 21878.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
          16 (0.24 % of base) : 175585.dasm - R2RTest.BuildFolderSet:WriteBuildStatistics(System.IO.StreamWriter):this (FullOpts)
          16 (10.53 % of base) : 159627.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
          14 (6.48 % of base) : 22748.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          14 (3.07 % of base) : 185708.dasm - System.Data.Odbc.OdbcDataReader:GetData(int,short,int,byref):ubyte:this (FullOpts)
          14 (9.33 % of base) : 159538.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
          12 (6.52 % of base) : 94341.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
          12 (0.54 % of base) : 144211.dasm - System.ComponentModel.Composition.AttributedModel.AttributedPartCreationInfo:GetExportDefinitions():System.Collections.Generic.List`1[System.ComponentModel.Composition.Primitives.ExportDefinition]:this (FullOpts)
          12 (1.33 % of base) : 177179.dasm - System.ComponentModel.TypeDescriptor:Refresh(System.Reflection.Module) (FullOpts)
          12 (2.29 % of base) : 158272.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)

Top method improvements (bytes):
         -22 (-1.26 % of base) : 89466.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (FullOpts)
         -18 (-0.45 % of base) : 59457.dasm - System.Data.ProviderBase.SchemaMapping:SetupSchemaWithKeyInfo(int,int,ubyte,System.Data.DataColumn,System.Object):System.Object[]:this (FullOpts)
         -16 (-2.23 % of base) : 126370.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (FullOpts)
         -16 (-1.94 % of base) : 102454.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase:GetFilesCore(Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFileReference]:this (FullOpts)
         -16 (-2.13 % of base) : 150107.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.__Canon],System.__Canon):this (FullOpts)
         -14 (-2.13 % of base) : 92393.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (FullOpts)
         -14 (-1.11 % of base) : 120356.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+InferenceGraph:AddLambdaToGraph(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+ArgumentNode,Microsoft.CodeAnalysis.VisualBasic.Binder):this (FullOpts)
         -14 (-0.39 % of base) : 120367.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+InferenceGraph:InferTypeArgumentsFromLambdaArgument(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol):ubyte:this (FullOpts)
         -12 (-0.73 % of base) : 58144.dasm - System.Data.DataColumnCollection:CanRemove(System.Data.DataColumn,ubyte):ubyte:this (FullOpts)
         -12 (-0.85 % of base) : 134136.dasm - System.Net.Sockets.Socket:ReceiveFrom(ubyte[],int,int,int,byref):int:this (FullOpts)
         -10 (-0.17 % of base) : 81763.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)
         -10 (-0.58 % of base) : 55888.dasm - System.Data.DataView:ToTable(System.String,ubyte,System.String[]):System.Data.DataTable:this (FullOpts)
         -10 (-0.30 % of base) : 182901.dasm - System.Security.Cryptography.Pkcs.CmsSigner:Sign(System.ReadOnlyMemory`1[ubyte],System.String,ubyte,byref):System.Security.Cryptography.Pkcs.Asn1.SignerInfoAsn:this (FullOpts)
          -8 (-0.11 % of base) : 145598.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 (FullOpts)
          -8 (-0.30 % of base) : 175592.dasm - R2RTest.BuildFolderSet:WriteCombinedLog(System.String):this (FullOpts)
          -8 (-0.41 % of base) : 185951.dasm - System.Data.Odbc.OdbcDataReader:RetrieveKeyInfoFromStatistics(System.Data.Odbc.OdbcDataReader+QualifiedTableName,ubyte):int:this (FullOpts)
          -8 (-1.15 % of base) : 159615.dasm - System.Net.Mail.MailAddressParser:TryParseAddress(System.String,ubyte,byref,byref,ubyte):ubyte (FullOpts)
          -8 (-1.88 % of base) : 162134.dasm - System.Text.Json.Utf8JsonReader:SkipAllComments(byref):ubyte:this (FullOpts)
          -6 (-0.09 % of base) : 163745.dasm - System.Configuration.ConfigurationElement:DeserializeElement(System.Xml.XmlReader,ubyte):this (FullOpts)
          -6 (-0.27 % of base) : 151885.dasm - System.Transactions.TransactionScope:Dispose():this (FullOpts)

Top method regressions (percentages):
         120 (23.17 % of base) : 7421.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
          24 (15.38 % of base) : 159701.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          22 (14.86 % of base) : 50823.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)
          16 (10.53 % of base) : 159627.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
          26 (9.85 % of base) : 49532.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          14 (9.33 % of base) : 159538.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
          12 (6.52 % of base) : 94341.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
          14 (6.48 % of base) : 22748.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
           8 (4.44 % of base) : 185514.dasm - System.Data.Odbc.OdbcHandle:ReleaseHandle():ubyte:this (FullOpts)
          10 (4.31 % of base) : 175263.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
           6 (4.00 % of base) : 159682.dasm - System.Net.Mail.StartTlsCommand:CheckResponse(int,System.String) (FullOpts)
           6 (3.95 % of base) : 128146.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:IsMemberPublic(System.Reflection.MemberInfo):ubyte (FullOpts)
          12 (3.49 % of base) : 161932.dasm - System.Text.Json.Utf8JsonWriter:ValidateEnd(ubyte):this (FullOpts)
          10 (3.31 % of base) : 107893.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SingleLineLambdaContext:ProcessStatementTerminator(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext:this (FullOpts)
          24 (3.29 % of base) : 187632.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
          14 (3.07 % of base) : 185708.dasm - System.Data.Odbc.OdbcDataReader:GetData(int,short,int,byref):ubyte:this (FullOpts)
           2 (2.70 % of base) : 162180.dasm - System.Text.Json.Utf8JsonReader:ThrowOnDangerousLineSeparator(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
           8 (2.33 % of base) : 138115.dasm - System.IO.Compression.ZipArchiveEntry:GetDataCompressor(System.IO.Stream,ubyte,System.EventHandler):System.IO.Compression.CheckSumAndSizeWriteStream:this (FullOpts)
           6 (2.31 % of base) : 127633.dasm - Microsoft.VisualBasic.CompilerServices.LateBinding:VerifyObjRefPresentForInstanceCall(System.Object,System.Reflection.MemberInfo) (FullOpts)
          12 (2.29 % of base) : 158272.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)

Top method improvements (percentages):
          -4 (-3.45 % of base) : 78827.dasm - Microsoft.Diagnostics.Tracing.Ctf.CtfEnum:GetName(int):System.String:this (FullOpts)
         -16 (-2.23 % of base) : 126370.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (FullOpts)
          -2 (-2.17 % of base) : 185550.dasm - System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
         -14 (-2.13 % of base) : 92393.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (FullOpts)
         -16 (-2.13 % of base) : 150107.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.__Canon],System.__Canon):this (FullOpts)
         -16 (-1.94 % of base) : 102454.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase:GetFilesCore(Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFileReference]:this (FullOpts)
          -8 (-1.88 % of base) : 162134.dasm - System.Text.Json.Utf8JsonReader:SkipAllComments(byref):ubyte:this (FullOpts)
         -22 (-1.26 % of base) : 89466.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (FullOpts)
          -2 (-1.20 % of base) : 126544.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.20 % of base) : 92743.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.20 % of base) : 126549.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.20 % of base) : 92748.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.20 % of base) : 91971.dasm - Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-1.15 % of base) : 159615.dasm - System.Net.Mail.MailAddressParser:TryParseAddress(System.String,ubyte,byref,byref,ubyte):ubyte (FullOpts)
          -2 (-1.14 % of base) : 132304.dasm - System.Collections.Generic.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.14 % of base) : 132309.dasm - System.Collections.Generic.SegmentedDictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -14 (-1.11 % of base) : 120356.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+InferenceGraph:AddLambdaToGraph(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+ArgumentNode,Microsoft.CodeAnalysis.VisualBasic.Binder):this (FullOpts)
          -2 (-1.05 % of base) : 21874.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:IsReceiverRefReadOnly(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
          -2 (-0.92 % of base) : 20289.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -2 (-0.85 % of base) : 189452.dasm - System.Security.Cryptography.SymmetricPadding:GetCiphertextLength(int,int,int):int (FullOpts)


libraries.pmi.linux.arm.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 49549994 (overridden on cmd)
Total bytes of diff: 49615946 (overridden on cmd)
Total bytes of delta: 65952 (0.13 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         518 : 203994.dasm (30.19 % of base)
         468 : 159909.dasm (866.67 % of base)
         306 : 234082.dasm (1.36 % of base)
         248 : 201889.dasm (5.46 % of base)
         222 : 259987.dasm (2.06 % of base)
         168 : 13155.dasm (2.04 % of base)
         158 : 52714.dasm (3.68 % of base)
         156 : 61239.dasm (8.96 % of base)
         148 : 242666.dasm (5.99 % of base)
         148 : 266414.dasm (5.99 % of base)
         128 : 278413.dasm (2.11 % of base)
         124 : 160700.dasm (4.81 % of base)
         120 : 170130.dasm (2.88 % of base)
         120 : 142411.dasm (6.35 % of base)
         112 : 142415.dasm (4.97 % of base)
          98 : 61082.dasm (2.05 % of base)
          94 : 44213.dasm (5.36 % of base)
          94 : 82655.dasm (1.93 % of base)
          92 : 224690.dasm (1.54 % of base)
          90 : 96511.dasm (7.67 % of base)

Top file improvements (bytes):
        -268 : 169906.dasm (-5.69 % of base)
         -86 : 160010.dasm (-1.92 % of base)
         -80 : 105655.dasm (-2.66 % of base)
         -78 : 154388.dasm (-2.01 % of base)
         -56 : 259898.dasm (-2.66 % of base)
         -52 : 67778.dasm (-1.15 % of base)
         -44 : 90906.dasm (-1.91 % of base)
         -40 : 21669.dasm (-6.17 % of base)
         -38 : 92626.dasm (-1.91 % of base)
         -38 : 97336.dasm (-0.57 % of base)
         -36 : 134810.dasm (-3.95 % of base)
         -36 : 273103.dasm (-1.12 % of base)
         -34 : 92285.dasm (-0.80 % of base)
         -34 : 132461.dasm (-3.70 % of base)
         -32 : 241438.dasm (-1.82 % of base)
         -32 : 105127.dasm (-1.13 % of base)
         -32 : 167216.dasm (-3.77 % of base)
         -32 : 250877.dasm (-3.57 % of base)
         -30 : 171751.dasm (-10.87 % of base)
         -30 : 265255.dasm (-9.55 % of base)

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

Top method regressions (bytes):
         518 (30.19 % of base) : 203994.dasm - Microsoft.Build.Construction.SolutionFile:ParseAspNetCompilerProperty(Microsoft.Build.Construction.ProjectInSolution,System.String,System.String) (FullOpts)
         468 (866.67 % of base) : 159909.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
         306 (1.36 % of base) : 234082.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)
         248 (5.46 % of base) : 201889.dasm - System.Net.NetworkInformation.StringParsingHelpers:ParseInterfaceStatisticsTableFromFile(System.String,System.String):System.Net.NetworkInformation.IPInterfaceStatisticsTable (FullOpts)
         222 (2.06 % of base) : 259987.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
         168 (2.04 % of base) : 13155.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
         158 (3.68 % of base) : 52714.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
         156 (8.96 % of base) : 61239.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:<VisitWithExpression>g__getAnonymousTypeValues|366_0(Microsoft.CodeAnalysis.CSharp.BoundWithExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.AnonymousTypeManager+AnonymousTypePublicSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]:this (FullOpts)
         148 (5.99 % of base) : 242666.dasm - System.Drawing.ColorConverterCommon:ConvertFromString(System.String,System.Globalization.CultureInfo):System.Drawing.Color (FullOpts)
         148 (5.99 % of base) : 266414.dasm - System.Drawing.ColorConverterCommon:ConvertFromString(System.String,System.Globalization.CultureInfo):System.Drawing.Color (FullOpts)
         128 (2.11 % of base) : 278413.dasm - TestRunner:DoWorkStress():int:this (FullOpts)
         124 (4.81 % of base) : 160700.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FAB93D28E879A1C012F40790EA668F818AB3858873713FA53950E20F52E058952__EnsureArrayIndexRegex_5+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         120 (6.35 % of base) : 142411.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)
         120 (2.88 % of base) : 170130.dasm - System.ComponentModel.CategoryAttribute:GetLocalizedString(System.String):System.String:this (FullOpts)
         112 (4.97 % of base) : 142415.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)
          98 (2.05 % of base) : 61082.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeDecimalLiteral(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ConstantValue):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          94 (1.93 % of base) : 82655.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
          94 (5.36 % of base) : 44213.dasm - Microsoft.Diagnostics.Tracing.Parsers.IIS_Trace.W3CacheFileCacheAccessEnd:ToXml(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
          92 (1.54 % of base) : 224690.dasm - Newtonsoft.Json.JsonTextReader+<ParseValueAsync>d__8:MoveNext():this (FullOpts)
          90 (7.67 % of base) : 96511.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToGenericParameter[System.__Canon](System.Object):System.__Canon (FullOpts)

Top method improvements (bytes):
        -268 (-5.69 % of base) : 169906.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (FullOpts)
         -86 (-1.92 % of base) : 160010.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
         -80 (-2.66 % of base) : 105655.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)
         -78 (-2.01 % of base) : 154388.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)
         -56 (-2.66 % of base) : 259898.dasm - System.Net.Http.HttpConnection+ChunkedEncodingWriteStream+<<WriteAsync>g__WriteChunkAsync|4_0>d:MoveNext():this (FullOpts)
         -52 (-1.15 % of base) : 67778.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.SyntaxNormalizer:RewriteTrivia(Microsoft.CodeAnalysis.SyntaxTriviaList,int,ubyte,ubyte,ubyte,int):Microsoft.CodeAnalysis.SyntaxTriviaList:this (FullOpts)
         -44 (-1.91 % of base) : 90906.dasm - System.Data.XDRSchema:HandleColumn(System.Xml.XmlElement,System.Data.DataTable):this (FullOpts)
         -40 (-6.17 % of base) : 21669.dasm - Microsoft.FSharp.Quotations.DerivedPatternsModule:DecimalPattern(Microsoft.FSharp.Quotations.FSharpExpr):Microsoft.FSharp.Core.FSharpOption`1[System.Decimal] (FullOpts)
         -38 (-0.57 % of base) : 97336.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)
         -38 (-1.91 % of base) : 92626.dasm - System.Data.DataTable:ReadXmlDiffgram(System.Xml.XmlReader):this (FullOpts)
         -36 (-3.95 % of base) : 134810.dasm - Microsoft.CodeAnalysis.Text.CompositeText:GetSubText(Microsoft.CodeAnalysis.Text.TextSpan):Microsoft.CodeAnalysis.Text.SourceText:this (FullOpts)
         -36 (-1.12 % of base) : 273103.dasm - System.Formats.Asn1.AsnWriter:WriteUtcTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset):this (FullOpts)
         -34 (-3.70 % of base) : 132461.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeObsoleteAttribute():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -34 (-0.80 % of base) : 92285.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts)
         -32 (-1.82 % of base) : 241438.dasm - Internal.Cryptography.PkcsHelpers:CreateBestPkcs9AttributeObjectAvailable(System.Security.Cryptography.Oid,System.ReadOnlySpan`1[ubyte]):System.Security.Cryptography.Pkcs.Pkcs9AttributeObject (FullOpts)
         -32 (-1.13 % of base) : 105127.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxTreeSemanticModel:GetCrefOrNameAttributeReferenceSymbols(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,ubyte,byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol]:this (FullOpts)
         -32 (-3.77 % of base) : 167216.dasm - System.Reflection.Emit.MethodBuilderImpl:SetCustomAttributeCore(System.Reflection.ConstructorInfo,System.ReadOnlySpan`1[ubyte]):this (FullOpts)
         -32 (-3.57 % of base) : 250877.dasm - System.ServiceModel.Syndication.SyndicationFeed:TryReadTextInputFromExtension(System.ServiceModel.Syndication.SyndicationElementExtensionCollection):System.ServiceModel.Syndication.SyndicationTextInput (FullOpts)
         -30 (-4.08 % of base) : 97306.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindCaseBlocks(Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.CaseBlockSyntax],Microsoft.CodeAnalysis.VisualBasic.BoundRValuePlaceholder,ubyte,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundCaseBlock]:this (FullOpts)
         -30 (-11.03 % of base) : 243754.dasm - System.ComponentModel.LookupBindingPropertiesAttribute:Equals(System.Object):ubyte:this (FullOpts)

Top method regressions (percentages):
         468 (866.67 % of base) : 159909.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
          10 (71.43 % of base) : 176585.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
         518 (30.19 % of base) : 203994.dasm - Microsoft.Build.Construction.SolutionFile:ParseAspNetCompilerProperty(Microsoft.Build.Construction.ProjectInSolution,System.String,System.String) (FullOpts)
          16 (21.05 % of base) : 243314.dasm - System.ComponentModel.TypeDescriptor:GetNodeForBaseType(System.Type):System.Type (FullOpts)
          12 (19.35 % of base) : 256451.dasm - System.IO.FileSystemWatcher+NormalizedFilterCollection+ImmutableStringList:get_Item(int):System.String:this (FullOpts)
          22 (16.92 % of base) : 87237.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)
          10 (16.67 % of base) : 188665.dasm - System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
          24 (16.00 % of base) : 262453.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          10 (14.29 % of base) : 188664.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Net.Sockets.UdpReceiveResult):ubyte:this (FullOpts)
          10 (13.51 % of base) : 188666.dasm - System.Net.Sockets.UdpReceiveResult:op_Inequality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
           2 (12.50 % of base) : 46714.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCFitBucketInfoTraceData:Validate():this (FullOpts)
          10 (12.20 % of base) : 188663.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Object):ubyte:this (FullOpts)
          14 (11.67 % of base) : 196589.dasm - System.Collections.Immutable.ImmutableArray`1[ubyte]:AsSpan(System.Range):System.ReadOnlySpan`1[ubyte]:this (FullOpts)
          16 (11.59 % of base) : 2101.dasm - System.MemoryExtensions:AsSpan[ubyte](System.ArraySegment`1[ubyte],System.Range):System.Span`1[ubyte] (FullOpts)
          14 (11.29 % of base) : 196479.dasm - System.Collections.Immutable.ImmutableArray`1[System.__Canon]:AsSpan(System.Range):System.ReadOnlySpan`1[System.__Canon]:this (FullOpts)
          16 (10.96 % of base) : 262449.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
           6 (10.71 % of base) : 2917.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
          30 (10.34 % of base) : 152431.dasm - System.Xml.Schema.Datatype_dateTimeBase:Compare(System.Object,System.Object):int:this (FullOpts)
           8 (10.26 % of base) : 253392.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
          26 (10.24 % of base) : 85854.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)

Top method improvements (percentages):
         -10 (-23.81 % of base) : 206628.dasm - Microsoft.Build.BackEnd.SchedulingData:GetBlockedRequestIfAny(int):Microsoft.Build.BackEnd.SchedulableRequest:this (FullOpts)
         -18 (-23.68 % of base) : 244403.dasm - System.IO.Packaging.OrderedDictionary`2[long,System.Nullable`1[int]]:TryGetValue(long,byref):ubyte:this (FullOpts)
         -12 (-20.00 % of base) : 244391.dasm - System.IO.Packaging.OrderedDictionary`2[int,System.Nullable`1[int]]:TryGetValue(int,byref):ubyte:this (FullOpts)
         -12 (-19.35 % of base) : 244379.dasm - System.IO.Packaging.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:TryGetValue(ubyte,byref):ubyte:this (FullOpts)
         -30 (-11.03 % of base) : 243754.dasm - System.ComponentModel.LookupBindingPropertiesAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -30 (-10.87 % of base) : 171751.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)
         -30 (-9.55 % of base) : 265255.dasm - System.Diagnostics.ActivityContext:op_Inequality(System.Diagnostics.ActivityContext,System.Diagnostics.ActivityContext):ubyte (FullOpts)
         -28 (-8.54 % of base) : 265307.dasm - System.Diagnostics.ActivityLink:op_Inequality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)
         -22 (-8.21 % of base) : 265306.dasm - System.Diagnostics.ActivityLink:op_Equality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)
         -14 (-8.14 % of base) : 210375.dasm - Microsoft.Build.BackEnd.ItemGroupIntrinsicTask+NestedMetadataTable:GetEscapedValueIfPresent(System.String,System.String):System.String:this (FullOpts)
         -20 (-8.13 % of base) : 229228.dasm - System.Reflection.TypeLoading.RoAssemblyName:Equals(System.Reflection.TypeLoading.RoAssemblyName):ubyte:this (FullOpts)
         -20 (-8.13 % of base) : 235815.dasm - System.Reflection.TypeLoading.RoAssemblyName:Equals(System.Reflection.TypeLoading.RoAssemblyName):ubyte:this (FullOpts)
         -24 (-7.14 % of base) : 155298.dasm - System.Xml.Xsl.Xslt.XslAstAnalyzer:AddImportDependencies(System.Xml.Xsl.Xslt.Stylesheet,System.Xml.Xsl.Xslt.Template):this (FullOpts)
         -16 (-7.08 % of base) : 147161.dasm - System.Xml.XmlSqlBinaryReader:LocateAttribute(System.String):int:this (FullOpts)
         -14 (-6.86 % of base) : 265254.dasm - System.Diagnostics.ActivityContext:op_Equality(System.Diagnostics.ActivityContext,System.Diagnostics.ActivityContext):ubyte (FullOpts)
         -16 (-6.84 % of base) : 255515.dasm - System.DirectoryServices.Protocols.LdapConnection:SameCredential(System.Net.NetworkCredential,System.Net.NetworkCredential):ubyte (FullOpts)
         -28 (-6.67 % of base) : 172094.dasm - System.Xml.Linq.XNodeReader:GetAttribute(System.String):System.String:this (FullOpts)
         -40 (-6.17 % of base) : 21669.dasm - Microsoft.FSharp.Quotations.DerivedPatternsModule:DecimalPattern(Microsoft.FSharp.Quotations.FSharpExpr):Microsoft.FSharp.Core.FSharpOption`1[System.Decimal] (FullOpts)
        -268 (-5.69 % of base) : 169906.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (FullOpts)
         -10 (-5.32 % of base) : 148305.dasm - System.Xml.XmlNamespaceManager:LookupPrefix(System.String):System.String:this (FullOpts)


libraries_tests.run.linux.arm.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 241868412 (overridden on cmd)
Total bytes of diff: 242762120 (overridden on cmd)
Total bytes of delta: 893708 (0.37 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1904 : 688417.dasm (7.85 % of base)
         556 : 698554.dasm (8.23 % of base)
         550 : 82476.dasm (10.64 % of base)
         526 : 61523.dasm (7.81 % of base)
         492 : 237024.dasm (4.63 % of base)
         480 : 539804.dasm (4.61 % of base)
         452 : 177949.dasm (4.58 % of base)
         438 : 93475.dasm (6.38 % of base)
         426 : 222199.dasm (4.12 % of base)
         422 : 185342.dasm (5.53 % of base)
         396 : 314420.dasm (5.66 % of base)
         392 : 339418.dasm (3.68 % of base)
         380 : 677303.dasm (7.29 % of base)
         374 : 297692.dasm (4.57 % of base)
         374 : 54971.dasm (5.95 % of base)
         374 : 80716.dasm (2.86 % of base)
         366 : 54911.dasm (3.95 % of base)
         362 : 182167.dasm (7.98 % of base)
         358 : 476925.dasm (3.55 % of base)
         350 : 370213.dasm (3.23 % of base)

Top file improvements (bytes):
        -294 : 319665.dasm (-3.47 % of base)
        -264 : 454623.dasm (-6.48 % of base)
        -250 : 565933.dasm (-2.68 % of base)
        -232 : 428181.dasm (-2.39 % of base)
        -218 : 255102.dasm (-4.65 % of base)
        -208 : 222594.dasm (-2.48 % of base)
        -208 : 540185.dasm (-2.48 % of base)
        -176 : 235903.dasm (-1.40 % of base)
        -172 : 272307.dasm (-3.78 % of base)
        -168 : 317498.dasm (-3.69 % of base)
        -168 : 549881.dasm (-1.74 % of base)
        -168 : 576674.dasm (-3.69 % of base)
        -156 : 365816.dasm (-3.42 % of base)
        -156 : 18244.dasm (-1.41 % of base)
        -148 : 462144.dasm (-1.19 % of base)
        -144 : 621231.dasm (-1.50 % of base)
        -142 : 489622.dasm (-1.14 % of base)
        -138 : 415112.dasm (-3.05 % of base)
        -136 : 117816.dasm (-1.08 % of base)
        -132 : 718017.dasm (-3.93 % of base)

99 total files with Code Size differences (59 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
        1904 (7.85 % of base) : 688417.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex6412_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         556 (8.23 % of base) : 698554.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.SpacingFormattingRule:GetAdjustSpacesOperation(byref,byref,byref):Microsoft.CodeAnalysis.Formatting.Rules.AdjustSpacesOperation:this (Tier1)
         550 (10.64 % of base) : 82476.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetAttribute(Microsoft.CodeAnalysis.CSharp.BoundAttribute,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData:this (Tier1)
         526 (7.81 % of base) : 61523.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.SpacingFormattingRule:GetAdjustSpacesOperation(byref,byref,byref):Microsoft.CodeAnalysis.Formatting.Rules.AdjustSpacesOperation:this (Tier1)
         492 (4.63 % of base) : 237024.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         480 (4.61 % of base) : 539804.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         452 (4.58 % of base) : 177949.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         438 (6.38 % of base) : 93475.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.SpacingFormattingRule:GetAdjustSpacesOperation(byref,byref,byref):Microsoft.CodeAnalysis.Formatting.Rules.AdjustSpacesOperation:this (Tier1)
         426 (4.12 % of base) : 222199.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         422 (5.53 % of base) : 185342.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:BinaryOperatorOverloadResolution_NoEasyOut(int,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BinaryOperatorOverloadResolutionResult,byref):this (Tier1)
         396 (5.66 % of base) : 314420.dasm - System.IO.Tests.StreamConformanceTests+<ValidateDisposedExceptionsAsync>d__51:MoveNext():this (Tier1)
         392 (3.68 % of base) : 339418.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         380 (7.29 % of base) : 677303.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindBinaryPattern(Microsoft.CodeAnalysis.CSharp.Syntax.BinaryPatternSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundPattern:this (Tier1)
         374 (5.95 % of base) : 54971.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)
         374 (4.57 % of base) : 297692.dasm - System.Linq.Expressions.Expression:ValidateUserDefinedConditionalLogicOperator(int,System.Type,System.Type,System.Reflection.MethodInfo) (Tier1)
         374 (2.86 % of base) : 80716.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         366 (3.95 % of base) : 54911.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
         362 (7.98 % of base) : 182167.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:Equals(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):ubyte:this (Tier1)
         358 (3.55 % of base) : 476925.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         350 (3.23 % of base) : 370213.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)

Top method improvements (bytes):
        -294 (-3.47 % of base) : 319665.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -264 (-6.48 % of base) : 454623.dasm - System.Xml.XmlConvertTests.XmlBaseCharConvertTests2:XmlEncodeName5():int:this (Tier1)
        -250 (-2.68 % of base) : 565933.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -232 (-2.39 % of base) : 428181.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -218 (-4.65 % of base) : 255102.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (Tier0-FullOpts)
        -208 (-2.48 % of base) : 222594.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -208 (-2.48 % of base) : 540185.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -176 (-1.40 % of base) : 235903.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        -172 (-3.78 % of base) : 272307.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
        -168 (-3.69 % of base) : 317498.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
        -168 (-3.69 % of base) : 576674.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
        -168 (-1.74 % of base) : 549881.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -156 (-3.42 % of base) : 365816.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
        -156 (-1.41 % of base) : 18244.dasm - System.Text.RegularExpressions.RegexCompiler:EmitMatchCharacterClass(System.String):this (Tier0-FullOpts)
        -148 (-1.19 % of base) : 462144.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        -144 (-1.50 % of base) : 621231.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -142 (-1.14 % of base) : 489622.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        -138 (-3.05 % of base) : 415112.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
        -136 (-1.08 % of base) : 117816.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        -132 (-3.93 % of base) : 718017.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)

Top method regressions (percentages):
          16 (57.14 % of base) : 644582.dasm - Microsoft.CSharp.RuntimeBinder.BinderHelper:IsDynamicallyTypedRuntimeProxy(System.Dynamic.DynamicMetaObject,Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo):ubyte (Tier1)
          12 (54.55 % of base) : 450473.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
          30 (51.72 % of base) : 151680.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],ubyte):this (Tier1)
          30 (50.00 % of base) : 165726.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],ubyte):this (Tier1)
          36 (48.65 % of base) : 78318.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)
          36 (48.65 % of base) : 48522.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)
          36 (47.37 % of base) : 56685.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)
          36 (47.37 % of base) : 690580.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)
          36 (47.37 % of base) : 84903.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)
          36 (47.37 % of base) : 180201.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)
          28 (45.16 % of base) : 214472.dasm - System.Collections.Immutable.DictionaryEnumerator`2[System.__Canon,System.__Canon]:.ctor(System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):this (Tier1)
          28 (45.16 % of base) : 216089.dasm - System.Collections.Immutable.ImmutableEnumerableDebuggerProxy`1[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
          28 (45.16 % of base) : 28543.dasm - System.Collections.Immutable.ImmutableExtensions+FallbackWrapper`1[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
          28 (45.16 % of base) : 13862.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)
          28 (45.16 % of base) : 616629.dasm - System.Collections.Immutable.ImmutableStack`1+EnumeratorObject[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableStack`1[System.__Canon]):this (Tier1)
          28 (45.16 % of base) : 18522.dasm - System.Collections.Immutable.SecurePooledObject`1[System.__Canon]:.ctor(System.__Canon):this (Tier1)
          36 (43.90 % of base) : 160459.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)
          30 (42.86 % of base) : 29572.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)
          22 (36.67 % of base) : 29571.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon]):this (Tier1)
         116 (33.92 % of base) : 444510.dasm - System.Xml.Xsl.Runtime.XmlQueryStaticData:.ctor(System.Xml.XmlWriterSettings,System.Collections.Generic.IList`1[System.Xml.Xsl.Qil.WhitespaceRule],System.Xml.Xsl.IlGen.StaticDataManager):this (Tier1)

Top method improvements (percentages):
         -10 (-21.74 % of base) : 85676.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
         -10 (-21.74 % of base) : 46054.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
         -20 (-17.24 % of base) : 110318.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GuardedGetBoundNodesFromMap(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]:this (Tier1)
         -14 (-13.46 % of base) : 54338.dasm - Roslyn.Utilities.MultiDictionary`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.__Canon]:this (Tier1)
          -4 (-13.33 % of base) : 51358.dasm - Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
          -8 (-13.33 % of base) : 679321.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+<>c[ulong]:<CreateNewNfaTransition>b__20_0(int,System.Collections.Generic.List`1[int]):this (Tier1)
         -16 (-11.59 % of base) : 718116.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -16 (-11.59 % of base) : 396160.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -16 (-11.43 % of base) : 719051.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -14 (-10.45 % of base) : 717254.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -14 (-10.45 % of base) : 396744.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -10 (-9.09 % of base) : 492739.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastInterface(uint,System.Object):System.Object (Tier1)
         -10 (-9.09 % of base) : 699831.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastInterface(uint,System.Object):System.Object (Tier1)
         -10 (-9.09 % of base) : 98579.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastInterface(uint,System.Object):System.Object (Tier1)
         -10 (-9.09 % of base) : 351743.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastInterface(uint,System.Object):System.Object (Tier1)
          -6 (-9.09 % of base) : 381146.dasm - Xunit.TestFrameworkOptions:GetValue[System.Nullable`1[ubyte]](System.String):System.Nullable`1[ubyte]:this (Tier1)
         -12 (-8.96 % of base) : 655484.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -12 (-8.96 % of base) : 717436.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
         -10 (-8.93 % of base) : 230511.dasm - System.Collections.Generic.GenericArraySortHelper`1[int]:BinarySearch(int[],int,int,int):int (Tier1)
         -12 (-8.82 % of base) : 396797.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)


librariestestsnotieredcompilation.run.linux.arm.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 93040820 (overridden on cmd)
Total bytes of diff: 93201612 (overridden on cmd)
Total bytes of delta: 160792 (0.17 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         306 : 59580.dasm (1.36 % of base)
         248 : 151314.dasm (5.46 % of base)
         248 : 151506.dasm (5.39 % of base)
         208 : 164763.dasm (8.42 % of base)
         208 : 237488.dasm (1.95 % of base)
         208 : 240122.dasm (1.95 % of base)
         200 : 20899.dasm (1.94 % of base)
         174 : 153630.dasm (2.26 % of base)
         172 : 11573.dasm (1.77 % of base)
         170 : 147291.dasm (5.18 % of base)
         156 : 301302.dasm (4.42 % of base)
         154 : 286750.dasm (5.48 % of base)
         154 : 46256.dasm (3.83 % of base)
         154 : 11059.dasm (3.83 % of base)
         154 : 52334.dasm (3.83 % of base)
         148 : 65834.dasm (5.03 % of base)
         146 : 230644.dasm (2.69 % of base)
         142 : 216466.dasm (3.34 % of base)
         142 : 216929.dasm (3.35 % of base)
         142 : 220985.dasm (3.33 % of base)

Top file improvements (bytes):
        -266 : 90092.dasm (-5.63 % of base)
        -102 : 128202.dasm (-1.96 % of base)
         -86 : 302094.dasm (-0.96 % of base)
         -86 : 99838.dasm (-6.49 % of base)
         -56 : 280738.dasm (-4.90 % of base)
         -56 : 149750.dasm (-2.68 % of base)
         -50 : 288215.dasm (-1.65 % of base)
         -50 : 93393.dasm (-3.28 % of base)
         -48 : 288321.dasm (-3.57 % of base)
         -44 : 128201.dasm (-1.19 % of base)
         -44 : 128209.dasm (-1.00 % of base)
         -40 : 126289.dasm (-0.93 % of base)
         -38 : 156846.dasm (-1.00 % of base)
         -38 : 156762.dasm (-1.00 % of base)
         -38 : 8924.dasm (-0.88 % of base)
         -38 : 170695.dasm (-7.63 % of base)
         -36 : 17729.dasm (-4.04 % of base)
         -36 : 156826.dasm (-0.91 % of base)
         -36 : 115219.dasm (-1.12 % of base)
         -36 : 170821.dasm (-6.41 % of base)

75 total files with Code Size differences (35 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
         306 (1.36 % of base) : 59580.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)
         248 (5.46 % of base) : 151314.dasm - System.Net.NetworkInformation.StringParsingHelpers:ParseInterfaceStatisticsTableFromFile(System.String,System.String):System.Net.NetworkInformation.IPInterfaceStatisticsTable (FullOpts)
         248 (5.39 % of base) : 151506.dasm - System.Net.NetworkInformation.StringParsingHelpers:ParseInterfaceStatisticsTableFromFile(System.String,System.String):System.Net.NetworkInformation.IPInterfaceStatisticsTable (FullOpts)
         208 (1.95 % of base) : 237488.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:SimpleTestClassSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestClass):this (FullOpts)
         208 (1.95 % of base) : 240122.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:SimpleTestClassSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestClass):this (FullOpts)
         208 (8.42 % of base) : 164763.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FAB93D28E879A1C012F40790EA668F818AB3858873713FA53950E20F52E058952__EnsureArrayIndexRegex_5+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         200 (1.94 % of base) : 20899.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
         174 (2.26 % of base) : 153630.dasm - System.Net.Quic.Tests.MsQuicTests+<>c__DisplayClass3_0+<<QuicRootedObjectGetReleased>g__GetWeakReferencesAsync|0>d:MoveNext():this (FullOpts)
         172 (1.77 % of base) : 11573.dasm - System.Text.RegularExpressions.RegexCompiler:EmitMatchCharacterClass(System.String):this (FullOpts)
         170 (5.18 % of base) : 147291.dasm - System.Net.Http.Tests.HttpContentHeadersTest:InvalidHeaders_AddRequestAndResponseHeaders_Throw():this (FullOpts)
         156 (4.42 % of base) : 301302.dasm - System.Threading.Tasks.Tests.TaskAwaiterTests:ConfigureAwait_InvalidTimeout_Throws() (FullOpts)
         154 (3.83 % of base) : 46256.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
         154 (3.83 % of base) : 11059.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
         154 (3.83 % of base) : 52334.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
         154 (5.48 % of base) : 286750.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4954_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         148 (5.03 % of base) : 65834.dasm - System.Collections.Concurrent.Tests.BlockingCollectionTests:Test4_Dispose() (FullOpts)
         146 (2.69 % of base) : 230644.dasm - System.Text.Tests.CaseConversionTests:MultipleValidCharacterConversion(System.String,System.String,System.String) (FullOpts)
         142 (3.34 % of base) : 216466.dasm - System.Security.Cryptography.EcDiffieHellman.Tests.ECDiffieHellmanTests:TestExplicitImportValidationNegative() (FullOpts)
         142 (3.35 % of base) : 216929.dasm - System.Security.Cryptography.EcDsa.Tests.ECDsaImportExportTests:TestExplicitImportValidationNegative() (FullOpts)
         142 (3.33 % of base) : 220985.dasm - System.Security.Cryptography.EcDsa.Tests.ECDsaImportExportTests:TestExplicitImportValidationNegative() (FullOpts)

Top method improvements (bytes):
        -266 (-5.63 % of base) : 90092.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (FullOpts)
        -102 (-1.96 % of base) : 128202.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts+<ReaderShouldNotGetUnflushedBytesWhenOverflowingSegments>d__16:MoveNext():this (FullOpts)
         -86 (-6.49 % of base) : 99838.dasm - BasicEventSourceTests.TestUtilities:CheckNoEventSourcesRunning(System.String) (FullOpts)
         -86 (-0.96 % of base) : 302094.dasm - System.Threading.Tasks.Tests.TaskRtTests_Core:RunRefactoringTests() (FullOpts)
         -56 (-2.68 % of base) : 149750.dasm - System.Net.Http.HttpConnection+ChunkedEncodingWriteStream+<<WriteAsync>g__WriteChunkAsync|4_0>d:MoveNext():this (FullOpts)
         -56 (-4.90 % of base) : 280738.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2367_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -50 (-3.28 % of base) : 93393.dasm - System.Data.Tests.Common.DbConnectionStringBuilderTest:AssertValueTest(System.String[][],System.String[][],ubyte):this (FullOpts)
         -50 (-1.65 % of base) : 288215.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5854_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -48 (-3.57 % of base) : 288321.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5894_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -44 (-1.19 % of base) : 128201.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest+<BufferSegmentsPooledUpToThreshold>d__5:MoveNext():this (FullOpts)
         -44 (-1.00 % of base) : 128209.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts+<HelloWorldAcrossTwoBlocks>d__11:MoveNext():this (FullOpts)
         -40 (-0.93 % of base) : 126289.dasm - System.IO.Hashing.Tests.XxHash128Tests:Hash_OneShot_Expected():this (FullOpts)
         -38 (-0.88 % of base) : 8924.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.SyntaxNormalizer:RewriteTrivia(Microsoft.CodeAnalysis.SyntaxTriviaList,int,ubyte,ubyte,ubyte,int):Microsoft.CodeAnalysis.SyntaxTriviaList:this (FullOpts)
         -38 (-1.00 % of base) : 156846.dasm - System.Net.Security.Tests.SslStreamNetworkStreamTest+<SslStream_NegotiateClientCertificateAsync_Succeeds>d__7:MoveNext():this (FullOpts)
         -38 (-1.00 % of base) : 156762.dasm - System.Net.Security.Tests.SslStreamNetworkStreamTest+<SslStream_NegotiateClientCertificateAsyncNoRenego_Succeeds>d__8:MoveNext():this (FullOpts)
         -38 (-7.63 % of base) : 170695.dasm - System.Xml.Xsl.Xslt.Stylesheet:AddVarPar(System.Xml.Xsl.Xslt.VarPar):ubyte:this (FullOpts)
         -36 (-4.04 % of base) : 17729.dasm - Microsoft.CodeAnalysis.Text.CompositeText:GetSubText(Microsoft.CodeAnalysis.Text.TextSpan):Microsoft.CodeAnalysis.Text.SourceText:this (FullOpts)
         -36 (-1.12 % of base) : 115219.dasm - System.Formats.Asn1.AsnWriter:WriteUtcTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset):this (FullOpts)
         -36 (-0.91 % of base) : 156826.dasm - System.Net.Security.Tests.SslStreamNetworkStreamTest+<SslStream_NegotiateClientCertificateAsyncTls13_Succeeds>d__12:MoveNext():this (FullOpts)
         -36 (-6.41 % of base) : 170821.dasm - System.Xml.Xsl.Xslt.XsltLoader:CheckWithParam(System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.XslNode],System.Xml.Xsl.Xslt.XslNode):this (FullOpts)

Top method regressions (percentages):
          24 (32.43 % of base) : 5259.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          22 (29.73 % of base) : 43394.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          22 (29.73 % of base) : 49333.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          26 (21.31 % of base) : 142963.dasm - System.SpanTests.IndexerTests+<>c__DisplayClass2_0:<SlicingUsingIndexAndRangeTest>b__0():this (FullOpts)
          16 (21.05 % of base) : 21411.dasm - System.ComponentModel.TypeDescriptor:GetNodeForBaseType(System.Type):System.Type (FullOpts)
          12 (19.35 % of base) : 125750.dasm - System.IO.FileSystemWatcher+NormalizedFilterCollection+ImmutableStringList:get_Item(int):System.String:this (FullOpts)
          12 (18.18 % of base) : 121347.dasm - System.Globalization.Tests.GraphemeBreakTest+<>c__DisplayClass3_0:<RunStringInfoTestCase>b__0(System.Range):int:this (FullOpts)
          16 (17.78 % of base) : 200982.dasm - System.Tests.RangeTests+<>c__DisplayClass1_0:<GetOffsetAndLengthTest>b__0():System.Object:this (FullOpts)
          16 (17.78 % of base) : 200983.dasm - System.Tests.RangeTests+<>c__DisplayClass1_0:<GetOffsetAndLengthTest>b__1():System.Object:this (FullOpts)
          22 (16.67 % of base) : 55823.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)
          24 (16.00 % of base) : 150134.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          28 (14.14 % of base) : 77177.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,int]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,int],int):this (FullOpts)
           8 (13.33 % of base) : 204165.dasm - System.Tests.StringSplitTests+<>c__DisplayClass10_0:<SplitCharArraySeparator>b__0(System.Range):System.String:this (FullOpts)
           8 (13.33 % of base) : 204190.dasm - System.Tests.StringSplitTests+<>c__DisplayClass11_0:<SplitStringArraySeparator>b__0(System.Range):System.String:this (FullOpts)
           8 (13.33 % of base) : 204175.dasm - System.Tests.StringSplitTests+<>c__DisplayClass7_0:<SplitCharSeparator>b__0(System.Range):System.String:this (FullOpts)
           8 (13.33 % of base) : 204193.dasm - System.Tests.StringSplitTests+<>c__DisplayClass8_0:<SplitStringSeparator>b__0(System.Range):System.String:this (FullOpts)
           6 (13.04 % of base) : 145323.dasm - System.SpanTests.SpanTests+<>c__DisplayClass651_0:<SliceIntRangeChecksd>b__5():this (FullOpts)
          12 (12.24 % of base) : 145139.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRange[ulong](byref,ulong,ulong,int):int (FullOpts)
           6 (12.00 % of base) : 225150.dasm - System.Security.Cryptography.Tests.OidCollectionTests+<>c__DisplayClass4_0:<TestOidCollection>b__0():System.Object:this (FullOpts)
          12 (12.00 % of base) : 142965.dasm - System.SpanTests.IndexerTests+<>c__DisplayClass2_0:<SlicingUsingIndexAndRangeTest>b__1():this (FullOpts)

Top method improvements (percentages):
         -30 (-11.03 % of base) : 86016.dasm - System.ComponentModel.LookupBindingPropertiesAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -30 (-10.87 % of base) : 305396.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)
         -32 (-10.06 % of base) : 97331.dasm - System.Diagnostics.Tests.ActivitySourceTests+<>c__DisplayClass9_1:<TestActivityCreationProperties>b__7(System.Diagnostics.ActivityLink):ubyte:this (FullOpts)
         -20 (-8.13 % of base) : 180339.dasm - System.Reflection.TypeLoading.RoAssemblyName:Equals(System.Reflection.TypeLoading.RoAssemblyName):ubyte:this (FullOpts)
         -38 (-7.63 % of base) : 170695.dasm - System.Xml.Xsl.Xslt.Stylesheet:AddVarPar(System.Xml.Xsl.Xslt.VarPar):ubyte:this (FullOpts)
         -28 (-6.67 % of base) : 306493.dasm - System.Xml.Linq.XNodeReader:GetAttribute(System.String):System.String:this (FullOpts)
         -86 (-6.49 % of base) : 99838.dasm - BasicEventSourceTests.TestUtilities:CheckNoEventSourcesRunning(System.String) (FullOpts)
         -36 (-6.41 % of base) : 170821.dasm - System.Xml.Xsl.Xslt.XsltLoader:CheckWithParam(System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.XslNode],System.Xml.Xsl.Xslt.XslNode):this (FullOpts)
        -266 (-5.63 % of base) : 90092.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (FullOpts)
         -10 (-5.32 % of base) : 165513.dasm - System.Xml.XmlNamespaceManager:LookupPrefix(System.String):System.String:this (FullOpts)
          -4 (-5.26 % of base) : 144281.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__0():this (FullOpts)
          -4 (-5.13 % of base) : 144282.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__1():this (FullOpts)
         -10 (-5.05 % of base) : 91584.dasm - System.Xml.Schema.SchemaNamespaceManager:LookupNamespace(System.String):System.String:this (FullOpts)
         -56 (-4.90 % of base) : 280738.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2367_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -22 (-4.78 % of base) : 174131.dasm - System.Xml.XmlAttributeCollection:FindNodeOffsetNS(System.Xml.XmlAttribute):int:this (FullOpts)
          -6 (-4.62 % of base) : 37981.dasm - (dynamicClass):lambda_method4(System.Runtime.CompilerServices.Closure,Microsoft.Extensions.DependencyModel.ResourceAssembly):ubyte (FullOpts)
         -12 (-4.62 % of base) : 166786.dasm - System.Xml.Serialization.XmlSerializer+XmlSerializerMappingKey:Equals(System.Object):ubyte:this (FullOpts)
         -10 (-4.46 % of base) : 195965.dasm - System.Runtime.Serialization.DataContracts.DataContract:Equals(System.Object,System.Collections.Generic.HashSet`1[System.Runtime.Serialization.DataContracts.DataContractPairKey]):ubyte:this (FullOpts)
          -8 (-4.44 % of base) : 183213.dasm - System.Reflection.Tests.EmptyCoreMetadataAssemblyResolver:Resolve(System.Reflection.MetadataLoadContext,System.Reflection.AssemblyName):System.Reflection.Assembly:this (FullOpts)
          -6 (-4.41 % of base) : 38033.dasm - (dynamicClass):lambda_method6(System.Runtime.CompilerServices.Closure,Microsoft.Extensions.DependencyModel.Dependency):ubyte (FullOpts)


realworld.run.linux.arm.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 13612086 (overridden on cmd)
Total bytes of diff: 13613446 (overridden on cmd)
Total bytes of delta: 1360 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         144 : 5541.dasm (61.02 % of base)
          82 : 16586.dasm (6.30 % of base)
          78 : 6269.dasm (6.33 % of base)
          56 : 7892.dasm (0.56 % of base)
          46 : 26634.dasm (1.20 % of base)
          38 : 23342.dasm (1.67 % of base)
          32 : 9775.dasm (1.51 % of base)
          30 : 32175.dasm (0.74 % of base)
          26 : 11360.dasm (35.14 % of base)
          26 : 31645.dasm (10.24 % of base)
          26 : 23903.dasm (0.54 % of base)
          24 : 1714.dasm (2.99 % of base)
          22 : 32925.dasm (16.92 % of base)
          20 : 22997.dasm (2.33 % of base)
          20 : 2891.dasm (0.33 % of base)
          18 : 23061.dasm (0.80 % of base)
          18 : 7460.dasm (4.43 % of base)
          18 : 37299.dasm (0.22 % of base)
          18 : 10498.dasm (4.39 % of base)
          16 : 26496.dasm (1.14 % of base)

Top file improvements (bytes):
         -28 : 18245.dasm (-1.04 % of base)
         -10 : 18615.dasm (-0.64 % of base)
         -10 : 17675.dasm (-0.26 % of base)
          -8 : 4172.dasm (-0.75 % of base)
          -4 : 24298.dasm (-0.92 % of base)
          -4 : 25951.dasm (-0.37 % of base)
          -4 : 23307.dasm (-0.35 % of base)
          -4 : 24194.dasm (-0.14 % of base)
          -4 : 2872.dasm (-0.44 % of base)
          -4 : 32736.dasm (-0.50 % of base)
          -4 : 4157.dasm (-0.07 % of base)
          -2 : 12905.dasm (-0.56 % of base)
          -2 : 17769.dasm (-0.16 % of base)
          -2 : 24429.dasm (-0.21 % of base)
          -2 : 2681.dasm (-0.56 % of base)
          -2 : 37.dasm (-0.25 % of base)
          -2 : 4115.dasm (-1.59 % of base)
          -2 : 4133.dasm (-0.84 % of base)
          -2 : 5577.dasm (-1.64 % of base)
          -2 : 18098.dasm (-1.72 % of base)

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

Top method regressions (bytes):
         144 (61.02 % of base) : 5541.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)
          82 (6.30 % of base) : 16586.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
          78 (6.33 % of base) : 6269.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          56 (0.56 % of base) : 7892.dasm - FSharp.Compiler.AugmentWithHashCompare:CheckAugmentationAttribs(ubyte,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.TypedTree+Entity) (FullOpts)
          46 (1.20 % of base) : 26634.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
          38 (1.67 % of base) : 23342.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (FullOpts)
          32 (1.51 % of base) : 9775.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)
          30 (0.74 % of base) : 32175.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:LowerEvaluation(Microsoft.CodeAnalysis.CSharp.BoundDagEvaluation):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          26 (35.14 % of base) : 11360.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
          26 (0.54 % of base) : 23903.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          26 (10.24 % of base) : 31645.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          24 (2.99 % of base) : 1714.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
          22 (16.92 % of base) : 32925.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 (2.33 % of base) : 22997.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)
          20 (0.33 % of base) : 2891.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (FullOpts)
          18 (0.22 % of base) : 37299.dasm - Microsoft.ApplicationInsights.Metrics.MetricIdentifier:EnsureDimensionNamesValid(byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,byref) (FullOpts)
          18 (0.80 % of base) : 23061.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)
          18 (4.39 % of base) : 10498.dasm - System.Collections.Generic.Dictionary`2[long,int]:FindValue(long):byref:this (FullOpts)
          18 (4.43 % of base) : 7460.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
          16 (1.14 % of base) : 26496.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeStructLayoutAttribute[System.__Canon,System.__Canon,System.__Canon,short](byref,int,int,Microsoft.CodeAnalysis.CommonMessageProvider) (FullOpts)

Top method improvements (bytes):
         -28 (-1.04 % of base) : 18245.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)
         -10 (-0.64 % of base) : 18615.dasm - Microsoft.ML.Data.MetricWriter:GetConfusionTableAsArray(Microsoft.ML.IDataView,int,int,int[],int,byref,byref):double[][] (FullOpts)
         -10 (-0.26 % of base) : 17675.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)
          -8 (-0.75 % of base) : 4172.dasm - System.Collections.Generic.Dictionary`2[Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+StructBox`1[System.__Canon],System.__Canon]:TryInsert(Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+StructBox`1[System.__Canon],System.__Canon,ubyte):ubyte:this (FullOpts)
          -4 (-0.07 % of base) : 4157.dasm - FSharp.Compiler.CompilerImports:TcConfig.TryResolveLibsUsingMSBuildRules.Static(FSharp.Compiler.CompilerConfig+TcConfig,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+AssemblyReference],FSharp.Compiler.Text.Range,FSharp.Compiler.CompilerImports+ResolveAssemblyReferenceMode):System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+UnresolvedAssemblyReference]] (FullOpts)
          -4 (-0.35 % of base) : 23307.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamespaceSymbol:LazyInitializeTypes(System.Collections.Generic.IEnumerable`1[System.Linq.IGrouping`2[System.String,System.Reflection.Metadata.TypeDefinitionHandle]]):this (FullOpts)
          -4 (-0.14 % of base) : 24194.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)
          -4 (-0.92 % of base) : 24298.dasm - Microsoft.CodeAnalysis.RuntimeMembers.MemberDescriptor:ParseType(System.Collections.Immutable.ImmutableArray`1+Builder[ubyte],System.IO.Stream,ubyte) (FullOpts)
          -4 (-0.37 % of base) : 25951.dasm - System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon],int]:TryInsert(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon],int,ubyte):ubyte:this (FullOpts)
          -4 (-0.44 % of base) : 2872.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.Resources.ResourceLocator]:TryInsert(System.__Canon,System.Resources.ResourceLocator,ubyte):ubyte:this (FullOpts)
          -4 (-0.50 % of base) : 32736.dasm - System.Collections.Generic.Dictionary`2[ushort,int]:TryInsert(ushort,int,ubyte):ubyte:this (FullOpts)
          -2 (-0.56 % of base) : 12905.dasm - FSharp.Compiler.CompilerConfig:GetWarningNumber(FSharp.Compiler.Text.Range,System.String):Microsoft.FSharp.Core.FSharpOption`1[int] (FullOpts)
          -2 (-0.84 % of base) : 4133.dasm - FSharp.Compiler.CompilerConfig+TcConfig:computeKnownDllReference(System.String):System.Tuple`2[FSharp.Compiler.CompilerConfig+AssemblyReference,Microsoft.FSharp.Core.FSharpOption`1[System.String]]:this (FullOpts)
          -2 (-1.08 % of base) : 29089.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.19 % of base) : 29475.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:IsReceiverRefReadOnly(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
          -2 (-0.21 % of base) : 24429.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceModuleSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
          -2 (-0.16 % of base) : 17769.dasm - Microsoft.ML.SchemaShape:Create(Microsoft.ML.DataViewSchema):Microsoft.ML.SchemaShape (FullOpts)
          -2 (-0.54 % of base) : 229.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
          -2 (-0.25 % of base) : 37.dasm - System.Collections.Generic.Dictionary`2[ushort,System.__Canon]:TryInsert(ushort,System.__Canon,ubyte):ubyte:this (FullOpts)
          -2 (-1.72 % of base) : 18098.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)

Top method regressions (percentages):
         144 (61.02 % of base) : 5541.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)
          26 (35.14 % of base) : 11360.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
          22 (16.92 % of base) : 32925.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)
          26 (10.24 % of base) : 31645.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          12 (9.23 % of base) : 27943.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
          12 (8.33 % of base) : 29326.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
          12 (7.69 % of base) : 29346.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)
          78 (6.33 % of base) : 6269.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          82 (6.30 % of base) : 16586.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
          10 (5.15 % of base) : 24441.dasm - Microsoft.CodeAnalysis.BindingDiagnosticBag`1[System.__Canon]:AddDependencies(System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (FullOpts)
          18 (4.43 % of base) : 7460.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
          18 (4.39 % of base) : 10498.dasm - System.Collections.Generic.Dictionary`2[long,int]:FindValue(long):byref:this (FullOpts)
          10 (4.17 % of base) : 19022.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
          12 (3.97 % of base) : 29208.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)
           8 (3.81 % of base) : 5921.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
          14 (3.66 % of base) : 12397.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (FullOpts)
           4 (3.45 % of base) : 26223.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AttributeDataExtensions:DecodeNotNullIfNotNullAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.String (FullOpts)
          12 (3.24 % of base) : 24425.dasm - Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:MatchPropertySignature(System.__Canon,System.Collections.Immutable.ImmutableArray`1[ubyte]):ubyte:this (FullOpts)
          12 (3.19 % of base) : 24303.dasm - Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:MatchMethodSignature(System.__Canon,System.Collections.Immutable.ImmutableArray`1[ubyte]):ubyte:this (FullOpts)
          24 (2.99 % of base) : 1714.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)

Top method improvements (percentages):
          -2 (-1.72 % of base) : 18098.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.64 % of base) : 5577.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.59 % of base) : 111.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.59 % of base) : 4115.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.54 % of base) : 223.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.52 % of base) : 19544.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.37 % of base) : 28405.dasm - System.Collections.Generic.HashSet`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.19 % of base) : 29475.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:IsReceiverRefReadOnly(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
          -2 (-1.08 % of base) : 29089.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -28 (-1.04 % of base) : 18245.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)
          -2 (-1.01 % of base) : 37561.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -4 (-0.92 % of base) : 24298.dasm - Microsoft.CodeAnalysis.RuntimeMembers.MemberDescriptor:ParseType(System.Collections.Immutable.ImmutableArray`1+Builder[ubyte],System.IO.Stream,ubyte) (FullOpts)
          -2 (-0.84 % of base) : 4133.dasm - FSharp.Compiler.CompilerConfig+TcConfig:computeKnownDllReference(System.String):System.Tuple`2[FSharp.Compiler.CompilerConfig+AssemblyReference,Microsoft.FSharp.Core.FSharpOption`1[System.String]]:this (FullOpts)
          -8 (-0.75 % of base) : 4172.dasm - System.Collections.Generic.Dictionary`2[Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+StructBox`1[System.__Canon],System.__Canon]:TryInsert(Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+StructBox`1[System.__Canon],System.__Canon,ubyte):ubyte:this (FullOpts)
         -10 (-0.64 % of base) : 18615.dasm - Microsoft.ML.Data.MetricWriter:GetConfusionTableAsArray(Microsoft.ML.IDataView,int,int,int[],int,byref,byref):double[][] (FullOpts)
          -2 (-0.56 % of base) : 12905.dasm - FSharp.Compiler.CompilerConfig:GetWarningNumber(FSharp.Compiler.Text.Range,System.String):Microsoft.FSharp.Core.FSharpOption`1[int] (FullOpts)
          -2 (-0.56 % of base) : 2681.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:FindNextEntry(uint,int):this (FullOpts)
          -2 (-0.54 % of base) : 229.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
          -4 (-0.50 % of base) : 32736.dasm - System.Collections.Generic.Dictionary`2[ushort,int]:TryInsert(ushort,int,ubyte):ubyte:this (FullOpts)
          -2 (-0.50 % of base) : 18114.dasm - System.Threading.ThreadLocal`1[System.__Canon]:GrowTable(byref,int) (FullOpts)



windows x86

Diffs are based on 2,296,250 contexts (841,817 MinOpts, 1,454,433 FullOpts).

MISSED contexts: base: 2,552 (0.11%), diff: 5,093 (0.22%)

Overall (+4,485,904 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x86.checked.mch 7,107,340 +147
benchmarks.run_pgo.windows.x86.checked.mch 43,402,092 +1,820,454
benchmarks.run_tiered.windows.x86.checked.mch 9,511,225 +235
coreclr_tests.run.windows.x86.checked.mch 308,523,712 +656,768
libraries.crossgen2.windows.x86.checked.mch 31,626,935 +1,363
libraries.pmi.windows.x86.checked.mch 48,679,731 +148,189
libraries_tests.run.windows.x86.Release.mch 184,050,709 +1,497,619
librariestestsnotieredcompilation.run.windows.x86.Release.mch 101,838,360 +359,849
realworld.run.windows.x86.checked.mch 11,362,130 +1,280

FullOpts (+4,485,904 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x86.checked.mch 7,107,061 +147
benchmarks.run_pgo.windows.x86.checked.mch 36,772,602 +1,820,454
benchmarks.run_tiered.windows.x86.checked.mch 5,241,416 +235
coreclr_tests.run.windows.x86.checked.mch 106,851,943 +656,768
libraries.crossgen2.windows.x86.checked.mch 31,625,878 +1,363
libraries.pmi.windows.x86.checked.mch 48,584,417 +148,189
libraries_tests.run.windows.x86.Release.mch 85,719,202 +1,497,619
librariestestsnotieredcompilation.run.windows.x86.Release.mch 93,168,568 +359,849
realworld.run.windows.x86.checked.mch 11,066,430 +1,280

Example diffs

benchmarks.run.windows.x86.checked.mch

-13 (-3.37%) : 4712.dasm - System.IO.Pipes.NamedPipeClientStream:ConnectAsync(int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)

@@ -12,8 +12,8 @@
 ;  V01 arg1         [V01,T00] (  5,  3.50)     int  ->  esi         single-def
 ;* V02 arg2         [V02    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op single-def <System.Threading.CancellationToken>
 ;  V03 loc0         [V03,T11] (  2,  1   )     int  ->  [ebp-0x10]  spill-single-def
-;  V04 tmp0         [V04,T10] (  2,  2   )     ref  ->  ecx         class-hnd single-def "dup spill" <System.Action`1[System.Object]>
-;  V05 tmp1         [V05,T09] (  3,  2   )     ref  ->  [ebp-0x18]  class-hnd exact spill-single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
+;  V04 tmp0         [V04,T09] (  2,  2   )     ref  ->  ecx         class-hnd single-def "dup spill" <System.Action`1[System.Object]>
+;  V05 tmp1         [V05,T10] (  2,  2   )     ref  ->  [ebp-0x18]  class-hnd exact spill-single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
 ;* V06 tmp2         [V06    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;  V07 tmp3         [V07,T08] (  4,  2   )     ref  ->  [ebp-0x1C] 
 ;* V08 tmp4         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`4[System.IO.Pipes.NamedPipeClientStream,int,System.Threading.CancellationToken,int]>
@@ -24,10 +24,10 @@
 ;* V13 tmp9         [V13,T12] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V14 tmp10        [V14,T17] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V15 tmp11        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
-;  V16 tmp12        [V16,T07] (  3,  3   )     ref  ->  eax         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V16 tmp12        [V16,T06] (  3,  3   )     ref  ->  eax         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;* V17 tmp13        [V17    ] (  0,  0   )  struct ( 4) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
 ;* V18 tmp14        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.ValueTuple`4[System.IO.Pipes.NamedPipeClientStream,int,System.Threading.CancellationToken,int]>
-;  V19 tmp15        [V19,T06] (  5,  3   )     ref  ->  esi         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.TaskScheduler>
+;  V19 tmp15        [V19,T07] (  3,  3   )     ref  ->  esi         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.TaskScheduler>
 ;* V20 tmp16        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline return value spill temp" <System.Threading.Tasks.Task>
 ;* V21 tmp17        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.Task>
 ;* V22 tmp18        [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.ValueTuple`4[System.IO.Pipes.NamedPipeClientStream,int,System.Threading.CancellationToken,int]>
@@ -81,7 +81,7 @@ G_M11209_IG04:        ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=0
        test     byte  ptr [D1FFAB1EH], 1      ; global ptr
        je       G_M11209_IG14
                        ;; size=30 bbWeight=0.50 PerfScore 4.50
-G_M11209_IG05:        ; bbWeight=0.50, gcVars=00000200 {V05}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M11209_IG05:        ; bbWeight=0.50, gcVars=00000400 {V05}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[edx]
        mov      ecx, gword ptr [D1FFAB1EH]      ; static handle
        ; gcrRegs +[ecx]
@@ -110,7 +110,7 @@ G_M11209_IG05:        ; bbWeight=0.50, gcVars=00000200 {V05}, gcrefRegs=00000088
        mov      gword ptr [ebp-0x1C], ecx
        ; GC ptr vars +{V07}
                        ;; size=66 bbWeight=0.50 PerfScore 6.88
-G_M11209_IG06:        ; bbWeight=0.50, gcVars=00000300 {V05 V07}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M11209_IG06:        ; bbWeight=0.50, gcVars=00000500 {V05 V07}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[ecx]
        mov      eax, dword ptr [ebp-0x10]
        mov      dword ptr [ebp-0x14], eax
@@ -134,6 +134,8 @@ G_M11209_IG06:        ; bbWeight=0.50, gcVars=00000300 {V05 V07}, gcrefRegs=0000
        ; byrRegs -[edx]
        test     byte  ptr [D1FFAB1EH], 1      ; global ptr
        je       SHORT G_M11209_IG11
+                       ;; size=53 bbWeight=0.50 PerfScore 7.12
+G_M11209_IG07:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
        mov      esi, gword ptr [D1FFAB1EH]      ; static handle
        ; gcrRegs +[esi]
        mov      edx, gword ptr [ebp-0x18]
@@ -141,13 +143,10 @@ G_M11209_IG06:        ; bbWeight=0.50, gcVars=00000300 {V05 V07}, gcrefRegs=0000
        cmp      byte  ptr [edx], dl
        test     esi, esi
        je       SHORT G_M11209_IG12
-                       ;; size=68 bbWeight=0.50 PerfScore 10.75
-G_M11209_IG07:        ; bbWeight=0.50, gcVars=00000102 {V07 V09}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[edx]
-       ; GC ptr vars -{V05 V09}
        mov      ecx, 0xD1FFAB1E      ; System.Threading.Tasks.Task
+       ; GC ptr vars -{V05}
        call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[eax]
+       ; gcrRegs -[edx] +[eax]
        mov      edi, eax
        ; gcrRegs +[edi]
        push     gword ptr [ebp-0x20]
@@ -160,7 +159,7 @@ G_M11209_IG07:        ; bbWeight=0.50, gcVars=00000102 {V07 V09}, gcrefRegs=0000
        ; gcrRegs +[ecx]
        mov      edx, gword ptr [ebp-0x1C]
        ; gcrRegs +[edx]
-       ; GC ptr vars -{V07}
+       ; GC ptr vars -{V07 V09}
        call     [System.Threading.Tasks.Task:.ctor(System.Delegate,System.Object,System.Threading.Tasks.Task,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this]
        ; gcrRegs -[eax ecx edx ebx esi]
        mov      ecx, edi
@@ -170,7 +169,7 @@ G_M11209_IG07:        ; bbWeight=0.50, gcVars=00000102 {V07 V09}, gcrefRegs=0000
        ; gcrRegs -[ecx]
        mov      eax, edi
        ; gcrRegs +[eax]
-                       ;; size=49 bbWeight=0.50 PerfScore 7.75
+                       ;; size=64 bbWeight=0.50 PerfScore 11.38
 G_M11209_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
@@ -193,22 +192,16 @@ G_M11209_IG10:        ; bbWeight=0.50, epilog, nogc, extend
        pop      ebp
        ret      4
                        ;; size=10 bbWeight=0.50 PerfScore 2.25
-G_M11209_IG11:        ; bbWeight=0, gcVars=00000302 {V05 V07 V09}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M11209_IG11:        ; bbWeight=0, gcVars=00000502 {V05 V07 V09}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax] +[ebx]
        ; GC ptr vars +{V01 V05 V07 V09}
        mov      ecx, 0xD1FFAB1E
        mov      edx, 0x440
        call     CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
-       mov      esi, gword ptr [D1FFAB1EH]
-       ; gcrRegs +[esi]
-       mov      ecx, gword ptr [ebp-0x18]
-       ; gcrRegs +[ecx]
-       cmp      byte  ptr [ecx], cl
-       test     esi, esi
-       jne      SHORT G_M11209_IG07
-                       ;; size=30 bbWeight=0 PerfScore 0.00
+       jmp      SHORT G_M11209_IG07
+                       ;; size=17 bbWeight=0 PerfScore 0.00
 G_M11209_IG12:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[ecx ebx esi]
+       ; gcrRegs -[ebx]
        ; GC ptr vars -{V01 V05 V07 V09}
        mov      ecx, 47
        call     [System.ThrowHelper:ThrowArgumentNullException(int)]
@@ -226,9 +219,9 @@ G_M11209_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ; gcrRegs -[eax]
        int3     
                        ;; size=30 bbWeight=0 PerfScore 0.00
-G_M11209_IG14:        ; bbWeight=0, gcVars=00000200 {V05}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, gcvars, byref
+G_M11209_IG14:        ; bbWeight=0, gcVars=00000400 {V05}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs +[ebx edi]
-       ; GC ptr vars +{V05 V09}
+       ; GC ptr vars +{V05}
        mov      ecx, 0xD1FFAB1E
        mov      edx, 18
        call     CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
@@ -236,11 +229,11 @@ G_M11209_IG14:        ; bbWeight=0, gcVars=00000200 {V05}, gcrefRegs=00000088 {e
                        ;; size=20 bbWeight=0 PerfScore 0.00
 G_M11209_IG15:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[ebx edi]
-       ; GC ptr vars -{V05 V09}
+       ; GC ptr vars -{V05}
        call     [System.MulticastDelegate:ThrowNullThisInDelegateToInstance()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 386, prolog size 9, PerfScore 50.12, instruction count 113, allocated bytes for code 386 (MethodHash=dac4d436) for method System.IO.Pipes.NamedPipeClientStream:ConnectAsync(int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 373, prolog size 9, PerfScore 50.12, instruction count 109, allocated bytes for code 373 (MethodHash=dac4d436) for method System.IO.Pipes.NamedPipeClientStream:ConnectAsync(int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
 ; ============================================================
 

-10 (-2.24%) : 9933.dasm - System.Collections.Generic.PriorityQueue2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable1[System.ValueTuple`2[int,int]]):this (FullOpts)

@@ -54,7 +54,7 @@ G_M63155_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=18 bbWeight=1 PerfScore 6.25
 G_M63155_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        test     edi, edi
-       je       G_M63155_IG29
+       je       G_M63155_IG28
        xor      ebx, ebx
        mov      edx, edi
        ; gcrRegs +[edx]
@@ -82,7 +82,7 @@ G_M63155_IG03:        ; bbWeight=0.50, gcVars=00004000 {V03}, gcrefRegs=000000C1
        jge      SHORT G_M63155_IG06
        mov      edx, ecx
        add      edx, ebx
-       jo       G_M63155_IG28
+       jo       G_M63155_IG27
        mov      ecx, esi
        ; gcrRegs +[ecx]
        call     [System.Collections.Generic.PriorityQueue`2[int,int]:Grow(int):this]
@@ -92,7 +92,7 @@ G_M63155_IG03:        ; bbWeight=0.50, gcVars=00004000 {V03}, gcrefRegs=000000C1
                        ;; size=46 bbWeight=0.50 PerfScore 8.38
 G_M63155_IG04:        ; bbWeight=1, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
        cmp      dword ptr [esi+0x10], 0
-       jne      G_M63155_IG21
+       jne      G_M63155_IG20
                        ;; size=10 bbWeight=1 PerfScore 4.00
 G_M63155_IG05:        ; bbWeight=0.50, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref, isz
        test     eax, eax
@@ -106,7 +106,7 @@ G_M63155_IG05:        ; bbWeight=0.50, gcrefRegs=000000C1 {eax esi edi}, byrefRe
        call     [<unknown method>]
        ; gcrRegs -[eax ecx edx edi]
        mov      dword ptr [esi+0x10], ebx
-       jmp      G_M63155_IG19
+       jmp      G_M63155_IG18
                        ;; size=25 bbWeight=0.50 PerfScore 5.25
 G_M63155_IG06:        ; bbWeight=0.25, gcVars=00004000 {V03}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[edi]
@@ -136,7 +136,7 @@ G_M63155_IG08:        ; bbWeight=0.50, gcVars=00000210 {V05 V06}, gcrefRegs=0000
        call     [<unknown method>]
        ; gcrRegs -[eax ecx]
        test     eax, eax
-       je       SHORT G_M63155_IG13
+       je       SHORT G_M63155_IG14
                        ;; size=12 bbWeight=0.50 PerfScore 2.25
 G_M63155_IG09:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        lea      edx, [ebp-0x34]
@@ -166,7 +166,7 @@ G_M63155_IG11:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        mov      ecx, dword ptr [ebp-0x34]
        mov      edx, dword ptr [ebp-0x30]
        cmp      ebx, dword ptr [edi+0x04]
-       jae      SHORT G_M63155_IG14
+       jae      SHORT G_M63155_IG13
        lea      ebx, bword ptr [edi+8*ebx+0x08]
        ; byrRegs +[ebx]
        mov      dword ptr [ebx], ecx
@@ -179,63 +179,57 @@ G_M63155_IG11:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        test     eax, eax
        mov      gword ptr [ebp-0x3C], edi
        ; GC ptr vars +{V05}
-       jne      SHORT G_M63155_IG12
-       jmp      SHORT G_M63155_IG15
-                       ;; size=44 bbWeight=4 PerfScore 75.00
-G_M63155_IG12:        ; bbWeight=2, gcVars=00000210 {V05 V06}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs -[edi]
        mov      ebx, dword ptr [ebp-0x24]
-       jmp      SHORT G_M63155_IG09
-                       ;; size=5 bbWeight=2 PerfScore 6.00
-G_M63155_IG13:        ; bbWeight=0.25, gcVars=00000200 {V06}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       jne      SHORT G_M63155_IG09
+                       ;; size=45 bbWeight=4 PerfScore 71.00
+G_M63155_IG12:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
        ; GC ptr vars -{V05}
-       mov      dword ptr [ebp-0x24], ebx
-       jmp      SHORT G_M63155_IG15
-                       ;; size=5 bbWeight=0.25 PerfScore 0.75
-G_M63155_IG14:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       jmp      SHORT G_M63155_IG14
+                       ;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M63155_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[esi]
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
-G_M63155_IG15:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M63155_IG14:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[esi]
        mov      ecx, gword ptr [ebp-0x40]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V06}
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       jmp      SHORT G_M63155_IG18
+       jmp      SHORT G_M63155_IG17
                        ;; size=11 bbWeight=0.50 PerfScore 3.00
-G_M63155_IG16:        ; bbWeight=0, gcVars=00000200 {V06}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M63155_IG15:        ; bbWeight=0, gcVars=00000200 {V06}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[esi]
        ; GC ptr vars +{V06 V09}
        cmp      gword ptr [ebp-0x40], 0
-       je       SHORT G_M63155_IG17
+       je       SHORT G_M63155_IG16
        mov      ecx, gword ptr [ebp-0x40]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V06 V09}
        call     [<unknown method>]
        ; gcrRegs -[ecx]
                        ;; size=15 bbWeight=0 PerfScore 0.00
-G_M63155_IG17:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M63155_IG16:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        pop      eax
        jmp      eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M63155_IG18:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M63155_IG17:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs +[esi]
-       mov      ebx, dword ptr [ebp-0x24]
        mov      dword ptr [esi+0x10], ebx
-                       ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M63155_IG19:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+                       ;; size=3 bbWeight=0.50 PerfScore 0.50
+G_M63155_IG18:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        inc      dword ptr [esi+0x14]
        cmp      dword ptr [esi+0x10], 1
-       jle      SHORT G_M63155_IG27
+       jle      SHORT G_M63155_IG26
        mov      ecx, esi
        ; gcrRegs +[ecx]
        call     [System.Collections.Generic.PriorityQueue`2[int,int]:Heapify():this]
        ; gcrRegs -[ecx esi]
                        ;; size=17 bbWeight=0.50 PerfScore 5.12
-G_M63155_IG20:        ; bbWeight=0.50, epilog, nogc, extend
+G_M63155_IG19:        ; bbWeight=0.50, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -243,7 +237,7 @@ G_M63155_IG20:        ; bbWeight=0.50, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M63155_IG21:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
+G_M63155_IG20:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs +[esi edi]
        mov      ecx, edi
        ; gcrRegs +[ecx]
@@ -252,15 +246,15 @@ G_M63155_IG21:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {e
        mov      gword ptr [ebp-0x44], eax
        ; GC ptr vars +{V09}
                        ;; size=11 bbWeight=0.50 PerfScore 2.12
-G_M63155_IG22:        ; bbWeight=0.50, gcVars=00000400 {V09}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M63155_IG21:        ; bbWeight=0.50, gcVars=00000400 {V09}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        mov      ecx, eax
        ; gcrRegs +[ecx]
        call     [<unknown method>]
        ; gcrRegs -[eax ecx]
        test     eax, eax
-       je       SHORT G_M63155_IG24
+       je       SHORT G_M63155_IG23
                        ;; size=12 bbWeight=0.50 PerfScore 2.25
-G_M63155_IG23:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M63155_IG22:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        lea      edx, [ebp-0x2C]
        mov      ecx, gword ptr [ebp-0x44]
        ; gcrRegs +[ecx]
@@ -277,32 +271,32 @@ G_M63155_IG23:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        call     [<unknown method>]
        ; gcrRegs -[ecx]
        test     eax, eax
-       jne      SHORT G_M63155_IG23
+       jne      SHORT G_M63155_IG22
                        ;; size=39 bbWeight=4 PerfScore 60.00
-G_M63155_IG24:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M63155_IG23:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
        mov      ecx, gword ptr [ebp-0x44]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V09}
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       jmp      SHORT G_M63155_IG27
+       jmp      SHORT G_M63155_IG26
                        ;; size=11 bbWeight=0.50 PerfScore 3.00
-G_M63155_IG25:        ; bbWeight=0, gcVars=00000400 {V09}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M63155_IG24:        ; bbWeight=0, gcVars=00000400 {V09}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; GC ptr vars +{V09}
        cmp      gword ptr [ebp-0x44], 0
-       je       SHORT G_M63155_IG26
+       je       SHORT G_M63155_IG25
        mov      ecx, gword ptr [ebp-0x44]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V09}
        call     [<unknown method>]
        ; gcrRegs -[ecx]
                        ;; size=15 bbWeight=0 PerfScore 0.00
-G_M63155_IG26:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M63155_IG25:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        pop      eax
        jmp      eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M63155_IG27:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M63155_IG26:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -310,10 +304,10 @@ G_M63155_IG27:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
        pop      ebp
        ret      
                        ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M63155_IG28:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M63155_IG27:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        call     CORINFO_HELP_OVERFLOW
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M63155_IG29:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M63155_IG28:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      ecx, 0x85D
        mov      edx, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
@@ -325,10 +319,10 @@ G_M63155_IG29:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 446, prolog size 14, PerfScore 247.12, instruction count 149, allocated bytes for code 446 (MethodHash=4e07094c) for method System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this (FullOpts)
+; Total bytes of code 436, prolog size 14, PerfScore 236.88, instruction count 145, allocated bytes for code 436 (MethodHash=4e07094c) for method System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this (FullOpts)
 ; ============================================================
 
 *************** EH table for System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this
 2 EH table entries, 2 total EH entries reported to VM
-EH#0: try [G_M63155_IG08..G_M63155_IG15) handled by [G_M63155_IG16..G_M63155_IG18) (fault)
-EH#1: try [G_M63155_IG22..G_M63155_IG24) handled by [G_M63155_IG25..G_M63155_IG27) (fault)
+EH#0: try [G_M63155_IG08..G_M63155_IG14) handled by [G_M63155_IG15..G_M63155_IG17) (fault)
+EH#1: try [G_M63155_IG21..G_M63155_IG23) handled by [G_M63155_IG24..G_M63155_IG26) (fault)

-2 (-1.98%) : 9110.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)

@@ -66,9 +66,8 @@ G_M21922_IG06:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
        lea      edx, bword ptr [eax+4*edx+0x08]
        ; byrRegs +[edx]
        cmp      dword ptr [edx+0x04], -1
-       jge      SHORT G_M21922_IG07
-       jmp      SHORT G_M21922_IG03
-                       ;; size=34 bbWeight=2 PerfScore 38.00
+       jl       SHORT G_M21922_IG03
+                       ;; size=32 bbWeight=2 PerfScore 34.00
 G_M21922_IG07:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000006 {ecx edx}, byref
        ; gcrRegs -[eax]
        mov      eax, dword ptr [edx+0x08]
@@ -89,6 +88,6 @@ G_M21922_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 101, prolog size 4, PerfScore 119.12, instruction count 41, allocated bytes for code 101 (MethodHash=7a0aaa5d) for method System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 99, prolog size 4, PerfScore 115.12, instruction count 40, allocated bytes for code 99 (MethodHash=7a0aaa5d) for method System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 

+14 (+7.04%) : 23043.dasm - System.Collections.IterateForEach`1[System.Canon]:FrozenSet():System.Canon:this (FullOpts)

@@ -23,10 +23,10 @@
 ;  V12 tmp7         [V12,T02] (  3,  6   )     ref  ->  ecx         single-def "argument with side effect"
 ;  V13 EHSlots      [V13    ] (  1,  1   )  struct (16) [ebp-0x18]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
 ;* V14 cse0         [V14,T10] (  0,  0   )     int  ->  zero-ref    hoist "CSE - aggressive"
-;  V15 cse1         [V15,T09] (  5,  2.20)     int  ->  ecx         hoist multi-def "CSE - aggressive"
-;* V16 rat0         [V16,T05] (  0,  0   )     int  ->  zero-ref    "Spilling to split statement for tree"
+;  V15 cse1         [V15,T09] (  6,  3.20)     int  ->  ecx         hoist multi-def "CSE - aggressive"
+;  V16 rat0         [V16,T05] (  2,  4   )     int  ->  edx         "Spilling to split statement for tree"
 ;* V17 rat1         [V17,T08] (  0,  0   )     int  ->  zero-ref    "runtime lookup"
-;* V18 rat2         [V18,T03] (  0,  0   )     int  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V18 rat2         [V18,T03] (  2,  4   )     int  ->  edx         "fgMakeTemp is creating a new local variable"
 ;  V19 rat3         [V19,T04] (  3,  5.60)     int  ->  eax         "fgMakeTemp is creating a new local variable"
 ;  V20 rat4         [V20,T11] (  3,  0   )     int  ->  ecx         "Spilling to split statement for tree"
 ;  V21 rat5         [V21,T12] (  3,  0   )     int  ->  eax         "fgMakeTemp is creating a new local variable"
@@ -63,8 +63,14 @@ G_M17622_IG03:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        ; gcrRegs +[ecx]
        mov      ecx, dword ptr [ecx]
        ; gcrRegs -[ecx]
+       mov      edx, ecx
+       mov      edx, dword ptr [edx+0x24]
+       mov      edx, dword ptr [edx]
+       mov      edx, dword ptr [edx+0x10]
+       test     edx, edx
+       jne      SHORT G_M17622_IG05
        jmp      SHORT G_M17622_IG05
-                       ;; size=7 bbWeight=1 PerfScore 5.00
+                       ;; size=21 bbWeight=1 PerfScore 12.50
 G_M17622_IG04:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
        mov      edx, dword ptr [ebp-0x1C]
@@ -168,7 +174,7 @@ G_M17622_IG18:        ; bbWeight=1, epilog, nogc, extend
        ret      
                        ;; size=6 bbWeight=1 PerfScore 2.50
 
-; Total bytes of code 199, prolog size 27, PerfScore 155.18, instruction count 74, allocated bytes for code 199 (MethodHash=5937bb29) for method System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
+; Total bytes of code 213, prolog size 27, PerfScore 162.68, instruction count 80, allocated bytes for code 213 (MethodHash=5937bb29) for method System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
 ; ============================================================
 
 *************** EH table for System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this

+14 (+10.14%) : 22262.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,T02] (  3,  3   )     ref  ->  esi         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+;  V00 this         [V00,T02] (  4,  4   )     ref  ->  esi         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
 ;  V01 loc0         [V01,T05] (  3,  4   )     ref  ->  edi         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 ( 8) [ebp-0x10]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]>
@@ -22,9 +22,9 @@
 ;  V11 tmp6         [V11    ] (  2,  3   )     ref  ->  [ebp-0x10]  do-not-enreg[X] addr-exposed "field V03._originalStack (fldOffset=0x0)" P-DEP
 ;  V12 tmp7         [V12    ] (  9, 29   )     ref  ->  [ebp-0x0C]  do-not-enreg[X] addr-exposed "field V03._remainingStack (fldOffset=0x4)" P-DEP
 ;* V13 cse0         [V13,T08] (  0,  0   )     int  ->  zero-ref    hoist "CSE - aggressive"
-;* V14 rat0         [V14,T04] (  0,  0   )     int  ->  zero-ref    "Spilling to split statement for tree"
+;  V14 rat0         [V14,T04] (  2,  4   )     int  ->  ecx         "Spilling to split statement for tree"
 ;* V15 rat1         [V15,T06] (  0,  0   )     int  ->  zero-ref    "runtime lookup"
-;* V16 rat2         [V16,T03] (  0,  0   )     int  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V16 rat2         [V16,T03] (  2,  4   )     int  ->  ecx         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -49,8 +49,14 @@ G_M64146_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        cmp      dword ptr [ecx], ecx
        call     [System.Collections.Immutable.ImmutableStack`1[System.__Canon]:GetEnumerator():System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]:this]
        ; gcrRegs -[ecx]
+       mov      ecx, dword ptr [esi]
+       mov      ecx, dword ptr [ecx+0x24]
+       mov      ecx, dword ptr [ecx]
+       mov      ecx, dword ptr [ecx+0x10]
+       test     ecx, ecx
+       jne      SHORT G_M64146_IG04
        jmp      SHORT G_M64146_IG04
-                       ;; size=18 bbWeight=1 PerfScore 10.75
+                       ;; size=32 bbWeight=1 PerfScore 20.00
 G_M64146_IG03:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[edi]
        cmp      gword ptr [ebp-0x0C], 0
@@ -123,6 +129,6 @@ G_M64146_IG10:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}
        int3     
                        ;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 138, prolog size 16, PerfScore 138.50, instruction count 50, allocated bytes for code 138 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
+; Total bytes of code 152, prolog size 16, PerfScore 147.75, instruction count 56, allocated bytes for code 152 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
 ; ============================================================
 

+45 (+24.06%) : 17138.dasm - System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (FullOpts)

@@ -71,7 +71,7 @@ G_M65031_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000040 {e
        xor      eax, eax
        mov      dword ptr [ebp-0x10], eax
                        ;; size=11 bbWeight=1 PerfScore 3.25
-G_M65031_IG03:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref, isz
+G_M65031_IG03:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
        push     13
        push     226
        push     ebx
@@ -81,62 +81,64 @@ G_M65031_IG03:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=000000C0 {e
        call     [<unknown method>]
        ; byrRegs -[ecx]
        cmp      eax, -1
-       je       SHORT G_M65031_IG07
-                       ;; size=26 bbWeight=8 PerfScore 62.00
+       je       G_M65031_IG09
+                       ;; size=30 bbWeight=8 PerfScore 62.00
 G_M65031_IG04:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref, isz
        mov      ecx, eax
        add      ecx, dword ptr [ebp-0x10]
        mov      edx, ecx
        cmp      eax, ebx
-       jae      SHORT G_M65031_IG11
+       jae      G_M65031_IG13
        cmp      byte  ptr [edi+eax], 226
-       jne      SHORT G_M65031_IG09
+       jne      SHORT G_M65031_IG11
        inc      edx
        mov      dword ptr [ebp-0x10], edx
        inc      eax
        cmp      eax, ebx
-       ja       SHORT G_M65031_IG13
+       ja       G_M65031_IG15
+       mov      edx, dword ptr [ebp-0x10]
        add      edi, eax
        sub      ebx, eax
        jns      SHORT G_M65031_IG06
-                       ;; size=32 bbWeight=4 PerfScore 48.00
+                       ;; size=43 bbWeight=4 PerfScore 52.00
 G_M65031_IG05:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
+       mov      dword ptr [ebp-0x10], edx
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
        ; gcrRegs +[edx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
-                       ;; size=16 bbWeight=2 PerfScore 7.00
+       mov      edx, dword ptr [ebp-0x10]
+                       ;; size=22 bbWeight=2 PerfScore 11.00
 G_M65031_IG06:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref, isz
        cmp      ebx, 2
-       jl       SHORT G_M65031_IG03
+       jl       SHORT G_M65031_IG08
+       mov      eax, edx
        cmp      ebx, 1
-       jbe      SHORT G_M65031_IG11
+       jbe      SHORT G_M65031_IG13
        movzx    ecx, byte  ptr [edi+0x01]
        cmp      byte  ptr [edi], 128
-       jne      SHORT G_M65031_IG03
+       jne      SHORT G_M65031_IG07
        cmp      ecx, 168
-       je       SHORT G_M65031_IG12
+       je       SHORT G_M65031_IG14
        cmp      ecx, 169
-       je       SHORT G_M65031_IG12
-       jmp      SHORT G_M65031_IG03
-                       ;; size=37 bbWeight=4 PerfScore 52.00
-G_M65031_IG07:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       je       SHORT G_M65031_IG14
+       mov      dword ptr [ebp-0x10], eax
+       jmp      G_M65031_IG03
+                       ;; size=45 bbWeight=4 PerfScore 57.00
+G_M65031_IG07:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
+       mov      dword ptr [ebp-0x10], eax
+       jmp      G_M65031_IG03
+                       ;; size=8 bbWeight=2 PerfScore 6.00
+G_M65031_IG08:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
+       mov      dword ptr [ebp-0x10], edx
+       jmp      G_M65031_IG03
+                       ;; size=8 bbWeight=2 PerfScore 6.00
+G_M65031_IG09:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; byrRegs -[esi edi]
        mov      eax, -1
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M65031_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-       pop      ecx
-       pop      ebx
-       pop      esi
-       pop      edi
-       pop      ebp
-       ret      8
-                       ;; size=8 bbWeight=0.50 PerfScore 2.25
-G_M65031_IG09:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       mov      eax, edx
-                       ;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M65031_IG10:        ; bbWeight=0.50, epilog, nogc, extend
        pop      ecx
        pop      ebx
@@ -145,10 +147,21 @@ G_M65031_IG10:        ; bbWeight=0.50, epilog, nogc, extend
        pop      ebp
        ret      8
                        ;; size=8 bbWeight=0.50 PerfScore 2.25
-G_M65031_IG11:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M65031_IG11:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       mov      eax, edx
+                       ;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M65031_IG12:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      ecx
+       pop      ebx
+       pop      esi
+       pop      edi
+       pop      ebp
+       ret      8
+                       ;; size=8 bbWeight=0.50 PerfScore 2.25
+G_M65031_IG13:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M65031_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
+G_M65031_IG14:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
        ; byrRegs +[esi]
        xor      ecx, ecx
        ; byrRegs +[ecx]
@@ -161,11 +174,11 @@ G_M65031_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000040 {e
        ; byrRegs -[ecx esi]
        int3     
                        ;; size=21 bbWeight=0 PerfScore 0.00
-G_M65031_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M65031_IG15:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 187, prolog size 7, PerfScore 182.50, instruction count 74, allocated bytes for code 187 (MethodHash=69ec01f8) for method System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (FullOpts)
+; Total bytes of code 232, prolog size 7, PerfScore 207.50, instruction count 83, allocated bytes for code 232 (MethodHash=69ec01f8) for method System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (FullOpts)
 ; ============================================================
 

benchmarks.run_pgo.windows.x86.checked.mch

-7 (-21.21%) : 62494.dasm - MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)

@@ -3,7 +3,7 @@
 ; Tier1 code
 ; optimized code
 ; optimized using Dynamic PGO
-; ebp based frame
+; esp based frame
 ; partially interruptible
 ; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 4
 ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
@@ -18,11 +18,9 @@
 ; Lcl frame size = 0
 
 G_M25826_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
-       push     ebp
-       mov      ebp, esp
        mov      edx, ecx
        ; gcrRegs +[edx]
-                       ;; size=5 bbWeight=1 PerfScore 1.50
+                       ;; size=2 bbWeight=1 PerfScore 0.25
 G_M25826_IG02:        ; bbWeight=1, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [D1FFAB1EH]      ; static handle
        ; gcrRegs +[ecx]
@@ -31,28 +29,25 @@ G_M25826_IG02:        ; bbWeight=1, gcrefRegs=00000004 {edx}, byrefRegs=00000000
        ; gcrRegs -[ecx edx]
        ; byrRegs +[eax]
        test     eax, eax
-       je       SHORT G_M25826_IG04
-                       ;; size=18 bbWeight=1 PerfScore 9.25
-G_M25826_IG03:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, byref, isz
+       jne      SHORT G_M25826_IG04
+       xor      eax, eax
+       ; gcrRegs +[eax]
+       ; byrRegs -[eax]
+                       ;; size=20 bbWeight=1 PerfScore 9.50
+G_M25826_IG03:        ; bbWeight=1, epilog, nogc, extend
+       ret      
+                       ;; size=1 bbWeight=1 PerfScore 1.00
+G_M25826_IG04:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, gcvars, byref
+       ; gcrRegs -[eax]
+       ; byrRegs +[eax]
        mov      eax, gword ptr [eax]
        ; gcrRegs +[eax]
        ; byrRegs -[eax]
-       jmp      SHORT G_M25826_IG06
-                       ;; size=4 bbWeight=0 PerfScore 0.00
-G_M25826_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[eax]
-       xor      eax, eax
-       ; gcrRegs +[eax]
-                       ;; size=2 bbWeight=1 PerfScore 0.25
-G_M25826_IG05:        ; bbWeight=1, epilog, nogc, extend
-       pop      ebp
-       ret      
-                       ;; size=2 bbWeight=1 PerfScore 1.50
-G_M25826_IG06:        ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
-       pop      ebp
-       ret      
                        ;; size=2 bbWeight=0 PerfScore 0.00
+G_M25826_IG05:        ; bbWeight=0, epilog, nogc, extend
+       ret      
+                       ;; size=1 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 33, prolog size 3, PerfScore 12.50, instruction count 15, allocated bytes for code 33 (MethodHash=089c9b1d) for method MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
+; Total bytes of code 26, prolog size 0, PerfScore 10.75, instruction count 10, allocated bytes for code 26 (MethodHash=089c9b1d) for method MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
 ; ============================================================
 

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

@@ -22,27 +22,23 @@ G_M32701_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000002 {e
        ; byrRegs +[ecx]
        movzx    eax, byte  ptr [ecx+0x04]
        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=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M32701_IG03:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; byrRegs -[ecx]
-       mov      eax, 1
-       jmp      SHORT G_M32701_IG05
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M32701_IG04:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, 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=00000000 {}, byrefRegs=00000000 {}, 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=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        pop      ebp
        ret      
                        ;; size=2 bbWeight=1 PerfScore 1.50
-G_M32701_IG06:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, 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=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       mov      eax, 1
+       jmp      SHORT G_M32701_IG04
+                       ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 32, prolog size 3, PerfScore 8.75, instruction count 14, allocated bytes for code 32 (MethodHash=ed408042) for method Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
+; Total bytes of code 28, prolog size 3, PerfScore 6.75, instruction count 12, allocated bytes for code 28 (MethodHash=ed408042) for method Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
 ; ============================================================
 

-39 (-12.11%) : 66677.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo:NumberHandingIsApplicable():ubyte:this (Tier1)

@@ -10,7 +10,7 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] (  4,  4   )     ref  ->  ecx         this class-hnd single-def <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
-;  V01 loc0         [V01,T01] ( 10,  9   )     ref  ->  edi         class-hnd <System.Type>
+;  V01 loc0         [V01,T01] ( 11,  9   )     ref  ->  edi         class-hnd <System.Type>
 ;* V02 tmp0         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Type>
 ;  V03 tmp1         [V03,T00] ( 19, 19   )     ref  ->  eax        
 ;* V04 tmp2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Text.Json.Serialization.JsonConverter>
@@ -37,27 +37,114 @@ G_M051_IG02:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {
        mov      esi, gword ptr [ecx+0x08]
        ; gcrRegs +[esi]
        cmp      byte  ptr [esi+0x11], 0
+       jne      G_M051_IG09
+       cmp      byte  ptr [esi+0x10], 0
+       je       SHORT G_M051_IG03
+       test     byte  ptr [esi+0x08], 24
+       jne      G_M051_IG11
+                       ;; size=29 bbWeight=1 PerfScore 14.00
+G_M051_IG03:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[esi]
+       mov      edi, gword ptr [ecx+0x24]
+       ; gcrRegs +[edi]
+       test     edi, edi
+       je       G_M051_IG12
+                       ;; size=11 bbWeight=1 PerfScore 3.25
+G_M051_IG04:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[ecx]
+       mov      ecx, edi
+       ; gcrRegs +[ecx]
+       mov      eax, dword ptr [edi]
+       mov      esi, dword ptr [eax+0x3C]
+       call     [esi+0x04]<unknown method>
+       ; gcrRegs -[ecx]
+       test     eax, eax
        je       SHORT G_M051_IG05
-                       ;; size=9 bbWeight=1 PerfScore 6.00
-G_M051_IG03:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[ecx esi]
+       mov      ecx, edi
+       ; gcrRegs +[ecx]
+       call     [esi+0x08]<unknown method>
+       ; gcrRegs -[ecx]
+       test     eax, eax
+       jne      SHORT G_M051_IG05
+       mov      ecx, edi
+       ; gcrRegs +[ecx]
+       mov      eax, dword ptr [edi]
+       mov      esi, dword ptr [eax+0x40]
+       call     [esi+0x0C]<unknown method>
+       ; gcrRegs -[ecx] +[eax]
+       cmp      eax, 0xD1FFAB1E
+       jne      SHORT G_M051_IG05
+       mov      ecx, edi
+       ; gcrRegs +[ecx]
+       call     [esi+0x14]<unknown method>
+       ; gcrRegs -[ecx]
+       cmp      dword ptr [eax+0x04], 0
+       jbe      G_M051_IG08
+       mov      eax, gword ptr [eax+0x08]
+       jmp      SHORT G_M051_IG06
+                       ;; size=60 bbWeight=1 PerfScore 32.75
+G_M051_IG05:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[eax]
+       xor      eax, eax
+       ; gcrRegs +[eax]
+                       ;; size=2 bbWeight=1 PerfScore 0.25
+G_M051_IG06:        ; bbWeight=1, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, byref, isz
+       test     eax, eax
+       cmove    eax, edi
+       cmp      eax, 0xD1FFAB1E
+       je       SHORT G_M051_IG09
+       cmp      eax, 0xD1FFAB1E
+       je       SHORT G_M051_IG09
+       cmp      eax, 0xD1FFAB1E
+       je       SHORT G_M051_IG09
+       cmp      eax, 0xD1FFAB1E
+       je       SHORT G_M051_IG09
+       cmp      eax, 0xD1FFAB1E
+       je       SHORT G_M051_IG09
+       cmp      eax, 0xD1FFAB1E
+       je       SHORT G_M051_IG09
+       cmp      eax, 0xD1FFAB1E
+       je       SHORT G_M051_IG09
+       cmp      eax, 0xD1FFAB1E
+       je       SHORT G_M051_IG09
+       cmp      eax, 0xD1FFAB1E
+       je       SHORT G_M051_IG09
+       cmp      eax, 0xD1FFAB1E
+       je       SHORT G_M051_IG09
+       cmp      eax, 0xD1FFAB1E
+       je       SHORT G_M051_IG09
+       cmp      eax, 0xD1FFAB1E
+       je       SHORT G_M051_IG09
+       cmp      eax, 0xD1FFAB1E
+       je       SHORT G_M051_IG09
+       cmp      eax, 0xD1FFAB1E
+       je       SHORT G_M051_IG09
+       cmp      eax, 0xD1FFAB1E
+       sete     al
+       ; gcrRegs -[eax]
+       movzx    eax, al
+                       ;; size=114 bbWeight=1 PerfScore 19.50
+G_M051_IG07:        ; bbWeight=1, epilog, nogc, extend
+       pop      esi
+       pop      edi
+       pop      ebp
+       ret      
+                       ;; size=4 bbWeight=1 PerfScore 2.50
+G_M051_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs -[edi]
+       call     CORINFO_HELP_RNGCHKFAIL
+                       ;; size=5 bbWeight=0 PerfScore 0.00
+G_M051_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      eax, 1
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M051_IG04:        ; bbWeight=0, epilog, nogc, extend
+G_M051_IG10:        ; bbWeight=0, epilog, nogc, extend
        pop      esi
        pop      edi
        pop      ebp
        ret      
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M051_IG05:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs +[ecx esi]
-       cmp      byte  ptr [esi+0x10], 0
-       je       SHORT G_M051_IG09
-       test     byte  ptr [esi+0x08], 24
-       je       SHORT G_M051_IG09
-                       ;; size=12 bbWeight=1 PerfScore 8.00
-G_M051_IG06:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[ecx]
+G_M051_IG11:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs +[esi]
        mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      eax, dword ptr [ecx]
@@ -66,14 +153,11 @@ G_M051_IG06:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {
        ; gcrRegs -[ecx esi] +[eax]
        mov      edi, eax
        ; gcrRegs +[edi]
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M051_IG07:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[eax]
        test     edi, edi
-       jne      SHORT G_M051_IG10
-                       ;; size=4 bbWeight=1 PerfScore 1.25
-G_M051_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[edi]
+       jne      G_M051_IG04
+                       ;; size=20 bbWeight=0 PerfScore 0.00
+G_M051_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[eax edi]
        mov      ecx, 0x4F46
        mov      edx, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
@@ -84,98 +168,7 @@ G_M051_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
        ; gcrRegs -[eax ecx]
        int3     
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M051_IG09:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[ecx]
-       mov      edi, gword ptr [ecx+0x24]
-       ; gcrRegs +[edi]
-       jmp      SHORT G_M051_IG07
-                       ;; size=5 bbWeight=1 PerfScore 4.00
-G_M051_IG10:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ecx]
-       mov      ecx, edi
-       ; gcrRegs +[ecx]
-       mov      eax, dword ptr [edi]
-       mov      esi, dword ptr [eax+0x3C]
-       call     [esi+0x04]<unknown method>
-       ; gcrRegs -[ecx]
-       test     eax, eax
-       je       SHORT G_M051_IG11
-       mov      ecx, edi
-       ; gcrRegs +[ecx]
-       call     [esi+0x08]<unknown method>
-       ; gcrRegs -[ecx]
-       test     eax, eax
-       jne      SHORT G_M051_IG11
-       mov      ecx, edi
-       ; gcrRegs +[ecx]
-       mov      eax, dword ptr [edi]
-       mov      esi, dword ptr [eax+0x40]
-       call     [esi+0x0C]<unknown method>
-       ; gcrRegs -[ecx] +[eax]
-       cmp      eax, 0xD1FFAB1E
-       jne      SHORT G_M051_IG11
-       mov      ecx, edi
-       ; gcrRegs +[ecx]
-       call     [esi+0x14]<unknown method>
-       ; gcrRegs -[ecx]
-       cmp      dword ptr [eax+0x04], 0
-       jbe      G_M051_IG14
-       mov      eax, gword ptr [eax+0x08]
-       jmp      SHORT G_M051_IG12
-                       ;; size=60 bbWeight=1 PerfScore 32.75
-G_M051_IG11:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[eax]
-       xor      eax, eax
-       ; gcrRegs +[eax]
-                       ;; size=2 bbWeight=1 PerfScore 0.25
-G_M051_IG12:        ; bbWeight=1, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, byref
-       test     eax, eax
-       cmove    eax, edi
-       cmp      eax, 0xD1FFAB1E
-       je       G_M051_IG03
-       cmp      eax, 0xD1FFAB1E
-       je       G_M051_IG03
-       cmp      eax, 0xD1FFAB1E
-       je       G_M051_IG03
-       cmp      eax, 0xD1FFAB1E
-       je       G_M051_IG03
-       cmp      eax, 0xD1FFAB1E
-       je       G_M051_IG03
-       cmp      eax, 0xD1FFAB1E
-       je       G_M051_IG03
-       cmp      eax, 0xD1FFAB1E
-       je       G_M051_IG03
-       cmp      eax, 0xD1FFAB1E
-       je       G_M051_IG03
-       cmp      eax, 0xD1FFAB1E
-       je       G_M051_IG03
-       cmp      eax, 0xD1FFAB1E
-       je       G_M051_IG03
-       cmp      eax, 0xD1FFAB1E
-       je       G_M051_IG03
-       cmp      eax, 0xD1FFAB1E
-       je       G_M051_IG03
-       cmp      eax, 0xD1FFAB1E
-       je       G_M051_IG03
-       cmp      eax, 0xD1FFAB1E
-       je       G_M051_IG03
-       cmp      eax, 0xD1FFAB1E
-       sete     al
-       ; gcrRegs -[eax]
-       movzx    eax, al
-                       ;; size=170 bbWeight=1 PerfScore 19.50
-G_M051_IG13:        ; bbWeight=1, epilog, nogc, extend
-       pop      esi
-       pop      edi
-       pop      ebp
-       ret      
-                       ;; size=4 bbWeight=1 PerfScore 2.50
-G_M051_IG14:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[edi]
-       call     CORINFO_HELP_RNGCHKFAIL
-       int3     
...

+16 (+29.09%) : 81859.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  ->  esi         this class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
-;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->  edx         class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
+;  V01 arg1         [V01,T00] (  6,  5   )     ref  ->  edx         class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
 ;* V02 tmp0         [V02    ] (  0,  0   )     int  ->  zero-ref    "spilling helperCall"
 ;* V03 tmp1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.__Canon[]>
 ;  V04 tmp2         [V04,T04] (  2,  4   )     ref  ->  ecx         single-def "argument with side effect"
-;* V05 rat0         [V05,T03] (  0,  0   )     int  ->  zero-ref    "Spilling to split statement for tree"
+;  V05 rat0         [V05,T03] (  2,  4   )     int  ->  ecx         "Spilling to split statement for tree"
 ;* V06 rat1         [V06,T05] (  0,  0   )     int  ->  zero-ref    "runtime lookup"
-;* V07 rat2         [V07,T02] (  0,  0   )     int  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V07 rat2         [V07,T02] (  2,  4   )     int  ->  ecx         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 0
 
@@ -28,24 +28,18 @@ G_M61315_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=6 bbWeight=1 PerfScore 2.50
 G_M61315_IG02:        ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[edx]
-       cmp      dword ptr [esi], esi
+       mov      ecx, dword ptr [esi]
+       mov      ecx, dword ptr [ecx+0x24]
+       mov      ecx, dword ptr [ecx]
+       mov      ecx, dword ptr [ecx+0x44]
+       test     ecx, ecx
+       je       SHORT G_M61315_IG06
+                       ;; size=14 bbWeight=1 PerfScore 9.25
+G_M61315_IG03:        ; bbWeight=0.80, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref, isz
        test     edx, edx
-       jne      SHORT G_M61315_IG04
-                       ;; size=6 bbWeight=1 PerfScore 4.25
-G_M61315_IG03:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[edx]
-       mov      ecx, 959
-       mov      edx, 0xD1FFAB1E
-       call     CORINFO_HELP_STRCNS
-       ; gcrRegs +[eax]
-       mov      ecx, eax
-       ; gcrRegs +[ecx]
-       call     [System.Collections.Immutable.Requires:FailArgumentNullException(System.String)]
-       ; gcrRegs -[eax ecx]
-       int3     
-                       ;; size=24 bbWeight=0 PerfScore 0.00
+       je       SHORT G_M61315_IG07
+                       ;; size=4 bbWeight=0.80 PerfScore 1.00
 G_M61315_IG04:        ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs +[edx]
        mov      ecx, gword ptr [edx+0x04]
        ; gcrRegs +[ecx]
        push     dword ptr [edx+0x08]
@@ -59,7 +53,24 @@ G_M61315_IG05:        ; bbWeight=1, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=3 bbWeight=1 PerfScore 2.00
+G_M61315_IG06:        ; bbWeight=0.20, gcVars=00000000 {}, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs +[edx]
+       test     edx, edx
+       jne      SHORT G_M61315_IG04
+                       ;; size=4 bbWeight=0.20 PerfScore 0.25
+G_M61315_IG07:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[edx]
+       mov      ecx, 959
+       mov      edx, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       ; gcrRegs +[eax]
+       mov      ecx, eax
+       ; gcrRegs +[ecx]
+       call     [System.Collections.Immutable.Requires:FailArgumentNullException(System.String)]
+       ; gcrRegs -[eax ecx]
+       int3     
+                       ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 55, prolog size 4, PerfScore 16.25, instruction count 21, allocated bytes for code 55 (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 71, prolog size 4, PerfScore 22.50, instruction count 28, allocated bytes for code 71 (MethodHash=e419107c) for method System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
 ; ============================================================
 

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

@@ -8,12 +8,12 @@
 ; 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  ->  esi         this class-hnd single-def <System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]>
-;  V01 arg1         [V01,T01] (  4,  4   )     ref  ->  edx         class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.__Canon]>
+;  V00 this         [V00,T01] (  4,  4   )     ref  ->  esi         this class-hnd single-def <System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]>
+;  V01 arg1         [V01,T00] (  5,  4   )     ref  ->  edx         class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.__Canon]>
 ;* V02 tmp0         [V02    ] (  0,  0   )     int  ->  zero-ref    "spilling helperCall"
-;* V03 rat0         [V03,T03] (  0,  0   )     int  ->  zero-ref    "Spilling to split statement for tree"
+;  V03 rat0         [V03,T03] (  2,  4   )     int  ->  ecx         "Spilling to split statement for tree"
 ;* V04 rat1         [V04,T04] (  0,  0   )     int  ->  zero-ref    "runtime lookup"
-;* V05 rat2         [V05,T02] (  0,  0   )     int  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V05 rat2         [V05,T02] (  2,  4   )     int  ->  ecx         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 0
 
@@ -26,24 +26,18 @@ G_M52093_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=6 bbWeight=1 PerfScore 2.50
 G_M52093_IG02:        ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[edx]
-       cmp      dword ptr [esi], esi
+       mov      ecx, dword ptr [esi]
+       mov      ecx, dword ptr [ecx+0x24]
+       mov      ecx, dword ptr [ecx]
+       mov      ecx, dword ptr [ecx+0x40]
+       test     ecx, ecx
+       je       SHORT G_M52093_IG06
+                       ;; size=14 bbWeight=1 PerfScore 9.25
+G_M52093_IG03:        ; bbWeight=0.80, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref, isz
        test     edx, edx
-       jne      SHORT G_M52093_IG04
-                       ;; size=6 bbWeight=1 PerfScore 4.25
-G_M52093_IG03:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[edx]
-       mov      ecx, 0x48B
-       mov      edx, 0xD1FFAB1E
-       call     CORINFO_HELP_STRCNS
-       ; gcrRegs +[eax]
-       mov      ecx, eax
-       ; gcrRegs +[ecx]
-       call     [System.Collections.Immutable.Requires:FailArgumentNullException(System.String)]
-       ; gcrRegs -[eax ecx]
-       int3     
-                       ;; size=24 bbWeight=0 PerfScore 0.00
+       je       SHORT G_M52093_IG07
+                       ;; size=4 bbWeight=0.80 PerfScore 1.00
 G_M52093_IG04:        ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs +[edx]
        push     0
        mov      ecx, esi
        ; gcrRegs +[ecx]
@@ -55,7 +49,24 @@ G_M52093_IG05:        ; bbWeight=1, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=3 bbWeight=1 PerfScore 2.00
+G_M52093_IG06:        ; bbWeight=0.20, gcVars=00000000 {}, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs -[eax] +[edx]
+       test     edx, edx
+       jne      SHORT G_M52093_IG04
+                       ;; size=4 bbWeight=0.20 PerfScore 0.25
+G_M52093_IG07:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[edx]
+       mov      ecx, 0x48B
+       mov      edx, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       ; gcrRegs +[eax]
+       mov      ecx, eax
+       ; gcrRegs +[ecx]
+       call     [System.Collections.Immutable.Requires:FailArgumentNullException(System.String)]
+       ; gcrRegs -[eax ecx]
+       int3     
+                       ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 49, prolog size 4, PerfScore 13.00, instruction count 19, allocated bytes for code 49 (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 65, prolog size 4, PerfScore 19.25, instruction count 26, allocated bytes for code 65 (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)
 ; ============================================================
 

+9 (+34.62%) : 40684.dasm - Utf8Json.Resolvers.BuiltinResolver+BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)

@@ -3,7 +3,7 @@
 ; Tier1 code
 ; optimized code
 ; optimized using Dynamic PGO
-; esp based frame
+; ebp based frame
 ; partially interruptible
 ; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 3
 ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
@@ -17,10 +17,12 @@
 ;
 ; Lcl frame size = 0
 
-G_M46729_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M46729_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+       push     ebp
+       mov      ebp, esp
        mov      edx, ecx
        ; gcrRegs +[edx]
-                       ;; size=2 bbWeight=1 PerfScore 0.25
+                       ;; size=5 bbWeight=1 PerfScore 1.50
 G_M46729_IG02:        ; bbWeight=1, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [D1FFAB1EH]      ; static handle
        ; gcrRegs +[ecx]
@@ -29,25 +31,33 @@ G_M46729_IG02:        ; bbWeight=1, gcrefRegs=00000004 {edx}, byrefRegs=00000000
        ; gcrRegs -[ecx edx]
        ; byrRegs +[eax]
        test     eax, eax
-       je       SHORT G_M46729_IG05
-                       ;; size=18 bbWeight=1 PerfScore 9.25
-G_M46729_IG03:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, byref
-       mov      eax, gword ptr [eax]
+       jne      SHORT G_M46729_IG06
+       jmp      SHORT G_M46729_IG04
+                       ;; size=20 bbWeight=1 PerfScore 11.25
+G_M46729_IG03:        ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs +[eax]
        ; byrRegs -[eax]
-                       ;; size=2 bbWeight=0 PerfScore 0.00
-G_M46729_IG04:        ; bbWeight=0, epilog, nogc, extend
+       pop      ebp
        ret      
-                       ;; size=1 bbWeight=0 PerfScore 0.00
-G_M46729_IG05:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+                       ;; size=2 bbWeight=0 PerfScore 0.00
+G_M46729_IG04:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[eax]
        xor      eax, eax
        ; gcrRegs +[eax]
                        ;; size=2 bbWeight=0 PerfScore 0.00
-G_M46729_IG06:        ; bbWeight=0, epilog, nogc, extend
+G_M46729_IG05:        ; bbWeight=0, epilog, nogc, extend
+       pop      ebp
        ret      
-                       ;; size=1 bbWeight=0 PerfScore 0.00
+                       ;; size=2 bbWeight=0 PerfScore 0.00
+G_M46729_IG06:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, gcvars, byref, isz
+       ; gcrRegs -[eax]
+       ; byrRegs +[eax]
+       mov      eax, gword ptr [eax]
+       ; gcrRegs +[eax]
+       ; byrRegs -[eax]
+       jmp      SHORT G_M46729_IG03
+                       ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 26, prolog size 0, PerfScore 9.50, instruction count 10, allocated bytes for code 26 (MethodHash=5d514976) for method Utf8Json.Resolvers.BuiltinResolver+BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
+; Total bytes of code 35, prolog size 3, PerfScore 12.75, instruction count 16, allocated bytes for code 35 (MethodHash=5d514976) for method Utf8Json.Resolvers.BuiltinResolver+BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
 ; ============================================================
 

benchmarks.run_tiered.windows.x86.checked.mch

-10 (-2.24%) : 25314.dasm - System.Collections.Generic.PriorityQueue2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable1[System.ValueTuple`2[int,int]]):this (Tier0-FullOpts)

@@ -54,7 +54,7 @@ G_M63155_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=18 bbWeight=1 PerfScore 6.25
 G_M63155_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        test     edi, edi
-       je       G_M63155_IG29
+       je       G_M63155_IG28
        xor      ebx, ebx
        mov      edx, edi
        ; gcrRegs +[edx]
@@ -82,7 +82,7 @@ G_M63155_IG03:        ; bbWeight=0.50, gcVars=00004000 {V03}, gcrefRegs=000000C1
        jge      SHORT G_M63155_IG06
        mov      edx, ecx
        add      edx, ebx
-       jo       G_M63155_IG28
+       jo       G_M63155_IG27
        mov      ecx, esi
        ; gcrRegs +[ecx]
        call     [System.Collections.Generic.PriorityQueue`2[int,int]:Grow(int):this]
@@ -92,7 +92,7 @@ G_M63155_IG03:        ; bbWeight=0.50, gcVars=00004000 {V03}, gcrefRegs=000000C1
                        ;; size=46 bbWeight=0.50 PerfScore 8.38
 G_M63155_IG04:        ; bbWeight=1, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
        cmp      dword ptr [esi+0x10], 0
-       jne      G_M63155_IG21
+       jne      G_M63155_IG20
                        ;; size=10 bbWeight=1 PerfScore 4.00
 G_M63155_IG05:        ; bbWeight=0.50, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref, isz
        test     eax, eax
@@ -106,7 +106,7 @@ G_M63155_IG05:        ; bbWeight=0.50, gcrefRegs=000000C1 {eax esi edi}, byrefRe
        call     [<unknown method>]
        ; gcrRegs -[eax ecx edx edi]
        mov      dword ptr [esi+0x10], ebx
-       jmp      G_M63155_IG19
+       jmp      G_M63155_IG18
                        ;; size=25 bbWeight=0.50 PerfScore 5.25
 G_M63155_IG06:        ; bbWeight=0.25, gcVars=00004000 {V03}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[edi]
@@ -136,7 +136,7 @@ G_M63155_IG08:        ; bbWeight=0.50, gcVars=00000210 {V05 V06}, gcrefRegs=0000
        call     [<unknown method>]
        ; gcrRegs -[eax ecx]
        test     eax, eax
-       je       SHORT G_M63155_IG13
+       je       SHORT G_M63155_IG14
                        ;; size=12 bbWeight=0.50 PerfScore 2.25
 G_M63155_IG09:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        lea      edx, [ebp-0x34]
@@ -166,7 +166,7 @@ G_M63155_IG11:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        mov      ecx, dword ptr [ebp-0x34]
        mov      edx, dword ptr [ebp-0x30]
        cmp      ebx, dword ptr [edi+0x04]
-       jae      SHORT G_M63155_IG14
+       jae      SHORT G_M63155_IG13
        lea      ebx, bword ptr [edi+8*ebx+0x08]
        ; byrRegs +[ebx]
        mov      dword ptr [ebx], ecx
@@ -179,63 +179,57 @@ G_M63155_IG11:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        test     eax, eax
        mov      gword ptr [ebp-0x3C], edi
        ; GC ptr vars +{V05}
-       jne      SHORT G_M63155_IG12
-       jmp      SHORT G_M63155_IG15
-                       ;; size=44 bbWeight=4 PerfScore 75.00
-G_M63155_IG12:        ; bbWeight=2, gcVars=00000210 {V05 V06}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs -[edi]
        mov      ebx, dword ptr [ebp-0x24]
-       jmp      SHORT G_M63155_IG09
-                       ;; size=5 bbWeight=2 PerfScore 6.00
-G_M63155_IG13:        ; bbWeight=0.25, gcVars=00000200 {V06}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       jne      SHORT G_M63155_IG09
+                       ;; size=45 bbWeight=4 PerfScore 71.00
+G_M63155_IG12:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
        ; GC ptr vars -{V05}
-       mov      dword ptr [ebp-0x24], ebx
-       jmp      SHORT G_M63155_IG15
-                       ;; size=5 bbWeight=0.25 PerfScore 0.75
-G_M63155_IG14:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       jmp      SHORT G_M63155_IG14
+                       ;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M63155_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[esi]
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
-G_M63155_IG15:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M63155_IG14:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[esi]
        mov      ecx, gword ptr [ebp-0x40]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V06}
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       jmp      SHORT G_M63155_IG18
+       jmp      SHORT G_M63155_IG17
                        ;; size=11 bbWeight=0.50 PerfScore 3.00
-G_M63155_IG16:        ; bbWeight=0, gcVars=00000200 {V06}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M63155_IG15:        ; bbWeight=0, gcVars=00000200 {V06}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[esi]
        ; GC ptr vars +{V06 V09}
        cmp      gword ptr [ebp-0x40], 0
-       je       SHORT G_M63155_IG17
+       je       SHORT G_M63155_IG16
        mov      ecx, gword ptr [ebp-0x40]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V06 V09}
        call     [<unknown method>]
        ; gcrRegs -[ecx]
                        ;; size=15 bbWeight=0 PerfScore 0.00
-G_M63155_IG17:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M63155_IG16:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        pop      eax
        jmp      eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M63155_IG18:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M63155_IG17:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs +[esi]
-       mov      ebx, dword ptr [ebp-0x24]
        mov      dword ptr [esi+0x10], ebx
-                       ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M63155_IG19:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+                       ;; size=3 bbWeight=0.50 PerfScore 0.50
+G_M63155_IG18:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        inc      dword ptr [esi+0x14]
        cmp      dword ptr [esi+0x10], 1
-       jle      SHORT G_M63155_IG27
+       jle      SHORT G_M63155_IG26
        mov      ecx, esi
        ; gcrRegs +[ecx]
        call     [System.Collections.Generic.PriorityQueue`2[int,int]:Heapify():this]
        ; gcrRegs -[ecx esi]
                        ;; size=17 bbWeight=0.50 PerfScore 5.12
-G_M63155_IG20:        ; bbWeight=0.50, epilog, nogc, extend
+G_M63155_IG19:        ; bbWeight=0.50, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -243,7 +237,7 @@ G_M63155_IG20:        ; bbWeight=0.50, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M63155_IG21:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
+G_M63155_IG20:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs +[esi edi]
        mov      ecx, edi
        ; gcrRegs +[ecx]
@@ -252,15 +246,15 @@ G_M63155_IG21:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {e
        mov      gword ptr [ebp-0x44], eax
        ; GC ptr vars +{V09}
                        ;; size=11 bbWeight=0.50 PerfScore 2.12
-G_M63155_IG22:        ; bbWeight=0.50, gcVars=00000400 {V09}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M63155_IG21:        ; bbWeight=0.50, gcVars=00000400 {V09}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        mov      ecx, eax
        ; gcrRegs +[ecx]
        call     [<unknown method>]
        ; gcrRegs -[eax ecx]
        test     eax, eax
-       je       SHORT G_M63155_IG24
+       je       SHORT G_M63155_IG23
                        ;; size=12 bbWeight=0.50 PerfScore 2.25
-G_M63155_IG23:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M63155_IG22:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        lea      edx, [ebp-0x2C]
        mov      ecx, gword ptr [ebp-0x44]
        ; gcrRegs +[ecx]
@@ -277,32 +271,32 @@ G_M63155_IG23:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        call     [<unknown method>]
        ; gcrRegs -[ecx]
        test     eax, eax
-       jne      SHORT G_M63155_IG23
+       jne      SHORT G_M63155_IG22
                        ;; size=39 bbWeight=4 PerfScore 60.00
-G_M63155_IG24:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M63155_IG23:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
        mov      ecx, gword ptr [ebp-0x44]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V09}
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       jmp      SHORT G_M63155_IG27
+       jmp      SHORT G_M63155_IG26
                        ;; size=11 bbWeight=0.50 PerfScore 3.00
-G_M63155_IG25:        ; bbWeight=0, gcVars=00000400 {V09}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M63155_IG24:        ; bbWeight=0, gcVars=00000400 {V09}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; GC ptr vars +{V09}
        cmp      gword ptr [ebp-0x44], 0
-       je       SHORT G_M63155_IG26
+       je       SHORT G_M63155_IG25
        mov      ecx, gword ptr [ebp-0x44]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V09}
        call     [<unknown method>]
        ; gcrRegs -[ecx]
                        ;; size=15 bbWeight=0 PerfScore 0.00
-G_M63155_IG26:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M63155_IG25:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        pop      eax
        jmp      eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M63155_IG27:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M63155_IG26:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -310,10 +304,10 @@ G_M63155_IG27:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
        pop      ebp
        ret      
                        ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M63155_IG28:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M63155_IG27:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        call     CORINFO_HELP_OVERFLOW
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M63155_IG29:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M63155_IG28:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      ecx, 0x85D
        mov      edx, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
@@ -325,10 +319,10 @@ G_M63155_IG29:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 446, prolog size 14, PerfScore 247.12, instruction count 149, allocated bytes for code 446 (MethodHash=4e07094c) for method System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this (Tier0-FullOpts)
+; Total bytes of code 436, prolog size 14, PerfScore 236.88, instruction count 145, allocated bytes for code 436 (MethodHash=4e07094c) for method System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this (Tier0-FullOpts)
 ; ============================================================
 
 *************** EH table for System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this
 2 EH table entries, 2 total EH entries reported to VM
-EH#0: try [G_M63155_IG08..G_M63155_IG15) handled by [G_M63155_IG16..G_M63155_IG18) (fault)
-EH#1: try [G_M63155_IG22..G_M63155_IG24) handled by [G_M63155_IG25..G_M63155_IG27) (fault)
+EH#0: try [G_M63155_IG08..G_M63155_IG14) handled by [G_M63155_IG15..G_M63155_IG17) (fault)
+EH#1: try [G_M63155_IG21..G_M63155_IG23) handled by [G_M63155_IG24..G_M63155_IG26) (fault)

-2 (-1.98%) : 19864.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)

@@ -66,9 +66,8 @@ G_M21922_IG06:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
        lea      edx, bword ptr [eax+4*edx+0x08]
        ; byrRegs +[edx]
        cmp      dword ptr [edx+0x04], -1
-       jge      SHORT G_M21922_IG07
-       jmp      SHORT G_M21922_IG03
-                       ;; size=34 bbWeight=2 PerfScore 38.00
+       jl       SHORT G_M21922_IG03
+                       ;; size=32 bbWeight=2 PerfScore 34.00
 G_M21922_IG07:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000006 {ecx edx}, byref
        ; gcrRegs -[eax]
        mov      eax, dword ptr [edx+0x08]
@@ -89,6 +88,6 @@ G_M21922_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 101, prolog size 4, PerfScore 119.12, instruction count 41, allocated bytes for code 101 (MethodHash=7a0aaa5d) for method System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)
+; Total bytes of code 99, prolog size 4, PerfScore 115.12, instruction count 40, allocated bytes for code 99 (MethodHash=7a0aaa5d) for method System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)
 ; ============================================================
 

-2 (-1.90%) : 8221.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)

@@ -69,9 +69,8 @@ G_M27287_IG06:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
        lea      edx, bword ptr [eax+4*edx+0x08]
        ; byrRegs +[edx]
        cmp      dword ptr [edx+0x08], -1
-       jge      SHORT G_M27287_IG07
-       jmp      SHORT G_M27287_IG03
-                       ;; size=34 bbWeight=2 PerfScore 38.00
+       jl       SHORT G_M27287_IG03
+                       ;; size=32 bbWeight=2 PerfScore 34.00
 G_M27287_IG07:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000006 {ecx edx}, byref
        ; gcrRegs -[eax]
        mov      eax, gword ptr [edx]
@@ -95,6 +94,6 @@ G_M27287_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 105, prolog size 4, PerfScore 119.38, instruction count 42, allocated bytes for code 105 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
+; Total bytes of code 103, prolog size 4, PerfScore 115.38, instruction count 41, allocated bytes for code 103 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
 ; ============================================================
 

+14 (+7.04%) : 44993.dasm - System.Collections.IterateForEach`1[System.Canon]:FrozenSet():System.Canon:this (Tier0-FullOpts)

@@ -23,10 +23,10 @@
 ;  V12 tmp7         [V12,T02] (  3,  6   )     ref  ->  ecx         single-def "argument with side effect"
 ;  V13 EHSlots      [V13    ] (  1,  1   )  struct (16) [ebp-0x18]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
 ;* V14 cse0         [V14,T10] (  0,  0   )     int  ->  zero-ref    hoist "CSE - aggressive"
-;  V15 cse1         [V15,T09] (  5,  2.20)     int  ->  ecx         hoist multi-def "CSE - aggressive"
-;* V16 rat0         [V16,T05] (  0,  0   )     int  ->  zero-ref    "Spilling to split statement for tree"
+;  V15 cse1         [V15,T09] (  6,  3.20)     int  ->  ecx         hoist multi-def "CSE - aggressive"
+;  V16 rat0         [V16,T05] (  2,  4   )     int  ->  edx         "Spilling to split statement for tree"
 ;* V17 rat1         [V17,T08] (  0,  0   )     int  ->  zero-ref    "runtime lookup"
-;* V18 rat2         [V18,T03] (  0,  0   )     int  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V18 rat2         [V18,T03] (  2,  4   )     int  ->  edx         "fgMakeTemp is creating a new local variable"
 ;  V19 rat3         [V19,T04] (  3,  5.60)     int  ->  eax         "fgMakeTemp is creating a new local variable"
 ;  V20 rat4         [V20,T11] (  3,  0   )     int  ->  ecx         "Spilling to split statement for tree"
 ;  V21 rat5         [V21,T12] (  3,  0   )     int  ->  eax         "fgMakeTemp is creating a new local variable"
@@ -63,8 +63,14 @@ G_M17622_IG03:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        ; gcrRegs +[ecx]
        mov      ecx, dword ptr [ecx]
        ; gcrRegs -[ecx]
+       mov      edx, ecx
+       mov      edx, dword ptr [edx+0x24]
+       mov      edx, dword ptr [edx]
+       mov      edx, dword ptr [edx+0x10]
+       test     edx, edx
+       jne      SHORT G_M17622_IG05
        jmp      SHORT G_M17622_IG05
-                       ;; size=7 bbWeight=1 PerfScore 5.00
+                       ;; size=21 bbWeight=1 PerfScore 12.50
 G_M17622_IG04:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
        mov      edx, dword ptr [ebp-0x1C]
@@ -168,7 +174,7 @@ G_M17622_IG18:        ; bbWeight=1, epilog, nogc, extend
        ret      
                        ;; size=6 bbWeight=1 PerfScore 2.50
 
-; Total bytes of code 199, prolog size 27, PerfScore 155.18, instruction count 74, allocated bytes for code 199 (MethodHash=5937bb29) for method System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (Tier0-FullOpts)
+; Total bytes of code 213, prolog size 27, PerfScore 162.68, instruction count 80, allocated bytes for code 213 (MethodHash=5937bb29) for method System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (Tier0-FullOpts)
 ; ============================================================
 
 *************** EH table for System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this

+14 (+10.14%) : 43692.dasm - System.Collections.IterateForEach`1[System.Canon]:ImmutableStack():System.Canon:this (Tier0-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,T02] (  3,  3   )     ref  ->  esi         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+;  V00 this         [V00,T02] (  4,  4   )     ref  ->  esi         this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
 ;  V01 loc0         [V01,T05] (  3,  4   )     ref  ->  edi         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 ( 8) [ebp-0x10]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]>
@@ -22,9 +22,9 @@
 ;  V11 tmp6         [V11    ] (  2,  3   )     ref  ->  [ebp-0x10]  do-not-enreg[X] addr-exposed "field V03._originalStack (fldOffset=0x0)" P-DEP
 ;  V12 tmp7         [V12    ] (  9, 29   )     ref  ->  [ebp-0x0C]  do-not-enreg[X] addr-exposed "field V03._remainingStack (fldOffset=0x4)" P-DEP
 ;* V13 cse0         [V13,T08] (  0,  0   )     int  ->  zero-ref    hoist "CSE - aggressive"
-;* V14 rat0         [V14,T04] (  0,  0   )     int  ->  zero-ref    "Spilling to split statement for tree"
+;  V14 rat0         [V14,T04] (  2,  4   )     int  ->  ecx         "Spilling to split statement for tree"
 ;* V15 rat1         [V15,T06] (  0,  0   )     int  ->  zero-ref    "runtime lookup"
-;* V16 rat2         [V16,T03] (  0,  0   )     int  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V16 rat2         [V16,T03] (  2,  4   )     int  ->  ecx         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -49,8 +49,14 @@ G_M64146_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        cmp      dword ptr [ecx], ecx
        call     [System.Collections.Immutable.ImmutableStack`1[System.__Canon]:GetEnumerator():System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]:this]
        ; gcrRegs -[ecx]
+       mov      ecx, dword ptr [esi]
+       mov      ecx, dword ptr [ecx+0x24]
+       mov      ecx, dword ptr [ecx]
+       mov      ecx, dword ptr [ecx+0x10]
+       test     ecx, ecx
+       jne      SHORT G_M64146_IG04
        jmp      SHORT G_M64146_IG04
-                       ;; size=18 bbWeight=1 PerfScore 10.75
+                       ;; size=32 bbWeight=1 PerfScore 20.00
 G_M64146_IG03:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[edi]
        cmp      gword ptr [ebp-0x0C], 0
@@ -123,6 +129,6 @@ G_M64146_IG10:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}
        int3     
                        ;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 138, prolog size 16, PerfScore 138.50, instruction count 50, allocated bytes for code 138 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (Tier0-FullOpts)
+; Total bytes of code 152, prolog size 16, PerfScore 147.75, instruction count 56, allocated bytes for code 152 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (Tier0-FullOpts)
 ; ============================================================
 

+45 (+24.06%) : 32792.dasm - System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (Tier0-FullOpts)

@@ -71,7 +71,7 @@ G_M65031_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000040 {e
        xor      eax, eax
        mov      dword ptr [ebp-0x10], eax
                        ;; size=11 bbWeight=1 PerfScore 3.25
-G_M65031_IG03:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref, isz
+G_M65031_IG03:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
        push     13
        push     226
        push     ebx
@@ -81,62 +81,64 @@ G_M65031_IG03:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=000000C0 {e
        call     [<unknown method>]
        ; byrRegs -[ecx]
        cmp      eax, -1
-       je       SHORT G_M65031_IG07
-                       ;; size=26 bbWeight=8 PerfScore 62.00
+       je       G_M65031_IG09
+                       ;; size=30 bbWeight=8 PerfScore 62.00
 G_M65031_IG04:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref, isz
        mov      ecx, eax
        add      ecx, dword ptr [ebp-0x10]
        mov      edx, ecx
        cmp      eax, ebx
-       jae      SHORT G_M65031_IG11
+       jae      G_M65031_IG13
        cmp      byte  ptr [edi+eax], 226
-       jne      SHORT G_M65031_IG09
+       jne      SHORT G_M65031_IG11
        inc      edx
        mov      dword ptr [ebp-0x10], edx
        inc      eax
        cmp      eax, ebx
-       ja       SHORT G_M65031_IG13
+       ja       G_M65031_IG15
+       mov      edx, dword ptr [ebp-0x10]
        add      edi, eax
        sub      ebx, eax
        jns      SHORT G_M65031_IG06
-                       ;; size=32 bbWeight=4 PerfScore 48.00
+                       ;; size=43 bbWeight=4 PerfScore 52.00
 G_M65031_IG05:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
+       mov      dword ptr [ebp-0x10], edx
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
        ; gcrRegs +[edx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
-                       ;; size=16 bbWeight=2 PerfScore 7.00
+       mov      edx, dword ptr [ebp-0x10]
+                       ;; size=22 bbWeight=2 PerfScore 11.00
 G_M65031_IG06:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref, isz
        cmp      ebx, 2
-       jl       SHORT G_M65031_IG03
+       jl       SHORT G_M65031_IG08
+       mov      eax, edx
        cmp      ebx, 1
-       jbe      SHORT G_M65031_IG11
+       jbe      SHORT G_M65031_IG13
        movzx    ecx, byte  ptr [edi+0x01]
        cmp      byte  ptr [edi], 128
-       jne      SHORT G_M65031_IG03
+       jne      SHORT G_M65031_IG07
        cmp      ecx, 168
-       je       SHORT G_M65031_IG12
+       je       SHORT G_M65031_IG14
        cmp      ecx, 169
-       je       SHORT G_M65031_IG12
-       jmp      SHORT G_M65031_IG03
-                       ;; size=37 bbWeight=4 PerfScore 52.00
-G_M65031_IG07:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       je       SHORT G_M65031_IG14
+       mov      dword ptr [ebp-0x10], eax
+       jmp      G_M65031_IG03
+                       ;; size=45 bbWeight=4 PerfScore 57.00
+G_M65031_IG07:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
+       mov      dword ptr [ebp-0x10], eax
+       jmp      G_M65031_IG03
+                       ;; size=8 bbWeight=2 PerfScore 6.00
+G_M65031_IG08:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
+       mov      dword ptr [ebp-0x10], edx
+       jmp      G_M65031_IG03
+                       ;; size=8 bbWeight=2 PerfScore 6.00
+G_M65031_IG09:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; byrRegs -[esi edi]
        mov      eax, -1
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M65031_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-       pop      ecx
-       pop      ebx
-       pop      esi
-       pop      edi
-       pop      ebp
-       ret      8
-                       ;; size=8 bbWeight=0.50 PerfScore 2.25
-G_M65031_IG09:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       mov      eax, edx
-                       ;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M65031_IG10:        ; bbWeight=0.50, epilog, nogc, extend
        pop      ecx
        pop      ebx
@@ -145,10 +147,21 @@ G_M65031_IG10:        ; bbWeight=0.50, epilog, nogc, extend
        pop      ebp
        ret      8
                        ;; size=8 bbWeight=0.50 PerfScore 2.25
-G_M65031_IG11:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M65031_IG11:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       mov      eax, edx
+                       ;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M65031_IG12:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      ecx
+       pop      ebx
+       pop      esi
+       pop      edi
+       pop      ebp
+       ret      8
+                       ;; size=8 bbWeight=0.50 PerfScore 2.25
+G_M65031_IG13:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M65031_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
+G_M65031_IG14:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
        ; byrRegs +[esi]
        xor      ecx, ecx
        ; byrRegs +[ecx]
@@ -161,11 +174,11 @@ G_M65031_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000040 {e
        ; byrRegs -[ecx esi]
        int3     
                        ;; size=21 bbWeight=0 PerfScore 0.00
-G_M65031_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M65031_IG15:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 187, prolog size 7, PerfScore 182.50, instruction count 74, allocated bytes for code 187 (MethodHash=69ec01f8) for method System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (Tier0-FullOpts)
+; Total bytes of code 232, prolog size 7, PerfScore 207.50, instruction count 83, allocated bytes for code 232 (MethodHash=69ec01f8) for method System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (Tier0-FullOpts)
 ; ============================================================
 

coreclr_tests.run.windows.x86.checked.mch

-9 (-12.86%) : 477494.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)

@@ -35,66 +35,46 @@
 ;
 ; Lcl frame size = 0
 
-G_M34829_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M34829_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
                        ;; size=3 bbWeight=1 PerfScore 1.25
 G_M34829_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        movzx    ecx, 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=00000000 {}, byrefRegs=00000000 {}, byref
-       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategory(int):int]
-                       ;; size=6 bbWeight=0 PerfScore 0.00
+G_M34829_IG03:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       movzx    eax, byte  ptr [ecx+D1FFAB1EH]
+       and      eax, 31
+                       ;; size=10 bbWeight=0.50 PerfScore 1.12
 G_M34829_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        add      eax, -8
        cmp      eax, 16
-       ja       SHORT G_M34829_IG08
-       lea      ecx, [@RWD00]
-       mov      ecx, dword ptr [ecx+4*eax]
-       lea      edx, G_M34829_IG02
-       add      ecx, edx
-       jmp      ecx
-                       ;; size=27 bbWeight=1 PerfScore 7.25
-G_M34829_IG05:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       movzx    eax, byte  ptr [ecx+D1FFAB1EH]
-       and      eax, 31
-       jmp      SHORT G_M34829_IG04
-                       ;; size=12 bbWeight=0.50 PerfScore 2.12
-G_M34829_IG06:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       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=00000000 {}, byrefRegs=00000000 {}, 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      ebp
        ret      
                        ;; size=2 bbWeight=0.50 PerfScore 0.75
-G_M34829_IG08:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M34829_IG07:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, 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      ebp
        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=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, 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 70, prolog size 3, PerfScore 13.88, instruction count 23, allocated bytes for code 70 (MethodHash=b88877f2) for method System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
+; Total bytes of code 61, prolog size 3, PerfScore 8.88, instruction count 21, allocated bytes for code 61 (MethodHash=b88877f2) for method System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
 ; ============================================================
 

-39 (-11.08%) : 506866.dasm - Testvariancesmallil.Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)

@@ -8,7 +8,7 @@
 ; 3 inlinees with PGO data; 23 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  8,  5.89)     ref  ->  registers   class-hnd single-def <System.String>
+;  V00 arg0         [V00,T00] (  8,  5.89)     ref  ->  esi         class-hnd single-def <System.String>
 ;  V01 arg1         [V01,T01] (  8,  5.39)     ref  ->  edi         class-hnd single-def <System.String>
 ;  V02 arg2         [V02,T06] (  6,  3.39)     ref  ->  [ebp+0x10]  class-hnd single-def <System.String>
 ;  V03 arg3         [V03,T02] ( 12,  6.18)     ref  ->  ebx         class-hnd single-def <System.String>
@@ -114,53 +114,22 @@ G_M40721_IG02:        ; bbWeight=1.00, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        call     [<unknown method>]
        ; gcrRegs -[eax ecx]
        cmp      esi, ebx
-       je       SHORT G_M40721_IG05
+       je       SHORT G_M40721_IG07
                        ;; size=116 bbWeight=1.00 PerfScore 37.50
 G_M40721_IG03:        ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
        test     esi, esi
-       je       G_M40721_IG23
+       je       G_M40721_IG18
                        ;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M40721_IG04:        ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      edx, esi
-       ; gcrRegs +[edx]
-       mov      esi, gword ptr [ebp+0x10]
-       jmp      SHORT G_M40721_IG14
-                       ;; size=7 bbWeight=0.45 PerfScore 1.45
-G_M40721_IG05:        ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[edx esi]
-       cmp      edi, ebx
-       je       SHORT G_M40721_IG08
-                       ;; size=4 bbWeight=0.50 PerfScore 0.63
-G_M40721_IG06:        ; bbWeight=0.45, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref
-       test     edi, edi
-       je       G_M40721_IG23
-                       ;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M40721_IG07:        ; bbWeight=0.45, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
-       mov      esi, gword ptr [ebp+0x10]
-       ; gcrRegs +[esi]
-       jmp      SHORT G_M40721_IG18
-                       ;; size=5 bbWeight=0.45 PerfScore 1.34
-G_M40721_IG08:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[esi edi]
-       mov      esi, gword ptr [ebp+0x10]
-       ; gcrRegs +[esi]
-       cmp      esi, ebx
-       je       SHORT G_M40721_IG13
-                       ;; size=7 bbWeight=0.50 PerfScore 1.13
-G_M40721_IG09:        ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
-       test     esi, esi
-       je       G_M40721_IG23
-                       ;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M40721_IG10:        ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
+G_M40721_IG04:        ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
        test     ebx, ebx
-       je       G_M40721_IG23
+       je       G_M40721_IG18
                        ;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M40721_IG11:        ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
+G_M40721_IG05:        ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, dword ptr [esi+0x04]
        cmp      edx, dword ptr [ebx+0x04]
-       jne      G_M40721_IG23
-                       ;; size=12 bbWeight=0.45 PerfScore 2.68
-G_M40721_IG12:        ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       jne      SHORT G_M40721_IG18
+                       ;; size=8 bbWeight=0.45 PerfScore 2.68
+G_M40721_IG06:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        lea      ecx, bword ptr [esi+0x08]
        ; byrRegs +[ecx]
        mov      edx, dword ptr [esi+0x04]
@@ -169,57 +138,29 @@ G_M40721_IG12:        ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=0
        lea      edx, bword ptr [ebx+0x08]
        ; byrRegs +[edx]
        call     [<unknown method>]
-       ; gcrRegs -[ebx esi]
+       ; gcrRegs -[esi]
        ; byrRegs -[ecx edx]
        test     eax, eax
-       je       SHORT G_M40721_IG23
+       je       SHORT G_M40721_IG18
                        ;; size=22 bbWeight=0.50 PerfScore 4.25
-G_M40721_IG13:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       xor      ecx, ecx
-       cmp      dword ptr [ebp+0x08], 2
-       setne    cl
-       test     cl, cl
-       jne      SHORT G_M40721_IG23
-       jmp      SHORT G_M40721_IG22
-                       ;; size=15 bbWeight=0.50 PerfScore 3.25
-G_M40721_IG14:        ; bbWeight=0.45, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[edx ebx esi edi]
-       test     ebx, ebx
-       je       SHORT G_M40721_IG23
+G_M40721_IG07:        ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
+       cmp      edi, ebx
+       je       SHORT G_M40721_IG12
+                       ;; size=4 bbWeight=0.50 PerfScore 0.63
+G_M40721_IG08:        ; bbWeight=0.45, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
+       test     edi, edi
+       je       SHORT G_M40721_IG18
                        ;; size=4 bbWeight=0.45 PerfScore 0.56
-G_M40721_IG15:        ; bbWeight=0.45, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      ecx, dword ptr [edx+0x04]
-       cmp      ecx, dword ptr [ebx+0x04]
-       jne      SHORT G_M40721_IG23
-                       ;; size=8 bbWeight=0.45 PerfScore 2.68
-G_M40721_IG16:        ; bbWeight=0.50, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       lea      ecx, bword ptr [edx+0x08]
-       ; byrRegs +[ecx]
-       mov      edx, dword ptr [edx+0x04]
-       ; gcrRegs -[edx]
-       add      edx, edx
-       push     edx
-       lea      edx, bword ptr [ebx+0x08]
-       ; byrRegs +[edx]
-       call     [<unknown method>]
-       ; byrRegs -[ecx edx]
-       test     eax, eax
-       je       SHORT G_M40721_IG23
-                       ;; size=22 bbWeight=0.50 PerfScore 4.25
-G_M40721_IG17:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      gword ptr [ebp+0x10], esi
-       jmp      SHORT G_M40721_IG05
-                       ;; size=5 bbWeight=0.50 PerfScore 1.50
-G_M40721_IG18:        ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M40721_IG09:        ; bbWeight=0.45, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
        test     ebx, ebx
-       je       SHORT G_M40721_IG23
+       je       SHORT G_M40721_IG18
                        ;; size=4 bbWeight=0.45 PerfScore 0.56
-G_M40721_IG19:        ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M40721_IG10:        ; bbWeight=0.45, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, dword ptr [edi+0x04]
        cmp      edx, dword ptr [ebx+0x04]
-       jne      SHORT G_M40721_IG23
+       jne      SHORT G_M40721_IG18
                        ;; size=8 bbWeight=0.45 PerfScore 2.68
-G_M40721_IG20:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M40721_IG11:        ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
        lea      ecx, bword ptr [edi+0x08]
        ; byrRegs +[ecx]
        mov      edx, dword ptr [edi+0x04]
@@ -231,36 +172,71 @@ G_M40721_IG20:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        ; gcrRegs -[edi]
        ; byrRegs -[ecx edx]
        test     eax, eax
-       je       SHORT G_M40721_IG23
+       je       SHORT G_M40721_IG18
                        ;; size=22 bbWeight=0.50 PerfScore 4.25
-G_M40721_IG21:        ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
-       mov      gword ptr [ebp+0x10], esi
-       jmp      G_M40721_IG08
-                       ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M40721_IG22:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ebx esi]
-       mov      ecx, 0xD1FFAB1E
-       ; gcrRegs +[ecx]
+G_M40721_IG12:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
+       mov      esi, gword ptr [ebp+0x10]
+       ; gcrRegs +[esi]
+       cmp      esi, ebx
+       je       SHORT G_M40721_IG17
+                       ;; size=7 bbWeight=0.50 PerfScore 1.13
+G_M40721_IG13:        ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       test     esi, esi
+       je       SHORT G_M40721_IG18
+                       ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M40721_IG14:        ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       test     ebx, ebx
+       je       SHORT G_M40721_IG18
+                       ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M40721_IG15:        ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edx, dword ptr [esi+0x04]
+       cmp      edx, dword ptr [ebx+0x04]
+       jne      SHORT G_M40721_IG18
+                       ;; size=8 bbWeight=0.45 PerfScore 2.68
+G_M40721_IG16:        ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       lea      ecx, bword ptr [esi+0x08]
+       ; byrRegs +[ecx]
+       mov      edx, dword ptr [esi+0x04]
+       add      edx, edx
+       push     edx
+       lea      edx, bword ptr [ebx+0x08]
+       ; byrRegs +[edx]
        call     [<unknown method>]
-       ; gcrRegs -[ecx]
-       xor      eax, eax
-       jmp      SHORT G_M40721_IG24
-                       ;; size=15 bbWeight=0.50 PerfScore 2.75
-G_M40721_IG23:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[ebx esi]
+       ; byrRegs -[ecx edx]
+       test     eax, eax
+       je       SHORT G_M40721_IG18
+                       ;; size=22 bbWeight=0.50 PerfScore 4.25
+G_M40721_IG17:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       xor      ecx, ecx
+       cmp      dword ptr [ebp+0x08], 2
+       setne    cl
+       test     cl, cl
+       je       SHORT G_M40721_IG20
+                       ;; size=13 bbWeight=0.50 PerfScore 2.25
+G_M40721_IG18:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        call     [<unknown method>]
        ; gcrRegs -[ecx]
        mov      eax, 1
                        ;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M40721_IG24:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M40721_IG19:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      12
                        ;; size=7 bbWeight=1 PerfScore 4.00
+G_M40721_IG20:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       mov      ecx, 0xD1FFAB1E
+       ; gcrRegs +[ecx]
+       call     [<unknown method>]
+       ; gcrRegs -[ecx]
+       xor      eax, eax
+       jmp      SHORT G_M40721_IG19
+                       ;; size=15 bbWeight=0.50 PerfScore 2.75
 
-; Total bytes of code 352, prolog size 6, PerfScore 86.68, instruction count 114, allocated bytes for code 352 (MethodHash=e0c360ee) for method Test_variancesmall_il.Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
+; Total bytes of code 313, prolog size 6, PerfScore 79.89, instruction count 104, allocated bytes for code 313 (MethodHash=e0c360ee) for method Test_variancesmall_il.Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
 ; ============================================================
 

-39 (-11.08%) : 499687.dasm - Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)

@@ -8,7 +8,7 @@
 ; 3 inlinees with PGO data; 23 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  8,  5.89)     ref  ->  registers   class-hnd single-def <System.String>
+;  V00 arg0         [V00,T00] (  8,  5.89)     ref  ->  esi         class-hnd single-def <System.String>
 ;  V01 arg1         [V01,T01] (  8,  5.39)     ref  ->  edi         class-hnd single-def <System.String>
 ;  V02 arg2         [V02,T06] (  6,  3.39)     ref  ->  [ebp+0x10]  class-hnd single-def <System.String>
 ;  V03 arg3         [V03,T02] ( 12,  6.18)     ref  ->  ebx         class-hnd single-def <System.String>
@@ -114,53 +114,22 @@ G_M40374_IG02:        ; bbWeight=1.00, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        call     [<unknown method>]
        ; gcrRegs -[eax ecx]
        cmp      esi, ebx
-       je       SHORT G_M40374_IG05
+       je       SHORT G_M40374_IG07
                        ;; size=116 bbWeight=1.00 PerfScore 37.50
 G_M40374_IG03:        ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
        test     esi, esi
-       je       G_M40374_IG23
+       je       G_M40374_IG18
                        ;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M40374_IG04:        ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      edx, esi
-       ; gcrRegs +[edx]
-       mov      esi, gword ptr [ebp+0x10]
-       jmp      SHORT G_M40374_IG14
-                       ;; size=7 bbWeight=0.45 PerfScore 1.45
-G_M40374_IG05:        ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[edx esi]
-       cmp      edi, ebx
-       je       SHORT G_M40374_IG08
-                       ;; size=4 bbWeight=0.50 PerfScore 0.63
-G_M40374_IG06:        ; bbWeight=0.45, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref
-       test     edi, edi
-       je       G_M40374_IG23
-                       ;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M40374_IG07:        ; bbWeight=0.45, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
-       mov      esi, gword ptr [ebp+0x10]
-       ; gcrRegs +[esi]
-       jmp      SHORT G_M40374_IG18
-                       ;; size=5 bbWeight=0.45 PerfScore 1.34
-G_M40374_IG08:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[esi edi]
-       mov      esi, gword ptr [ebp+0x10]
-       ; gcrRegs +[esi]
-       cmp      esi, ebx
-       je       SHORT G_M40374_IG13
-                       ;; size=7 bbWeight=0.50 PerfScore 1.13
-G_M40374_IG09:        ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
-       test     esi, esi
-       je       G_M40374_IG23
-                       ;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M40374_IG10:        ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
+G_M40374_IG04:        ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
        test     ebx, ebx
-       je       G_M40374_IG23
+       je       G_M40374_IG18
                        ;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M40374_IG11:        ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
+G_M40374_IG05:        ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, dword ptr [esi+0x04]
        cmp      edx, dword ptr [ebx+0x04]
-       jne      G_M40374_IG23
-                       ;; size=12 bbWeight=0.45 PerfScore 2.68
-G_M40374_IG12:        ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       jne      SHORT G_M40374_IG18
+                       ;; size=8 bbWeight=0.45 PerfScore 2.68
+G_M40374_IG06:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        lea      ecx, bword ptr [esi+0x08]
        ; byrRegs +[ecx]
        mov      edx, dword ptr [esi+0x04]
@@ -169,57 +138,29 @@ G_M40374_IG12:        ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=0
        lea      edx, bword ptr [ebx+0x08]
        ; byrRegs +[edx]
        call     [<unknown method>]
-       ; gcrRegs -[ebx esi]
+       ; gcrRegs -[esi]
        ; byrRegs -[ecx edx]
        test     eax, eax
-       je       SHORT G_M40374_IG23
+       je       SHORT G_M40374_IG18
                        ;; size=22 bbWeight=0.50 PerfScore 4.25
-G_M40374_IG13:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       xor      ecx, ecx
-       cmp      dword ptr [ebp+0x08], 2
-       setne    cl
-       test     cl, cl
-       jne      SHORT G_M40374_IG23
-       jmp      SHORT G_M40374_IG22
-                       ;; size=15 bbWeight=0.50 PerfScore 3.25
-G_M40374_IG14:        ; bbWeight=0.45, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[edx ebx esi edi]
-       test     ebx, ebx
-       je       SHORT G_M40374_IG23
+G_M40374_IG07:        ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
+       cmp      edi, ebx
+       je       SHORT G_M40374_IG12
+                       ;; size=4 bbWeight=0.50 PerfScore 0.63
+G_M40374_IG08:        ; bbWeight=0.45, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
+       test     edi, edi
+       je       SHORT G_M40374_IG18
                        ;; size=4 bbWeight=0.45 PerfScore 0.56
-G_M40374_IG15:        ; bbWeight=0.45, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      ecx, dword ptr [edx+0x04]
-       cmp      ecx, dword ptr [ebx+0x04]
-       jne      SHORT G_M40374_IG23
-                       ;; size=8 bbWeight=0.45 PerfScore 2.68
-G_M40374_IG16:        ; bbWeight=0.50, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       lea      ecx, bword ptr [edx+0x08]
-       ; byrRegs +[ecx]
-       mov      edx, dword ptr [edx+0x04]
-       ; gcrRegs -[edx]
-       add      edx, edx
-       push     edx
-       lea      edx, bword ptr [ebx+0x08]
-       ; byrRegs +[edx]
-       call     [<unknown method>]
-       ; byrRegs -[ecx edx]
-       test     eax, eax
-       je       SHORT G_M40374_IG23
-                       ;; size=22 bbWeight=0.50 PerfScore 4.25
-G_M40374_IG17:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      gword ptr [ebp+0x10], esi
-       jmp      SHORT G_M40374_IG05
-                       ;; size=5 bbWeight=0.50 PerfScore 1.50
-G_M40374_IG18:        ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M40374_IG09:        ; bbWeight=0.45, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
        test     ebx, ebx
-       je       SHORT G_M40374_IG23
+       je       SHORT G_M40374_IG18
                        ;; size=4 bbWeight=0.45 PerfScore 0.56
-G_M40374_IG19:        ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M40374_IG10:        ; bbWeight=0.45, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, dword ptr [edi+0x04]
        cmp      edx, dword ptr [ebx+0x04]
-       jne      SHORT G_M40374_IG23
+       jne      SHORT G_M40374_IG18
                        ;; size=8 bbWeight=0.45 PerfScore 2.68
-G_M40374_IG20:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M40374_IG11:        ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
        lea      ecx, bword ptr [edi+0x08]
        ; byrRegs +[ecx]
        mov      edx, dword ptr [edi+0x04]
@@ -231,36 +172,71 @@ G_M40374_IG20:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        ; gcrRegs -[edi]
        ; byrRegs -[ecx edx]
        test     eax, eax
-       je       SHORT G_M40374_IG23
+       je       SHORT G_M40374_IG18
                        ;; size=22 bbWeight=0.50 PerfScore 4.25
-G_M40374_IG21:        ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
-       mov      gword ptr [ebp+0x10], esi
-       jmp      G_M40374_IG08
-                       ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M40374_IG22:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ebx esi]
-       mov      ecx, 0xD1FFAB1E
-       ; gcrRegs +[ecx]
+G_M40374_IG12:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
+       mov      esi, gword ptr [ebp+0x10]
+       ; gcrRegs +[esi]
+       cmp      esi, ebx
+       je       SHORT G_M40374_IG17
+                       ;; size=7 bbWeight=0.50 PerfScore 1.13
+G_M40374_IG13:        ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       test     esi, esi
+       je       SHORT G_M40374_IG18
+                       ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M40374_IG14:        ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       test     ebx, ebx
+       je       SHORT G_M40374_IG18
+                       ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M40374_IG15:        ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edx, dword ptr [esi+0x04]
+       cmp      edx, dword ptr [ebx+0x04]
+       jne      SHORT G_M40374_IG18
+                       ;; size=8 bbWeight=0.45 PerfScore 2.68
+G_M40374_IG16:        ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       lea      ecx, bword ptr [esi+0x08]
+       ; byrRegs +[ecx]
+       mov      edx, dword ptr [esi+0x04]
+       add      edx, edx
+       push     edx
+       lea      edx, bword ptr [ebx+0x08]
+       ; byrRegs +[edx]
        call     [<unknown method>]
-       ; gcrRegs -[ecx]
-       xor      eax, eax
-       jmp      SHORT G_M40374_IG24
-                       ;; size=15 bbWeight=0.50 PerfScore 2.75
-G_M40374_IG23:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[ebx esi]
+       ; byrRegs -[ecx edx]
+       test     eax, eax
+       je       SHORT G_M40374_IG18
+                       ;; size=22 bbWeight=0.50 PerfScore 4.25
+G_M40374_IG17:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       xor      ecx, ecx
+       cmp      dword ptr [ebp+0x08], 2
+       setne    cl
+       test     cl, cl
+       je       SHORT G_M40374_IG20
+                       ;; size=13 bbWeight=0.50 PerfScore 2.25
+G_M40374_IG18:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        call     [<unknown method>]
        ; gcrRegs -[ecx]
        mov      eax, 1
                        ;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M40374_IG24:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M40374_IG19:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      12
                        ;; size=7 bbWeight=1 PerfScore 4.00
+G_M40374_IG20:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       mov      ecx, 0xD1FFAB1E
+       ; gcrRegs +[ecx]
+       call     [<unknown method>]
+       ; gcrRegs -[ecx]
+       xor      eax, eax
+       jmp      SHORT G_M40374_IG19
+                       ;; size=15 bbWeight=0.50 PerfScore 2.75
 
-; Total bytes of code 352, prolog size 6, PerfScore 86.68, instruction count 114, allocated bytes for code 352 (MethodHash=6fa76249) for method Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
+; Total bytes of code 313, prolog size 6, PerfScore 79.89, instruction count 104, allocated bytes for code 313 (MethodHash=6fa76249) for method Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
 ; ============================================================
 

+29 (+103.57%) : 509006.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)

@@ -2,33 +2,50 @@
 ; Emitting BLENDED_CODE for X86 with AVX512 - Windows
 ; FullOpts code
 ; optimized code
-; esp based frame
+; ebp 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   
-;  TEMP_01                                   float  ->  [esp+0x00]
+;  V00 loc0         [V00,T00] (  4,  3.50)   float  ->  mm0         single-def
+;  V01 cse0         [V01,T01] (  3,  2.50)   float  ->  mm1         "CSE - aggressive"
+;  TEMP_01                                   float  ->  [ebp-0x04]
 ;
 ; Lcl frame size = 4
 
 G_M53663_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+       push     ebp
+       mov      ebp, esp
        push     eax
        vzeroupper 
-                       ;; size=4 bbWeight=1 PerfScore 2.00
-G_M53663_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+                       ;; size=7 bbWeight=1 PerfScore 3.25
+G_M53663_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, 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]
-       fstp     dword ptr [esp]
-       vmovss   xmm0, dword ptr [esp]
-       vmovss   dword ptr [esp], xmm0
-       fld      dword ptr [esp]
-                       ;; size=22 bbWeight=1 PerfScore 8.00
-G_M53663_IG03:        ; bbWeight=1, epilog, nogc, extend
-       pop      ecx
+       fstp     dword ptr [ebp-0x04]
+       vmovss   xmm0, dword ptr [ebp-0x04]
+       vmovss   xmm1, dword ptr [@RWD00]
+       vucomiss xmm1, xmm0
+       jbe      SHORT G_M53663_IG05
+                       ;; size=28 bbWeight=1 PerfScore 12.50
+G_M53663_IG03:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       vmovss   dword ptr [ebp-0x04], xmm0
+       fld      dword ptr [ebp-0x04]
+                       ;; size=8 bbWeight=1 PerfScore 1.50
+G_M53663_IG04:        ; bbWeight=1, epilog, nogc, extend
+       mov      esp, ebp
+       pop      ebp
        ret      
-                       ;; size=2 bbWeight=1 PerfScore 1.50
+                       ;; size=4 bbWeight=1 PerfScore 1.75
+G_M53663_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, 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 28, prolog size 4, PerfScore 11.50, instruction count 9, allocated bytes for code 32 (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 57, prolog size 7, PerfScore 22.00, instruction count 19, allocated bytes for code 57 (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)
 ; ============================================================
 

+35 (+125.00%) : 505069.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)

@@ -2,36 +2,54 @@
 ; Emitting BLENDED_CODE for X86 with AVX512 - Windows
 ; FullOpts code
 ; optimized code
-; esp based frame
+; ebp 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 cse0         [V03,T01] (  0,  0   )   float  ->  zero-ref    "CSE - aggressive"
-;  TEMP_01                                   float  ->  [esp+0x00]
+;  V03 cse0         [V03,T01] (  4,  3   )   float  ->  mm1         "CSE - aggressive"
+;  TEMP_01                                   float  ->  [ebp-0x04]
 ;
 ; Lcl frame size = 4
 
 G_M53663_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+       push     ebp
+       mov      ebp, esp
        push     eax
        vzeroupper 
-                       ;; size=4 bbWeight=1 PerfScore 2.00
-G_M53663_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+                       ;; size=7 bbWeight=1 PerfScore 3.25
+G_M53663_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, 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]
-       fstp     dword ptr [esp]
-       vmovss   xmm0, dword ptr [esp]
-       vmovss   dword ptr [esp], xmm0
-       fld      dword ptr [esp]
-                       ;; size=22 bbWeight=1 PerfScore 8.00
-G_M53663_IG03:        ; bbWeight=1, epilog, nogc, extend
-       pop      ecx
+       fstp     dword ptr [ebp-0x04]
+       vmovss   xmm0, dword ptr [ebp-0x04]
+       vmovss   xmm1, dword ptr [@RWD00]
+       vucomiss xmm1, xmm0
+       jbe      SHORT G_M53663_IG05
+                       ;; size=28 bbWeight=1 PerfScore 12.50
+G_M53663_IG03:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       vmovss   dword ptr [ebp-0x04], xmm0
+       fld      dword ptr [ebp-0x04]
+                       ;; size=8 bbWeight=1 PerfScore 1.50
+G_M53663_IG04:        ; bbWeight=1, epilog, nogc, extend
+       mov      esp, ebp
+       pop      ebp
        ret      
-                       ;; size=2 bbWeight=1 PerfScore 1.50
+                       ;; size=4 bbWeight=1 PerfScore 1.75
+G_M53663_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, 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 28, prolog size 4, PerfScore 11.50, instruction count 9, allocated bytes for code 32 (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 63, prolog size 7, PerfScore 23.50, instruction count 21, allocated bytes for code 63 (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)
 ; ============================================================
 

+43 (+153.57%) : 509058.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_1():float (FullOpts)

@@ -2,34 +2,58 @@
 ; Emitting BLENDED_CODE for X86 with AVX512 - Windows
 ; FullOpts code
 ; optimized code
-; esp based frame
+; ebp 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   
-;  V01 tmp0         [V01,T00] (  2,  4   )   float  ->  mm0         "Single return block return value"
-;  TEMP_01                                   float  ->  [esp+0x00]
+;  V00 loc0         [V00,T00] (  6,  4.50)   float  ->  mm0         single-def
+;  V01 tmp0         [V01,T01] (  2,  4   )   float  ->  mm0         "Single return block return value"
+;  V02 cse0         [V02,T02] (  5,  3.50)   float  ->  mm1         "CSE - aggressive"
+;  TEMP_01                                   float  ->  [ebp-0x04]
 ;
 ; Lcl frame size = 4
 
 G_M53791_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+       push     ebp
+       mov      ebp, esp
        push     eax
        vzeroupper 
-                       ;; size=4 bbWeight=1 PerfScore 2.00
-G_M53791_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+                       ;; size=7 bbWeight=1 PerfScore 3.25
+G_M53791_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, 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]
-       fstp     dword ptr [esp]
-       vmovss   xmm0, dword ptr [esp]
-       vmovss   dword ptr [esp], xmm0
-       fld      dword ptr [esp]
-                       ;; size=22 bbWeight=1 PerfScore 8.00
-G_M53791_IG03:        ; bbWeight=1, epilog, nogc, extend
-       pop      ecx
+       fstp     dword ptr [ebp-0x04]
+       vmovss   xmm0, dword ptr [ebp-0x04]
+       vmovss   xmm1, dword ptr [@RWD00]
+       vucomiss xmm0, xmm1
+       jbe      SHORT G_M53791_IG04
+                       ;; size=28 bbWeight=1 PerfScore 12.50
+G_M53791_IG03:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M53791_IG05
+                       ;; size=2 bbWeight=1 PerfScore 2.00
+G_M53791_IG04:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, 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=00000000 {}, byrefRegs=00000000 {}, byref
+       vmovss   dword ptr [ebp-0x04], xmm0
+       fld      dword ptr [ebp-0x04]
+                       ;; size=8 bbWeight=1 PerfScore 1.50
+G_M53791_IG06:        ; bbWeight=1, epilog, nogc, extend
+       mov      esp, ebp
+       pop      ebp
        ret      
-                       ;; size=2 bbWeight=1 PerfScore 1.50
+                       ;; size=4 bbWeight=1 PerfScore 1.75
+RWD00      dd  41200000h       ;        10
 
-; Total bytes of code 28, prolog size 4, PerfScore 11.50, instruction count 9, allocated bytes for code 32 (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 71, prolog size 7, PerfScore 27.00, instruction count 24, allocated bytes for code 71 (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)
 ; ============================================================
 

libraries.crossgen2.windows.x86.checked.mch

-31 (-5.59%) : 83605.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase:GetFilesCore(Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFileReference]:this (FullOpts)

@@ -9,9 +9,9 @@
 ; 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  ->  esi         this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase>
+;  V00 this         [V00,T03] (  7,  7.50)     ref  ->  ebx         this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase>
 ;  V01 arg1         [V01    ] (  4,  5   )  struct (24) [ebp+0x08]  do-not-enreg[XSF] addr-exposed ld-addr-op single-def <Microsoft.CodeAnalysis.Emit.EmitContext>
-;  V02 arg2         [V02,T05] (  6,  5   )   byref  ->  ebx         single-def
+;  V02 arg2         [V02,T05] (  6,  5   )   byref  ->  esi         single-def
 ;  V03 loc0         [V03,T04] (  7,  7   )     ref  ->  [ebp-0x2C]  class-hnd EH-live spill-single-def <<unknown class>>
 ;* V04 loc1         [V04    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.ModuleSymbol]>
 ;  V05 loc2         [V05,T07] (  6,  6   )     int  ->  [ebp-0x24]  spill-single-def
@@ -20,11 +20,11 @@
 ;  V08 loc5         [V08,T08] (  3,  6   )     ref  ->  edi         class-hnd <<unknown class>>
 ;  V09 tmp0         [V09,T09] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "Single-def Box Helper" <System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.IFileReference]>
 ;* V10 tmp1         [V10    ] (  0,  0   )  struct ( 4) zero-ref    single-def "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.IFileReference]>
-;  V11 tmp2         [V11,T13] (  2,  2   )     ref  ->  esi         class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.DiagnosticBag>
-;  V12 tmp3         [V12,T11] (  3,  3   )     ref  ->  edi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.VisualBasic.VBDiagnostic>
+;  V11 tmp2         [V11,T13] (  2,  2   )     ref  ->  edi         class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.DiagnosticBag>
+;  V12 tmp3         [V12,T11] (  3,  3   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.VisualBasic.VBDiagnostic>
 ;* V13 tmp4         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAssemblySymbol>
 ;  V14 tmp5         [V14,T12] (  3,  3   )     ref  ->  [ebp-0x34]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.DiagnosticInfo>
-;  V15 tmp6         [V15,T14] (  2,  2   )     ref  ->  edi         class-hnd exact single-def "finalizable newobj spill" <<unknown class>>
+;  V15 tmp6         [V15,T14] (  2,  2   )     ref  ->  ebx         class-hnd exact single-def "finalizable newobj spill" <<unknown class>>
 ;* V16 tmp7         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.Location>
 ;  V17 tmp8         [V17,T10] (  5,  5.50)     ref  ->  edi         single-def "field V04.array (fldOffset=0x0)" P-INDEP
 ;  V18 tmp9         [V18,T15] (  2,  1   )     ref  ->  eax         "field V10.array (fldOffset=0x0)" P-INDEP
@@ -44,33 +44,33 @@ G_M43962_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        xorps    xmm4, xmm4
        movups   xmmword ptr [ebp-0x30], xmm4
        movups   xmmword ptr [ebp-0x20], xmm4
-       mov      esi, ecx
-       ; gcrRegs +[esi]
-       mov      ebx, edx
-       ; byrRegs +[ebx]
+       mov      ebx, ecx
+       ; gcrRegs +[ebx]
+       mov      esi, edx
+       ; byrRegs +[esi]
                        ;; size=24 bbWeight=1 PerfScore 9.33
-G_M43962_IG02:        ; bbWeight=1, gcVars=00000040 {V07}, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, gcvars, byref
+G_M43962_IG02:        ; bbWeight=1, gcVars=00000040 {V07}, gcrefRegs=00000008 {ebx}, byrefRegs=00000040 {esi}, gcvars, byref
        ; GC ptr vars +{V06 V07}
        mov      edx, dword ptr [(reloc)]      ; System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.IFileReference]
-       mov      ecx, ebx
+       mov      ecx, esi
        ; byrRegs +[ecx]
        call     [<unknown method>]
        ; byrRegs -[ecx]
        test     eax, eax
        je       G_M43962_IG17
                        ;; size=22 bbWeight=1 PerfScore 6.50
-G_M43962_IG03:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
+G_M43962_IG03:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000040 {esi}, byref
        mov      ecx, dword ptr [(reloc)]      ; <unknown class>
        call     [<unknown method>]
        ; gcrRegs +[eax]
        mov      gword ptr [ebp-0x2C], eax
        ; GC ptr vars +{V03}
                        ;; size=15 bbWeight=0.50 PerfScore 3.00
-G_M43962_IG04:        ; bbWeight=0.50, gcVars=00000050 {V03 V07}, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, gcvars, byref, isz
+G_M43962_IG04:        ; bbWeight=0.50, gcVars=00000050 {V03 V07}, gcrefRegs=00000008 {ebx}, byrefRegs=00000040 {esi}, gcvars, byref, isz
        ; gcrRegs -[eax]
        ; GC ptr vars -{V06}
        mov      edx, dword ptr [(reloc)]      ; const ptr
-       mov      edx, gword ptr [esi+edx]
+       mov      edx, gword ptr [ebx+edx]
        ; gcrRegs +[edx]
        mov      edi, gword ptr [edx+0x50]
        ; gcrRegs +[edi]
@@ -82,18 +82,18 @@ G_M43962_IG04:        ; bbWeight=0.50, gcVars=00000050 {V03 V07}, gcrefRegs=0000
        test     ecx, ecx
        jle      SHORT G_M43962_IG06
        test     ecx, ecx
-       jl       G_M43962_IG08
+       jl       SHORT G_M43962_IG07
        cmp      dword ptr [edi+0x04], ecx
-       jle      G_M43962_IG08
-                       ;; size=45 bbWeight=0.50 PerfScore 8.00
-G_M43962_IG05:        ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000008 {ebx}, byref, isz
+       jle      SHORT G_M43962_IG07
+                       ;; size=37 bbWeight=0.50 PerfScore 8.00
+G_M43962_IG05:        ; bbWeight=3.96, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000040 {esi}, byref, isz
        mov      dword ptr [ebp-0x28], edx
        mov      eax, gword ptr [edi+4*edx+0x08]
        ; gcrRegs +[eax]
        push     gword ptr [ebp+0x18]
        mov      edx, eax
        ; gcrRegs +[edx]
-       mov      ecx, esi
+       mov      ecx, ebx
        ; gcrRegs +[ecx]
        call     [Microsoft.CodeAnalysis.VisualBasic.Emit.PEModuleBuilder:Translate(Microsoft.CodeAnalysis.VisualBasic.Symbols.ModuleSymbol,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.Cci.IModuleReference:this]
        ; gcrRegs -[ecx edx]
@@ -114,98 +114,23 @@ G_M43962_IG05:        ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        cmp      edx, eax
        jle      SHORT G_M43962_IG05
                        ;; size=52 bbWeight=3.96 PerfScore 85.14
-G_M43962_IG06:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
+G_M43962_IG06:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000040 {esi}, byref, isz
        ; gcrRegs -[edi]
        lea      ecx, [ebp+0x08]
        call     [<unknown method>]
        test     eax, eax
-       je       G_M43962_IG09
-                       ;; size=17 bbWeight=0.50 PerfScore 2.38
-G_M43962_IG07:        ; bbWeight=0.50, gcVars=00000010 {V03}, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, gcvars, byref
-       ; GC ptr vars -{V07}
-       mov      ecx, gword ptr [ebp-0x2C]
-       ; gcrRegs +[ecx]
-       cmp      dword ptr [ecx], ecx
-       call     [<unknown method>]
-       ; gcrRegs -[ecx] +[eax]
-       push     eax
-       mov      edx, dword ptr [(reloc)]      ; <unknown method>
-       mov      ecx, ebx
-       ; byrRegs +[ecx]
-       call     [<unknown method>]
-       ; gcrRegs -[eax]
-       ; byrRegs -[ecx]
-       test     eax, eax
-       je       G_M43962_IG15
-       mov      ecx, gword ptr [ebx]
-       ; gcrRegs +[ecx]
-       cmp      dword ptr [ecx+0x04], 0
-       jle      G_M43962_IG15
-       mov      ecx, dword ptr [(reloc)]      ; const ptr
-       ; gcrRegs -[ecx]
-       mov      ecx, gword ptr [esi+ecx]
-       ; gcrRegs +[ecx]
-       cmp      dword ptr [ecx], ecx
-       call     [Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAssemblySymbol:get_HashAlgorithm():int:this]
-       ; gcrRegs -[ecx esi]
-       mov      ecx, eax
-       call     [<unknown method>]
-       test     eax, eax
-       jne      G_M43962_IG15
-       mov      esi, gword ptr [ebp+0x18]
-       ; gcrRegs +[esi]
-       call     [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
-       ; byrRegs +[eax]
-       mov      edi, gword ptr [eax+0x230]
+       jne      G_M43962_IG14
+       jmp      SHORT G_M43962_IG08
+                       ;; size=19 bbWeight=0.50 PerfScore 3.38
+G_M43962_IG07:        ; bbWeight=0.04, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000040 {esi}, byref, isz
        ; gcrRegs +[edi]
-       call     [CORINFO_HELP_READYTORUN_NEW]
-       ; gcrRegs +[eax]
-       ; byrRegs -[eax]
-       mov      gword ptr [ebp-0x34], eax
-       ; GC ptr vars +{V14}
-       push     0x915F
-       mov      ecx, eax
-       ; gcrRegs +[ecx]
-       mov      edx, edi
-       ; gcrRegs +[edx]
-       call     [<unknown method>]
-       ; gcrRegs -[eax ecx edx edi]
-       call     [CORINFO_HELP_READYTORUN_NEW]
-       ; gcrRegs +[eax]
-       mov      edi, eax
-       ; gcrRegs +[edi]
-       call     [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
-       ; gcrRegs -[eax]
-       ; byrRegs +[eax]
-       push     gword ptr [eax]
-       push     0
-       mov      edx, gword ptr [ebp-0x34]
-       ; gcrRegs +[edx]
-       mov      ecx, edi
-       ; gcrRegs +[ecx]
-       ; GC ptr vars -{V14}
-       call     [<unknown method>]
-       ; gcrRegs -[ecx edx]
-       ; byrRegs -[eax]
-       mov      ecx, esi
-       ; gcrRegs +[ecx]
-       mov      edx, edi
-       ; gcrRegs +[edx]
-       cmp      dword ptr [ecx], ecx
-       call     [<unknown method>]
-       ; gcrRegs -[ecx edx esi edi]
-       jmp      G_M43962_IG15
-                       ;; size=164 bbWeight=0.50 PerfScore 35.75
-G_M43962_IG08:        ; bbWeight=0.04, gcVars=00000050 {V03 V07}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000008 {ebx}, gcvars, byref, isz
-       ; gcrRegs +[esi edi]
-       ; GC ptr vars +{V06 V07}
        mov      dword ptr [ebp-0x28], edx
        mov      ecx, gword ptr [edi+4*edx+0x08]
        ; gcrRegs +[ecx]
        push     gword ptr [ebp+0x18]
        mov      edx, ecx
        ; gcrRegs +[edx]
-       mov      ecx, esi
+       mov      ecx, ebx
        call     [Microsoft.CodeAnalysis.VisualBasic.Emit.PEModuleBuilder:Translate(Microsoft.CodeAnalysis.VisualBasic.Symbols.ModuleSymbol,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.Cci.IModuleReference:this]
        ; gcrRegs -[ecx edx] +[eax]
        mov      ecx, eax
@@ -224,20 +149,20 @@ G_M43962_IG08:        ; bbWeight=0.04, gcVars=00000050 {V03 V07}, gcrefRegs=0000
        mov      eax, dword ptr [ebp-0x24]
        cmp      ecx, eax
        mov      edx, ecx
-       jle      SHORT G_M43962_IG08
-       jmp      G_M43962_IG06
-                       ;; size=59 bbWeight=0.04 PerfScore 0.95
-G_M43962_IG09:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref, isz
+       jle      SHORT G_M43962_IG07
+       jmp      SHORT G_M43962_IG06
+                       ;; size=56 bbWeight=0.04 PerfScore 0.95
+G_M43962_IG08:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000040 {esi}, byref, isz
        ; gcrRegs -[edi]
        mov      ecx, dword ptr [(reloc)]      ; const ptr
-       mov      ecx, gword ptr [esi+ecx]
+       mov      ecx, gword ptr [ebx+ecx]
        ; gcrRegs +[ecx]
        call     [<unknown method>]
        ; gcrRegs -[ecx] +[eax]
        mov      gword ptr [ebp-0x30], eax
-       jmp      SHORT G_M43962_IG11
+       jmp      SHORT G_M43962_IG10
                        ;; size=20 bbWeight=0.50 PerfScore 5.00
-G_M43962_IG10:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref, isz
+G_M43962_IG09:        ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000040 {esi}, byref, isz
        ; gcrRegs -[eax]
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
@@ -251,7 +176,7 @@ G_M43962_IG10:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000008
        call     [<unknown method>]
        ; gcrRegs -[eax ecx]
        test     eax, eax
-       jne      SHORT G_M43962_IG11
+       jne      SHORT G_M43962_IG10
        mov      ecx, gword ptr [ebp-0x2C]
        ; gcrRegs +[ecx]
        mov      edx, edi
@@ -260,7 +185,7 @@ G_M43962_IG10:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000008
        call     [<unknown method>]
        ; gcrRegs -[ecx edx edi]
                        ;; size=38 bbWeight=2 PerfScore 38.00
-G_M43962_IG11:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref, isz
+G_M43962_IG10:        ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000040 {esi}, byref, isz
        mov      eax, gword ptr [ebp-0x30]
        ; gcrRegs +[eax]
        mov      ecx, eax
@@ -268,34 +193,108 @@ G_M43962_IG11:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000008
        call     [<unknown method>]
        ; gcrRegs -[eax ecx]
        test     eax, eax
-       jne      SHORT G_M43962_IG10
...

-10 (-4.46%) : 31014.dasm - System.Data.DataTable:ResetInternalIndexes(System.Data.DataColumn):this (FullOpts)

@@ -57,7 +57,7 @@ G_M42511_IG03:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      dword ptr [ebp-0x24], ebx
        xor      eax, eax
        test     ebx, ebx
-       jle      SHORT G_M42511_IG09
+       jle      SHORT G_M42511_IG10
                        ;; size=32 bbWeight=1 PerfScore 13.75
 G_M42511_IG04:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [ebp-0x30]
@@ -74,7 +74,7 @@ G_M42511_IG04:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
                        ;; size=29 bbWeight=4 PerfScore 61.00
 G_M42511_IG05:        ; bbWeight=2, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
        test     esi, esi
-       je       SHORT G_M42511_IG10
+       je       SHORT G_M42511_IG09
        mov      ecx, gword ptr [eax+0x08]
        ; gcrRegs +[ecx]
        xor      edx, edx
@@ -86,7 +86,7 @@ G_M42511_IG06:        ; bbWeight=16, gcrefRegs=00000043 {eax ecx esi}, byrefRegs
        mov      edi, gword ptr [ecx+8*edx+0x08]
        ; gcrRegs +[edi]
        cmp      esi, edi
-       je       SHORT G_M42511_IG10
+       je       SHORT G_M42511_IG09
        inc      edx
        cmp      ebx, edx
        jg       SHORT G_M42511_IG06
@@ -98,19 +98,14 @@ G_M42511_IG07:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      ebx, dword ptr [ebp-0x24]
        cmp      edi, ebx
        mov      eax, edi
-       jl       SHORT G_M42511_IG08
-       jmp      SHORT G_M42511_IG11
-                       ;; size=15 bbWeight=4 PerfScore 23.00
-G_M42511_IG08:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      edi, dword ptr [ebp-0x2C]
-       jmp      SHORT G_M42511_IG04
-                       ;; size=5 bbWeight=2 PerfScore 6.00
-G_M42511_IG09:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       jl       SHORT G_M42511_IG04
+                       ;; size=16 bbWeight=4 PerfScore 19.00
+G_M42511_IG08:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
-       mov      dword ptr [ebp-0x2C], edi
-       jmp      SHORT G_M42511_IG11
-                       ;; size=5 bbWeight=0.50 PerfScore 1.50
-G_M42511_IG10:        ; bbWeight=2, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M42511_IG10
+                       ;; size=2 bbWeight=1 PerfScore 2.00
+G_M42511_IG09:        ; bbWeight=2, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[eax esi]
        mov      ecx, eax
        ; gcrRegs +[ecx]
@@ -118,40 +113,39 @@ G_M42511_IG10:        ; bbWeight=2, gcrefRegs=00000041 {eax esi}, byrefRegs=0000
        ; gcrRegs -[eax ecx]
        jmp      SHORT G_M42511_IG07
                        ;; size=10 bbWeight=2 PerfScore 10.50
-G_M42511_IG11:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M42511_IG10:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
-       mov      edi, dword ptr [ebp-0x2C]
        dec      dword ptr [ecx+edi+0xD0]
        cmp      dword ptr [ecx+edi+0xD0], 0
-       jne      SHORT G_M42511_IG15
-                       ;; size=23 bbWeight=1 PerfScore 9.00
-G_M42511_IG12:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       jne      SHORT G_M42511_IG14
+                       ;; size=20 bbWeight=1 PerfScore 8.00
+G_M42511_IG11:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        xor      eax, eax
        ; gcrRegs +[eax]
        mov      gword ptr [ecx+edi+0x2C], eax
-       jmp      SHORT G_M42511_IG15
+       jmp      SHORT G_M42511_IG14
                        ;; size=8 bbWeight=0.50 PerfScore 1.62
-G_M42511_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M42511_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax ecx]
        mov      edi, dword ptr [(reloc)]      ; const ptr
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
        dec      dword ptr [ecx+edi+0xD0]
        cmp      dword ptr [ecx+edi+0xD0], 0
-       jne      SHORT G_M42511_IG14
+       jne      SHORT G_M42511_IG13
        xor      eax, eax
        ; gcrRegs +[eax]
        mov      gword ptr [ecx+edi+0x2C], eax
                        ;; size=32 bbWeight=0 PerfScore 0.00
-G_M42511_IG14:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M42511_IG13:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[eax ecx]
        ; GC ptr vars -{V00}
        pop      eax
        jmp      eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M42511_IG15:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M42511_IG14:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -160,9 +154,9 @@ G_M42511_IG15:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ret      
                        ;; size=8 bbWeight=1 PerfScore 3.50
 
-; Total bytes of code 224, prolog size 19, PerfScore 229.38, instruction count 80, allocated bytes for code 224 (MethodHash=9ec459f0) for method System.Data.DataTable:ResetInternalIndexes(System.Data.DataColumn):this (FullOpts)
+; Total bytes of code 214, prolog size 19, PerfScore 218.88, instruction count 76, allocated bytes for code 214 (MethodHash=9ec459f0) for method System.Data.DataTable:ResetInternalIndexes(System.Data.DataColumn):this (FullOpts)
 ; ============================================================
 
 *************** EH table for System.Data.DataTable:ResetInternalIndexes(System.Data.DataColumn):this
 1 EH table entries, 1 total EH entries reported to VM
-EH#0: try [G_M42511_IG03..G_M42511_IG11) handled by [G_M42511_IG13..G_M42511_IG15) (fault)
+EH#0: try [G_M42511_IG03..G_M42511_IG10) handled by [G_M42511_IG12..G_M42511_IG14) (fault)

-16 (-3.66%) : 146398.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)

@@ -48,16 +48,16 @@ G_M11729_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ; gcrRegs +[edi]
        mov      ebx, dword ptr [ebp+0x08]
                        ;; size=14 bbWeight=1 PerfScore 6.75
-G_M11729_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+G_M11729_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, dword ptr [esi+0x2C]
        cmp      ecx, 10
-       ja       G_M11729_IG14
+       ja       SHORT G_M11729_IG06
        lea      edx, [reloc @RWD00]
        mov      edx, dword ptr [edx+4*ecx]
        lea      eax, G_M11729_IG02
        add      edx, eax
        jmp      edx
-                       ;; size=31 bbWeight=1 PerfScore 9.00
+                       ;; size=27 bbWeight=1 PerfScore 9.00
 G_M11729_IG03:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        cmp      byte  ptr [esi+0x40], 0
        jne      SHORT G_M11729_IG04
@@ -74,27 +74,40 @@ G_M11729_IG04:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        mov      eax, dword ptr [eax+0x18]
        ; gcrRegs -[eax]
                        ;; size=6 bbWeight=0.50 PerfScore 2.00
-G_M11729_IG05:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+G_M11729_IG05:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        dec      eax
        cmp      eax, 2
-       ja       G_M11729_IG14
+       ja       SHORT G_M11729_IG06
        mov      ecx, eax
        lea      edx, [reloc @RWD44]
        mov      edx, dword ptr [edx+4*ecx]
        lea      eax, G_M11729_IG02
        add      edx, eax
        jmp      edx
-                       ;; size=31 bbWeight=0.50 PerfScore 3.75
-G_M11729_IG06:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+                       ;; size=27 bbWeight=0.50 PerfScore 3.75
+G_M11729_IG06:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[esi edi]
+       xor      eax, eax
+                       ;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M11729_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      ecx
+       pop      ebx
+       pop      esi
+       pop      edi
+       pop      ebp
+       ret      8
+                       ;; size=8 bbWeight=0.50 PerfScore 2.25
+G_M11729_IG08:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs +[esi edi]
        cmp      dword ptr [esi+0x34], -1
-       je       G_M11729_IG09
+       je       G_M11729_IG11
        mov      ecx, gword ptr [esi+0x04]
        ; gcrRegs +[ecx]
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
        ; gcrRegs -[ecx]
        test     eax, eax
-       je       G_M11729_IG09
+       je       G_M11729_IG11
        push     ebx
        mov      ecx, edi
        ; gcrRegs +[ecx]
@@ -102,30 +115,30 @@ G_M11729_IG06:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        call     [System.Xml.XmlSubtreeReader:CheckBuffer(System.Array,int,int)]
        ; gcrRegs -[ecx]
        test     ebx, ebx
-       je       G_M11729_IG14
+       je       SHORT G_M11729_IG06
        cmp      dword ptr [esi+0x38], 0
-       jne      SHORT G_M11729_IG08
+       jne      SHORT G_M11729_IG10
        mov      edx, gword ptr [esi+0x1C]
        ; gcrRegs +[edx]
        mov      gword ptr [ebp-0x10], edx
        ; GC ptr vars +{V19}
        test     edx, edx
-       je       SHORT G_M11729_IG07
+       je       SHORT G_M11729_IG09
        mov      ecx, edx
        ; gcrRegs +[ecx]
        call     [CORINFO_HELP_READYTORUN_ISINSTANCEOF]
        ; gcrRegs -[ecx edx] +[eax]
        test     eax, eax
-       je       SHORT G_M11729_IG07
+       je       SHORT G_M11729_IG09
        mov      ecx, gword ptr [ebp-0x10]
        ; gcrRegs +[ecx]
        cmp      dword ptr [ecx], ecx
        ; GC ptr vars -{V19}
        call     [<unknown method>]
        ; gcrRegs -[eax ecx]
-       jmp      SHORT G_M11729_IG08
-                       ;; size=90 bbWeight=0.50 PerfScore 20.75
-G_M11729_IG07:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+       jmp      SHORT G_M11729_IG10
+                       ;; size=86 bbWeight=0.50 PerfScore 20.75
+G_M11729_IG09:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
        call     [CORINFO_HELP_READYTORUN_NEW]
        ; gcrRegs +[eax]
        lea      edx, bword ptr [esi+0x1C]
@@ -134,13 +147,13 @@ G_M11729_IG07:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        ; gcrRegs -[eax]
        ; byrRegs -[edx]
                        ;; size=15 bbWeight=0.50 PerfScore 3.25
-G_M11729_IG08:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M11729_IG10:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, dword ptr [esi+0x38]
        mov      edx, gword ptr [esi+0x20]
        ; gcrRegs +[edx]
        mov      edx, gword ptr [edx+0x14]
        cmp      ecx, dword ptr [edx+0x04]
-       je       G_M11729_IG14
+       je       SHORT G_M11729_IG06
        mov      ecx, gword ptr [esi+0x1C]
        ; gcrRegs +[ecx]
        push     dword ptr [ebp+0x0C]
@@ -175,9 +188,9 @@ G_M11729_IG08:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        call     [<unknown method>]
        ; gcrRegs -[ecx esi]
        mov      edi, eax
-       jmp      SHORT G_M11729_IG12
-                       ;; size=86 bbWeight=0.50 PerfScore 25.25
-G_M11729_IG09:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M11729_IG14
+                       ;; size=82 bbWeight=0.50 PerfScore 25.25
+G_M11729_IG11:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[esi edi]
        mov      ecx, gword ptr [esi+0x04]
        ; gcrRegs +[ecx]
@@ -189,13 +202,13 @@ G_M11729_IG09:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        call     [<unknown method>]
        ; gcrRegs -[ecx edx esi edi]
        mov      edi, eax
-       jmp      SHORT G_M11729_IG12
+       jmp      SHORT G_M11729_IG14
                        ;; size=21 bbWeight=0.50 PerfScore 6.25
-G_M11729_IG10:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+G_M11729_IG12:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs +[esi edi]
        mov      dword ptr [esi+0x2C], 9
                        ;; size=7 bbWeight=0.50 PerfScore 0.50
-G_M11729_IG11:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M11729_IG13:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [esi+0x04]
        ; gcrRegs +[ecx]
        push     dword ptr [ebp+0x0C]
@@ -207,27 +220,16 @@ G_M11729_IG11:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        ; gcrRegs -[ecx edx edi]
        mov      edi, eax
        test     edi, edi
-       jne      SHORT G_M11729_IG12
+       jne      SHORT G_M11729_IG14
        mov      dword ptr [esi+0x2C], 1
        mov      ecx, esi
        ; gcrRegs +[ecx]
        call     [<unknown method>]
        ; gcrRegs -[ecx esi]
                        ;; size=38 bbWeight=0.50 PerfScore 8.00
-G_M11729_IG12:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M11729_IG14:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      eax, edi
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M11729_IG13:        ; bbWeight=0.50, epilog, nogc, extend
-       pop      ecx
-       pop      ebx
-       pop      esi
-       pop      edi
-       pop      ebp
-       ret      8
-                       ;; size=8 bbWeight=0.50 PerfScore 2.25
-G_M11729_IG14:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       xor      eax, eax
-                       ;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M11729_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        pop      ecx
        pop      ebx
@@ -270,22 +272,22 @@ G_M11729_IG17:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ; gcrRegs -[ecx edi]
        int3     
                        ;; size=35 bbWeight=0 PerfScore 0.00
-RWD00      dd  G_M11729_IG14 - G_M11729_IG02
-           dd  G_M11729_IG10 - G_M11729_IG02
-           dd  G_M11729_IG14 - G_M11729_IG02
-           dd  G_M11729_IG14 - G_M11729_IG02
-           dd  G_M11729_IG14 - G_M11729_IG02
+RWD00      dd  G_M11729_IG06 - G_M11729_IG02
+           dd  G_M11729_IG12 - G_M11729_IG02
+           dd  G_M11729_IG06 - G_M11729_IG02
+           dd  G_M11729_IG06 - G_M11729_IG02
+           dd  G_M11729_IG06 - G_M11729_IG02
            dd  G_M11729_IG03 - G_M11729_IG02
            dd  G_M11729_IG03 - G_M11729_IG02
            dd  G_M11729_IG17 - G_M11729_IG02
            dd  G_M11729_IG17 - G_M11729_IG02
-           dd  G_M11729_IG11 - G_M11729_IG02
+           dd  G_M11729_IG13 - G_M11729_IG02
            dd  G_M11729_IG17 - G_M11729_IG02
 RWD44      dd  G_M11729_IG16 - G_M11729_IG02
-           dd  G_M11729_IG06 - G_M11729_IG02
-           dd  G_M11729_IG09 - G_M11729_IG02
+           dd  G_M11729_IG08 - G_M11729_IG02
+           dd  G_M11729_IG11 - G_M11729_IG02
 
 
-; Total bytes of code 437, prolog size 7, PerfScore 97.25, instruction count 145, allocated bytes for code 437 (MethodHash=f333d22e) for method System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
+; Total bytes of code 421, prolog size 7, PerfScore 97.25, instruction count 145, allocated bytes for code 421 (MethodHash=f333d22e) for method System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
 ; ============================================================
 

+20 (+21.28%) : 182745.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  ->  esi         single-def
+;  V00 arg0         [V00,T00] (  7,  3   )     int  ->  esi         single-def
 ;  V01 arg1         [V01,T01] (  4,  2   )     ref  ->  edi         class-hnd single-def <System.String>
 ;  V02 tmp0         [V02,T02] (  3,  0   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V03 tmp1         [V03,T03] (  3,  0   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -28,7 +28,7 @@ G_M8758_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
                        ;; size=10 bbWeight=1 PerfScore 4.75
 G_M8758_IG02:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
        cmp      esi, 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
        pop      ebx
@@ -74,9 +74,17 @@ G_M8758_IG05:        ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000
        ; gcrRegs +[ecx]
        call     [CORINFO_HELP_THROW]
        ; gcrRegs -[ecx ebx]
-       int3     
-                       ;; size=30 bbWeight=0 PerfScore 0.00
+                       ;; size=29 bbWeight=0 PerfScore 0.00
+G_M8758_IG06:        ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs +[edi]
+       lea      eax, [esi-0x1C3]
+       cmp      eax, 1
+       jbe      SHORT G_M8758_IG04
+       cmp      esi, 552
+       je       SHORT G_M8758_IG04
+       jmp      SHORT G_M8758_IG04
+                       ;; size=21 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 94, prolog size 6, PerfScore 9.00, instruction count 35, allocated bytes for code 94 (MethodHash=cf4bddc9) for method System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 114, prolog size 6, PerfScore 9.00, instruction count 40, allocated bytes for code 114 (MethodHash=cf4bddc9) for method System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
 ; ============================================================
 

+30 (+29.41%) : 182908.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  ->  esi         single-def
+;  V00 arg0         [V00,T00] (  9,  4   )     int  ->  esi         single-def
 ;  V01 arg1         [V01,T01] (  4,  2   )     ref  ->  edi         class-hnd single-def <System.String>
 ;  V02 tmp0         [V02,T02] (  3,  0   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V03 tmp1         [V03,T03] (  3,  0   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -28,9 +28,9 @@ G_M20631_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=10 bbWeight=1 PerfScore 4.75
 G_M20631_IG02:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
        cmp      esi, 452
-       jg       SHORT G_M20631_IG04
+       jg       SHORT G_M20631_IG07
        cmp      esi, 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
        pop      ebx
@@ -76,9 +76,22 @@ G_M20631_IG05:        ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000
        ; gcrRegs +[ecx]
        call     [CORINFO_HELP_THROW]
        ; gcrRegs -[ecx ebx]
-       int3     
-                       ;; size=30 bbWeight=0 PerfScore 0.00
+                       ;; size=29 bbWeight=0 PerfScore 0.00
+G_M20631_IG06:        ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs +[edi]
+       lea      eax, [esi-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=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+       cmp      esi, 552
+       je       SHORT G_M20631_IG04
+       cmp      esi, 554
+       je       SHORT G_M20631_IG04
+       jmp      SHORT G_M20631_IG04
+                       ;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 102, prolog size 6, PerfScore 10.25, instruction count 37, allocated bytes for code 102 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 132, prolog size 6, PerfScore 10.25, instruction count 45, allocated bytes for code 132 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
 ; ============================================================
 

+19 (+59.38%) : 234347.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)

@@ -8,9 +8,9 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  3,  3   )     int  ->  ecx         single-def
+;  V00 arg0         [V00,T01] (  4,  3.50)     int  ->  ecx         single-def
 ;  V01 loc0         [V01,T02] (  3,  2   )   ubyte  ->  eax        
-;  V02 rat0         [V02,T00] (  3,  6   )     int  ->  ecx         "ReplaceWithLclVar is creating a new local variable"
+;  V02 rat0         [V02,T00] (  3,  6   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 0
 
@@ -19,25 +19,54 @@ G_M3102_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
        mov      ebp, esp
                        ;; size=3 bbWeight=1 PerfScore 1.25
 G_M3102_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, 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, [ecx-0x02]
+       cmp      eax, 19
+       ja       SHORT G_M3102_IG03
+       lea      edx, [reloc @RWD00]
+       mov      edx, dword ptr [edx+4*eax]
+       lea      ecx, G_M3102_IG02
+       add      edx, ecx
+       jmp      edx
+                       ;; size=27 bbWeight=1 PerfScore 7.50
 G_M3102_IG03:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, 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=00000000 {}, byrefRegs=00000000 {}, 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=00000000 {}, byrefRegs=00000000 {}, byref
+G_M3102_IG05:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M3102_IG05:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M3102_IG06:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        pop      ebp
        ret      
                        ;; size=2 bbWeight=1 PerfScore 1.50
+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 32, prolog size 3, PerfScore 7.25, instruction count 13, allocated bytes for code 32 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
+
+; Total bytes of code 51, prolog size 3, PerfScore 13.25, instruction count 19, allocated bytes for code 51 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
 ; ============================================================
 

libraries.pmi.windows.x86.checked.mch

-7 (-25.00%) : 151875.dasm - Microsoft.Build.BackEnd.SchedulingData:GetBlockedRequestIfAny(int):Microsoft.Build.BackEnd.SchedulableRequest:this (FullOpts)

@@ -2,7 +2,7 @@
 ; Emitting BLENDED_CODE for X86 with AVX512 - Windows
 ; FullOpts code
 ; optimized code
-; ebp based frame
+; esp based frame
 ; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
@@ -10,17 +10,15 @@
 ;
 ;  V00 this         [V00,T01] (  3,  3   )     ref  ->  ecx         this class-hnd single-def <Microsoft.Build.BackEnd.SchedulingData>
 ;  V01 arg1         [V01,T02] (  3,  3   )     int  ->  edx         single-def
-;  V02 loc0         [V02,T04] (  2,  0.66)     ref  ->  eax         ld-addr-op class-hnd <Microsoft.Build.BackEnd.SchedulableRequest>
+;  V02 loc0         [V02,T04] (  2,  1   )     ref  ->  eax         ld-addr-op class-hnd <Microsoft.Build.BackEnd.SchedulableRequest>
 ;* V03 tmp0         [V03,T05] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V04 tmp1         [V04,T00] (  3,  6   )     ref  ->  ecx         class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V05 tmp2         [V05,T03] (  3,  2.16)   byref  ->  eax         single-def "Inline stloc first use temp"
+;  V05 tmp2         [V05,T03] (  3,  2.50)   byref  ->  eax         single-def "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
 G_M11913_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
-       push     ebp
-       mov      ebp, esp
-                       ;; size=3 bbWeight=1 PerfScore 1.25
+                       ;; size=0 bbWeight=1 PerfScore 0.00
 G_M11913_IG02:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ecx]
        mov      ecx, gword ptr [ecx+0x08]
@@ -29,28 +27,25 @@ G_M11913_IG02:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        ; gcrRegs -[ecx]
        ; byrRegs +[eax]
        test     eax, eax
-       je       SHORT G_M11913_IG04
+       je       SHORT G_M11913_IG05
                        ;; size=15 bbWeight=1 PerfScore 9.25
-G_M11913_IG03:        ; bbWeight=0.16, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, byref, isz
+G_M11913_IG03:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, byref
        mov      eax, gword ptr [eax]
        ; gcrRegs +[eax]
        ; byrRegs -[eax]
-       jmp      SHORT G_M11913_IG06
-                       ;; size=4 bbWeight=0.16 PerfScore 0.65
-G_M11913_IG04:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+                       ;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M11913_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+       ret      
+                       ;; size=1 bbWeight=0.50 PerfScore 0.50
+G_M11913_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[eax]
        xor      eax, eax
        ; gcrRegs +[eax]
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M11913_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-       pop      ebp
+G_M11913_IG06:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
-                       ;; size=2 bbWeight=0.50 PerfScore 0.75
-G_M11913_IG06:        ; bbWeight=0.50, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
-       pop      ebp
-       ret      
-                       ;; size=2 bbWeight=0.50 PerfScore 0.75
+                       ;; size=1 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 28, prolog size 3, PerfScore 12.78, instruction count 14, allocated bytes for code 28 (MethodHash=ea3ad176) for method Microsoft.Build.BackEnd.SchedulingData:GetBlockedRequestIfAny(int):Microsoft.Build.BackEnd.SchedulableRequest:this (FullOpts)
+; Total bytes of code 21, prolog size 0, PerfScore 11.38, instruction count 9, allocated bytes for code 21 (MethodHash=ea3ad176) for method Microsoft.Build.BackEnd.SchedulingData:GetBlockedRequestIfAny(int):Microsoft.Build.BackEnd.SchedulableRequest:this (FullOpts)
 ; ============================================================
 

-41 (-15.41%) : 13052.dasm - System.Text.RegularExpressions.RegexCharClass:IsUnicodeCategoryOfSmallCharCount(System.String,byref,byref,byref):ubyte (FullOpts)

@@ -33,7 +33,7 @@
 ;  V22 tmp18        [V22,T03] (  2,  2   )   byref  ->  ecx         single-def "argument with side effect"
 ;  V23 tmp19        [V23,T04] (  2,  2   )   byref  ->  ecx         single-def "argument with side effect"
 ;  V24 tmp20        [V24,T05] (  2,  1.30)   byref  ->  ecx         single-def "argument with side effect"
-;  V25 cse0         [V25,T02] (  9,  4.01)     int  ->  registers   multi-def "CSE - aggressive"
+;  V25 cse0         [V25,T02] (  9,  4.01)     int  ->  ebx         multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -50,102 +50,18 @@ G_M48146_IG01:        ; bbWeight=1.00, gcrefRegs=00000000 {}, byrefRegs=00000000
                        ;; size=10 bbWeight=1.00 PerfScore 4.75
 G_M48146_IG02:        ; bbWeight=1.00, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
        cmp      esi, 0xD1FFAB1E
-       je       SHORT G_M48146_IG08
+       je       SHORT G_M48146_IG10
                        ;; size=8 bbWeight=1.00 PerfScore 1.25
-G_M48146_IG03:        ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
+G_M48146_IG03:        ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
        test     esi, esi
-       jne      G_M48146_IG16
-                       ;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M48146_IG04:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
-       cmp      esi, 0xD1FFAB1E
-       je       SHORT G_M48146_IG08
-                       ;; size=8 bbWeight=0.50 PerfScore 0.63
-G_M48146_IG05:        ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
-       test     esi, esi
-       je       G_M48146_IG20
-                       ;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M48146_IG06:        ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
-       jmp      G_M48146_IG19
-                       ;; size=5 bbWeight=0.45 PerfScore 0.89
-G_M48146_IG07:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
-       lea      ecx, bword ptr [esi+0x08]
-       ; byrRegs +[ecx]
-       lea      edx, [eax+eax]
-       push     edx
-       mov      edx, 0xD1FFAB1E
-       ; byrRegs +[edx]
-       call     [<unknown method>]
-       ; byrRegs -[ecx edx]
-       test     eax, eax
-       je       G_M48146_IG20
-                       ;; size=26 bbWeight=0.50 PerfScore 3.25
-G_M48146_IG08:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
-       test     byte  ptr [D1FFAB1EH], 1      ; global ptr
-       je       G_M48146_IG23
-                       ;; size=13 bbWeight=0.50 PerfScore 2.00
-G_M48146_IG09:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
-       mov      ecx, gword ptr [D1FFAB1EH]      ; static handle
-       ; gcrRegs +[ecx]
-       mov      edx, edi
-       ; byrRegs +[edx]
-       call     CORINFO_HELP_CHECKED_ASSIGN_REF_ECX
-       ; gcrRegs -[ecx]
-       ; byrRegs -[edx edi]
-       cmp      esi, 0xD1FFAB1E
-       jne      SHORT G_M48146_IG11
-                       ;; size=21 bbWeight=0.50 PerfScore 2.25
-G_M48146_IG10:        ; bbWeight=0.05, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[esi]
-       mov      eax, 1
-       jmp      SHORT G_M48146_IG14
-                       ;; size=7 bbWeight=0.05 PerfScore 0.12
-G_M48146_IG11:        ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[esi]
-       mov      eax, dword ptr [esi+0x04]
-       cmp      eax, 4
-       je       SHORT G_M48146_IG13
-                       ;; size=8 bbWeight=0.45 PerfScore 1.45
-G_M48146_IG12:        ; bbWeight=0.12, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[esi]
-       xor      eax, eax
-       jmp      SHORT G_M48146_IG14
-                       ;; size=4 bbWeight=0.12 PerfScore 0.28
-G_M48146_IG13:        ; bbWeight=0.32, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs +[esi]
-       lea      ecx, bword ptr [esi+0x08]
-       ; byrRegs +[ecx]
-       lea      edx, [eax+eax]
-       push     edx
-       mov      edx, 0xD1FFAB1E
-       ; byrRegs +[edx]
-       call     [<unknown method>]
-       ; gcrRegs -[esi]
-       ; byrRegs -[ecx edx]
-                       ;; size=18 bbWeight=0.32 PerfScore 1.70
-G_M48146_IG14:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       mov      edi, bword ptr [ebp+0x0C]
-       ; byrRegs +[edi]
-       mov      byte  ptr [edi], al
-       mov      ebx, bword ptr [ebp+0x08]
-       ; byrRegs +[ebx]
-       mov      gword ptr [ebx], 0xD1FFAB1E
-       mov      eax, 1
-                       ;; size=19 bbWeight=0.50 PerfScore 2.12
-G_M48146_IG15:        ; bbWeight=0.50, epilog, nogc, extend
-       pop      ebx
-       pop      esi
-       pop      edi
-       pop      ebp
-       ret      8
-                       ;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M48146_IG16:        ; bbWeight=0.45, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref
-       ; gcrRegs +[esi]
-       ; byrRegs -[ebx]
+       je       SHORT G_M48146_IG06
+                       ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M48146_IG04:        ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
        mov      ebx, dword ptr [esi+0x04]
        cmp      ebx, 4
-       jne      G_M48146_IG04
-                       ;; size=12 bbWeight=0.45 PerfScore 1.45
-G_M48146_IG17:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
+       jne      SHORT G_M48146_IG06
+                       ;; size=8 bbWeight=0.45 PerfScore 1.45
+G_M48146_IG05:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
        lea      ecx, bword ptr [esi+0x08]
        ; byrRegs +[ecx]
        add      ebx, ebx
@@ -155,18 +71,91 @@ G_M48146_IG17:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        call     [<unknown method>]
        ; byrRegs -[ecx edx]
        test     eax, eax
-       jne      G_M48146_IG08
-                       ;; size=25 bbWeight=0.50 PerfScore 3.12
-G_M48146_IG18:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
-       jmp      G_M48146_IG04
-                       ;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M48146_IG19:        ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
-       mov      eax, dword ptr [esi+0x04]
-       cmp      eax, 4
-       je       G_M48146_IG07
-                       ;; size=12 bbWeight=0.45 PerfScore 1.45
-G_M48146_IG20:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref
+       jne      SHORT G_M48146_IG10
+                       ;; size=21 bbWeight=0.50 PerfScore 3.12
+G_M48146_IG06:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+       cmp      esi, 0xD1FFAB1E
+       je       SHORT G_M48146_IG10
+                       ;; size=8 bbWeight=0.50 PerfScore 0.63
+G_M48146_IG07:        ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+       test     esi, esi
+       je       SHORT G_M48146_IG18
+                       ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M48146_IG08:        ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+       mov      ebx, dword ptr [esi+0x04]
+       cmp      ebx, 4
+       jne      SHORT G_M48146_IG18
+                       ;; size=8 bbWeight=0.45 PerfScore 1.45
+G_M48146_IG09:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+       lea      ecx, bword ptr [esi+0x08]
+       ; byrRegs +[ecx]
+       lea      edx, [ebx+ebx]
+       push     edx
+       mov      edx, 0xD1FFAB1E
+       ; byrRegs +[edx]
+       call     [<unknown method>]
+       ; byrRegs -[ecx edx]
+       test     eax, eax
+       je       SHORT G_M48146_IG18
+                       ;; size=22 bbWeight=0.50 PerfScore 3.25
+G_M48146_IG10:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+       test     byte  ptr [D1FFAB1EH], 1      ; global ptr
+       je       SHORT G_M48146_IG21
+                       ;; size=9 bbWeight=0.50 PerfScore 2.00
+G_M48146_IG11:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+       mov      ecx, gword ptr [D1FFAB1EH]      ; static handle
+       ; gcrRegs +[ecx]
+       mov      edx, edi
+       ; byrRegs +[edx]
+       call     CORINFO_HELP_CHECKED_ASSIGN_REF_ECX
+       ; gcrRegs -[ecx]
+       ; byrRegs -[edx edi]
+       cmp      esi, 0xD1FFAB1E
+       je       SHORT G_M48146_IG17
+                       ;; size=21 bbWeight=0.50 PerfScore 2.25
+G_M48146_IG12:        ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      ebx, dword ptr [esi+0x04]
+       cmp      ebx, 4
+       jne      SHORT G_M48146_IG16
+                       ;; size=8 bbWeight=0.45 PerfScore 1.45
+G_M48146_IG13:        ; bbWeight=0.32, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       lea      ecx, bword ptr [esi+0x08]
+       ; byrRegs +[ecx]
+       lea      edx, [ebx+ebx]
+       push     edx
+       mov      edx, 0xD1FFAB1E
+       ; byrRegs +[edx]
+       call     [<unknown method>]
        ; gcrRegs -[esi]
+       ; byrRegs -[ecx edx]
+                       ;; size=18 bbWeight=0.32 PerfScore 1.70
+G_M48146_IG14:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       mov      ebx, bword ptr [ebp+0x0C]
+       ; byrRegs +[ebx]
+       mov      byte  ptr [ebx], al
+       mov      esi, bword ptr [ebp+0x08]
+       ; byrRegs +[esi]
+       mov      gword ptr [esi], 0xD1FFAB1E
+       mov      eax, 1
+                       ;; size=19 bbWeight=0.50 PerfScore 2.12
+G_M48146_IG15:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      ebx
+       pop      esi
+       pop      edi
+       pop      ebp
+       ret      8
+                       ;; size=7 bbWeight=0.50 PerfScore 2.00
+G_M48146_IG16:        ; bbWeight=0.12, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; byrRegs -[ebx esi]
+       xor      eax, eax
+       jmp      SHORT G_M48146_IG14
+                       ;; size=4 bbWeight=0.12 PerfScore 0.28
+G_M48146_IG17:        ; bbWeight=0.05, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, 1
+       jmp      SHORT G_M48146_IG14
+                       ;; size=7 bbWeight=0.05 PerfScore 0.12
+G_M48146_IG18:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref
+       ; byrRegs +[edi]
        xor      eax, eax
        ; gcrRegs +[eax]
        mov      gword ptr [edi], eax
@@ -174,30 +163,30 @@ G_M48146_IG20:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080
        ; byrRegs +[ebx]
        mov      byte  ptr [ebx], 0
                        ;; size=10 bbWeight=0.50 PerfScore 1.62
-G_M48146_IG21:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M48146_IG19:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax]
        ; byrRegs -[ebx edi]
-       mov      ebx, bword ptr [ebp+0x08]
-       ; byrRegs +[ebx]
-       mov      gword ptr [ebx], eax
+       mov      esi, bword ptr [ebp+0x08]
+       ; byrRegs +[esi]
+       mov      gword ptr [esi], eax
                        ;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M48146_IG22:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
-       ; byrRegs -[ebx]
+G_M48146_IG20:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+       ; byrRegs -[esi]
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      8
                        ;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M48146_IG23:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref
+G_M48146_IG21:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref, isz
...

-28 (-15.14%) : 282751.dasm - System.Security.Cryptography.Xml.Utils:HasNamespace(System.Xml.XmlElement,System.String,System.String):ubyte (FullOpts)

@@ -8,10 +8,10 @@
 ; 2 inlinees with PGO data; 14 single block inlinees; 6 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  6,  4.50)     ref  ->  [ebp-0x14]  class-hnd single-def <System.Xml.XmlElement>
+;  V00 arg0         [V00,T01] (  6,  4.50)     ref  ->  edi         class-hnd single-def <System.Xml.XmlElement>
 ;  V01 arg1         [V01,T00] (  7,  4.89)     ref  ->  esi         class-hnd single-def <System.String>
 ;  V02 arg2         [V02,T04] (  5,  2.89)     ref  ->  ebx         class-hnd single-def <System.String>
-;  V03 tmp0         [V03,T02] (  6,  5.79)     ref  ->  registers   class-hnd exact single-def "Inlining Arg" <System.String>
+;  V03 tmp0         [V03,T02] (  6,  5.79)     ref  ->  eax         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V04 tmp1         [V04,T08] (  2,  1   )   ubyte  ->  eax         "Inline return value spill temp"
 ;  V05 tmp2         [V05,T05] (  2,  2   )   byref  ->  ecx         single-def "impAppendStmt"
 ;* V06 tmp3         [V06    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -27,9 +27,9 @@
 ;* V16 tmp13        [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp14        [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V18 tmp15        [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V19 cse0         [V19,T07] (  3,  1.50)     int  ->  [ebp-0x10]  "CSE - moderate"
+;  V19 cse0         [V19,T07] (  3,  1.50)     int  ->  [ebp-0x10]  spill-single-def "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 4
 
 G_M26669_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -37,14 +37,14 @@ G_M26669_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 8
+       push     eax
        mov      edi, ecx
        ; gcrRegs +[edi]
        mov      esi, edx
        ; gcrRegs +[esi]
        mov      ebx, gword ptr [ebp+0x08]
        ; gcrRegs +[ebx]
-                       ;; size=16 bbWeight=1 PerfScore 6.00
+                       ;; size=14 bbWeight=1 PerfScore 6.75
 G_M26669_IG02:        ; bbWeight=1, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        push     ebx
        mov      ecx, edi
@@ -61,13 +61,13 @@ G_M26669_IG03:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
        mov      eax, 1
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M26669_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-       lea      esp, [ebp-0x0C]
+       pop      ecx
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      4
-                       ;; size=10 bbWeight=0.50 PerfScore 2.25
+                       ;; size=8 bbWeight=0.50 PerfScore 2.25
 G_M26669_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[ebx esi edi]
        mov      ecx, edi
@@ -78,45 +78,58 @@ G_M26669_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C8 {e
        call     [eax+0x10]<unknown method>
        ; gcrRegs -[ecx] +[eax]
        cmp      eax, esi
-       je       SHORT G_M26669_IG08
+       je       SHORT G_M26669_IG10
                        ;; size=17 bbWeight=0.50 PerfScore 4.75
 G_M26669_IG06:        ; bbWeight=0.45, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        test     eax, eax
-       je       SHORT G_M26669_IG13
+       je       SHORT G_M26669_IG15
                        ;; size=4 bbWeight=0.45 PerfScore 0.56
 G_M26669_IG07:        ; bbWeight=0.45, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      edx, eax
-       ; gcrRegs +[edx]
-       mov      eax, edi
-       mov      edi, dword ptr [ebp-0x10]
-       ; gcrRegs -[edi]
-       jmp      SHORT G_M26669_IG15
-                       ;; size=9 bbWeight=0.45 PerfScore 1.56
-G_M26669_IG08:        ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[eax edx esi] +[edi]
+       test     esi, esi
+       je       SHORT G_M26669_IG15
+                       ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M26669_IG08:        ; bbWeight=0.45, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       mov      edx, dword ptr [eax+0x04]
+       cmp      edx, dword ptr [esi+0x04]
+       jne      SHORT G_M26669_IG15
+                       ;; size=8 bbWeight=0.45 PerfScore 2.68
+G_M26669_IG09:        ; bbWeight=0.50, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       lea      ecx, bword ptr [eax+0x08]
+       ; byrRegs +[ecx]
+       mov      edx, dword ptr [eax+0x04]
+       add      edx, edx
+       push     edx
+       lea      edx, bword ptr [esi+0x08]
+       ; byrRegs +[edx]
+       call     [<unknown method>]
+       ; gcrRegs -[eax esi]
+       ; byrRegs -[ecx edx]
+       test     eax, eax
+       je       SHORT G_M26669_IG15
+                       ;; size=22 bbWeight=0.50 PerfScore 4.25
+G_M26669_IG10:        ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, edi
        ; gcrRegs +[ecx]
-       mov      edi, dword ptr [ebp-0x10]
-       ; gcrRegs -[edi]
-       call     [edi+0x0C]<unknown method>
-       ; gcrRegs -[ecx] +[eax]
+       mov      esi, dword ptr [ebp-0x10]
+       call     [esi+0x0C]<unknown method>
+       ; gcrRegs -[ecx edi] +[eax]
        cmp      eax, ebx
        je       SHORT G_M26669_IG03
                        ;; size=12 bbWeight=0.50 PerfScore 2.75
-G_M26669_IG09:        ; bbWeight=0.45, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
-       test     eax, eax
-       je       SHORT G_M26669_IG13
-                       ;; size=4 bbWeight=0.45 PerfScore 0.56
-G_M26669_IG10:        ; bbWeight=0.45, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
-       test     ebx, ebx
-       je       SHORT G_M26669_IG13
-                       ;; size=4 bbWeight=0.45 PerfScore 0.56
 G_M26669_IG11:        ; bbWeight=0.45, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
+       test     eax, eax
+       je       SHORT G_M26669_IG15
+                       ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M26669_IG12:        ; bbWeight=0.45, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
+       test     ebx, ebx
+       je       SHORT G_M26669_IG15
+                       ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M26669_IG13:        ; bbWeight=0.45, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
        mov      edx, dword ptr [eax+0x04]
        cmp      edx, dword ptr [ebx+0x04]
-       jne      SHORT G_M26669_IG13
+       jne      SHORT G_M26669_IG15
                        ;; size=8 bbWeight=0.45 PerfScore 2.68
-G_M26669_IG12:        ; bbWeight=0.50, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
+G_M26669_IG14:        ; bbWeight=0.50, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
        lea      ecx, bword ptr [eax+0x08]
        ; byrRegs +[ecx]
        mov      edx, dword ptr [eax+0x04]
@@ -130,54 +143,18 @@ G_M26669_IG12:        ; bbWeight=0.50, gcrefRegs=00000009 {eax ebx}, byrefRegs=0
        test     eax, eax
        jne      SHORT G_M26669_IG03
                        ;; size=22 bbWeight=0.50 PerfScore 4.25
-G_M26669_IG13:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M26669_IG15:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M26669_IG14:        ; bbWeight=0.50, epilog, nogc, extend
-       lea      esp, [ebp-0x0C]
+G_M26669_IG16:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      ecx
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      4
-                       ;; size=10 bbWeight=0.50 PerfScore 2.25
-G_M26669_IG15:        ; bbWeight=0.45, gcVars=00000000 {}, gcrefRegs=0000004D {eax edx ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs +[eax edx ebx esi]
-       test     esi, esi
-       je       SHORT G_M26669_IG13
-                       ;; size=4 bbWeight=0.45 PerfScore 0.56
-G_M26669_IG16:        ; bbWeight=0.45, gcrefRegs=0000004D {eax edx ebx esi}, byrefRegs=00000000 {}, byref, isz
-       mov      ecx, dword ptr [edx+0x04]
-       cmp      ecx, dword ptr [esi+0x04]
-       mov      gword ptr [ebp-0x14], eax
-       ; GC ptr vars +{V00}
-       jne      SHORT G_M26669_IG13
-                       ;; size=11 bbWeight=0.45 PerfScore 3.13
-G_M26669_IG17:        ; bbWeight=0.50, gcVars=00000002 {V00}, gcrefRegs=0000004C {edx ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs -[eax]
-       lea      ecx, bword ptr [edx+0x08]
-       ; byrRegs +[ecx]
-       mov      edx, dword ptr [edx+0x04]
-       ; gcrRegs -[edx]
-       add      edx, edx
-       push     edx
-       lea      edx, bword ptr [esi+0x08]
-       ; byrRegs +[edx]
-       call     [<unknown method>]
-       ; gcrRegs -[esi]
-       ; byrRegs -[ecx edx]
-       test     eax, eax
-       je       SHORT G_M26669_IG13
-                       ;; size=22 bbWeight=0.50 PerfScore 4.25
-G_M26669_IG18:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
-       mov      esi, gword ptr [ebp-0x14]
-       ; gcrRegs +[esi]
-       mov      dword ptr [ebp-0x10], edi
-       mov      edi, esi
-       ; gcrRegs +[edi]
-       jmp      SHORT G_M26669_IG08
-                       ;; size=10 bbWeight=0.50 PerfScore 2.13
+                       ;; size=8 bbWeight=0.50 PerfScore 2.25
 
-; Total bytes of code 185, prolog size 9, PerfScore 44.23, instruction count 80, allocated bytes for code 185 (MethodHash=ea0a97d2) for method System.Security.Cryptography.Xml.Utils:HasNamespace(System.Xml.XmlElement,System.String,System.String):ubyte (FullOpts)
+; Total bytes of code 157, prolog size 7, PerfScore 40.84, instruction count 71, allocated bytes for code 157 (MethodHash=ea0a97d2) for method System.Security.Cryptography.Xml.Utils:HasNamespace(System.Xml.XmlElement,System.String,System.String):ubyte (FullOpts)
 ; ============================================================
 

+30 (+27.78%) : 268809.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  ->  esi         single-def
+;  V00 arg0         [V00,T00] (  9,  4   )     int  ->  esi         single-def
 ;  V01 arg1         [V01,T01] (  4,  2   )     ref  ->  edi         class-hnd single-def <System.String>
 ;  V02 tmp0         [V02,T02] (  3,  0   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V03 tmp1         [V03,T03] (  3,  0   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -27,9 +27,9 @@ G_M20631_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=10 bbWeight=1 PerfScore 4.75
 G_M20631_IG02:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
        cmp      esi, 452
-       jg       SHORT G_M20631_IG04
+       jg       SHORT G_M20631_IG07
        cmp      esi, 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
        pop      ebx
@@ -77,9 +77,22 @@ G_M20631_IG05:        ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000
        ; gcrRegs +[ecx]
        call     CORINFO_HELP_THROW
        ; gcrRegs -[ecx ebx]
-       int3     
-                       ;; size=33 bbWeight=0 PerfScore 0.00
+                       ;; size=32 bbWeight=0 PerfScore 0.00
+G_M20631_IG06:        ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs +[edi]
+       lea      ecx, [esi-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=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+       cmp      esi, 552
+       je       SHORT G_M20631_IG04
+       cmp      esi, 554
+       je       SHORT G_M20631_IG04
+       jmp      SHORT G_M20631_IG04
+                       ;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 108, prolog size 6, PerfScore 10.25, instruction count 39, allocated bytes for code 108 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 138, prolog size 6, PerfScore 10.25, instruction count 47, allocated bytes for code 138 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
 ; ============================================================
 

+19 (+59.38%) : 263141.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)

@@ -7,9 +7,9 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  3,  3   )     int  ->  ecx         single-def
+;  V00 arg0         [V00,T01] (  4,  3.50)     int  ->  ecx         single-def
 ;  V01 loc0         [V01,T02] (  3,  2   )   ubyte  ->  eax        
-;  V02 rat0         [V02,T00] (  3,  6   )     int  ->  ecx         "ReplaceWithLclVar is creating a new local variable"
+;  V02 rat0         [V02,T00] (  3,  6   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 0
 
@@ -18,25 +18,54 @@ G_M3102_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
        mov      ebp, esp
                        ;; size=3 bbWeight=1 PerfScore 1.25
 G_M3102_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, 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, [ecx-0x02]
+       cmp      eax, 19
+       ja       SHORT G_M3102_IG03
+       lea      edx, [@RWD00]
+       mov      edx, dword ptr [edx+4*eax]
+       lea      ecx, G_M3102_IG02
+       add      edx, ecx
+       jmp      edx
+                       ;; size=27 bbWeight=1 PerfScore 7.50
 G_M3102_IG03:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, 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=00000000 {}, byrefRegs=00000000 {}, 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=00000000 {}, byrefRegs=00000000 {}, byref
+G_M3102_IG05:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M3102_IG05:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M3102_IG06:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        pop      ebp
        ret      
                        ;; size=2 bbWeight=1 PerfScore 1.50
+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 32, prolog size 3, PerfScore 7.25, instruction count 13, allocated bytes for code 32 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
+
+; Total bytes of code 51, prolog size 3, PerfScore 13.25, instruction count 19, allocated bytes for code 51 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
 ; ============================================================
 

+7 (+70.00%) : 250500.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)

@@ -2,7 +2,7 @@
 ; Emitting BLENDED_CODE for X86 with AVX512 - Windows
 ; FullOpts code
 ; optimized code
-; esp based frame
+; ebp based frame
 ; partially interruptible
 ; No matching PGO data
 ; 1 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
@@ -15,7 +15,9 @@
 ; Lcl frame size = 0
 
 G_M40773_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
-                       ;; size=0 bbWeight=1 PerfScore 0.00
+       push     ebp
+       mov      ebp, esp
+                       ;; size=3 bbWeight=1 PerfScore 1.25
 G_M40773_IG02:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ecx]
        test     dl, dl
@@ -23,14 +25,16 @@ G_M40773_IG02:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
                        ;; size=4 bbWeight=1 PerfScore 1.25
 G_M40773_IG03:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[ecx]
+       pop      ebp
        ret      
-                       ;; size=1 bbWeight=1 PerfScore 1.00
+                       ;; size=2 bbWeight=1 PerfScore 1.50
 G_M40773_IG04:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[ecx]
-       mov      eax, dword ptr [ecx+0x08]
+       cmp      gword ptr [ecx+0x08], 0
+       je       SHORT G_M40773_IG03
        jmp      SHORT G_M40773_IG03
-                       ;; size=5 bbWeight=0.50 PerfScore 2.00
+                       ;; size=8 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 17, prolog size 3, PerfScore 7.00, instruction count 9, allocated bytes for code 17 (MethodHash=8a3760ba) for method System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
 ; ============================================================
 

libraries_tests.run.windows.x86.Release.mch

-7 (-21.21%) : 55069.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)

@@ -3,7 +3,7 @@
 ; Tier1 code
 ; optimized code
 ; optimized using Dynamic PGO
-; ebp based frame
+; esp based frame
 ; partially interruptible
 ; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 895
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
@@ -11,7 +11,7 @@
 ;
 ;  V00 this         [V00,T00] (  3,  3   )     ref  ->  ecx         this class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver>
 ;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->  edx         class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer>
-;  V02 loc0         [V02,T05] (  2,  0.06)     ref  ->  eax         ld-addr-op class-hnd <System.Threading.SemaphoreSlim>
+;  V02 loc0         [V02,T05] (  2,  0.11)     ref  ->  eax         ld-addr-op class-hnd <System.Threading.SemaphoreSlim>
 ;* V03 loc1         [V03    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.Collections.ImmutableSegmentedDictionary`2[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,System.Threading.SemaphoreSlim]>
 ;* V04 tmp0         [V04,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V05 tmp1         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]>
@@ -22,9 +22,7 @@
 ; Lcl frame size = 0
 
 G_M65411_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
-       push     ebp
-       mov      ebp, esp
-                       ;; size=3 bbWeight=1 PerfScore 1.25
+                       ;; size=0 bbWeight=1 PerfScore 0.00
 G_M65411_IG02:        ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ecx edx]
        mov      ecx, gword ptr [ecx+0x94]
@@ -34,28 +32,25 @@ G_M65411_IG02:        ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=0000
        ; byrRegs +[eax]
        mov      edx, eax
        test     edx, edx
-       je       SHORT G_M65411_IG04
-                       ;; size=20 bbWeight=1 PerfScore 9.50
-G_M65411_IG03:        ; bbWeight=0.06, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, byref, isz
+       jne      SHORT G_M65411_IG04
+       xor      eax, eax
+       ; gcrRegs +[eax]
+       ; byrRegs -[eax]
+                       ;; size=22 bbWeight=1 PerfScore 9.75
+G_M65411_IG03:        ; bbWeight=1, epilog, nogc, extend
+       ret      
+                       ;; size=1 bbWeight=1 PerfScore 1.00
+G_M65411_IG04:        ; bbWeight=0.06, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, gcvars, byref
+       ; gcrRegs -[eax]
+       ; byrRegs +[eax]
        mov      eax, gword ptr [eax]
        ; gcrRegs +[eax]
        ; byrRegs -[eax]
-       jmp      SHORT G_M65411_IG06
-                       ;; size=4 bbWeight=0.06 PerfScore 0.23
-G_M65411_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[eax]
-       xor      eax, eax
-       ; gcrRegs +[eax]
-                       ;; size=2 bbWeight=1 PerfScore 0.25
-G_M65411_IG05:        ; bbWeight=1, epilog, nogc, extend
-       pop      ebp
+                       ;; size=2 bbWeight=0.06 PerfScore 0.11
+G_M65411_IG05:        ; bbWeight=0.06, epilog, nogc, extend
        ret      
-                       ;; size=2 bbWeight=1 PerfScore 1.50
-G_M65411_IG06:        ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
-       pop      ebp
-       ret      
-                       ;; size=2 bbWeight=0 PerfScore 0.00
+                       ;; size=1 bbWeight=0.06 PerfScore 0.06
 
-; Total bytes of code 33, prolog size 3, PerfScore 12.73, instruction count 15, allocated bytes for code 33 (MethodHash=b255007c) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
+; Total bytes of code 26, prolog size 0, PerfScore 10.92, instruction count 10, allocated bytes for code 26 (MethodHash=b255007c) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
 ; ============================================================
 

-7 (-21.21%) : 79009.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)

@@ -3,7 +3,7 @@
 ; Tier1 code
 ; optimized code
 ; optimized using Dynamic PGO
-; ebp based frame
+; esp based frame
 ; partially interruptible
 ; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 3769
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
@@ -11,7 +11,7 @@
 ;
 ;  V00 this         [V00,T00] (  3,  3   )     ref  ->  ecx         this class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver>
 ;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->  edx         class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer>
-;  V02 loc0         [V02,T05] (  2,  0.05)     ref  ->  eax         ld-addr-op class-hnd <System.Threading.SemaphoreSlim>
+;  V02 loc0         [V02,T05] (  2,  0.11)     ref  ->  eax         ld-addr-op class-hnd <System.Threading.SemaphoreSlim>
 ;* V03 loc1         [V03    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.Collections.ImmutableSegmentedDictionary`2[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,System.Threading.SemaphoreSlim]>
 ;* V04 tmp0         [V04,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V05 tmp1         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]>
@@ -22,9 +22,7 @@
 ; Lcl frame size = 0
 
 G_M65411_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
-       push     ebp
-       mov      ebp, esp
-                       ;; size=3 bbWeight=1 PerfScore 1.25
+                       ;; size=0 bbWeight=1 PerfScore 0.00
 G_M65411_IG02:        ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ecx edx]
        mov      ecx, gword ptr [ecx+0x94]
@@ -34,28 +32,25 @@ G_M65411_IG02:        ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=0000
        ; byrRegs +[eax]
        mov      edx, eax
        test     edx, edx
-       je       SHORT G_M65411_IG04
-                       ;; size=20 bbWeight=1 PerfScore 9.50
-G_M65411_IG03:        ; bbWeight=0.05, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, byref, isz
+       jne      SHORT G_M65411_IG04
+       xor      eax, eax
+       ; gcrRegs +[eax]
+       ; byrRegs -[eax]
+                       ;; size=22 bbWeight=1 PerfScore 9.75
+G_M65411_IG03:        ; bbWeight=1, epilog, nogc, extend
+       ret      
+                       ;; size=1 bbWeight=1 PerfScore 1.00
+G_M65411_IG04:        ; bbWeight=0.05, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, gcvars, byref
+       ; gcrRegs -[eax]
+       ; byrRegs +[eax]
        mov      eax, gword ptr [eax]
        ; gcrRegs +[eax]
        ; byrRegs -[eax]
-       jmp      SHORT G_M65411_IG06
-                       ;; size=4 bbWeight=0.05 PerfScore 0.21
-G_M65411_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[eax]
-       xor      eax, eax
-       ; gcrRegs +[eax]
-                       ;; size=2 bbWeight=1 PerfScore 0.25
-G_M65411_IG05:        ; bbWeight=1, epilog, nogc, extend
-       pop      ebp
+                       ;; size=2 bbWeight=0.05 PerfScore 0.11
+G_M65411_IG05:        ; bbWeight=0.05, epilog, nogc, extend
        ret      
-                       ;; size=2 bbWeight=1 PerfScore 1.50
-G_M65411_IG06:        ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
-       pop      ebp
-       ret      
-                       ;; size=2 bbWeight=0 PerfScore 0.00
+                       ;; size=1 bbWeight=0.05 PerfScore 0.05
 
-; Total bytes of code 33, prolog size 3, PerfScore 12.71, instruction count 15, allocated bytes for code 33 (MethodHash=b255007c) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
+; Total bytes of code 26, prolog size 0, PerfScore 10.91, instruction count 10, allocated bytes for code 26 (MethodHash=b255007c) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
 ; ============================================================
 

-7 (-21.21%) : 611551.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)

@@ -3,7 +3,7 @@
 ; Tier1 code
 ; optimized code
 ; optimized using Dynamic PGO
-; ebp based frame
+; esp based frame
 ; partially interruptible
 ; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 2345
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
@@ -11,7 +11,7 @@
 ;
 ;  V00 this         [V00,T00] (  3,  3   )     ref  ->  ecx         this class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver>
 ;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->  edx         class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer>
-;  V02 loc0         [V02,T05] (  2,  0.02)     ref  ->  eax         ld-addr-op class-hnd <System.Threading.SemaphoreSlim>
+;  V02 loc0         [V02,T05] (  2,  0.04)     ref  ->  eax         ld-addr-op class-hnd <System.Threading.SemaphoreSlim>
 ;* V03 loc1         [V03    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.Collections.ImmutableSegmentedDictionary`2[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,System.Threading.SemaphoreSlim]>
 ;* V04 tmp0         [V04,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V05 tmp1         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]>
@@ -22,9 +22,7 @@
 ; Lcl frame size = 0
 
 G_M65411_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
-       push     ebp
-       mov      ebp, esp
-                       ;; size=3 bbWeight=1 PerfScore 1.25
+                       ;; size=0 bbWeight=1 PerfScore 0.00
 G_M65411_IG02:        ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ecx edx]
        mov      ecx, gword ptr [ecx+0x94]
@@ -34,28 +32,25 @@ G_M65411_IG02:        ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=0000
        ; byrRegs +[eax]
        mov      edx, eax
        test     edx, edx
-       je       SHORT G_M65411_IG04
-                       ;; size=20 bbWeight=1 PerfScore 9.50
-G_M65411_IG03:        ; bbWeight=0.02, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, byref, isz
+       jne      SHORT G_M65411_IG04
+       xor      eax, eax
+       ; gcrRegs +[eax]
+       ; byrRegs -[eax]
+                       ;; size=22 bbWeight=1 PerfScore 9.75
+G_M65411_IG03:        ; bbWeight=1, epilog, nogc, extend
+       ret      
+                       ;; size=1 bbWeight=1 PerfScore 1.00
+G_M65411_IG04:        ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, gcvars, byref
+       ; gcrRegs -[eax]
+       ; byrRegs +[eax]
        mov      eax, gword ptr [eax]
        ; gcrRegs +[eax]
        ; byrRegs -[eax]
-       jmp      SHORT G_M65411_IG06
-                       ;; size=4 bbWeight=0.02 PerfScore 0.09
-G_M65411_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[eax]
-       xor      eax, eax
-       ; gcrRegs +[eax]
-                       ;; size=2 bbWeight=1 PerfScore 0.25
-G_M65411_IG05:        ; bbWeight=1, epilog, nogc, extend
-       pop      ebp
+                       ;; size=2 bbWeight=0.02 PerfScore 0.04
+G_M65411_IG05:        ; bbWeight=0.02, epilog, nogc, extend
        ret      
-                       ;; size=2 bbWeight=1 PerfScore 1.50
-G_M65411_IG06:        ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
-       pop      ebp
-       ret      
-                       ;; size=2 bbWeight=0 PerfScore 0.00
+                       ;; size=1 bbWeight=0.02 PerfScore 0.02
 
-; Total bytes of code 33, prolog size 3, PerfScore 12.59, instruction count 15, allocated bytes for code 33 (MethodHash=b255007c) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
+; Total bytes of code 26, prolog size 0, PerfScore 10.82, instruction count 10, allocated bytes for code 26 (MethodHash=b255007c) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
 ; ============================================================
 

+37 (+60.66%) : 606525.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)

@@ -11,28 +11,29 @@
 ;
 ;  V00 this         [V00,T00] (  7,  6   )     ref  ->  ecx         this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  eax         class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
-;  V02 tmp0         [V02,T02] (  4,  4   )     int  ->  edx         "Inline stloc first use temp"
+;  V02 tmp0         [V02,T02] (  8,  4   )     int  ->  esi         "Inline stloc first use temp"
 ;* V03 tmp1         [V03,T03] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
-G_M46606_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M46606_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
+       push     esi
        mov      eax, edx
        ; gcrRegs +[eax]
-                       ;; size=5 bbWeight=1 PerfScore 1.50
+                       ;; size=6 bbWeight=1 PerfScore 2.50
 G_M46606_IG02:        ; bbWeight=1, gcrefRegs=00000003 {eax ecx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ecx]
        cmp      gword ptr [ecx+0x0C], 0
        jne      SHORT G_M46606_IG05
-       mov      edx, dword ptr [eax+0x1C]
-       test     edx, 0xD1FFAB1E
+       mov      esi, dword ptr [eax+0x1C]
+       test     esi, 0xD1FFAB1E
        jne      SHORT G_M46606_IG04
-       test     edx, 0xD1FFAB1E
+       test     esi, 0xD1FFAB1E
        jne      SHORT G_M46606_IG04
-       test     edx, 0xD1FFAB1E
-       je       SHORT G_M46606_IG04
+       test     esi, 0xD1FFAB1E
+       je       SHORT G_M46606_IG07
        lea      edx, bword ptr [ecx+0x0C]
        ; byrRegs +[edx]
        call     CORINFO_HELP_ASSIGN_REF_EAX
@@ -47,19 +48,33 @@ G_M46606_IG03:        ; bbWeight=1, gcrefRegs=00000003 {eax ecx}, byrefRegs=0000
                        ;; size=3 bbWeight=1 PerfScore 1.00
 G_M46606_IG04:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[ecx]
+       pop      esi
        pop      ebp
        ret      
-                       ;; size=2 bbWeight=1 PerfScore 1.50
+                       ;; size=3 bbWeight=1 PerfScore 2.00
 G_M46606_IG05:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[eax] +[ecx]
        mov      eax, gword ptr [ecx+0x0C]
        ; gcrRegs +[eax]
                        ;; size=3 bbWeight=0 PerfScore 0.00
 G_M46606_IG06:        ; bbWeight=0, epilog, nogc, extend
+       pop      esi
        pop      ebp
        ret      
-                       ;; size=2 bbWeight=0 PerfScore 0.00
+                       ;; size=3 bbWeight=0 PerfScore 0.00
+G_M46606_IG07:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs -[ecx]
+       test     esi, 0xD1FFAB1E
+       jne      SHORT G_M46606_IG04
+       test     esi, 0x20000
+       jne      SHORT G_M46606_IG04
+       test     esi, 0x10000
+       jne      SHORT G_M46606_IG04
+       test     esi, 0xD1FFAB1E
+       je       SHORT G_M46606_IG04
+       jmp      SHORT G_M46606_IG04
+                       ;; size=34 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 61, prolog size 3, PerfScore 16.50, instruction count 22, allocated bytes for code 61 (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 98, prolog size 4, PerfScore 18.00, instruction count 34, allocated bytes for code 98 (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)
 ; ============================================================
 

+37 (+60.66%) : 77802.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)

@@ -11,28 +11,29 @@
 ;
 ;  V00 this         [V00,T00] (  7,  6   )     ref  ->  ecx         this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  eax         class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
-;  V02 tmp0         [V02,T02] (  4,  4   )     int  ->  edx         "Inline stloc first use temp"
+;  V02 tmp0         [V02,T02] (  8,  4.08)     int  ->  esi         "Inline stloc first use temp"
 ;* V03 tmp1         [V03,T03] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
-G_M46606_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M46606_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
+       push     esi
        mov      eax, edx
        ; gcrRegs +[eax]
-                       ;; size=5 bbWeight=1 PerfScore 1.50
+                       ;; size=6 bbWeight=1 PerfScore 2.50
 G_M46606_IG02:        ; bbWeight=1, gcrefRegs=00000003 {eax ecx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ecx]
        cmp      gword ptr [ecx+0x0C], 0
-       jne      SHORT G_M46606_IG05
-       mov      edx, dword ptr [eax+0x1C]
-       test     edx, 0xD1FFAB1E
+       jne      SHORT G_M46606_IG06
+       mov      esi, dword ptr [eax+0x1C]
+       test     esi, 0xD1FFAB1E
        jne      SHORT G_M46606_IG04
-       test     edx, 0xD1FFAB1E
+       test     esi, 0xD1FFAB1E
        jne      SHORT G_M46606_IG04
-       test     edx, 0xD1FFAB1E
-       je       SHORT G_M46606_IG04
+       test     esi, 0xD1FFAB1E
+       je       SHORT G_M46606_IG05
        lea      edx, bword ptr [ecx+0x0C]
        ; byrRegs +[edx]
        call     CORINFO_HELP_ASSIGN_REF_EAX
@@ -47,19 +48,32 @@ G_M46606_IG03:        ; bbWeight=1, gcrefRegs=00000003 {eax ecx}, byrefRegs=0000
                        ;; size=3 bbWeight=1 PerfScore 1.00
 G_M46606_IG04:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[ecx]
+       pop      esi
        pop      ebp
        ret      
-                       ;; size=2 bbWeight=1 PerfScore 1.50
-G_M46606_IG05:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
+                       ;; size=3 bbWeight=1 PerfScore 2.00
+G_M46606_IG05:        ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref, isz
+       test     esi, 0xD1FFAB1E
+       jne      SHORT G_M46606_IG04
+       test     esi, 0x20000
+       jne      SHORT G_M46606_IG04
+       test     esi, 0x10000
+       jne      SHORT G_M46606_IG04
+       test     esi, 0xD1FFAB1E
+       je       SHORT G_M46606_IG04
+       jmp      SHORT G_M46606_IG04
+                       ;; size=34 bbWeight=0.02 PerfScore 0.13
+G_M46606_IG06:        ; bbWeight=0, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax] +[ecx]
        mov      eax, gword ptr [ecx+0x0C]
        ; gcrRegs +[eax]
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M46606_IG06:        ; bbWeight=0, epilog, nogc, extend
+G_M46606_IG07:        ; bbWeight=0, epilog, nogc, extend
+       pop      esi
        pop      ebp
        ret      
-                       ;; size=2 bbWeight=0 PerfScore 0.00
+                       ;; size=3 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 61, prolog size 3, PerfScore 16.50, instruction count 22, allocated bytes for code 61 (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 98, prolog size 4, PerfScore 18.13, instruction count 34, allocated bytes for code 98 (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)
 ; ============================================================
 

+37 (+60.66%) : 54535.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)

@@ -11,7 +11,7 @@
 ;
 ;  V00 this         [V00,T00] (  7,  6   )     ref  ->  ecx         this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
 ;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  eax         class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
-;  V02 tmp0         [V02,T02] (  4,  4   )     int  ->  edx         "Inline stloc first use temp"
+;  V02 tmp0         [V02,T02] (  8,  4.15)     int  ->  esi         "Inline stloc first use temp"
 ;* V03 tmp1         [V03,T03] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
@@ -19,31 +19,21 @@
 G_M46606_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
+       push     esi
        mov      eax, edx
        ; gcrRegs +[eax]
-                       ;; size=5 bbWeight=1 PerfScore 1.50
+                       ;; size=6 bbWeight=1 PerfScore 2.50
 G_M46606_IG02:        ; bbWeight=1, gcrefRegs=00000003 {eax ecx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ecx]
        cmp      gword ptr [ecx+0x0C], 0
+       jne      SHORT G_M46606_IG06
+       mov      esi, dword ptr [eax+0x1C]
+       test     esi, 0xD1FFAB1E
+       jne      SHORT G_M46606_IG04
+       test     esi, 0xD1FFAB1E
+       jne      SHORT G_M46606_IG04
+       test     esi, 0xD1FFAB1E
        je       SHORT G_M46606_IG05
-                       ;; size=6 bbWeight=1 PerfScore 4.00
-G_M46606_IG03:        ; bbWeight=0, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[eax]
-       mov      eax, gword ptr [ecx+0x0C]
-       ; gcrRegs +[eax]
-                       ;; size=3 bbWeight=0 PerfScore 0.00
-G_M46606_IG04:        ; bbWeight=0, epilog, nogc, extend
-       pop      ebp
-       ret      
-                       ;; size=2 bbWeight=0 PerfScore 0.00
-G_M46606_IG05:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000003 {eax ecx}, byrefRegs=00000000 {}, gcvars, byref, isz
-       mov      edx, dword ptr [eax+0x1C]
-       test     edx, 0xD1FFAB1E
-       jne      SHORT G_M46606_IG07
-       test     edx, 0xD1FFAB1E
-       jne      SHORT G_M46606_IG07
-       test     edx, 0xD1FFAB1E
-       je       SHORT G_M46606_IG07
        lea      edx, bword ptr [ecx+0x0C]
        ; byrRegs +[edx]
        call     CORINFO_HELP_ASSIGN_REF_EAX
@@ -51,17 +41,39 @@ G_M46606_IG05:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000003 {eax
        xor      edx, edx
        ; gcrRegs +[edx]
        mov      gword ptr [ecx+0x04], edx
-                       ;; size=40 bbWeight=1 PerfScore 8.50
-G_M46606_IG06:        ; bbWeight=1, gcrefRegs=00000003 {eax ecx}, byrefRegs=00000000 {}, byref
+                       ;; size=46 bbWeight=1 PerfScore 12.50
+G_M46606_IG03:        ; bbWeight=1, gcrefRegs=00000003 {eax ecx}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[edx]
        mov      gword ptr [ecx+0x08], edx
                        ;; size=3 bbWeight=1 PerfScore 1.00
-G_M46606_IG07:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M46606_IG04:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[ecx]
+       pop      esi
        pop      ebp
        ret      
-                       ;; size=2 bbWeight=1 PerfScore 1.50
+                       ;; size=3 bbWeight=1 PerfScore 2.00
+G_M46606_IG05:        ; bbWeight=0.04, gcVars=00000000 {}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref, isz
+       test     esi, 0xD1FFAB1E
+       jne      SHORT G_M46606_IG04
+       test     esi, 0x20000
+       jne      SHORT G_M46606_IG04
+       test     esi, 0x10000
+       jne      SHORT G_M46606_IG04
+       test     esi, 0xD1FFAB1E
+       je       SHORT G_M46606_IG04
+       jmp      SHORT G_M46606_IG04
+                       ;; size=34 bbWeight=0.04 PerfScore 0.27
+G_M46606_IG06:        ; bbWeight=0, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[eax] +[ecx]
+       mov      eax, gword ptr [ecx+0x0C]
+       ; gcrRegs +[eax]
+                       ;; size=3 bbWeight=0 PerfScore 0.00
+G_M46606_IG07:        ; bbWeight=0, epilog, nogc, extend
+       pop      esi
+       pop      ebp
+       ret      
+                       ;; size=3 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 61, prolog size 3, PerfScore 16.50, instruction count 22, allocated bytes for code 61 (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 98, prolog size 4, PerfScore 18.27, instruction count 34, allocated bytes for code 98 (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)
 ; ============================================================
 

librariestestsnotieredcompilation.run.windows.x86.Release.mch

-41 (-15.41%) : 254405.dasm - System.Text.RegularExpressions.RegexCharClass:IsUnicodeCategoryOfSmallCharCount(System.String,byref,byref,byref):ubyte (FullOpts)

@@ -33,7 +33,7 @@
 ;  V22 tmp18        [V22,T03] (  2,  2   )   byref  ->  ecx         single-def "argument with side effect"
 ;  V23 tmp19        [V23,T04] (  2,  2   )   byref  ->  ecx         single-def "argument with side effect"
 ;  V24 tmp20        [V24,T05] (  2,  1.30)   byref  ->  ecx         single-def "argument with side effect"
-;  V25 cse0         [V25,T02] (  9,  4.01)     int  ->  registers   multi-def "CSE - aggressive"
+;  V25 cse0         [V25,T02] (  9,  4.01)     int  ->  ebx         multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -50,102 +50,18 @@ G_M48146_IG01:        ; bbWeight=1.00, gcrefRegs=00000000 {}, byrefRegs=00000000
                        ;; size=10 bbWeight=1.00 PerfScore 4.75
 G_M48146_IG02:        ; bbWeight=1.00, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
        cmp      esi, 0xD1FFAB1E
-       je       SHORT G_M48146_IG08
+       je       SHORT G_M48146_IG10
                        ;; size=8 bbWeight=1.00 PerfScore 1.25
-G_M48146_IG03:        ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
+G_M48146_IG03:        ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
        test     esi, esi
-       jne      G_M48146_IG16
-                       ;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M48146_IG04:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
-       cmp      esi, 0xD1FFAB1E
-       je       SHORT G_M48146_IG08
-                       ;; size=8 bbWeight=0.50 PerfScore 0.63
-G_M48146_IG05:        ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
-       test     esi, esi
-       je       G_M48146_IG20
-                       ;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M48146_IG06:        ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
-       jmp      G_M48146_IG19
-                       ;; size=5 bbWeight=0.45 PerfScore 0.89
-G_M48146_IG07:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
-       lea      ecx, bword ptr [esi+0x08]
-       ; byrRegs +[ecx]
-       lea      edx, [eax+eax]
-       push     edx
-       mov      edx, 0xD1FFAB1E
-       ; byrRegs +[edx]
-       call     [<unknown method>]
-       ; byrRegs -[ecx edx]
-       test     eax, eax
-       je       G_M48146_IG20
-                       ;; size=26 bbWeight=0.50 PerfScore 3.25
-G_M48146_IG08:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
-       test     byte  ptr [D1FFAB1EH], 1      ; global ptr
-       je       G_M48146_IG23
-                       ;; size=13 bbWeight=0.50 PerfScore 2.00
-G_M48146_IG09:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
-       mov      ecx, gword ptr [D1FFAB1EH]      ; static handle
-       ; gcrRegs +[ecx]
-       mov      edx, edi
-       ; byrRegs +[edx]
-       call     CORINFO_HELP_CHECKED_ASSIGN_REF_ECX
-       ; gcrRegs -[ecx]
-       ; byrRegs -[edx edi]
-       cmp      esi, 0xD1FFAB1E
-       jne      SHORT G_M48146_IG11
-                       ;; size=21 bbWeight=0.50 PerfScore 2.25
-G_M48146_IG10:        ; bbWeight=0.05, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[esi]
-       mov      eax, 1
-       jmp      SHORT G_M48146_IG14
-                       ;; size=7 bbWeight=0.05 PerfScore 0.12
-G_M48146_IG11:        ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[esi]
-       mov      eax, dword ptr [esi+0x04]
-       cmp      eax, 4
-       je       SHORT G_M48146_IG13
-                       ;; size=8 bbWeight=0.45 PerfScore 1.45
-G_M48146_IG12:        ; bbWeight=0.12, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[esi]
-       xor      eax, eax
-       jmp      SHORT G_M48146_IG14
-                       ;; size=4 bbWeight=0.12 PerfScore 0.28
-G_M48146_IG13:        ; bbWeight=0.32, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs +[esi]
-       lea      ecx, bword ptr [esi+0x08]
-       ; byrRegs +[ecx]
-       lea      edx, [eax+eax]
-       push     edx
-       mov      edx, 0xD1FFAB1E
-       ; byrRegs +[edx]
-       call     [<unknown method>]
-       ; gcrRegs -[esi]
-       ; byrRegs -[ecx edx]
-                       ;; size=18 bbWeight=0.32 PerfScore 1.70
-G_M48146_IG14:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       mov      edi, bword ptr [ebp+0x0C]
-       ; byrRegs +[edi]
-       mov      byte  ptr [edi], al
-       mov      ebx, bword ptr [ebp+0x08]
-       ; byrRegs +[ebx]
-       mov      gword ptr [ebx], 0xD1FFAB1E
-       mov      eax, 1
-                       ;; size=19 bbWeight=0.50 PerfScore 2.12
-G_M48146_IG15:        ; bbWeight=0.50, epilog, nogc, extend
-       pop      ebx
-       pop      esi
-       pop      edi
-       pop      ebp
-       ret      8
-                       ;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M48146_IG16:        ; bbWeight=0.45, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref
-       ; gcrRegs +[esi]
-       ; byrRegs -[ebx]
+       je       SHORT G_M48146_IG06
+                       ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M48146_IG04:        ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
        mov      ebx, dword ptr [esi+0x04]
        cmp      ebx, 4
-       jne      G_M48146_IG04
-                       ;; size=12 bbWeight=0.45 PerfScore 1.45
-G_M48146_IG17:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
+       jne      SHORT G_M48146_IG06
+                       ;; size=8 bbWeight=0.45 PerfScore 1.45
+G_M48146_IG05:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
        lea      ecx, bword ptr [esi+0x08]
        ; byrRegs +[ecx]
        add      ebx, ebx
@@ -155,18 +71,91 @@ G_M48146_IG17:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        call     [<unknown method>]
        ; byrRegs -[ecx edx]
        test     eax, eax
-       jne      G_M48146_IG08
-                       ;; size=25 bbWeight=0.50 PerfScore 3.12
-G_M48146_IG18:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
-       jmp      G_M48146_IG04
-                       ;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M48146_IG19:        ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
-       mov      eax, dword ptr [esi+0x04]
-       cmp      eax, 4
-       je       G_M48146_IG07
-                       ;; size=12 bbWeight=0.45 PerfScore 1.45
-G_M48146_IG20:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref
+       jne      SHORT G_M48146_IG10
+                       ;; size=21 bbWeight=0.50 PerfScore 3.12
+G_M48146_IG06:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+       cmp      esi, 0xD1FFAB1E
+       je       SHORT G_M48146_IG10
+                       ;; size=8 bbWeight=0.50 PerfScore 0.63
+G_M48146_IG07:        ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+       test     esi, esi
+       je       SHORT G_M48146_IG18
+                       ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M48146_IG08:        ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+       mov      ebx, dword ptr [esi+0x04]
+       cmp      ebx, 4
+       jne      SHORT G_M48146_IG18
+                       ;; size=8 bbWeight=0.45 PerfScore 1.45
+G_M48146_IG09:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+       lea      ecx, bword ptr [esi+0x08]
+       ; byrRegs +[ecx]
+       lea      edx, [ebx+ebx]
+       push     edx
+       mov      edx, 0xD1FFAB1E
+       ; byrRegs +[edx]
+       call     [<unknown method>]
+       ; byrRegs -[ecx edx]
+       test     eax, eax
+       je       SHORT G_M48146_IG18
+                       ;; size=22 bbWeight=0.50 PerfScore 3.25
+G_M48146_IG10:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+       test     byte  ptr [D1FFAB1EH], 1      ; global ptr
+       je       SHORT G_M48146_IG21
+                       ;; size=9 bbWeight=0.50 PerfScore 2.00
+G_M48146_IG11:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+       mov      ecx, gword ptr [D1FFAB1EH]      ; static handle
+       ; gcrRegs +[ecx]
+       mov      edx, edi
+       ; byrRegs +[edx]
+       call     CORINFO_HELP_CHECKED_ASSIGN_REF_ECX
+       ; gcrRegs -[ecx]
+       ; byrRegs -[edx edi]
+       cmp      esi, 0xD1FFAB1E
+       je       SHORT G_M48146_IG17
+                       ;; size=21 bbWeight=0.50 PerfScore 2.25
+G_M48146_IG12:        ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      ebx, dword ptr [esi+0x04]
+       cmp      ebx, 4
+       jne      SHORT G_M48146_IG16
+                       ;; size=8 bbWeight=0.45 PerfScore 1.45
+G_M48146_IG13:        ; bbWeight=0.32, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       lea      ecx, bword ptr [esi+0x08]
+       ; byrRegs +[ecx]
+       lea      edx, [ebx+ebx]
+       push     edx
+       mov      edx, 0xD1FFAB1E
+       ; byrRegs +[edx]
+       call     [<unknown method>]
        ; gcrRegs -[esi]
+       ; byrRegs -[ecx edx]
+                       ;; size=18 bbWeight=0.32 PerfScore 1.70
+G_M48146_IG14:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       mov      ebx, bword ptr [ebp+0x0C]
+       ; byrRegs +[ebx]
+       mov      byte  ptr [ebx], al
+       mov      esi, bword ptr [ebp+0x08]
+       ; byrRegs +[esi]
+       mov      gword ptr [esi], 0xD1FFAB1E
+       mov      eax, 1
+                       ;; size=19 bbWeight=0.50 PerfScore 2.12
+G_M48146_IG15:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      ebx
+       pop      esi
+       pop      edi
+       pop      ebp
+       ret      8
+                       ;; size=7 bbWeight=0.50 PerfScore 2.00
+G_M48146_IG16:        ; bbWeight=0.12, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; byrRegs -[ebx esi]
+       xor      eax, eax
+       jmp      SHORT G_M48146_IG14
+                       ;; size=4 bbWeight=0.12 PerfScore 0.28
+G_M48146_IG17:        ; bbWeight=0.05, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, 1
+       jmp      SHORT G_M48146_IG14
+                       ;; size=7 bbWeight=0.05 PerfScore 0.12
+G_M48146_IG18:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref
+       ; byrRegs +[edi]
        xor      eax, eax
        ; gcrRegs +[eax]
        mov      gword ptr [edi], eax
@@ -174,30 +163,30 @@ G_M48146_IG20:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080
        ; byrRegs +[ebx]
        mov      byte  ptr [ebx], 0
                        ;; size=10 bbWeight=0.50 PerfScore 1.62
-G_M48146_IG21:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M48146_IG19:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax]
        ; byrRegs -[ebx edi]
-       mov      ebx, bword ptr [ebp+0x08]
-       ; byrRegs +[ebx]
-       mov      gword ptr [ebx], eax
+       mov      esi, bword ptr [ebp+0x08]
+       ; byrRegs +[esi]
+       mov      gword ptr [esi], eax
                        ;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M48146_IG22:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
-       ; byrRegs -[ebx]
+G_M48146_IG20:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+       ; byrRegs -[esi]
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      8
                        ;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M48146_IG23:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref
+G_M48146_IG21:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref, isz
...

-28 (-15.14%) : 236674.dasm - System.Security.Cryptography.Xml.Utils:HasNamespace(System.Xml.XmlElement,System.String,System.String):ubyte (FullOpts)

@@ -8,10 +8,10 @@
 ; 2 inlinees with PGO data; 14 single block inlinees; 6 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  6,  4.50)     ref  ->  [ebp-0x14]  class-hnd single-def <System.Xml.XmlElement>
+;  V00 arg0         [V00,T01] (  6,  4.50)     ref  ->  edi         class-hnd single-def <System.Xml.XmlElement>
 ;  V01 arg1         [V01,T00] (  7,  4.89)     ref  ->  esi         class-hnd single-def <System.String>
 ;  V02 arg2         [V02,T04] (  5,  2.89)     ref  ->  ebx         class-hnd single-def <System.String>
-;  V03 tmp0         [V03,T02] (  6,  5.79)     ref  ->  registers   class-hnd exact single-def "Inlining Arg" <System.String>
+;  V03 tmp0         [V03,T02] (  6,  5.79)     ref  ->  eax         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V04 tmp1         [V04,T08] (  2,  1   )   ubyte  ->  eax         "Inline return value spill temp"
 ;  V05 tmp2         [V05,T05] (  2,  2   )   byref  ->  ecx         single-def "impAppendStmt"
 ;* V06 tmp3         [V06    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -27,9 +27,9 @@
 ;* V16 tmp13        [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp14        [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V18 tmp15        [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V19 cse0         [V19,T07] (  3,  1.50)     int  ->  [ebp-0x10]  "CSE - moderate"
+;  V19 cse0         [V19,T07] (  3,  1.50)     int  ->  [ebp-0x10]  spill-single-def "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 4
 
 G_M26669_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -37,14 +37,14 @@ G_M26669_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 8
+       push     eax
        mov      edi, ecx
        ; gcrRegs +[edi]
        mov      esi, edx
        ; gcrRegs +[esi]
        mov      ebx, gword ptr [ebp+0x08]
        ; gcrRegs +[ebx]
-                       ;; size=16 bbWeight=1 PerfScore 6.00
+                       ;; size=14 bbWeight=1 PerfScore 6.75
 G_M26669_IG02:        ; bbWeight=1, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        push     ebx
        mov      ecx, edi
@@ -61,13 +61,13 @@ G_M26669_IG03:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
        mov      eax, 1
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M26669_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-       lea      esp, [ebp-0x0C]
+       pop      ecx
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      4
-                       ;; size=10 bbWeight=0.50 PerfScore 2.25
+                       ;; size=8 bbWeight=0.50 PerfScore 2.25
 G_M26669_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[ebx esi edi]
        mov      ecx, edi
@@ -78,45 +78,58 @@ G_M26669_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C8 {e
        call     [eax+0x10]<unknown method>
        ; gcrRegs -[ecx] +[eax]
        cmp      eax, esi
-       je       SHORT G_M26669_IG08
+       je       SHORT G_M26669_IG10
                        ;; size=17 bbWeight=0.50 PerfScore 4.75
 G_M26669_IG06:        ; bbWeight=0.45, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        test     eax, eax
-       je       SHORT G_M26669_IG13
+       je       SHORT G_M26669_IG15
                        ;; size=4 bbWeight=0.45 PerfScore 0.56
 G_M26669_IG07:        ; bbWeight=0.45, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      edx, eax
-       ; gcrRegs +[edx]
-       mov      eax, edi
-       mov      edi, dword ptr [ebp-0x10]
-       ; gcrRegs -[edi]
-       jmp      SHORT G_M26669_IG15
-                       ;; size=9 bbWeight=0.45 PerfScore 1.56
-G_M26669_IG08:        ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[eax edx esi] +[edi]
+       test     esi, esi
+       je       SHORT G_M26669_IG15
+                       ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M26669_IG08:        ; bbWeight=0.45, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       mov      edx, dword ptr [eax+0x04]
+       cmp      edx, dword ptr [esi+0x04]
+       jne      SHORT G_M26669_IG15
+                       ;; size=8 bbWeight=0.45 PerfScore 2.68
+G_M26669_IG09:        ; bbWeight=0.50, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       lea      ecx, bword ptr [eax+0x08]
+       ; byrRegs +[ecx]
+       mov      edx, dword ptr [eax+0x04]
+       add      edx, edx
+       push     edx
+       lea      edx, bword ptr [esi+0x08]
+       ; byrRegs +[edx]
+       call     [<unknown method>]
+       ; gcrRegs -[eax esi]
+       ; byrRegs -[ecx edx]
+       test     eax, eax
+       je       SHORT G_M26669_IG15
+                       ;; size=22 bbWeight=0.50 PerfScore 4.25
+G_M26669_IG10:        ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, edi
        ; gcrRegs +[ecx]
-       mov      edi, dword ptr [ebp-0x10]
-       ; gcrRegs -[edi]
-       call     [edi+0x0C]<unknown method>
-       ; gcrRegs -[ecx] +[eax]
+       mov      esi, dword ptr [ebp-0x10]
+       call     [esi+0x0C]<unknown method>
+       ; gcrRegs -[ecx edi] +[eax]
        cmp      eax, ebx
        je       SHORT G_M26669_IG03
                        ;; size=12 bbWeight=0.50 PerfScore 2.75
-G_M26669_IG09:        ; bbWeight=0.45, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
-       test     eax, eax
-       je       SHORT G_M26669_IG13
-                       ;; size=4 bbWeight=0.45 PerfScore 0.56
-G_M26669_IG10:        ; bbWeight=0.45, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
-       test     ebx, ebx
-       je       SHORT G_M26669_IG13
-                       ;; size=4 bbWeight=0.45 PerfScore 0.56
 G_M26669_IG11:        ; bbWeight=0.45, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
+       test     eax, eax
+       je       SHORT G_M26669_IG15
+                       ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M26669_IG12:        ; bbWeight=0.45, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
+       test     ebx, ebx
+       je       SHORT G_M26669_IG15
+                       ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M26669_IG13:        ; bbWeight=0.45, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
        mov      edx, dword ptr [eax+0x04]
        cmp      edx, dword ptr [ebx+0x04]
-       jne      SHORT G_M26669_IG13
+       jne      SHORT G_M26669_IG15
                        ;; size=8 bbWeight=0.45 PerfScore 2.68
-G_M26669_IG12:        ; bbWeight=0.50, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
+G_M26669_IG14:        ; bbWeight=0.50, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
        lea      ecx, bword ptr [eax+0x08]
        ; byrRegs +[ecx]
        mov      edx, dword ptr [eax+0x04]
@@ -130,54 +143,18 @@ G_M26669_IG12:        ; bbWeight=0.50, gcrefRegs=00000009 {eax ebx}, byrefRegs=0
        test     eax, eax
        jne      SHORT G_M26669_IG03
                        ;; size=22 bbWeight=0.50 PerfScore 4.25
-G_M26669_IG13:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M26669_IG15:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M26669_IG14:        ; bbWeight=0.50, epilog, nogc, extend
-       lea      esp, [ebp-0x0C]
+G_M26669_IG16:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      ecx
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      4
-                       ;; size=10 bbWeight=0.50 PerfScore 2.25
-G_M26669_IG15:        ; bbWeight=0.45, gcVars=00000000 {}, gcrefRegs=0000004D {eax edx ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs +[eax edx ebx esi]
-       test     esi, esi
-       je       SHORT G_M26669_IG13
-                       ;; size=4 bbWeight=0.45 PerfScore 0.56
-G_M26669_IG16:        ; bbWeight=0.45, gcrefRegs=0000004D {eax edx ebx esi}, byrefRegs=00000000 {}, byref, isz
-       mov      ecx, dword ptr [edx+0x04]
-       cmp      ecx, dword ptr [esi+0x04]
-       mov      gword ptr [ebp-0x14], eax
-       ; GC ptr vars +{V00}
-       jne      SHORT G_M26669_IG13
-                       ;; size=11 bbWeight=0.45 PerfScore 3.13
-G_M26669_IG17:        ; bbWeight=0.50, gcVars=00000002 {V00}, gcrefRegs=0000004C {edx ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs -[eax]
-       lea      ecx, bword ptr [edx+0x08]
-       ; byrRegs +[ecx]
-       mov      edx, dword ptr [edx+0x04]
-       ; gcrRegs -[edx]
-       add      edx, edx
-       push     edx
-       lea      edx, bword ptr [esi+0x08]
-       ; byrRegs +[edx]
-       call     [<unknown method>]
-       ; gcrRegs -[esi]
-       ; byrRegs -[ecx edx]
-       test     eax, eax
-       je       SHORT G_M26669_IG13
-                       ;; size=22 bbWeight=0.50 PerfScore 4.25
-G_M26669_IG18:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
-       mov      esi, gword ptr [ebp-0x14]
-       ; gcrRegs +[esi]
-       mov      dword ptr [ebp-0x10], edi
-       mov      edi, esi
-       ; gcrRegs +[edi]
-       jmp      SHORT G_M26669_IG08
-                       ;; size=10 bbWeight=0.50 PerfScore 2.13
+                       ;; size=8 bbWeight=0.50 PerfScore 2.25
 
-; Total bytes of code 185, prolog size 9, PerfScore 44.23, instruction count 80, allocated bytes for code 185 (MethodHash=ea0a97d2) for method System.Security.Cryptography.Xml.Utils:HasNamespace(System.Xml.XmlElement,System.String,System.String):ubyte (FullOpts)
+; Total bytes of code 157, prolog size 7, PerfScore 40.84, instruction count 71, allocated bytes for code 157 (MethodHash=ea0a97d2) for method System.Security.Cryptography.Xml.Utils:HasNamespace(System.Xml.XmlElement,System.String,System.String):ubyte (FullOpts)
 ; ============================================================
 

-43 (-13.23%) : 34472.dasm - System.Xml.XmlAttributeCollection:get_ItemOf(System.String,System.String):System.Xml.XmlAttribute:this (FullOpts)

@@ -8,19 +8,19 @@
 ; 2 inlinees with PGO data; 17 single block inlinees; 7 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T06] (  4, 12   )     ref  ->  [ebp-0x1C]  this class-hnd single-def <System.Xml.XmlAttributeCollection>
+;  V00 this         [V00,T06] (  4, 12   )     ref  ->  edi         this class-hnd single-def <System.Xml.XmlAttributeCollection>
 ;  V01 arg1         [V01,T05] (  8, 12.58)     ref  ->  esi         class-hnd single-def <System.String>
-;  V02 arg2         [V02,T09] (  5,  9.58)     ref  ->  [ebp+0x08]  class-hnd single-def <System.String>
+;  V02 arg2         [V02,T09] (  5,  9.58)     ref  ->  ebx         class-hnd single-def <System.String>
 ;  V03 loc0         [V03,T18] (  2,  3   )     int  ->  [ebp-0x10]  spill-single-def
 ;  V04 loc1         [V04,T04] (  5, 15   )     int  ->  [ebp-0x14] 
-;  V05 loc2         [V05,T08] (  6, 10.50)     ref  ->  [ebp-0x20]  class-hnd spill-single-def <System.Xml.XmlAttribute>
+;  V05 loc2         [V05,T08] (  6, 10.50)     ref  ->  [ebp-0x1C]  class-hnd spill-single-def <System.Xml.XmlAttribute>
 ;  V06 tmp0         [V06,T10] (  3,  9   )     ref  ->  eax         "CASTCLASS eval op1"
 ;  V07 tmp1         [V07,T15] (  3,  5   )     int  ->  ecx         "fgMakeTemp is creating a new local variable"
 ;  V08 tmp2         [V08,T03] (  5, 15   )     ref  ->  registers   class-hnd "spilling QMark2" <System.Xml.XmlAttribute>
 ;* V09 tmp3         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlName>
-;  V10 tmp4         [V10,T01] (  5, 19.15)     ref  ->  registers   class-hnd exact "Inlining Arg" <System.String>
+;  V10 tmp4         [V10,T01] (  5, 19.15)     ref  ->  edx         class-hnd exact "Inlining Arg" <System.String>
 ;  V11 tmp5         [V11,T16] (  2,  4   )   ubyte  ->  eax         "Inline return value spill temp"
-;  V12 tmp6         [V12,T11] (  2,  8   )   byref  ->  ebx         "impAppendStmt"
+;  V12 tmp6         [V12,T11] (  2,  8   )   byref  ->  ecx         "impAppendStmt"
 ;* V13 tmp7         [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V14 tmp8         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp9         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -37,9 +37,9 @@
 ;  V26 tmp20        [V26,T07] (  4, 14   )     int  ->  edx         "Inline return value spill temp"
 ;  V27 tmp21        [V27,T00] (  3, 36   )   byref  ->  edx         "Inlining Arg"
 ;  V28 tmp22        [V28,T13] (  3,  6   )     ref  ->  eax         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V29 cse0         [V29,T14] (  3,  6.00)     int  ->  [ebp-0x18]  "CSE - moderate"
+;  V29 cse0         [V29,T14] (  3,  6.00)     int  ->  [ebp-0x18]  spill-single-def "CSE - moderate"
 ;
-; Lcl frame size = 20
+; Lcl frame size = 16
 
 G_M17160_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
        push     ebp
@@ -47,7 +47,7 @@ G_M17160_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
        push     edi
        push     esi
        push     ebx
-       sub      esp, 20
+       sub      esp, 16
        mov      edi, ecx
        ; gcrRegs +[edi]
        mov      esi, edx
@@ -63,7 +63,7 @@ G_M17160_IG02:        ; bbWeight=1, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=
        mov      dword ptr [ebp-0x10], eax
        xor      ecx, ecx
        mov      dword ptr [ebp-0x14], ecx
-       jmp      G_M17160_IG16
+       jmp      G_M17160_IG18
                        ;; size=21 bbWeight=1 PerfScore 7.50
 G_M17160_IG03:        ; bbWeight=2, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        lea      ecx, bword ptr [edi+0x08]
@@ -95,14 +95,14 @@ G_M17160_IG06:        ; bbWeight=2, gcrefRegs=000000CC {edx ebx esi edi}, byrefR
        ; gcrRegs -[eax]
        mov      eax, edx
        ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x20], eax
+       mov      gword ptr [ebp-0x1C], eax
        ; GC ptr vars +{V05}
        mov      ecx, gword ptr [eax+0x08]
        ; gcrRegs +[ecx]
        mov      edx, dword ptr [ebp-0x10]
        ; gcrRegs -[edx]
        cmp      edx, dword ptr [ecx+0x1C]
-       jne      SHORT G_M17160_IG15
+       jne      SHORT G_M17160_IG17
                        ;; size=16 bbWeight=2 PerfScore 16.50
 G_M17160_IG07:        ; bbWeight=2.00, gcVars=00000100 {V05}, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[ecx]
@@ -116,47 +116,62 @@ G_M17160_IG07:        ; bbWeight=2.00, gcVars=00000100 {V05}, gcrefRegs=000000C9
        mov      edx, eax
        ; gcrRegs +[edx]
        cmp      esi, edx
-       je       SHORT G_M17160_IG10
+       je       SHORT G_M17160_IG12
                        ;; size=19 bbWeight=2.00 PerfScore 19.50
 G_M17160_IG08:        ; bbWeight=1.79, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax]
        test     esi, esi
-       je       SHORT G_M17160_IG15
+       je       SHORT G_M17160_IG17
                        ;; size=4 bbWeight=1.79 PerfScore 2.24
 G_M17160_IG09:        ; bbWeight=1.79, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      ecx, edx
+       test     edx, edx
+       je       SHORT G_M17160_IG17
+                       ;; size=4 bbWeight=1.79 PerfScore 2.23
+G_M17160_IG10:        ; bbWeight=1.79, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, dword ptr [esi+0x04]
+       cmp      ecx, dword ptr [edx+0x04]
+       jne      SHORT G_M17160_IG17
+                       ;; size=8 bbWeight=1.79 PerfScore 10.72
+G_M17160_IG11:        ; bbWeight=2, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       lea      ecx, bword ptr [esi+0x08]
+       ; byrRegs +[ecx]
+       mov      eax, dword ptr [esi+0x04]
+       add      eax, eax
+       push     eax
+       add      edx, 8
+       ; gcrRegs -[edx]
+       ; byrRegs +[edx]
+       call     [<unknown method>]
+       ; byrRegs -[ecx edx]
+       test     eax, eax
+       je       SHORT G_M17160_IG17
+                       ;; size=22 bbWeight=2 PerfScore 16.50
+G_M17160_IG12:        ; bbWeight=2.00, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, gword ptr [ebp-0x1C]
        ; gcrRegs +[ecx]
-       mov      eax, gword ptr [ebp-0x20]
-       ; gcrRegs +[eax]
-       jmp      SHORT G_M17160_IG18
-                       ;; size=7 bbWeight=1.79 PerfScore 5.81
-G_M17160_IG10:        ; bbWeight=2.00, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[eax ecx edx]
-       mov      ecx, gword ptr [ebp-0x20]
-       ; gcrRegs +[ecx]
-       mov      eax, dword ptr [ebp-0x18]
-       call     [eax+0x0C]<unknown method>
+       mov      edx, dword ptr [ebp-0x18]
+       call     [edx+0x0C]<unknown method>
        ; gcrRegs -[ecx] +[eax]
        mov      edx, eax
        ; gcrRegs +[edx]
        cmp      ebx, edx
-       je       G_M17160_IG28
-                       ;; size=19 bbWeight=2.00 PerfScore 13.00
-G_M17160_IG11:        ; bbWeight=1.79, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       je       SHORT G_M17160_IG26
+                       ;; size=15 bbWeight=2.00 PerfScore 13.00
+G_M17160_IG13:        ; bbWeight=1.79, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax]
        test     ebx, ebx
-       je       SHORT G_M17160_IG15
+       je       SHORT G_M17160_IG17
                        ;; size=4 bbWeight=1.79 PerfScore 2.24
-G_M17160_IG12:        ; bbWeight=1.79, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M17160_IG14:        ; bbWeight=1.79, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        test     edx, edx
-       je       SHORT G_M17160_IG15
+       je       SHORT G_M17160_IG17
                        ;; size=4 bbWeight=1.79 PerfScore 2.23
-G_M17160_IG13:        ; bbWeight=1.79, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M17160_IG15:        ; bbWeight=1.79, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, dword ptr [ebx+0x04]
        cmp      ecx, dword ptr [edx+0x04]
-       jne      SHORT G_M17160_IG15
+       jne      SHORT G_M17160_IG17
                        ;; size=8 bbWeight=1.79 PerfScore 10.72
-G_M17160_IG14:        ; bbWeight=2, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref
+G_M17160_IG16:        ; bbWeight=2, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        lea      ecx, bword ptr [ebx+0x08]
        ; byrRegs +[ecx]
        mov      eax, dword ptr [ebx+0x04]
@@ -168,78 +183,39 @@ G_M17160_IG14:        ; bbWeight=2, gcrefRegs=000000CC {edx ebx esi edi}, byrefR
        call     [<unknown method>]
        ; byrRegs -[ecx edx]
        test     eax, eax
-       jne      G_M17160_IG28
-                       ;; size=26 bbWeight=2 PerfScore 16.50
-G_M17160_IG15:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
+       jne      SHORT G_M17160_IG26
+                       ;; size=22 bbWeight=2 PerfScore 16.50
+G_M17160_IG17:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
        ; GC ptr vars -{V05}
        mov      eax, dword ptr [ebp-0x14]
        inc      eax
        mov      dword ptr [ebp-0x14], eax
                        ;; size=7 bbWeight=2 PerfScore 4.50
-G_M17160_IG16:        ; bbWeight=8, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M17160_IG18:        ; bbWeight=8, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        lea      edx, bword ptr [edi+0x08]
        ; byrRegs +[edx]
        cmp      gword ptr [edx], 0
        jne      SHORT G_M17160_IG23
                        ;; size=8 bbWeight=8 PerfScore 36.00
-G_M17160_IG17:        ; bbWeight=2, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M17160_IG19:        ; bbWeight=2, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; byrRegs -[edx]
        xor      edx, edx
-       jmp      SHORT G_M17160_IG25
+       jmp      SHORT G_M17160_IG21
                        ;; size=4 bbWeight=2 PerfScore 4.50
-G_M17160_IG18:        ; bbWeight=1.79, gcVars=00000100 {V05}, gcrefRegs=000000CB {eax ecx ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs +[eax ecx]
-       ; GC ptr vars +{V05 V08}
-       test     ecx, ecx
-       je       SHORT G_M17160_IG15
-                       ;; size=4 bbWeight=1.79 PerfScore 2.23
-G_M17160_IG19:        ; bbWeight=1.79, gcrefRegs=000000CB {eax ecx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      gword ptr [ebp+0x08], ebx
-       mov      ebx, dword ptr [esi+0x04]
-       ; gcrRegs -[ebx]
-       cmp      ebx, dword ptr [ecx+0x04]
-       jne      SHORT G_M17160_IG22
-                       ;; size=11 bbWeight=1.79 PerfScore 12.51
-G_M17160_IG20:        ; bbWeight=2, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[eax]
-       mov      gword ptr [ebp-0x1C], edi
-       ; GC ptr vars +{V00}
-       lea      ebx, bword ptr [esi+0x08]
-       ; byrRegs +[ebx]
-       mov      edi, dword ptr [esi+0x04]
-       ; gcrRegs -[edi]
-       add      edi, edi
-       push     edi
-       lea      edx, bword ptr [ecx+0x08]
-       ; byrRegs +[edx]
-       mov      ecx, ebx
-       ; gcrRegs -[ecx]
-       ; byrRegs +[ecx]
-       ; GC ptr vars -{V08}
-       call     [<unknown method>]
-       ; byrRegs -[ecx edx ebx]
-       test     eax, eax
-       mov      ebx, gword ptr [ebp+0x08]
-       ; gcrRegs +[ebx]
-       mov      edi, gword ptr [ebp-0x1C]
-       ; gcrRegs +[edi]
-       je       SHORT G_M17160_IG15
-                       ;; size=33 bbWeight=2 PerfScore 23.50
-G_M17160_IG21:        ; bbWeight=2.00, gcVars=00000100 {V05}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
-       ; GC ptr vars -{V00}
-       mov      eax, gword ptr [ebp-0x20]
-       ; gcrRegs +[eax]
-       mov      ecx, dword ptr [ebp-0x18]
-       jmp      G_M17160_IG10
-                       ;; size=11 bbWeight=2.00 PerfScore 8.00
-G_M17160_IG22:        ; bbWeight=0.89, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs -[eax ebx]
-       ; GC ptr vars -{V05}
-       mov      ebx, gword ptr [ebp+0x08]
-       ; gcrRegs +[ebx]
-       jmp      SHORT G_M17160_IG15
-                       ;; size=5 bbWeight=0.89 PerfScore 2.68
+G_M17160_IG20:        ; bbWeight=2, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+       mov      edx, 1
+                       ;; size=5 bbWeight=2 PerfScore 0.50
+G_M17160_IG21:        ; bbWeight=8, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+       mov      ecx, dword ptr [ebp-0x14]
+       cmp      ecx, edx
+       jl       G_M17160_IG03
+                       ;; size=11 bbWeight=8 PerfScore 18.00
+G_M17160_IG22:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[ebx esi edi]
+       jmp      SHORT G_M17160_IG24
+                       ;; size=2 bbWeight=0.50 PerfScore 1.00
...

+30 (+27.78%) : 159030.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  ->  esi         single-def
+;  V00 arg0         [V00,T00] (  9,  4   )     int  ->  esi         single-def
 ;  V01 arg1         [V01,T01] (  4,  2   )     ref  ->  edi         class-hnd single-def <System.String>
 ;  V02 tmp0         [V02,T02] (  3,  0   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V03 tmp1         [V03,T03] (  3,  0   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -27,9 +27,9 @@ G_M20631_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=10 bbWeight=1 PerfScore 4.75
 G_M20631_IG02:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
        cmp      esi, 452
-       jg       SHORT G_M20631_IG04
+       jg       SHORT G_M20631_IG07
        cmp      esi, 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
        pop      ebx
@@ -77,9 +77,22 @@ G_M20631_IG05:        ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000
        ; gcrRegs +[ecx]
        call     CORINFO_HELP_THROW
        ; gcrRegs -[ecx ebx]
-       int3     
-                       ;; size=33 bbWeight=0 PerfScore 0.00
+                       ;; size=32 bbWeight=0 PerfScore 0.00
+G_M20631_IG06:        ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs +[edi]
+       lea      ecx, [esi-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=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+       cmp      esi, 552
+       je       SHORT G_M20631_IG04
+       cmp      esi, 554
+       je       SHORT G_M20631_IG04
+       jmp      SHORT G_M20631_IG04
+                       ;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 108, prolog size 6, PerfScore 10.25, instruction count 39, allocated bytes for code 108 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 138, prolog size 6, PerfScore 10.25, instruction count 47, allocated bytes for code 138 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
 ; ============================================================
 

+17 (+33.33%) : 5376.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  ->  esi         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+;  V00 this         [V00,T00] (  5,  4   )     ref  ->  esi         this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  edx         class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
 ;  V02 loc0         [V02,T06] (  3,  1.50)     int  ->  edx         ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.__Canon>
@@ -19,9 +19,9 @@
 ;  V08 tmp3         [V08,T04] (  3,  2.50)   byref  ->  eax         single-def "Inline stloc first use temp"
 ;* V09 tmp4         [V09    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V10 tmp5         [V10,T07] (  3,  1.50)     ref  ->  ecx         single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V11 rat0         [V11,T05] (  0,  0   )     int  ->  zero-ref    "Spilling to split statement for tree"
+;  V11 rat0         [V11,T05] (  2,  2   )     int  ->  eax         "Spilling to split statement for tree"
 ;* V12 rat1         [V12,T09] (  0,  0   )     int  ->  zero-ref    "runtime lookup"
-;* V13 rat2         [V13,T03] (  0,  0   )     int  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V13 rat2         [V13,T03] (  2,  2   )     int  ->  eax         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 0
 
@@ -41,43 +41,51 @@ G_M43979_IG02:        ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=0000
        ; gcrRegs -[ecx edx]
        ; byrRegs +[eax]
        test     eax, eax
-       je       SHORT G_M43979_IG04
+       je       SHORT G_M43979_IG05
                        ;; size=15 bbWeight=1 PerfScore 9.25
 G_M43979_IG03:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000001 {eax}, byref, isz
        mov      edx, dword ptr [eax]
        mov      ecx, gword ptr [esi+0x44]
        ; gcrRegs +[ecx]
-       jmp      SHORT G_M43979_IG06
-                       ;; size=7 bbWeight=0.50 PerfScore 3.00
-G_M43979_IG04:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[ecx]
+       mov      eax, dword ptr [esi]
        ; byrRegs -[eax]
+       mov      eax, dword ptr [eax+0x24]
+       mov      eax, dword ptr [eax]
+       mov      eax, dword ptr [eax+0x80]
+       test     eax, eax
+       jne      SHORT G_M43979_IG07
+                       ;; size=22 bbWeight=0.50 PerfScore 6.62
+G_M43979_IG04:        ; bbWeight=0.10, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M43979_IG07
+                       ;; size=2 bbWeight=0.10 PerfScore 0.20
+G_M43979_IG05:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[ecx]
        xor      eax, eax
        ; gcrRegs +[eax]
                        ;; 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
        pop      esi
        pop      ebp
        ret      
                        ;; size=3 bbWeight=0.50 PerfScore 1.00
-G_M43979_IG06:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M43979_IG07:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax] +[ecx]
        cmp      edx, dword ptr [ecx+0x04]
-       jae      SHORT G_M43979_IG08
+       jae      SHORT G_M43979_IG09
        mov      eax, gword ptr [ecx+4*edx+0x08]
        ; gcrRegs +[eax]
                        ;; size=9 bbWeight=0.50 PerfScore 3.00
-G_M43979_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        pop      esi
        pop      ebp
        ret      
                        ;; size=3 bbWeight=0.50 PerfScore 1.00
-G_M43979_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+G_M43979_IG09:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[eax ecx]
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 51, prolog size 4, PerfScore 19.88, instruction count 24, allocated bytes for code 51 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 68, prolog size 4, PerfScore 23.70, instruction count 30, 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)
 ; ============================================================
 

+19 (+59.38%) : 147579.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)

@@ -7,9 +7,9 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  3,  3   )     int  ->  ecx         single-def
+;  V00 arg0         [V00,T01] (  4,  3.50)     int  ->  ecx         single-def
 ;  V01 loc0         [V01,T02] (  3,  2   )   ubyte  ->  eax        
-;  V02 rat0         [V02,T00] (  3,  6   )     int  ->  ecx         "ReplaceWithLclVar is creating a new local variable"
+;  V02 rat0         [V02,T00] (  3,  6   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 0
 
@@ -18,25 +18,54 @@ G_M3102_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
        mov      ebp, esp
                        ;; size=3 bbWeight=1 PerfScore 1.25
 G_M3102_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, 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, [ecx-0x02]
+       cmp      eax, 19
+       ja       SHORT G_M3102_IG03
+       lea      edx, [@RWD00]
+       mov      edx, dword ptr [edx+4*eax]
+       lea      ecx, G_M3102_IG02
+       add      edx, ecx
+       jmp      edx
+                       ;; size=27 bbWeight=1 PerfScore 7.50
 G_M3102_IG03:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, 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=00000000 {}, byrefRegs=00000000 {}, 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=00000000 {}, byrefRegs=00000000 {}, byref
+G_M3102_IG05:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M3102_IG05:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M3102_IG06:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        pop      ebp
        ret      
                        ;; size=2 bbWeight=1 PerfScore 1.50
+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 32, prolog size 3, PerfScore 7.25, instruction count 13, allocated bytes for code 32 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
+
+; Total bytes of code 51, prolog size 3, PerfScore 13.25, instruction count 19, allocated bytes for code 51 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
 ; ============================================================
 

realworld.run.windows.x86.checked.mch

-4 (-2.06%) : 5655.dasm - FSharp.Compiler.CompilerImports:OpenILBinary(System.String,FSharp.Compiler.AbstractIL.ILBinaryReader+ReduceMemoryFlag,Microsoft.FSharp.Core.FSharpOption1[System.String],ubyte,Microsoft.FSharp.Core.FSharpFunc2[System.Tuple2[System.String,System.DateTime],Microsoft.FSharp.Core.FSharpOption1[System.Tuple`3[System.Object,int,int]]]):FSharp.Compiler.AbstractIL.ILBinaryReader+ILModuleReader (FullOpts)

@@ -80,14 +80,13 @@ G_M61085_IG02:        ; bbWeight=1, gcVars=00000004 {V00}, gcrefRegs=00000040 {e
        mov      gword ptr [ebp-0x28], eax
        ; GC ptr vars +{V05}
        cmp      byte  ptr [ebp+0x0C], 0
-       jne      SHORT G_M61085_IG07
+       jne      SHORT G_M61085_IG08
+                       ;; size=63 bbWeight=1 PerfScore 15.25
+G_M61085_IG03:        ; bbWeight=1, gcVars=00000044 {V00 V05}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref, isz
        cmp      dword ptr [D1FFAB1EH], 0
-       jne      SHORT G_M61085_IG06
-                       ;; size=72 bbWeight=1 PerfScore 19.25
-G_M61085_IG03:        ; bbWeight=1, gcVars=00000044 {V00 V05}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[eax]
-       mov      eax, gword ptr [ebp-0x28]
-       ; gcrRegs +[eax]
+       jne      SHORT G_M61085_IG07
+                       ;; size=9 bbWeight=1 PerfScore 4.00
+G_M61085_IG04:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref
        mov      ecx, gword ptr [D1FFAB1EH]      ; static handle
        ; gcrRegs +[ecx]
        cmp      byte  ptr [ecx], cl
@@ -103,31 +102,36 @@ G_M61085_IG03:        ; bbWeight=1, gcVars=00000044 {V00 V05}, gcrefRegs=0000000
        call     CORINFO_HELP_TAILCALL
        ; gcrRegs -[eax ecx edx]
        int3     
-                       ;; size=33 bbWeight=1 PerfScore 13.50
-G_M61085_IG04:        ; bbWeight=0, gcVars=00000044 {V00 V05}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref, isz
+                       ;; size=30 bbWeight=1 PerfScore 12.50
+G_M61085_IG05:        ; bbWeight=0, gcVars=00000044 {V00 V05}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[eax]
        ; GC ptr vars +{V00 V02 V05}
        test     eax, eax
-       je       SHORT G_M61085_IG05
+       je       SHORT G_M61085_IG06
        mov      ecx, 0xD1FFAB1E      ; <unknown class>
        cmp      dword ptr [eax], ecx
-       je       SHORT G_M61085_IG05
+       je       SHORT G_M61085_IG06
        mov      edx, eax
        ; gcrRegs +[edx]
        call     CORINFO_HELP_CHKCASTCLASS_SPECIAL
        ; gcrRegs -[edx]
                        ;; size=20 bbWeight=0 PerfScore 0.00
-G_M61085_IG05:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M61085_IG06:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax]
        call     CORINFO_HELP_ENDCATCH
-       cmp      dword ptr [D1FFAB1EH], 0
-       je       SHORT G_M61085_IG03
-                       ;; size=14 bbWeight=0 PerfScore 0.00
-G_M61085_IG06:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       call     CORINFO_HELP_POLL_GC
+       mov      eax, gword ptr [ebp-0x28]
+       ; gcrRegs +[eax]
        jmp      SHORT G_M61085_IG03
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M61085_IG07:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+                       ;; size=10 bbWeight=0 PerfScore 0.00
+G_M61085_IG07:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[eax]
+       call     CORINFO_HELP_POLL_GC
+       mov      eax, gword ptr [ebp-0x28]
+       ; gcrRegs +[eax]
+       jmp      SHORT G_M61085_IG04
+                       ;; size=10 bbWeight=0 PerfScore 0.00
+G_M61085_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[eax]
        mov      ecx, gword ptr [ebp-0x24]
        ; gcrRegs +[ecx]
        call     [System.Reflection.Assembly:ReflectionOnlyLoadFrom(System.String):System.Reflection.Assembly]
@@ -142,9 +146,9 @@ G_M61085_IG07:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 194, prolog size 23, PerfScore 42.75, instruction count 62, allocated bytes for code 194 (MethodHash=4c851162) for method FSharp.Compiler.CompilerImports:OpenILBinary(System.String,FSharp.Compiler.AbstractIL.ILBinaryReader+ReduceMemoryFlag,Microsoft.FSharp.Core.FSharpOption`1[System.String],ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`2[System.String,System.DateTime],Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`3[System.Object,int,int]]]):FSharp.Compiler.AbstractIL.ILBinaryReader+ILModuleReader (FullOpts)
+; Total bytes of code 190, prolog size 23, PerfScore 41.75, instruction count 62, allocated bytes for code 190 (MethodHash=4c851162) for method FSharp.Compiler.CompilerImports:OpenILBinary(System.String,FSharp.Compiler.AbstractIL.ILBinaryReader+ReduceMemoryFlag,Microsoft.FSharp.Core.FSharpOption`1[System.String],ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`2[System.String,System.DateTime],Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`3[System.Object,int,int]]]):FSharp.Compiler.AbstractIL.ILBinaryReader+ILModuleReader (FullOpts)
 ; ============================================================
 
 *************** EH table for FSharp.Compiler.CompilerImports:OpenILBinary(System.String,FSharp.Compiler.AbstractIL.ILBinaryReader+ReduceMemoryFlag,Microsoft.FSharp.Core.FSharpOption`1[System.String],ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`2[System.String,System.DateTime],Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`3[System.Object,int,int]]]):FSharp.Compiler.AbstractIL.ILBinaryReader+ILModuleReader
 1 EH table entries, 1 total EH entries reported to VM
-EH#0: try [G_M61085_IG07..END) handled by [G_M61085_IG04..G_M61085_IG06) (class: 1000001)
+EH#0: try [G_M61085_IG08..END) handled by [G_M61085_IG05..G_M61085_IG07) (class: 1000001)

-2 (-1.90%) : 101.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)

@@ -69,9 +69,8 @@ G_M25445_IG06:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
        lea      edx, bword ptr [eax+edx+0x08]
        ; byrRegs +[edx]
        cmp      dword ptr [edx+0x08], -1
-       jge      SHORT G_M25445_IG07
-       jmp      SHORT G_M25445_IG03
-                       ;; size=34 bbWeight=2 PerfScore 38.00
+       jl       SHORT G_M25445_IG03
+                       ;; size=32 bbWeight=2 PerfScore 34.00
 G_M25445_IG07:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000006 {ecx edx}, byref
        ; gcrRegs -[eax]
        mov      eax, gword ptr [edx]
@@ -95,6 +94,6 @@ G_M25445_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 105, prolog size 4, PerfScore 119.38, instruction count 42, allocated bytes for code 105 (MethodHash=60f49c9a) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 103, prolog size 4, PerfScore 115.38, instruction count 41, allocated bytes for code 103 (MethodHash=60f49c9a) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 

-2 (-1.90%) : 20013.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)

@@ -69,9 +69,8 @@ G_M27287_IG06:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
        lea      edx, bword ptr [eax+4*edx+0x08]
        ; byrRegs +[edx]
        cmp      dword ptr [edx+0x08], -1
-       jge      SHORT G_M27287_IG07
-       jmp      SHORT G_M27287_IG03
-                       ;; size=34 bbWeight=2 PerfScore 38.00
+       jl       SHORT G_M27287_IG03
+                       ;; size=32 bbWeight=2 PerfScore 34.00
 G_M27287_IG07:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000006 {ecx edx}, byref
        ; gcrRegs -[eax]
        mov      eax, gword ptr [edx]
@@ -95,6 +94,6 @@ G_M27287_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 105, prolog size 4, PerfScore 119.38, instruction count 42, allocated bytes for code 105 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 103, prolog size 4, PerfScore 115.38, instruction count 41, allocated bytes for code 103 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 

+14 (+10.94%) : 25019.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System._Canon]:getHasAnyApplicableMember():ubyte:this (FullOpts)

@@ -27,10 +27,10 @@
 ;* V16 tmp12        [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "V03.[004..005)"
 ;  V17 tmp13        [V17,T04] (  2,  8   )     ref  ->  ecx         "argument with side effect"
 ;* V18 cse0         [V18,T14] (  0,  0   )     int  ->  zero-ref    hoist "CSE - aggressive"
-;  V19 cse1         [V19,T09] (  1,  1   )     int  ->  edi         hoist "CSE - moderate"
-;* V20 rat0         [V20,T10] (  0,  0   )     int  ->  zero-ref    "Spilling to split statement for tree"
+;  V19 cse1         [V19,T09] (  2,  2   )     int  ->  edi         hoist "CSE - moderate"
+;  V20 rat0         [V20,T10] (  2,  4   )     int  ->  ecx         "Spilling to split statement for tree"
 ;* V21 rat1         [V21,T11] (  0,  0   )     int  ->  zero-ref    "runtime lookup"
-;* V22 rat2         [V22,T08] (  0,  0   )     int  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V22 rat2         [V22,T08] (  2,  4   )     int  ->  ecx         "fgMakeTemp is creating a new local variable"
 ;* V23 rat3         [V23,T13] (  0,  0   )     int  ->  zero-ref    "runtime lookup"
 ;* V24 rat4         [V24,T02] (  0,  0   )     int  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
@@ -59,8 +59,14 @@ G_M864_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {
        call     [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]
        ; gcrRegs -[ecx]
        mov      edi, dword ptr [esi]
+       mov      ecx, edi
+       mov      ecx, dword ptr [ecx+0x24]
+       mov      ecx, dword ptr [ecx]
+       mov      ecx, dword ptr [ecx+0x18]
+       test     ecx, ecx
+       jne      SHORT G_M864_IG04
        jmp      SHORT G_M864_IG04
-                       ;; size=18 bbWeight=1 PerfScore 12.50
+                       ;; size=32 bbWeight=1 PerfScore 20.00
 G_M864_IG03:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [ebp-0x10]
        ; gcrRegs +[ecx]
@@ -111,6 +117,6 @@ G_M864_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
                        ;; size=7 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 128, prolog size 28, PerfScore 130.58, instruction count 51, allocated bytes for code 128 (MethodHash=caadfc9f) for method Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
+; Total bytes of code 142, prolog size 28, PerfScore 138.08, instruction count 57, allocated bytes for code 142 (MethodHash=caadfc9f) for method Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
 ; ============================================================
 

+37 (+14.51%) : 28959.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  ->  esi         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator>
+;  V00 this         [V00,T02] (  6,  4   )     ref  ->  esi         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator>
 ;  V01 arg1         [V01,T00] (  6,  5   )     ref  ->  edx         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator>
 ;  V02 arg2         [V02,T06] (  4,  2   )   ubyte  ->  ebx         single-def
 ;  V03 loc0         [V03,T05] (  4,  2   )     ref  ->  ecx         class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V04 loc1         [V04    ] (  0,  0   )    byte  ->  zero-ref   
-;  V05 loc2         [V05,T02] (  7,  4.50)     int  ->  ecx         single-def
+;  V05 loc2         [V05,T01] ( 10,  6   )     int  ->  ecx         single-def
 ;* V06 tmp0         [V06    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V07 tmp1         [V07    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V08 tmp2         [V08    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
@@ -48,37 +48,48 @@ G_M22690_IG02:        ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=0000
                        ;; size=23 bbWeight=1 PerfScore 5.75
 G_M22690_IG03:        ; bbWeight=0.50, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref, isz
        cmp      ecx, 0x1115
-       je       SHORT G_M22690_IG05
-       cmp      ecx, 0x1116
        je       SHORT G_M22690_IG06
+       cmp      ecx, 0x1116
+       je       SHORT G_M22690_IG07
        add      ecx, -0x1214
        cmp      ecx, 1
-       jbe      SHORT G_M22690_IG05
-       jmp      G_M22690_IG12
+       jbe      SHORT G_M22690_IG06
+       jmp      G_M22690_IG13
                        ;; size=32 bbWeight=0.50 PerfScore 3.00
 G_M22690_IG04:        ; bbWeight=0.50, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref, isz
        cmp      ecx, 0x1D14
-       jg       G_M22690_IG12
+       jg       SHORT G_M22690_IG05
        cmp      ecx, 0x1216
-       je       SHORT G_M22690_IG06
-       jmp      G_M22690_IG12
-                       ;; size=25 bbWeight=0.50 PerfScore 2.25
-G_M22690_IG05:        ; bbWeight=0.50, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref, isz
+       je       SHORT G_M22690_IG07
+       cmp      ecx, 0x1D14
+       je       G_M22690_IG13
+       jmp      G_M22690_IG13
+                       ;; size=33 bbWeight=0.50 PerfScore 2.88
+G_M22690_IG05:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[edx esi]
+       cmp      ecx, 0x1E14
+       je       G_M22690_IG13
+       cmp      ecx, 0x1F14
+       je       G_M22690_IG13
+       jmp      G_M22690_IG13
+                       ;; size=29 bbWeight=0.50 PerfScore 2.25
+G_M22690_IG06:        ; bbWeight=0.50, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs +[edx esi]
        mov      edx, gword ptr [edx+0x10]
        mov      ecx, gword ptr [edx+0x0C]
        ; gcrRegs +[ecx]
-       jmp      SHORT G_M22690_IG07
+       jmp      SHORT G_M22690_IG08
                        ;; size=8 bbWeight=0.50 PerfScore 3.00
-G_M22690_IG06:        ; bbWeight=0.50, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
+G_M22690_IG07:        ; bbWeight=0.50, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx]
        mov      ecx, gword ptr [edx+0x14]
        ; gcrRegs +[ecx]
        mov      ecx, gword ptr [ecx+0x0C]
                        ;; size=6 bbWeight=0.50 PerfScore 2.00
-G_M22690_IG07:        ; bbWeight=0.50, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref, isz
+G_M22690_IG08:        ; bbWeight=0.50, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[edx]
        test     ecx, ecx
-       je       G_M22690_IG12
+       je       G_M22690_IG13
        call     [Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:GetEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]
        ; gcrRegs -[ecx] +[eax]
        mov      ecx, eax
@@ -90,14 +101,14 @@ G_M22690_IG07:        ; bbWeight=0.50, gcrefRegs=00000042 {ecx esi}, byrefRegs=0
        ; gcrRegs -[ecx]
        add      eax, -9
        cmp      eax, 3
-       ja       SHORT G_M22690_IG12
+       ja       SHORT G_M22690_IG13
        lea      ecx, [@RWD00]
        mov      ecx, dword ptr [ecx+4*eax]
        lea      edx, G_M22690_IG02
        add      ecx, edx
        jmp      ecx
                        ;; size=51 bbWeight=0.50 PerfScore 9.38
-G_M22690_IG08:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M22690_IG09:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [esi+0x10]
        ; gcrRegs +[ecx]
        push     12
@@ -107,9 +118,9 @@ G_M22690_IG08:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
        ; gcrRegs -[ecx esi]
-       jmp      SHORT G_M22690_IG12
+       jmp      SHORT G_M22690_IG13
                        ;; size=24 bbWeight=0.50 PerfScore 6.25
-G_M22690_IG09:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M22690_IG10:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[esi]
        mov      ecx, gword ptr [esi+0x10]
        ; gcrRegs +[ecx]
@@ -120,9 +131,9 @@ G_M22690_IG09:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
        ; gcrRegs -[ecx esi]
-       jmp      SHORT G_M22690_IG12
+       jmp      SHORT G_M22690_IG13
                        ;; size=24 bbWeight=0.50 PerfScore 6.25
-G_M22690_IG10:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M22690_IG11:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[esi]
        mov      ecx, gword ptr [esi+0x10]
        ; gcrRegs +[ecx]
@@ -133,9 +144,9 @@ G_M22690_IG10:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
        ; gcrRegs -[ecx esi]
-       jmp      SHORT G_M22690_IG12
+       jmp      SHORT G_M22690_IG13
                        ;; size=24 bbWeight=0.50 PerfScore 6.25
-G_M22690_IG11:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M22690_IG12:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs +[esi]
        mov      ecx, gword ptr [esi+0x10]
        ; gcrRegs +[ecx]
@@ -147,18 +158,18 @@ G_M22690_IG11:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        call     [<unknown method>]
        ; gcrRegs -[ecx esi]
                        ;; size=22 bbWeight=0.50 PerfScore 5.25
-G_M22690_IG12:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M22690_IG13:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        pop      ebx
        pop      esi
        pop      ebp
        ret      4
                        ;; size=6 bbWeight=1 PerfScore 3.50
-RWD00      dd  G_M22690_IG09 - G_M22690_IG02
-           dd  G_M22690_IG08 - G_M22690_IG02
-           dd  G_M22690_IG10 - G_M22690_IG02
+RWD00      dd  G_M22690_IG10 - G_M22690_IG02
+           dd  G_M22690_IG09 - G_M22690_IG02
            dd  G_M22690_IG11 - G_M22690_IG02
+           dd  G_M22690_IG12 - G_M22690_IG02
 
 
-; Total bytes of code 255, prolog size 5, PerfScore 57.38, instruction count 80, allocated bytes for code 255 (MethodHash=a8a6a75d) for method Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
+; Total bytes of code 292, prolog size 5, PerfScore 60.25, instruction count 87, allocated bytes for code 292 (MethodHash=a8a6a75d) for method Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
 ; ============================================================
 

+18 (+32.73%) : 10043.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  ->  esi         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  ->  esi         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  ->  ecx         class-hnd exact single-def <<unknown class>>
 ;* V04 loc3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <FSharp.Compiler.TypedTree+ValRef>
@@ -34,36 +34,47 @@ G_M3270_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        call     CORINFO_HELP_ISINSTANCEOFCLASS
        ; gcrRegs -[edx] +[eax]
        test     eax, eax
-       je       SHORT G_M3270_IG05
+       jne      SHORT G_M3270_IG04
                        ;; size=16 bbWeight=1 PerfScore 2.75
 G_M3270_IG03:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax]
+       mov      edx, esi
+       ; gcrRegs +[edx]
+       mov      ecx, 0xD1FFAB1E      ; <unknown class>
+       call     CORINFO_HELP_ISINSTANCEOFCLASS
+       ; gcrRegs -[edx esi] +[eax]
+       test     eax, eax
+       jne      SHORT G_M3270_IG06
+       jmp      SHORT G_M3270_IG06
+                       ;; size=18 bbWeight=0.50 PerfScore 2.38
+G_M3270_IG04:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[eax] +[esi]
        mov      ecx, gword ptr [esi+0x0C]
        ; gcrRegs +[ecx]
        test     ecx, ecx
-       je       SHORT G_M3270_IG05
+       je       SHORT G_M3270_IG06
        cmp      gword ptr [esi+0x10], 0
-       jne      SHORT G_M3270_IG05
+       jne      SHORT G_M3270_IG06
        mov      ecx, gword ptr [ecx+0x04]
        mov      edx, gword ptr [esi+0x04]
        ; gcrRegs +[edx]
        call     [FSharp.Compiler.Infos:ValRef.IsFSharpEventProperty(FSharp.Compiler.TypedTree+ValRef,FSharp.Compiler.TcGlobals+TcGlobals):ubyte]
        ; gcrRegs -[ecx edx esi]
                        ;; size=25 bbWeight=0.50 PerfScore 7.12
-G_M3270_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG05:        ; bbWeight=0.50, epilog, nogc, extend
        pop      esi
        pop      ebp
        ret      
                        ;; size=3 bbWeight=0.50 PerfScore 1.00
-G_M3270_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M3270_IG06:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        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
        pop      esi
        pop      ebp
        ret      
                        ;; size=3 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 55, prolog size 4, PerfScore 14.50, instruction count 24, allocated bytes for code 55 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
+; Total bytes of code 73, prolog size 4, PerfScore 16.88, instruction count 30, allocated bytes for code 73 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
 ; ============================================================
 

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.windows.x86.checked.mch 455 183 82 190 -587 +734
benchmarks.run_pgo.windows.x86.checked.mch 41,607 3,438 35,926 2,243 -14,556 +1,835,010
benchmarks.run_tiered.windows.x86.checked.mch 360 127 74 159 -433 +668
coreclr_tests.run.windows.x86.checked.mch 63,347 3,666 37,322 22,359 -23,749 +680,517
libraries.crossgen2.windows.x86.checked.mch 1,185 159 235 791 -815 +2,178
libraries.pmi.windows.x86.checked.mch 31,009 4,118 16,247 10,644 -21,085 +169,274
libraries_tests.run.windows.x86.Release.mch 84,727 13,757 60,224 10,746 -87,820 +1,585,439
librariestestsnotieredcompilation.run.windows.x86.Release.mch 72,650 11,307 43,517 17,826 -64,660 +424,509
realworld.run.windows.x86.checked.mch 386 84 114 188 -330 +1,610
295,726 36,839 193,741 65,146 -214,035 +4,699,939

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.x86.checked.mch 24,475 4 24,471 3 (0.01%) 13 (0.05%)
benchmarks.run_pgo.windows.x86.checked.mch 119,515 42,004 77,511 175 (0.15%) 348 (0.29%)
benchmarks.run_tiered.windows.x86.checked.mch 47,896 28,726 19,170 2 (0.00%) 11 (0.02%)
coreclr_tests.run.windows.x86.checked.mch 574,838 320,010 254,828 348 (0.06%) 569 (0.10%)
libraries.crossgen2.windows.x86.checked.mch 241,911 15 241,896 4 (0.00%) 16 (0.01%)
libraries.pmi.windows.x86.checked.mch 303,525 6 303,519 4 (0.00%) 707 (0.23%)
libraries_tests.run.windows.x86.Release.mch 632,872 429,177 203,695 1,993 (0.31%) 2,910 (0.46%)
librariestestsnotieredcompilation.run.windows.x86.Release.mch 315,247 21,872 293,375 20 (0.01%) 508 (0.16%)
realworld.run.windows.x86.checked.mch 35,971 3 35,968 3 (0.01%) 11 (0.03%)
2,296,250 841,817 1,454,433 2,552 (0.11%) 5,093 (0.22%)

jit-analyze output

benchmarks.run.windows.x86.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 7107340 (overridden on cmd)
Total bytes of diff: 7107487 (overridden on cmd)
Total bytes of delta: 147 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          78 : 11930.dasm (1.46 % of base)
          45 : 17138.dasm (24.06 % of base)
          36 : 16216.dasm (1.76 % of base)
          28 : 1905.dasm (1.32 % of base)
          28 : 19452.dasm (0.57 % of base)
          23 : 18190.dasm (1.12 % of base)
          23 : 6169.dasm (0.55 % of base)
          20 : 15745.dasm (0.83 % of base)
          19 : 12704.dasm (0.66 % of base)
          19 : 1705.dasm (2.07 % of base)
          18 : 7846.dasm (4.52 % of base)
          17 : 14954.dasm (4.59 % of base)
          16 : 6470.dasm (1.44 % of base)
          16 : 21059.dasm (0.85 % of base)
          14 : 3945.dasm (6.60 % of base)
          14 : 16888.dasm (1.60 % of base)
          14 : 22262.dasm (10.14 % of base)
          14 : 23043.dasm (7.04 % of base)
          13 : 18150.dasm (1.80 % of base)
          12 : 13803.dasm (0.96 % of base)

Top file improvements (bytes):
         -41 : 2730.dasm (-0.97 % of base)
         -26 : 8629.dasm (-0.31 % of base)
         -18 : 2178.dasm (-1.21 % of base)
         -13 : 2510.dasm (-0.57 % of base)
         -13 : 4712.dasm (-3.37 % of base)
         -12 : 18440.dasm (-1.02 % of base)
         -12 : 22805.dasm (-0.14 % of base)
         -12 : 6086.dasm (-0.14 % of base)
         -11 : 4594.dasm (-1.63 % of base)
         -10 : 9933.dasm (-2.24 % of base)
         -10 : 12458.dasm (-0.37 % of base)
         -10 : 2157.dasm (-1.09 % of base)
         -10 : 24374.dasm (-0.36 % of base)
          -9 : 4014.dasm (-0.74 % of base)
          -8 : 6742.dasm (-0.96 % of base)
          -8 : 9396.dasm (-0.42 % of base)
          -7 : 5546.dasm (-0.97 % of base)
          -7 : 7757.dasm (-0.98 % of base)
          -7 : 15715.dasm (-0.46 % of base)
          -7 : 284.dasm (-1.13 % of base)

65 total files with Code Size differences (36 improved, 29 regressed), 20 unchanged.

Top method regressions (bytes):
          78 (1.46 % of base) : 11930.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (FullOpts)
          45 (24.06 % of base) : 17138.dasm - System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (FullOpts)
          36 (1.76 % of base) : 16216.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (FullOpts)
          28 (0.57 % of base) : 19452.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          28 (1.32 % of base) : 1905.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (FullOpts)
          23 (1.12 % of base) : 18190.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)
          23 (0.55 % of base) : 6169.dasm - System.Diagnostics.Tracing.EventSource:CreateManifestAndDescriptors(System.Type,System.String,System.Diagnostics.Tracing.EventSource,int):ubyte[] (FullOpts)
          20 (0.83 % of base) : 15745.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
          19 (2.07 % of base) : 1705.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.66 % of base) : 12704.dasm - System.Reflection.MethodBaseInvoker:InvokeWithManyArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (FullOpts)
          18 (4.52 % of base) : 7846.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
          17 (4.59 % of base) : 14954.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
          16 (0.85 % of base) : 21059.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (FullOpts)
          16 (1.44 % of base) : 6470.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
          14 (1.60 % of base) : 16888.dasm - LUDecomp:Run():double:this (FullOpts)
          14 (7.04 % of base) : 23043.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
          14 (10.14 % of base) : 22262.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
          14 (6.60 % of base) : 3945.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
          13 (1.80 % of base) : 18150.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)
          12 (0.96 % of base) : 13803.dasm - System.Net.Http.Tests.SocketsHttpHandlerPerfTest+<Get_EnumerateHeaders_Unvalidated>d__12:MoveNext():this (FullOpts)

Top method improvements (bytes):
         -41 (-0.97 % of base) : 2730.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (FullOpts)
         -26 (-0.31 % of base) : 8629.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (FullOpts)
         -18 (-1.21 % of base) : 2178.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:CreateConstructorCallSite(Microsoft.Extensions.DependencyInjection.ServiceLookup.ResultCache,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,System.Type,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ConstructorCallSite:this (FullOpts)
         -13 (-3.37 % of base) : 4712.dasm - System.IO.Pipes.NamedPipeClientStream:ConnectAsync(int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
         -13 (-0.57 % of base) : 2510.dasm - System.Uri:GetCanonicalPath(byref,int):this (FullOpts)
         -12 (-0.14 % of base) : 6086.dasm - Jil.Deserialize.Methods:ParseISO8601Date(System.IO.TextReader,ushort[],int,int):System.DateTime (FullOpts)
         -12 (-0.14 % of base) : 22805.dasm - Jil.Deserialize.Methods:ParseISO8601DateThunkReader(byref,ushort[],int,int):System.DateTime (FullOpts)
         -12 (-1.02 % of base) : 18440.dasm - Microsoft.CodeAnalysis.PEModule:GetTypeNamespaceNamesOrThrow(System.Collections.Generic.Dictionary`2[System.String,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.Reflection.Metadata.TypeDefinitionHandle]]):this (FullOpts)
         -11 (-1.63 % of base) : 4594.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (FullOpts)
         -10 (-1.09 % of base) : 2157.dasm - System.Collections.Generic.Dictionary`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory+ServiceDescriptorCacheItem]:TryInsert(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory+ServiceDescriptorCacheItem,ubyte):ubyte:this (FullOpts)
         -10 (-2.24 % of base) : 9933.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this (FullOpts)
         -10 (-0.37 % of base) : 12458.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_SocketAddress>d__14:MoveNext():this (FullOpts)
         -10 (-0.36 % of base) : 24374.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_Task>d__13:MoveNext():this (FullOpts)
          -9 (-0.74 % of base) : 4014.dasm - System.Threading.ManualResetEventSlim:Wait(int,System.Threading.CancellationToken):ubyte:this (FullOpts)
          -8 (-0.96 % of base) : 6742.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:TryInsert(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int,ubyte):ubyte:this (FullOpts)
          -8 (-0.42 % of base) : 9396.dasm - System.Text.Json.JsonSerializer:TryReadMetadata(System.Text.Json.Serialization.JsonConverter,System.Text.Json.Serialization.Metadata.JsonTypeInfo,byref,byref):ubyte (FullOpts)
          -7 (-0.98 % of base) : 7757.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:TryInsert(int,ubyte,ubyte):ubyte:this (FullOpts)
          -7 (-0.97 % of base) : 5546.dasm - System.Collections.Generic.Dictionary`2[ushort,System.__Canon]:TryInsert(ushort,System.__Canon,ubyte):ubyte:this (FullOpts)
          -7 (-1.13 % of base) : 284.dasm - System.Reflection.TypeNameParser:GetType(System.String,System.ReadOnlySpan`1[System.String],System.String):System.Type:this (FullOpts)
          -7 (-0.46 % of base) : 15715.dasm - System.Xml.XmlConverter:TryParseDateTime(ubyte[],int,int,byref):ubyte (FullOpts)

Top method regressions (percentages):
          45 (24.06 % of base) : 17138.dasm - System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (FullOpts)
          14 (10.14 % of base) : 22262.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
          14 (7.04 % of base) : 23043.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
          14 (6.60 % of base) : 3945.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
           6 (6.52 % of base) : 15441.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
          10 (6.13 % of base) : 8494.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
          10 (4.67 % of base) : 14620.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (FullOpts)
          17 (4.59 % of base) : 14954.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
          18 (4.52 % of base) : 7846.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
           7 (4.19 % of base) : 18880.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
          19 (2.07 % of base) : 1705.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)
           7 (1.99 % of base) : 5770.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
          12 (1.85 % of base) : 7471.dasm - System.Reflection.Emit.DynamicILGenerator:GetMemberRefToken(System.Reflection.MethodInfo,System.Type[]):int:this (FullOpts)
          13 (1.80 % of base) : 18150.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)
          36 (1.76 % of base) : 16216.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (FullOpts)
          14 (1.60 % of base) : 16888.dasm - LUDecomp:Run():double:this (FullOpts)
          78 (1.46 % of base) : 11930.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (FullOpts)
          16 (1.44 % of base) : 6470.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
           9 (1.38 % of base) : 20037.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 (FullOpts)
          10 (1.36 % of base) : 1772.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:TryInsert(ulong,System.__Canon,ubyte):ubyte:this (FullOpts)

Top method improvements (percentages):
         -13 (-3.37 % of base) : 4712.dasm - System.IO.Pipes.NamedPipeClientStream:ConnectAsync(int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
         -10 (-2.24 % of base) : 9933.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this (FullOpts)
          -2 (-1.98 % of base) : 9110.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.90 % of base) : 101.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.90 % of base) : 1749.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.89 % of base) : 4915.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.79 % of base) : 1243.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-1.79 % of base) : 14202.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-1.79 % of base) : 15117.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-1.79 % of base) : 15313.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-1.79 % of base) : 15999.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-1.79 % of base) : 7180.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-1.79 % of base) : 9236.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-1.79 % of base) : 9928.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -2 (-1.75 % of base) : 207.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -11 (-1.63 % of base) : 4594.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (FullOpts)
          -2 (-1.53 % of base) : 6762.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.33 % of base) : 17081.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
          -2 (-1.31 % of base) : 8097.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
         -18 (-1.21 % of base) : 2178.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:CreateConstructorCallSite(Microsoft.Extensions.DependencyInjection.ServiceLookup.ResultCache,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,System.Type,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ConstructorCallSite:this (FullOpts)


benchmarks.run_pgo.windows.x86.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 43402092 (overridden on cmd)
Total bytes of diff: 45222546 (overridden on cmd)
Total bytes of delta: 1820454 (4.19 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         893 : 13891.dasm (41.48 % of base)
         304 : 43010.dasm (19.25 % of base)
         284 : 75032.dasm (6.26 % of base)
         276 : 44068.dasm (17.37 % of base)
         267 : 10793.dasm (17.03 % of base)
         262 : 114208.dasm (12.03 % of base)
         261 : 87125.dasm (2.85 % of base)
         261 : 57300.dasm (12.02 % of base)
         258 : 25557.dasm (11.73 % of base)
         258 : 42144.dasm (11.73 % of base)
         257 : 79434.dasm (4.03 % of base)
         255 : 49481.dasm (19.38 % of base)
         252 : 85138.dasm (15.69 % of base)
         250 : 52266.dasm (11.91 % of base)
         250 : 82716.dasm (11.91 % of base)
         250 : 46036.dasm (11.91 % of base)
         250 : 65525.dasm (11.91 % of base)
         247 : 54930.dasm (22.19 % of base)
         247 : 103588.dasm (11.36 % of base)
         245 : 105214.dasm (11.91 % of base)

Top file improvements (bytes):
        -316 : 76876.dasm (-6.75 % of base)
        -135 : 99094.dasm (-4.06 % of base)
         -56 : 30413.dasm (-0.66 % of base)
         -52 : 1585.dasm (-6.32 % of base)
         -49 : 75926.dasm (-1.07 % of base)
         -45 : 111594.dasm (-3.37 % of base)
         -42 : 118121.dasm (-7.08 % of base)
         -39 : 66677.dasm (-12.11 % of base)
         -36 : 115915.dasm (-2.89 % of base)
         -36 : 111872.dasm (-2.89 % of base)
         -36 : 114885.dasm (-2.89 % of base)
         -32 : 7659.dasm (-4.96 % of base)
         -32 : 87420.dasm (-2.35 % of base)
         -32 : 48937.dasm (-4.99 % of base)
         -31 : 114.dasm (-1.91 % of base)
         -30 : 85973.dasm (-1.46 % of base)
         -30 : 71455.dasm (-1.46 % of base)
         -30 : 64631.dasm (-1.46 % of base)
         -27 : 24435.dasm (-1.70 % of base)
         -27 : 107718.dasm (-2.31 % of base)

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

Top method regressions (bytes):
         893 (41.48 % of base) : 13891.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier0-FullOpts)
         304 (19.25 % of base) : 43010.dasm - System.Reflection.Emit.DynamicILGenerator:Emit(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo):this (Tier1)
         284 (6.26 % of base) : 75032.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol,System.Reflection.Metadata.PropertyDefinitionHandle,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.MetadataDecoder):this (Tier1)
         276 (17.37 % of base) : 44068.dasm - System.Reflection.Emit.DynamicILGenerator:Emit(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo):this (Tier1)
         267 (17.03 % of base) : 10793.dasm - System.Reflection.CustomAttribute:FilterCustomAttributeRecord(System.Reflection.MetadataToken,byref,System.Reflection.RuntimeModule,System.Reflection.MetadataToken,System.RuntimeType,ubyte,byref,byref,byref,byref):ubyte (Tier1)
         262 (12.03 % of base) : 114208.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
         261 (2.85 % of base) : 87125.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (Tier1)
         261 (12.02 % of base) : 57300.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
         258 (11.73 % of base) : 25557.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
         258 (11.73 % of base) : 42144.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
         257 (4.03 % of base) : 79434.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:CalculateUseSiteDiagnostic(byref):ubyte:this (Tier1)
         255 (19.38 % of base) : 49481.dasm - System.Reflection.Emit.DynamicILGenerator:Emit(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo):this (Tier1)
         252 (15.69 % of base) : 85138.dasm - System.Reflection.Emit.DynamicILGenerator:Emit(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo):this (Tier1)
         250 (11.91 % of base) : 52266.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
         250 (11.91 % of base) : 82716.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
         250 (11.91 % of base) : 46036.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
         250 (11.91 % of base) : 65525.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
         247 (22.19 % of base) : 54930.dasm - System.Reflection.Emit.RuntimeILGenerator:EmitCall(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo,System.Type[]):this (Tier1)
         247 (11.36 % of base) : 103588.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
         245 (11.91 % of base) : 105214.dasm - System.Threading.PortableThreadPool:PerformBlockingAdjustment(ubyte,byref):uint:this (Tier1)

Top method improvements (bytes):
        -316 (-6.75 % of base) : 76876.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:CheckValEscape(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,uint,uint,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier0-FullOpts)
        -135 (-4.06 % of base) : 99094.dasm - (dynamicClass):ReadLocationFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         -56 (-0.66 % of base) : 30413.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (Tier0-FullOpts)
         -52 (-6.32 % of base) : 1585.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiByte_Vector(uint,uint):uint (Tier0-FullOpts)
         -49 (-1.07 % of base) : 75926.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (Tier0-FullOpts)
         -45 (-3.37 % of base) : 111594.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:CreateLoop(System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ubyte,int,int):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
         -42 (-7.08 % of base) : 118121.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitSingleChar|16(System.Text.RegularExpressions.RegexNode,ubyte,System.Reflection.Emit.LocalBuilder):this (Tier1)
         -39 (-12.11 % of base) : 66677.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo:NumberHandingIsApplicable():ubyte:this (Tier1)
         -36 (-2.89 % of base) : 115915.dasm - System.Threading.Tasks.Task:RunOrQueueCompletionAction(System.Threading.Tasks.ITaskCompletionAction,ubyte):this (Tier1)
         -36 (-2.89 % of base) : 111872.dasm - System.Threading.Tasks.Task:RunOrQueueCompletionAction(System.Threading.Tasks.ITaskCompletionAction,ubyte):this (Tier1)
         -36 (-2.89 % of base) : 114885.dasm - System.Threading.Tasks.Task:RunOrQueueCompletionAction(System.Threading.Tasks.ITaskCompletionAction,ubyte):this (Tier1)
         -32 (-2.35 % of base) : 87420.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:EnsureNullabilityAnalysisPerformedIfNecessary():this (Tier1)
         -32 (-4.99 % of base) : 48937.dasm - System.Threading.AsyncOverSyncWithIoCancellation+<InvokeAsync>d__7`1[System.ValueTuple`4[System.__Canon,System.ReadOnlyMemory`1[ubyte],long,System.__Canon]]:MoveNext():this (Tier1)
         -32 (-4.96 % of base) : 7659.dasm - System.Threading.AsyncOverSyncWithIoCancellation+<InvokeAsync>d__8`2[System.ValueTuple`4[System.__Canon,System.Memory`1[ubyte],long,System.__Canon],int]:MoveNext():this (Tier1)
         -31 (-1.91 % of base) : 114.dasm - System.Text.Ascii:NarrowUtf16ToAscii(uint,uint,uint):uint (Tier0-FullOpts)
         -30 (-1.46 % of base) : 85973.dasm - System.Linq.Enumerable+SelectRangeIterator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
         -30 (-1.46 % of base) : 71455.dasm - System.Linq.Enumerable+SelectRangeIterator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
         -30 (-1.46 % of base) : 64631.dasm - System.Linq.Enumerable+SelectRangeIterator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
         -27 (-2.31 % of base) : 107718.dasm - System.IO.FileStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (Tier1)
         -27 (-1.70 % of base) : 24435.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1+<DeserializeAsync>d__1[System.__Canon]:MoveNext():this (Tier0-FullOpts)

Top method regressions (percentages):
         171 (65.52 % of base) : 81639.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:GetEmbeddedTypes(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (Tier1)
         893 (41.48 % of base) : 13891.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier0-FullOpts)
           9 (34.62 % of base) : 40684.dasm - Utf8Json.Resolvers.BuiltinResolver+BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
          55 (34.59 % of base) : 3945.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Enumerator[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier1)
          76 (33.78 % of base) : 12249.dasm - System.Reflection.PseudoCustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,byref) (Tier1)
          76 (33.78 % of base) : 28115.dasm - System.Reflection.PseudoCustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,byref) (Tier1)
          75 (33.19 % of base) : 1417.dasm - System.Text.StringBuilder:AssertInvariants():this (Tier0-FullOpts)
          71 (33.18 % of base) : 4349.dasm - Interop:GetRandomBytes(uint,int) (Tier1)
          16 (32.65 % of base) : 79193.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)
         149 (32.04 % of base) : 42056.dasm - System.Array:GetValue(int,int,int):System.Object:this (Tier1)
         109 (30.03 % of base) : 113506.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
         109 (30.03 % of base) : 48029.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
         109 (30.03 % of base) : 71433.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
         109 (30.03 % of base) : 31291.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
         109 (30.03 % of base) : 59560.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
         109 (30.03 % of base) : 65897.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          67 (29.13 % of base) : 101351.dasm - System.Reflection.PseudoCustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,byref) (Tier1)
          67 (29.13 % of base) : 29008.dasm - System.Reflection.PseudoCustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,byref) (Tier1)
          67 (29.13 % of base) : 91416.dasm - System.Reflection.PseudoCustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,byref) (Tier1)
          16 (29.09 % of base) : 81859.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)

Top method improvements (percentages):
          -7 (-21.21 % of base) : 62494.dasm - MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
          -4 (-12.50 % of base) : 81831.dasm - Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
         -39 (-12.11 % of base) : 66677.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo:NumberHandingIsApplicable():ubyte:this (Tier1)
         -26 (-11.02 % of base) : 77003.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitBinaryOperatorChildren(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (Tier0-FullOpts)
          -4 (-10.81 % of base) : 49491.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -4 (-10.53 % of base) : 13073.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -4 (-10.53 % of base) : 101743.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -4 (-10.53 % of base) : 12611.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -4 (-10.53 % of base) : 2586.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -4 (-10.53 % of base) : 3162.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -4 (-10.53 % of base) : 3925.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -4 (-10.53 % of base) : 67519.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -4 (-10.53 % of base) : 67771.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -4 (-10.53 % of base) : 88333.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -4 (-10.53 % of base) : 14735.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -4 (-10.53 % of base) : 30440.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -4 (-10.53 % of base) : 56048.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
          -6 (-9.68 % of base) : 86262.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsAdditionalLocalFunctionModifier(ushort):ubyte (Tier1)
         -24 (-8.79 % of base) : 45830.dasm - System.String:Replace(ushort,ushort):System.String:this (Tier1)
          -2 (-8.00 % of base) : 106453.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(uint,System.Object):System.Object (Tier1)


benchmarks.run_tiered.windows.x86.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 9511225 (overridden on cmd)
Total bytes of diff: 9511460 (overridden on cmd)
Total bytes of delta: 235 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          78 : 20950.dasm (1.46 % of base)
          45 : 32792.dasm (24.06 % of base)
          36 : 31115.dasm (1.76 % of base)
          28 : 39953.dasm (0.57 % of base)
          28 : 10398.dasm (1.32 % of base)
          23 : 11676.dasm (0.55 % of base)
          23 : 34434.dasm (1.12 % of base)
          19 : 9934.dasm (2.07 % of base)
          19 : 20768.dasm (0.66 % of base)
          18 : 12627.dasm (4.52 % of base)
          17 : 31683.dasm (4.59 % of base)
          16 : 41173.dasm (0.85 % of base)
          14 : 32228.dasm (1.60 % of base)
          14 : 43692.dasm (10.14 % of base)
          14 : 44993.dasm (7.04 % of base)
          13 : 34322.dasm (1.80 % of base)
          12 : 26824.dasm (0.96 % of base)
          12 : 13148.dasm (1.85 % of base)
          11 : 29765.dasm (0.87 % of base)
          10 : 47143.dasm (6.13 % of base)

Top file improvements (bytes):
         -41 : 14258.dasm (-0.97 % of base)
         -26 : 19395.dasm (-0.31 % of base)
         -18 : 9508.dasm (-1.21 % of base)
         -12 : 34934.dasm (-1.02 % of base)
         -11 : 6694.dasm (-1.63 % of base)
         -10 : 47892.dasm (-0.36 % of base)
         -10 : 25227.dasm (-0.37 % of base)
         -10 : 25314.dasm (-2.24 % of base)
          -9 : 3334.dasm (-0.74 % of base)
          -8 : 19803.dasm (-0.42 % of base)
          -8 : 9255.dasm (-0.99 % of base)
          -7 : 14891.dasm (-0.97 % of base)
          -7 : 12349.dasm (-0.98 % of base)
          -7 : 691.dasm (-1.13 % of base)
          -7 : 7575.dasm (-0.93 % of base)
          -7 : 29528.dasm (-0.46 % of base)
          -6 : 40863.dasm (-0.82 % of base)
          -6 : 10086.dasm (-0.91 % of base)
          -6 : 26550.dasm (-0.47 % of base)
          -6 : 9071.dasm (-0.62 % of base)

66 total files with Code Size differences (36 improved, 30 regressed), 20 unchanged.

Top method regressions (bytes):
          78 (1.46 % of base) : 20950.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (Tier0-FullOpts)
          45 (24.06 % of base) : 32792.dasm - System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (Tier0-FullOpts)
          36 (1.76 % of base) : 31115.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (Tier0-FullOpts)
          28 (0.57 % of base) : 39953.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier1)
          28 (1.32 % of base) : 10398.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (Tier1)
          23 (1.12 % of base) : 34434.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier0-FullOpts)
          23 (0.55 % of base) : 11676.dasm - System.Diagnostics.Tracing.EventSource:CreateManifestAndDescriptors(System.Type,System.String,System.Diagnostics.Tracing.EventSource,int):ubyte[] (Tier0-FullOpts)
          19 (2.07 % of base) : 9934.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 (Tier0-FullOpts)
          19 (0.66 % of base) : 20768.dasm - System.Reflection.MethodBaseInvoker:InvokeWithManyArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (Tier0-FullOpts)
          18 (4.52 % of base) : 12627.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (Tier0-FullOpts)
          17 (4.59 % of base) : 31683.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (Tier1)
          16 (0.85 % of base) : 41173.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (Tier0-FullOpts)
          14 (1.60 % of base) : 32228.dasm - LUDecomp:Run():double:this (Tier0-FullOpts)
          14 (7.04 % of base) : 44993.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (Tier0-FullOpts)
          14 (10.14 % of base) : 43692.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (Tier0-FullOpts)
          13 (1.80 % of base) : 34322.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 (Tier0-FullOpts)
          12 (0.96 % of base) : 26824.dasm - System.Net.Http.Tests.SocketsHttpHandlerPerfTest+<Get_EnumerateHeaders_Unvalidated>d__12:MoveNext():this (Tier0-FullOpts)
          12 (1.85 % of base) : 13148.dasm - System.Reflection.Emit.DynamicILGenerator:GetMemberRefToken(System.Reflection.MethodInfo,System.Type[]):int:this (Tier0-FullOpts)
          11 (0.87 % of base) : 29765.dasm - System.Formats.Tar.TarReader+<DisposeAsync>d__8:MoveNext():this (Tier0-FullOpts)
          10 (1.36 % of base) : 4834.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (Tier0-FullOpts)

Top method improvements (bytes):
         -41 (-0.97 % of base) : 14258.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (Tier0-FullOpts)
         -26 (-0.31 % of base) : 19395.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (Tier0-FullOpts)
         -18 (-1.21 % of base) : 9508.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:CreateConstructorCallSite(Microsoft.Extensions.DependencyInjection.ServiceLookup.ResultCache,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,System.Type,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ConstructorCallSite:this (Tier0-FullOpts)
         -12 (-1.02 % of base) : 34934.dasm - Microsoft.CodeAnalysis.PEModule:GetTypeNamespaceNamesOrThrow(System.Collections.Generic.Dictionary`2[System.String,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.Reflection.Metadata.TypeDefinitionHandle]]):this (Tier0-FullOpts)
         -11 (-1.63 % of base) : 6694.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (Tier0-FullOpts)
         -10 (-2.24 % of base) : 25314.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this (Tier0-FullOpts)
         -10 (-0.37 % of base) : 25227.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_SocketAddress>d__14:MoveNext():this (Tier0-FullOpts)
         -10 (-0.36 % of base) : 47892.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_Task>d__13:MoveNext():this (Tier0-FullOpts)
          -9 (-0.74 % of base) : 3334.dasm - System.Threading.ManualResetEventSlim:Wait(int,System.Threading.CancellationToken):ubyte:this (Tier0-FullOpts)
          -8 (-0.99 % of base) : 9255.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:TryInsert(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int,ubyte):ubyte:this (Tier0-FullOpts)
          -8 (-0.42 % of base) : 19803.dasm - System.Text.Json.JsonSerializer:TryReadMetadata(System.Text.Json.Serialization.JsonConverter,System.Text.Json.Serialization.Metadata.JsonTypeInfo,byref,byref):ubyte (Tier0-FullOpts)
          -7 (-0.98 % of base) : 12349.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:TryInsert(int,ubyte,ubyte):ubyte:this (Tier0-FullOpts)
          -7 (-0.93 % of base) : 7575.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`2[int,int],System.__Canon]:TryInsert(System.ValueTuple`2[int,int],System.__Canon,ubyte):ubyte:this (Tier0-FullOpts)
          -7 (-0.97 % of base) : 14891.dasm - System.Collections.Generic.Dictionary`2[ushort,System.__Canon]:TryInsert(ushort,System.__Canon,ubyte):ubyte:this (Tier0-FullOpts)
          -7 (-1.13 % of base) : 691.dasm - System.Reflection.TypeNameParser:GetType(System.String,System.ReadOnlySpan`1[System.String],System.String):System.Type:this (Tier0-FullOpts)
          -7 (-0.46 % of base) : 29528.dasm - System.Xml.XmlConverter:TryParseDateTime(ubyte[],int,int,byref):ubyte (Tier0-FullOpts)
          -6 (-0.91 % of base) : 10086.dasm - System.Collections.Generic.Dictionary`2+CollectionsMarshalHelper[ulong,System.__Canon]:GetValueRefOrAddDefault(System.Collections.Generic.Dictionary`2[ulong,System.__Canon],ulong,byref):byref (Tier0-FullOpts)
          -6 (-0.82 % of base) : 40863.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.__Canon]]):this (Tier0-FullOpts)
          -6 (-0.62 % of base) : 9071.dasm - System.Linq.Expressions.Expression:ValidateLambdaArgs(System.Type,byref,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.ParameterExpression],System.String) (Tier0-FullOpts)
          -6 (-0.47 % of base) : 26550.dasm - System.Xml.XmlTextReaderImpl:ParseQName(ubyte,int,byref):int:this (Tier0-FullOpts)

Top method regressions (percentages):
          45 (24.06 % of base) : 32792.dasm - System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (Tier0-FullOpts)
          14 (10.14 % of base) : 43692.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (Tier0-FullOpts)
          14 (7.04 % of base) : 44993.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (Tier0-FullOpts)
           6 (6.52 % of base) : 29723.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (Tier0-FullOpts)
          10 (6.13 % of base) : 47143.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)
          17 (4.59 % of base) : 31683.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (Tier1)
          18 (4.52 % of base) : 12627.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (Tier0-FullOpts)
           8 (3.90 % of base) : 25005.dasm - System.Xml.XmlConvert:CreateException(System.String,System.String[],int,int,int):System.Exception (Tier1)
          19 (2.07 % of base) : 9934.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 (Tier0-FullOpts)
           7 (1.99 % of base) : 15413.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (Tier0-FullOpts)
          12 (1.85 % of base) : 13148.dasm - System.Reflection.Emit.DynamicILGenerator:GetMemberRefToken(System.Reflection.MethodInfo,System.Type[]):int:this (Tier0-FullOpts)
           8 (1.83 % of base) : 9253.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:FindValue(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant):byref:this (Tier0-FullOpts)
          13 (1.80 % of base) : 34322.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 (Tier0-FullOpts)
          36 (1.76 % of base) : 31115.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (Tier0-FullOpts)
          14 (1.60 % of base) : 32228.dasm - LUDecomp:Run():double:this (Tier0-FullOpts)
           6 (1.50 % of base) : 7716.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`2[int,int],System.__Canon]:FindValue(System.ValueTuple`2[int,int]):byref:this (Tier0-FullOpts)
          78 (1.46 % of base) : 20950.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (Tier0-FullOpts)
           6 (1.38 % of base) : 6119.dasm - Internal.Cryptography.Helpers:ToLpstrArray(System.Security.Cryptography.OidCollection,byref):System.Runtime.InteropServices.SafeHandle (Tier0-FullOpts)
           9 (1.38 % of base) : 38676.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 (Tier0-FullOpts)
          10 (1.36 % of base) : 4834.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (Tier0-FullOpts)

Top method improvements (percentages):
         -10 (-2.24 % of base) : 25314.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this (Tier0-FullOpts)
          -2 (-1.98 % of base) : 19864.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-1.90 % of base) : 236.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-1.90 % of base) : 8221.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-1.89 % of base) : 4910.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-1.79 % of base) : 8960.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -2 (-1.79 % of base) : 28878.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -2 (-1.79 % of base) : 29297.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -2 (-1.79 % of base) : 17869.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -2 (-1.79 % of base) : 20252.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -2 (-1.79 % of base) : 27333.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -2 (-1.79 % of base) : 30425.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -2 (-1.79 % of base) : 5362.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -2 (-1.75 % of base) : 498.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
         -11 (-1.63 % of base) : 6694.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (Tier0-FullOpts)
          -2 (-1.53 % of base) : 9309.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-1.31 % of base) : 18086.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (Tier0-FullOpts)
         -18 (-1.21 % of base) : 9508.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:CreateConstructorCallSite(Microsoft.Extensions.DependencyInjection.ServiceLookup.ResultCache,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,System.Type,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ConstructorCallSite:this (Tier0-FullOpts)
          -7 (-1.13 % of base) : 691.dasm - System.Reflection.TypeNameParser:GetType(System.String,System.ReadOnlySpan`1[System.String],System.String):System.Type:this (Tier0-FullOpts)
          -2 (-1.12 % of base) : 32417.dasm - System.Text.Json.Utf8JsonWriter:ValidateEnd(ubyte):this (Tier1)


coreclr_tests.run.windows.x86.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 308523712 (overridden on cmd)
Total bytes of diff: 309180480 (overridden on cmd)
Total bytes of delta: 656768 (0.21 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         605 : 373350.dasm (8.59 % of base)
         469 : 44700.dasm (12.57 % of base)
         456 : 559511.dasm (6.02 % of base)
         366 : 514778.dasm (5.49 % of base)
         320 : 183813.dasm (6.49 % of base)
         320 : 81320.dasm (6.49 % of base)
         315 : 173421.dasm (6.40 % of base)
         315 : 280045.dasm (6.40 % of base)
         312 : 521691.dasm (7.01 % of base)
         300 : 370606.dasm (4.20 % of base)
         280 : 514808.dasm (7.56 % of base)
         280 : 338217.dasm (5.65 % of base)
         280 : 559107.dasm (5.65 % of base)
         272 : 459272.dasm (10.22 % of base)
         269 : 342931.dasm (4.78 % of base)
         268 : 374728.dasm (5.33 % of base)
         265 : 30310.dasm (5.00 % of base)
         256 : 44802.dasm (23.81 % of base)
         241 : 197238.dasm (11.33 % of base)
         241 : 477988.dasm (2.16 % of base)

Top file improvements (bytes):
        -219 : 223857.dasm (-9.89 % of base)
        -155 : 227133.dasm (-3.39 % of base)
        -148 : 237378.dasm (-10.31 % of base)
        -148 : 292766.dasm (-10.31 % of base)
        -143 : 291927.dasm (-9.92 % of base)
        -141 : 239265.dasm (-9.78 % of base)
        -129 : 206603.dasm (-9.27 % of base)
        -128 : 505410.dasm (-3.19 % of base)
        -125 : 284983.dasm (-8.85 % of base)
        -125 : 341605.dasm (-8.85 % of base)
        -125 : 362571.dasm (-8.85 % of base)
        -123 : 238056.dasm (-8.71 % of base)
        -120 : 272136.dasm (-8.46 % of base)
        -118 : 6579.dasm (-8.35 % of base)
        -117 : 375132.dasm (-8.33 % of base)
        -117 : 256906.dasm (-8.31 % of base)
        -117 : 290058.dasm (-8.33 % of base)
        -117 : 202234.dasm (-8.33 % of base)
        -115 : 361045.dasm (-8.19 % of base)
        -115 : 376416.dasm (-8.17 % of base)

78 total files with Code Size differences (33 improved, 45 regressed), 20 unchanged.

Top method regressions (bytes):
         605 (8.59 % of base) : 373350.dasm - Internal.JitInterface.CorInfoImpl:ceeInfoGetCallInfo(byref,uint,uint,int,uint,byref,byref,byref,byref,byref,byref,byref,byref):this (Tier1)
         469 (12.57 % of base) : 44700.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Tier1)
         456 (6.02 % of base) : 559511.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
         366 (5.49 % of base) : 514778.dasm - Runtime_34587:TestEntryPoint():int (FullOpts)
         320 (6.49 % of base) : 183813.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         320 (6.49 % of base) : 81320.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         315 (6.40 % of base) : 173421.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         315 (6.40 % of base) : 280045.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         312 (7.01 % of base) : 521691.dasm - TestShufflingThunk.Test16833:TestEntryPoint():int (FullOpts)
         300 (4.20 % of base) : 370606.dasm - Internal.JitInterface.CorInfoImpl:ceeInfoGetCallInfo(byref,uint,uint,int,uint,byref,byref,byref,byref,byref,byref,byref,byref):this (Tier1)
         280 (5.65 % of base) : 559107.dasm - ILCompiler.DependencyAnalysis.NodeFactory:AttachToDependencyGraph(ILCompiler.DependencyAnalysisFramework.DependencyAnalyzerBase`1[ILCompiler.DependencyAnalysis.NodeFactory],Internal.IL.ILProvider):this (FullOpts)
         280 (5.65 % of base) : 338217.dasm - ILCompiler.DependencyAnalysis.NodeFactory:AttachToDependencyGraph(ILCompiler.DependencyAnalysisFramework.DependencyAnalyzerBase`1[ILCompiler.DependencyAnalysis.NodeFactory],Internal.IL.ILProvider):this (Tier0-FullOpts)
         280 (7.56 % of base) : 514808.dasm - Runtime_34587:ValidateX86():ubyte (FullOpts)
         272 (10.22 % of base) : 459272.dasm - JIT.HardwareIntrinsics.X86._Sse41.handwritten.SimpleBinaryOpTest__MultipleSumAbsoluteDifferences:ValidateResult(ubyte[],ubyte[],ubyte,ushort[],System.String):this (FullOpts)
         269 (4.78 % of base) : 342931.dasm - System.Diagnostics.Process:StartWithCreateProcess(System.Diagnostics.ProcessStartInfo):ubyte:this (Tier1)
         268 (5.33 % of base) : 374728.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
         265 (5.00 % of base) : 30310.dasm - System.Diagnostics.Process:StartWithCreateProcess(System.Diagnostics.ProcessStartInfo):ubyte:this (Tier1)
         256 (23.81 % of base) : 44802.dasm - System.DefaultBinder:CanChangePrimitive(System.Type,System.Type):ubyte (Tier1)
         241 (2.16 % of base) : 477988.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)
         241 (11.33 % of base) : 197238.dasm - System.Linq.Expressions.Compiler.ILGen:EmitConvertToType(System.Reflection.Emit.ILGenerator,System.Type,System.Type,ubyte,System.Linq.Expressions.Compiler.ILocalCache) (Tier1)

Top method improvements (bytes):
        -219 (-9.89 % of base) : 223857.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
        -155 (-3.39 % of base) : 227133.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (Tier0-FullOpts)
        -148 (-10.31 % of base) : 237378.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -148 (-10.31 % of base) : 292766.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -143 (-9.92 % of base) : 291927.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -141 (-9.78 % of base) : 239265.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -129 (-9.27 % of base) : 206603.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -128 (-3.19 % of base) : 505410.dasm - Rotate_explicit2_cs.App+Node:VerifyValid():this (FullOpts)
        -125 (-8.85 % of base) : 284983.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -125 (-8.85 % of base) : 341605.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -125 (-8.85 % of base) : 362571.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -123 (-8.71 % of base) : 238056.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -120 (-8.46 % of base) : 272136.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -118 (-8.35 % of base) : 6579.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -117 (-8.33 % of base) : 375132.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -117 (-8.31 % of base) : 256906.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -117 (-8.33 % of base) : 290058.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -117 (-8.33 % of base) : 202234.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -115 (-8.19 % of base) : 361045.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -115 (-8.17 % of base) : 376416.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):
          43 (153.57 % of base) : 509058.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)
          35 (125.00 % of base) : 505069.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)
          29 (103.57 % of base) : 509006.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)
          33 (38.82 % of base) : 520607.dasm - Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
          33 (38.82 % of base) : 290568.dasm - Test.AA:Method1(byref,int,byref,double[]):float (Tier0-FullOpts)
          36 (36.36 % of base) : 504647.dasm - Test_10w5d.testout1:Func_0_2_6_2_2():double (FullOpts)
          26 (36.11 % of base) : 505110.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)
          16 (32.65 % of base) : 230010.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)
          36 (30.00 % of base) : 34150.dasm - TestLibrary.Generator:GetUInt16():ushort (Tier1)
           8 (29.63 % of base) : 276897.dasm - Microsoft.CodeAnalysis.CSharp.BoundNode:CopyAttributes(Microsoft.CodeAnalysis.CSharp.BoundNode):this (Tier1)
          54 (26.73 % of base) : 520685.dasm - ILGEN_0xc53351bb:Method_0x6cf4(short,byte,uint,ulong,int,long,short,short,ubyte,long,float,ubyte,ulong,ubyte):float (FullOpts)
          25 (24.04 % of base) : 520889.dasm - Test.AA:Main1() (FullOpts)
          25 (24.04 % of base) : 290872.dasm - Test.AA:Main1() (Tier0-FullOpts)
         256 (23.81 % of base) : 44802.dasm - System.DefaultBinder:CanChangePrimitive(System.Type,System.Type):ubyte (Tier1)
          70 (22.22 % of base) : 511783.dasm - Test_Finalize+CreateObj:RunTest():System.Runtime.InteropServices.GCHandle:this (FullOpts)
          25 (22.12 % of base) : 520892.dasm - Test.AA:Main1() (FullOpts)
          25 (22.12 % of base) : 290875.dasm - Test.AA:Main1() (Tier0-FullOpts)
         229 (21.30 % of base) : 87798.dasm - System.DefaultBinder:CanChangePrimitive(System.Type,System.Type):ubyte (Tier1)
          84 (20.14 % of base) : 252510.dasm - System.Threading.ThreadPoolWorkQueue:Dequeue(System.Threading.ThreadPoolWorkQueueThreadLocals,byref):System.Object:this (Tier1)
          80 (19.18 % of base) : 342461.dasm - System.Threading.ThreadPoolWorkQueue:Dequeue(System.Threading.ThreadPoolWorkQueueThreadLocals,byref):System.Object:this (Tier1)

Top method improvements (percentages):
         -58 (-16.48 % of base) : 495848.dasm - HelloWorld:Main():int (FullOpts)
          -9 (-12.86 % of base) : 477494.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
         -39 (-11.08 % of base) : 499687.dasm - Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
         -39 (-11.08 % of base) : 500788.dasm - Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
         -39 (-11.08 % of base) : 500808.dasm - Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
         -39 (-11.08 % of base) : 506866.dasm - Test_variancesmall_il.Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
         -26 (-11.02 % of base) : 228286.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitBinaryOperatorChildren(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (Tier0-FullOpts)
        -148 (-10.31 % of base) : 237378.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -148 (-10.31 % of base) : 292766.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
         -24 (-10.17 % of base) : 478757.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitBinaryOperatorChildren(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
         -18 (-10.00 % of base) : 276022.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
        -143 (-9.92 % of base) : 291927.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -219 (-9.89 % of base) : 223857.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
        -141 (-9.78 % of base) : 239265.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
         -45 (-9.34 % of base) : 572310.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)
         -45 (-9.34 % of base) : 365572.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 (Tier0-FullOpts)
        -129 (-9.27 % of base) : 206603.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
         -22 (-8.91 % of base) : 373696.dasm - Internal.TypeSystem.TypeSystemContext+RuntimeDeterminedTypeKey+RuntimeDeterminedTypeKeyHashtable:CompareValueToValue(Internal.TypeSystem.RuntimeDeterminedType,Internal.TypeSystem.RuntimeDeterminedType):ubyte:this (Tier1)
        -125 (-8.85 % of base) : 284983.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
        -125 (-8.85 % of base) : 341605.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)


libraries.crossgen2.windows.x86.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 31626935 (overridden on cmd)
Total bytes of diff: 31628298 (overridden on cmd)
Total bytes of delta: 1363 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         577 : 150453.dasm (1,407.32 % of base)
          82 : 218453.dasm (0.37 % of base)
          64 : 74987.dasm (21.92 % of base)
          51 : 82633.dasm (0.97 % of base)
          39 : 33430.dasm (1.32 % of base)
          38 : 219268.dasm (5.57 % of base)
          37 : 62131.dasm (14.51 % of base)
          30 : 182908.dasm (29.41 % of base)
          29 : 236541.dasm (2.13 % of base)
          27 : 214858.dasm (3.94 % of base)
          26 : 34495.dasm (2.01 % of base)
          21 : 32139.dasm (2.15 % of base)
          21 : 234264.dasm (1.09 % of base)
          20 : 126994.dasm (1.51 % of base)
          20 : 127152.dasm (4.95 % of base)
          20 : 173479.dasm (1.25 % of base)
          20 : 178388.dasm (2.18 % of base)
          20 : 182745.dasm (21.28 % of base)
          19 : 234347.dasm (59.38 % of base)
          19 : 178462.dasm (2.40 % of base)

Top file improvements (bytes):
         -96 : 17593.dasm (-2.24 % of base)
         -31 : 22972.dasm (-1.56 % of base)
         -31 : 83605.dasm (-5.59 % of base)
         -23 : 238409.dasm (-2.17 % of base)
         -22 : 30762.dasm (-1.63 % of base)
         -20 : 155068.dasm (-0.43 % of base)
         -19 : 237873.dasm (-1.26 % of base)
         -16 : 146398.dasm (-3.66 % of base)
         -16 : 146400.dasm (-3.66 % of base)
         -15 : 238414.dasm (-1.94 % of base)
         -15 : 230672.dasm (-0.96 % of base)
         -14 : 22923.dasm (-2.07 % of base)
         -13 : 164957.dasm (-0.82 % of base)
         -13 : 140149.dasm (-0.82 % of base)
         -12 : 215581.dasm (-2.26 % of base)
         -12 : 76525.dasm (-2.40 % of base)
         -11 : 174275.dasm (-0.57 % of base)
         -10 : 31014.dasm (-4.46 % of base)
         -10 : 207788.dasm (-2.98 % of base)
         -10 : 23101.dasm (-2.88 % of base)

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

Top method regressions (bytes):
         577 (1,407.32 % of base) : 150453.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
          82 (0.37 % of base) : 218453.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)
          64 (21.92 % of base) : 74987.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
          51 (0.97 % of base) : 82633.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)
          39 (1.32 % of base) : 33430.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          38 (5.57 % of base) : 219268.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
          37 (14.51 % of base) : 62131.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          30 (29.41 % of base) : 182908.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          29 (2.13 % of base) : 236541.dasm - System.Text.Json.JsonSerializer:TryReadMetadata(System.Text.Json.Serialization.JsonConverter,System.Text.Json.Serialization.Metadata.JsonTypeInfo,byref,byref):ubyte (FullOpts)
          27 (3.94 % of base) : 214858.dasm - System.Data.OleDb.OleDbConnectionStringBuilder:get_Keys():System.Collections.ICollection:this (FullOpts)
          26 (2.01 % of base) : 34495.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
          21 (1.09 % of base) : 234264.dasm - System.Management.ManagementClassGenerator:GenerateSystemPropertiesClass():System.CodeDom.CodeTypeDeclaration:this (FullOpts)
          21 (2.15 % of base) : 32139.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
          20 (4.95 % of base) : 127152.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
          20 (1.51 % of base) : 126994.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
          20 (2.18 % of base) : 178388.dasm - System.IO.Packaging.InternalRelationshipCollection:ParseRelationshipPart(System.IO.Packaging.PackagePart):this (FullOpts)
          20 (21.28 % of base) : 182745.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
          20 (1.25 % of base) : 173479.dasm - System.Security.Cryptography.Pbkdf2Implementation:FillKeyDerivation(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],int,System.String,System.Span`1[ubyte]) (FullOpts)
          19 (2.40 % of base) : 178462.dasm - System.IO.Packaging.ZipPackage+ContentTypeHelper:ParseContentTypesFile(System.Collections.ObjectModel.ReadOnlyCollection`1[System.IO.Compression.ZipArchiveEntry]):this (FullOpts)
          19 (59.38 % of base) : 234347.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)

Top method improvements (bytes):
         -96 (-2.24 % of base) : 17593.dasm - System.Diagnostics.Tracing.EventSource:CreateManifestAndDescriptors(System.Type,System.String,System.Diagnostics.Tracing.EventSource,int):ubyte[] (FullOpts)
         -31 (-5.59 % of base) : 83605.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase:GetFilesCore(Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFileReference]:this (FullOpts)
         -31 (-1.56 % of base) : 22972.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (FullOpts)
         -23 (-2.17 % of base) : 238409.dasm - System.Net.Sockets.Socket:ReceiveFrom(ubyte[],int,int,int,byref):int:this (FullOpts)
         -22 (-1.63 % of base) : 30762.dasm - System.Data.DataColumnCollection:CanRemove(System.Data.DataColumn,ubyte):ubyte:this (FullOpts)
         -20 (-0.43 % of base) : 155068.dasm - System.Xml.Schema.Compiler:CompileLocalAttributes(System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaObjectCollection,System.Xml.Schema.XmlSchemaAnyAttribute,int):this (FullOpts)
         -19 (-1.26 % of base) : 237873.dasm - System.Threading.Tasks.Parallel+<>c__DisplayClass43_0`2[System.__Canon,System.__Canon]:<PartitionerForEachWorker>b__1(byref,long,byref):this (FullOpts)
         -16 (-3.66 % of base) : 146398.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
         -16 (-3.66 % of base) : 146400.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
         -15 (-0.96 % of base) : 230672.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitSwitchBucket(System.Linq.Expressions.Compiler.LambdaCompiler+SwitchInfo,System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+SwitchLabel]):this (FullOpts)
         -15 (-1.94 % of base) : 238414.dasm - System.Net.Sockets.Socket:ReceiveFrom(System.Span`1[ubyte],int,byref):int:this (FullOpts)
         -14 (-2.07 % of base) : 22923.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (FullOpts)
         -13 (-0.82 % of base) : 140149.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (FullOpts)
         -13 (-0.82 % of base) : 164957.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__176:MoveNext():ubyte:this (FullOpts)
         -12 (-2.40 % of base) : 76525.dasm - Microsoft.CodeAnalysis.VisualBasic.ExecutableCodeBinder:LookupInSingleBinder(Microsoft.CodeAnalysis.VisualBasic.LookupResult,System.String,int,int,Microsoft.CodeAnalysis.VisualBasic.Binder,byref):this (FullOpts)
         -12 (-2.26 % of base) : 215581.dasm - System.Data.OleDb.RowBinding:SetBindings(System.Data.OleDb.OleDbDataReader,System.Data.OleDb.Bindings,int,int,System.Data.OleDb.OleDbParameter[],System.Data.OleDb.tagDBBINDING[],ubyte):System.Data.OleDb.ColumnBinding[]:this (FullOpts)
         -11 (-0.57 % of base) : 174275.dasm - R2RTest.BuildFolder:.ctor(System.Collections.Generic.List`1[System.String],System.Collections.Generic.List`1[System.String],System.Collections.Generic.List`1[System.String],System.Collections.Generic.IEnumerable`1[R2RTest.CompilerRunner],System.String,System.String,R2RTest.BuildOptions):this (FullOpts)
         -10 (-0.92 % of base) : 169541.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue]:TryInsert(Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue,ubyte):ubyte:this (FullOpts)
         -10 (-2.88 % of base) : 23101.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]:CopyTo(System.Threading.PortableThreadPool+IOCompletionPoller+Event[],int):this (FullOpts)
         -10 (-4.46 % of base) : 31014.dasm - System.Data.DataTable:ResetInternalIndexes(System.Data.DataColumn):this (FullOpts)

Top method regressions (percentages):
         577 (1,407.32 % of base) : 150453.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
          19 (59.38 % of base) : 234347.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
          30 (29.41 % of base) : 182908.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          64 (21.92 % of base) : 74987.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
          20 (21.28 % of base) : 182745.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
          17 (18.09 % of base) : 182834.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
          37 (14.51 % of base) : 62131.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          14 (12.84 % of base) : 63421.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)
          10 (11.90 % of base) : 241035.dasm - System.Transactions.Oletx.OletxTransactionManager:ConvertIsolationLevelFromProxyValue(int):int (FullOpts)
          14 (10.07 % of base) : 75426.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
           9 (9.57 % of base) : 182889.dasm - System.Net.Mail.StartTlsCommand:CheckResponse(int,System.String) (FullOpts)
          18 (8.53 % of base) : 35363.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.52 % of base) : 202224.dasm - System.Data.Odbc.OdbcHandle:ReleaseHandle():ubyte:this (FullOpts)
           7 (6.93 % of base) : 219469.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:IsMemberPublic(System.Reflection.MemberInfo):ubyte (FullOpts)
          14 (6.86 % of base) : 222734.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
          13 (6.70 % of base) : 89266.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SingleLineLambdaContext:ProcessStatementTerminator(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext:this (FullOpts)
          16 (5.93 % of base) : 209664.dasm - System.IO.Compression.ZipArchiveEntry:GetDataCompressor(System.IO.Stream,ubyte,System.EventHandler):System.IO.Compression.CheckSumAndSizeWriteStream:this (FullOpts)
          38 (5.57 % of base) : 219268.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
          20 (4.95 % of base) : 127152.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
          12 (4.53 % of base) : 152969.dasm - System.Xml.Serialization.XmlSchemas:CreateValidationException(System.Xml.Schema.XmlSchemaException,System.String):System.Exception (FullOpts)

Top method improvements (percentages):
         -31 (-5.59 % of base) : 83605.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase:GetFilesCore(Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFileReference]:this (FullOpts)
         -10 (-4.46 % of base) : 31014.dasm - System.Data.DataTable:ResetInternalIndexes(System.Data.DataColumn):this (FullOpts)
         -16 (-3.66 % of base) : 146398.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
         -16 (-3.66 % of base) : 146400.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
         -10 (-2.98 % of base) : 207788.dasm - System.Speech.Internal.StringBlob:SerializeData():ushort[]:this (FullOpts)
         -10 (-2.88 % of base) : 23101.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]:CopyTo(System.Threading.PortableThreadPool+IOCompletionPoller+Event[],int):this (FullOpts)
          -2 (-2.74 % of base) : 202263.dasm - System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
          -2 (-2.74 % of base) : 214720.dasm - System.Data.OleDb.OleDbParameter:set_SourceVersion(int):this (FullOpts)
         -12 (-2.40 % of base) : 76525.dasm - Microsoft.CodeAnalysis.VisualBasic.ExecutableCodeBinder:LookupInSingleBinder(Microsoft.CodeAnalysis.VisualBasic.LookupResult,System.String,int,int,Microsoft.CodeAnalysis.VisualBasic.Binder,byref):this (FullOpts)
         -12 (-2.26 % of base) : 215581.dasm - System.Data.OleDb.RowBinding:SetBindings(System.Data.OleDb.OleDbDataReader,System.Data.OleDb.Bindings,int,int,System.Data.OleDb.OleDbParameter[],System.Data.OleDb.tagDBBINDING[],ubyte):System.Data.OleDb.ColumnBinding[]:this (FullOpts)
         -96 (-2.24 % of base) : 17593.dasm - System.Diagnostics.Tracing.EventSource:CreateManifestAndDescriptors(System.Type,System.String,System.Diagnostics.Tracing.EventSource,int):ubyte[] (FullOpts)
         -23 (-2.17 % of base) : 238409.dasm - System.Net.Sockets.Socket:ReceiveFrom(ubyte[],int,int,int,byref):int:this (FullOpts)
          -7 (-2.10 % of base) : 135049.dasm - Microsoft.CodeAnalysis.SyntaxNodeOrToken:GetFirstChildIndexSpanningPosition(Microsoft.CodeAnalysis.ChildSyntaxList,int):int (FullOpts)
          -7 (-2.10 % of base) : 159967.dasm - Microsoft.CodeAnalysis.SyntaxNodeOrToken:GetFirstChildIndexSpanningPosition(Microsoft.CodeAnalysis.ChildSyntaxList,int):int (FullOpts)
         -14 (-2.07 % of base) : 22923.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (FullOpts)
          -2 (-1.96 % of base) : 23043.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
         -15 (-1.94 % of base) : 238414.dasm - System.Net.Sockets.Socket:ReceiveFrom(System.Span`1[ubyte],int,byref):int:this (FullOpts)
          -2 (-1.92 % of base) : 23048.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.87 % of base) : 14087.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.87 % of base) : 13778.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)


libraries.pmi.windows.x86.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 48679731 (overridden on cmd)
Total bytes of diff: 48827920 (overridden on cmd)
Total bytes of delta: 148189 (0.30 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         577 : 193431.dasm (1,407.32 % of base)
         564 : 147560.dasm (2.39 % of base)
         490 : 196621.dasm (6.47 % of base)
         443 : 30251.dasm (7.54 % of base)
         354 : 266569.dasm (3.80 % of base)
         292 : 196391.dasm (5.82 % of base)
         243 : 59792.dasm (2.17 % of base)
         219 : 123118.dasm (8.31 % of base)
         206 : 170932.dasm (7.80 % of base)
         191 : 38813.dasm (3.66 % of base)
         188 : 186360.dasm (5.30 % of base)
         188 : 185700.dasm (5.27 % of base)
         177 : 119118.dasm (5.37 % of base)
         177 : 211716.dasm (3.32 % of base)
         176 : 123114.dasm (8.18 % of base)
         169 : 170928.dasm (7.78 % of base)
         162 : 186370.dasm (7.71 % of base)
         155 : 82009.dasm (2.37 % of base)
         153 : 282573.dasm (4.42 % of base)
         151 : 218687.dasm (1.86 % of base)

Top file improvements (bytes):
        -260 : 159638.dasm (-11.00 % of base)
        -260 : 111672.dasm (-11.00 % of base)
        -225 : 246114.dasm (-9.12 % of base)
        -199 : 30742.dasm (-4.23 % of base)
        -177 : 193875.dasm (-3.32 % of base)
        -156 : 267316.dasm (-2.94 % of base)
        -150 : 193534.dasm (-3.19 % of base)
        -139 : 266480.dasm (-7.93 % of base)
         -97 : 79159.dasm (-1.48 % of base)
         -87 : 263037.dasm (-1.87 % of base)
         -87 : 183859.dasm (-8.97 % of base)
         -86 : 58770.dasm (-1.53 % of base)
         -84 : 110805.dasm (-8.02 % of base)
         -84 : 158824.dasm (-8.02 % of base)
         -84 : 193532.dasm (-1.94 % of base)
         -77 : 86300.dasm (-0.93 % of base)
         -69 : 176360.dasm (-2.89 % of base)
         -66 : 250018.dasm (-3.72 % of base)
         -65 : 266936.dasm (-1.82 % of base)
         -65 : 68632.dasm (-8.90 % of base)

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

Top method regressions (bytes):
         577 (1,407.32 % of base) : 193431.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
         564 (2.39 % of base) : 147560.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)
         490 (6.47 % of base) : 196621.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
         443 (7.54 % of base) : 30251.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
         354 (3.80 % of base) : 266569.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
         292 (5.82 % of base) : 196391.dasm - ILCompiler.DependencyAnalysis.NodeFactory:AttachToDependencyGraph(ILCompiler.DependencyAnalysisFramework.DependencyAnalyzerBase`1[ILCompiler.DependencyAnalysis.NodeFactory],Internal.IL.ILProvider):this (FullOpts)
         243 (2.17 % of base) : 59792.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)
         219 (8.31 % of base) : 123118.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)
         206 (7.80 % of base) : 170932.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)
         191 (3.66 % of base) : 38813.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeDecimalLiteral(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ConstantValue):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
         188 (5.27 % of base) : 185700.dasm - System.Xml.Schema.Compiler:CalculateEffectiveTotalRange(System.Xml.Schema.XmlSchemaParticle,byref,byref) (FullOpts)
         188 (5.30 % of base) : 186360.dasm - System.Xml.Schema.SchemaCollectionCompiler:CalculateEffectiveTotalRange(System.Xml.Schema.XmlSchemaParticle,byref,byref) (FullOpts)
         177 (5.37 % of base) : 119118.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:PopulateEncMapTableRows(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Generic.List`1[int],System.Collections.Generic.List`1[int]):this (FullOpts)
         177 (3.32 % of base) : 211716.dasm - Newtonsoft.Json.JsonTextReader+<ParseValueAsync>d__8:MoveNext():this (FullOpts)
         176 (8.18 % of base) : 123114.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)
         169 (7.78 % of base) : 170928.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)
         162 (7.71 % of base) : 186370.dasm - System.Xml.Schema.SchemaCollectionCompiler:BuildParticleContentModel(System.Xml.Schema.ParticleContentValidator,System.Xml.Schema.XmlSchemaParticle) (FullOpts)
         155 (2.37 % of base) : 82009.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)
         153 (4.42 % of base) : 282573.dasm - System.Security.Cryptography.Xml.KeyInfoX509Data:GetXml(System.Xml.XmlDocument):System.Xml.XmlElement:this (FullOpts)
         151 (1.86 % of base) : 218687.dasm - R2RTest.BuildFolderSet:WriteBuildStatistics(System.IO.StreamWriter):this (FullOpts)

Top method improvements (bytes):
        -260 (-11.00 % of base) : 159638.dasm - Microsoft.CodeAnalysis.Win32ResourceConversions:AppendIconToResourceStream(System.IO.Stream,System.IO.Stream) (FullOpts)
        -260 (-11.00 % of base) : 111672.dasm - Microsoft.CodeAnalysis.Win32ResourceConversions:AppendIconToResourceStream(System.IO.Stream,System.IO.Stream) (FullOpts)
        -225 (-9.12 % of base) : 246114.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:DateTimeFilterBuilder(System.String,System.DateTime,System.DateTime,ubyte,int):System.String (FullOpts)
        -199 (-4.23 % of base) : 30742.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAsOperator(Microsoft.CodeAnalysis.CSharp.Syntax.BinaryExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
        -177 (-3.32 % of base) : 193875.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:GenerateMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
        -156 (-2.94 % of base) : 267316.dasm - System.Net.Http.SocksHelper+<EstablishSocks5TunnelAsync>d__14:MoveNext():this (FullOpts)
        -150 (-3.19 % of base) : 193534.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:GenerateEncodedMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
        -139 (-7.93 % of base) : 266480.dasm - System.Net.Http.HttpConnection+ChunkedEncodingWriteStream+<<WriteAsync>g__WriteChunkAsync|4_0>d:MoveNext():this (FullOpts)
         -97 (-1.48 % of base) : 79159.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)
         -87 (-1.87 % of base) : 263037.dasm - System.Management.PropertyData:MapValueToWmiValue(System.Object,int,ubyte):System.Object (FullOpts)
         -87 (-8.97 % of base) : 183859.dasm - System.Xml.XmlWellFormedWriter:AddAttribute(System.String,System.String,System.String):this (FullOpts)
         -86 (-1.53 % of base) : 58770.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
         -84 (-8.02 % of base) : 110805.dasm - Microsoft.CodeAnalysis.TopologicalSort:PredecessorCounts[ubyte](System.Collections.Generic.IEnumerable`1[ubyte],Microsoft.CodeAnalysis.TopologicalSortAddSuccessors`1[ubyte],byref):Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[ubyte,int] (FullOpts)
         -84 (-8.02 % of base) : 158824.dasm - Microsoft.CodeAnalysis.TopologicalSort:PredecessorCounts[ubyte](System.Collections.Generic.IEnumerable`1[ubyte],Microsoft.CodeAnalysis.TopologicalSortAddSuccessors`1[ubyte],byref):Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[ubyte,int] (FullOpts)
         -84 (-1.94 % of base) : 193532.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
         -77 (-0.93 % of base) : 86300.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)
         -69 (-2.89 % of base) : 176360.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
         -66 (-3.72 % of base) : 250018.dasm - System.Formats.Tar.TarReader+<TryProcessGnuMetadataHeaderAsync>d__19:MoveNext():this (FullOpts)
         -65 (-8.90 % of base) : 68632.dasm - System.Data.XmlDataLoader:LoadRows(System.Data.DataRow,System.Xml.XmlNode):this (FullOpts)
         -65 (-1.82 % of base) : 266936.dasm - System.Net.Http.Http3Connection+<ProcessServerControlStreamAsync>d__42:MoveNext():this (FullOpts)

Top method regressions (percentages):
         577 (1,407.32 % of base) : 193431.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
           7 (70.00 % of base) : 250500.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
          19 (59.38 % of base) : 263141.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
          30 (27.78 % of base) : 268809.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          45 (24.06 % of base) : 292334.dasm - System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (FullOpts)
          29 (20.14 % of base) : 275614.dasm - System.Xml.Linq.XElement:GetNamespaceOfPrefixInScope(System.String,System.Xml.Linq.XElement):System.String:this (FullOpts)
          20 (20.00 % of base) : 268828.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
          49 (19.52 % of base) : 273028.dasm - System.Net.Sockets.SocketAsyncEventArgs:<CompleteCore>g__CleanupIOCPResult|168_0():this (FullOpts)
          41 (18.81 % of base) : 252745.dasm - System.IO.Pipes.PipeStream+PipeValueTaskSource:ReleaseResources():this (FullOpts)
          10 (17.24 % of base) : 273207.dasm - System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
          17 (17.00 % of base) : 268805.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
          10 (16.95 % of base) : 273206.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Net.Sockets.UdpReceiveResult):ubyte:this (FullOpts)
          47 (16.10 % of base) : 296671.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[System.__Canon]:RunCompletionAction(System.Action`1[System.Object],System.Object,ubyte):this (FullOpts)
          47 (16.10 % of base) : 296689.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[ubyte]:RunCompletionAction(System.Action`1[System.Object],System.Object,ubyte):this (FullOpts)
          41 (15.95 % of base) : 177313.dasm - System.Runtime.Serialization.Json.JsonEncodingStreamWrapper:Write(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
          36 (15.38 % of base) : 215784.dasm - Microsoft.Build.Framework.FileClassifier:.cctor() (FullOpts)
          27 (15.08 % of base) : 281611.dasm - System.Security.Cryptography.Pkcs.SignerInfo:FindAttributeIndexByOid(System.Security.Cryptography.Asn1.AttributeAsn[],System.Security.Cryptography.Oid,int):int (FullOpts)
          37 (14.51 % of base) : 63553.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          10 (14.49 % of base) : 273208.dasm - System.Net.Sockets.UdpReceiveResult:op_Inequality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
          94 (14.33 % of base) : 189648.dasm - System.Xml.Xsl.XsltOld.RootAction:AddDecimalFormat(System.Xml.XmlQualifiedName,System.Xml.Xsl.Runtime.DecimalFormat):this (FullOpts)

Top method improvements (percentages):
          -7 (-25.00 % of base) : 151875.dasm - Microsoft.Build.BackEnd.SchedulingData:GetBlockedRequestIfAny(int):Microsoft.Build.BackEnd.SchedulableRequest:this (FullOpts)
         -41 (-15.41 % of base) : 13052.dasm - System.Text.RegularExpressions.RegexCharClass:IsUnicodeCategoryOfSmallCharCount(System.String,byref,byref,byref):ubyte (FullOpts)
         -56 (-15.22 % of base) : 176463.dasm - System.Runtime.Serialization.SchemaImporter:ImportAnnotation(System.Xml.Schema.XmlSchemaAnnotation,System.Xml.XmlQualifiedName):System.Xml.XmlElement (FullOpts)
         -56 (-15.22 % of base) : 279933.dasm - System.Runtime.Serialization.XsdDataContractImporter:ImportAnnotation(System.Xml.Schema.XmlSchemaAnnotation,System.Xml.XmlQualifiedName):System.Xml.XmlElement (FullOpts)
         -28 (-15.14 % of base) : 282751.dasm - System.Security.Cryptography.Xml.Utils:HasNamespace(System.Xml.XmlElement,System.String,System.String):ubyte (FullOpts)
         -36 (-13.43 % of base) : 187927.dasm - System.Xml.Schema.XmlSchemaInference:FindElementRef(System.Xml.Schema.XmlSchemaObjectCollection,System.String,System.String):System.Xml.Schema.XmlSchemaElement (FullOpts)
         -43 (-13.23 % of base) : 184712.dasm - System.Xml.XmlAttributeCollection:get_ItemOf(System.String,System.String):System.Xml.XmlAttribute:this (FullOpts)
          -9 (-12.86 % of base) : 13053.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
         -43 (-12.65 % of base) : 184713.dasm - System.Xml.XmlAttributeCollection:FindNodeOffsetNS(System.Xml.XmlAttribute):int:this (FullOpts)
         -41 (-12.02 % of base) : 242580.dasm - System.Diagnostics.DiagnosticSourceEventSource+FilterAndTransform:Sample(System.String,System.String,System.Diagnostics.DiagnosticSourceEventSource):int (FullOpts)
         -40 (-11.80 % of base) : 242446.dasm - System.Diagnostics.ActivityLink:Equals(System.Object):ubyte:this (FullOpts)
         -38 (-11.48 % of base) : 242449.dasm - System.Diagnostics.ActivityLink:op_Inequality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)
         -28 (-11.02 % of base) : 69927.dasm - System.Data.DataSet:set_Prefix(System.String):this (FullOpts)
        -260 (-11.00 % of base) : 159638.dasm - Microsoft.CodeAnalysis.Win32ResourceConversions:AppendIconToResourceStream(System.IO.Stream,System.IO.Stream) (FullOpts)
        -260 (-11.00 % of base) : 111672.dasm - Microsoft.CodeAnalysis.Win32ResourceConversions:AppendIconToResourceStream(System.IO.Stream,System.IO.Stream) (FullOpts)
         -32 (-10.39 % of base) : 187200.dasm - System.Xml.Schema.XmlSchemaSet:Schemas(System.String):System.Collections.ICollection:this (FullOpts)
         -12 (-10.26 % of base) : 164177.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerManager:HasCustomTag(System.Collections.Immutable.ImmutableArray`1[System.String],System.String):ubyte (FullOpts)
         -26 (-9.92 % of base) : 181539.dasm - System.Xml.XmlNamedNodeMap:FindNodeOffset(System.String,System.String):int:this (FullOpts)
         -45 (-9.34 % of base) : 150332.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)
        -225 (-9.12 % of base) : 246114.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:DateTimeFilterBuilder(System.String,System.DateTime,System.DateTime,ubyte,int):System.String (FullOpts)


libraries_tests.run.windows.x86.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 184050709 (overridden on cmd)
Total bytes of diff: 185548328 (overridden on cmd)
Total bytes of delta: 1497619 (0.81 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         683 : 633848.dasm (6.08 % of base)
         674 : 596451.dasm (10.12 % of base)
         670 : 155385.dasm (6.22 % of base)
         650 : 158601.dasm (12.61 % of base)
         629 : 341190.dasm (5.57 % of base)
         619 : 155168.dasm (8.60 % of base)
         610 : 283405.dasm (10.91 % of base)
         608 : 114447.dasm (5.78 % of base)
         599 : 28350.dasm (6.18 % of base)
         577 : 52438.dasm (14.70 % of base)
         574 : 169024.dasm (2.43 % of base)
         567 : 52497.dasm (6.34 % of base)
         548 : 593147.dasm (10.76 % of base)
         531 : 352720.dasm (6.14 % of base)
         499 : 77370.dasm (9.98 % of base)
         492 : 52517.dasm (6.41 % of base)
         491 : 78088.dasm (5.79 % of base)
         486 : 622337.dasm (4.32 % of base)
         482 : 286127.dasm (4.19 % of base)
         473 : 594911.dasm (3.84 % of base)

Top file improvements (bytes):
        -475 : 451875.dasm (-7.06 % of base)
        -475 : 385074.dasm (-7.06 % of base)
        -377 : 200271.dasm (-4.19 % of base)
        -377 : 456585.dasm (-4.19 % of base)
        -321 : 364200.dasm (-3.25 % of base)
        -321 : 547941.dasm (-3.25 % of base)
        -321 : 253107.dasm (-3.25 % of base)
        -280 : 444662.dasm (-2.36 % of base)
        -248 : 154690.dasm (-10.16 % of base)
        -234 : 230425.dasm (-1.98 % of base)
        -223 : 88815.dasm (-1.88 % of base)
        -194 : 381818.dasm (-1.88 % of base)
        -194 : 463693.dasm (-4.90 % of base)
        -178 : 155126.dasm (-5.53 % of base)
        -177 : 591999.dasm (-2.73 % of base)
        -170 : 582818.dasm (-6.68 % of base)
        -164 : 175962.dasm (-2.85 % of base)
        -164 : 364525.dasm (-3.77 % of base)
        -164 : 382576.dasm (-3.77 % of base)
        -158 : 468281.dasm (-2.92 % of base)

100 total files with Code Size differences (60 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
         683 (6.08 % of base) : 633848.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         674 (10.12 % of base) : 596451.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)
         670 (6.22 % of base) : 155385.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:DecodeWellKnownAttributeImpl(byref):this (Tier1)
         650 (12.61 % of base) : 158601.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:Equals(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):ubyte:this (Tier1)
         629 (5.57 % of base) : 341190.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         619 (8.60 % of base) : 155168.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:EarlyDecodeWellKnownAttribute(byref):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData,Microsoft.CodeAnalysis.CSharp.BoundAttribute]:this (Tier1)
         610 (10.91 % of base) : 283405.dasm - System.IO.Tests.StreamConformanceTests+<ValidateDisposedExceptionsAsync>d__51:MoveNext():this (Tier1)
         608 (5.78 % of base) : 114447.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         599 (6.18 % of base) : 28350.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         577 (14.70 % of base) : 52438.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:Equals(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):ubyte:this (Tier1)
         574 (2.43 % of base) : 169024.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier0-FullOpts)
         567 (6.34 % of base) : 52497.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
         548 (10.76 % of base) : 593147.dasm - System.Reflection.PortableExecutable.PEBuilder:WritePEHeader(System.Reflection.Metadata.BlobBuilder,System.Reflection.PortableExecutable.PEDirectoriesBuilder,System.Collections.Immutable.ImmutableArray`1[System.Reflection.PortableExecutable.PEBuilder+SerializedSection]):this (Tier1)
         531 (6.14 % of base) : 352720.dasm - System.Net.Mail.Message:PrepareHeaders(ubyte):this (Tier1)
         499 (9.98 % of base) : 77370.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:Equals(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):ubyte:this (Tier1)
         492 (6.41 % of base) : 52517.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeWellKnownAttributeAppliedToMethod(byref):this (Tier1)
         491 (5.79 % of base) : 78088.dasm - Microsoft.Interop.LibraryImportGenerator:PrintForwarderStub(Microsoft.Interop.ContainingSyntax,ubyte,Microsoft.Interop.LibraryImportGenerator+IncrementalStubGenerationContext,Microsoft.Interop.GeneratorDiagnosticsBag):Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax (Tier1)
         486 (4.32 % of base) : 622337.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         482 (4.19 % of base) : 286127.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         473 (3.84 % of base) : 594911.dasm - System.Text.RegularExpressions.Generator.RegexGenerator+<>c__DisplayClass25_0:<EmitTryMatchAtCurrentPosition>g__EmitLoop|33(System.Text.RegularExpressions.RegexNode):this (Tier1)

Top method improvements (bytes):
        -475 (-7.06 % of base) : 451875.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (Tier1)
        -475 (-7.06 % of base) : 385074.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (Tier1)
        -377 (-4.19 % of base) : 200271.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -377 (-4.19 % of base) : 456585.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -321 (-3.25 % of base) : 364200.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -321 (-3.25 % of base) : 547941.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -321 (-3.25 % of base) : 253107.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -280 (-2.36 % of base) : 444662.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        -248 (-10.16 % of base) : 154690.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__expandParamsArray|232_2(byref,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],byref,byref) (Tier0-FullOpts)
        -234 (-1.98 % of base) : 230425.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        -223 (-1.88 % of base) : 88815.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        -194 (-1.88 % of base) : 381818.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -194 (-4.90 % of base) : 463693.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -178 (-5.53 % of base) : 155126.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:EarlyDecodeDeprecatedOrExperimentalOrObsoleteAttribute(byref,byref,byref,byref):ubyte (Tier1)
        -177 (-2.73 % of base) : 591999.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:.ctor(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],int,ubyte):this (Tier1)
        -170 (-6.68 % of base) : 582818.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ConstructBoundMemberGroupAndReportOmittedTypeArguments(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.String,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbol],Microsoft.CodeAnalysis.CSharp.LookupResult,int,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundMethodOrPropertyGroup:this (Tier1)
        -164 (-2.85 % of base) : 175962.dasm - System.Xml.Schema.Compiler:CompileLocalAttributes(System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaObjectCollection,System.Xml.Schema.XmlSchemaAnyAttribute,int):this (Tier0-FullOpts)
        -164 (-3.77 % of base) : 364525.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -164 (-3.77 % of base) : 382576.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -158 (-2.92 % of base) : 468281.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)

Top method regressions (percentages):
         189 (67.02 % of base) : 156988.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:GetEmbeddedTypes(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (Tier1)
          37 (60.66 % of base) : 54535.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 (60.66 % of base) : 77802.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 (60.66 % of base) : 606525.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 (60.66 % of base) : 155997.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 (60.66 % of base) : 53577.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 (55.22 % of base) : 141686.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)
          22 (50.00 % of base) : 45481.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon]):this (Tier1)
           9 (50.00 % of base) : 402242.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
          22 (43.14 % of base) : 133851.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],ubyte):this (Tier1)
         158 (39.90 % of base) : 360312.dasm - System.Net.Sockets.Socket:UpdateAcceptSocket(System.Net.Sockets.Socket,System.Net.EndPoint):System.Net.Sockets.Socket:this (Tier1)
         158 (39.90 % of base) : 344095.dasm - System.Net.Sockets.Socket:UpdateAcceptSocket(System.Net.Sockets.Socket,System.Net.EndPoint):System.Net.Sockets.Socket:this (Tier1)
          22 (39.29 % of base) : 146485.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],ubyte):this (Tier1)
          21 (38.18 % of base) : 45475.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)
         149 (37.63 % of base) : 365874.dasm - System.Net.Sockets.Socket:UpdateAcceptSocket(System.Net.Sockets.Socket,System.Net.EndPoint):System.Net.Sockets.Socket:this (Tier1)
          21 (36.21 % of base) : 133852.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],System.Func`2[System.Threading.CancellationToken,System.__Canon],ubyte):this (Tier1)
          21 (33.33 % of base) : 146486.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],System.Func`2[System.Threading.CancellationToken,System.__Canon],ubyte):this (Tier1)
          16 (32.65 % of base) : 44200.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)
          16 (32.65 % of base) : 41701.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)
          16 (31.37 % of base) : 45503.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)

Top method improvements (percentages):
          -7 (-21.21 % of base) : 55069.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
          -7 (-21.21 % of base) : 611551.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
          -7 (-21.21 % of base) : 79009.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
         -48 (-18.68 % of base) : 353107.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):System.__Canon:this (Tier1)
          -8 (-16.00 % of base) : 359216.dasm - Xunit.TestFrameworkOptions:GetValue[System.Nullable`1[ubyte]](System.String):System.Nullable`1[ubyte]:this (Tier1)
         -53 (-15.54 % of base) : 239931.dasm - System.Diagnostics.DiagnosticSourceEventSource+FilterAndTransform:Sample(System.String,System.String,System.Diagnostics.DiagnosticSourceEventSource):int (Tier0-FullOpts)
         -56 (-15.34 % of base) : 444586.dasm - System.Runtime.Serialization.XsdDataContractImporter:ImportAnnotation(System.Xml.Schema.XmlSchemaAnnotation,System.Xml.XmlQualifiedName):System.Xml.XmlElement (Tier0-FullOpts)
         -56 (-15.22 % of base) : 444196.dasm - System.Runtime.Serialization.SchemaImporter:ImportAnnotation(System.Xml.Schema.XmlSchemaAnnotation,System.Xml.XmlQualifiedName):System.Xml.XmlElement (Tier0-FullOpts)
         -45 (-13.85 % of base) : 102965.dasm - System.Xml.XmlAttributeCollection:get_ItemOf(System.String,System.String):System.Xml.XmlAttribute:this (Tier0-FullOpts)
         -39 (-12.58 % of base) : 72307.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsPossibleTypedIdentifierStart(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken,ubyte):System.Nullable`1[ubyte]:this (Tier1)
          -4 (-12.50 % of base) : 50973.dasm - Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
         -79 (-12.23 % of base) : 474824.dasm - System.Globalization.DateTimeFormatInfoScanner:AddDateWordOrPostfix(System.String,System.String):this (Tier1)
         -41 (-12.20 % of base) : 420613.dasm - System.Reflection.Tests.TypeInfoDeclaredMemberTests:VerifyMembers(System.Type,System.String[]) (Tier0-FullOpts)
         -41 (-12.20 % of base) : 419809.dasm - System.Reflection.Tests.TypeInfoDeclaredMethodTests:VerifyMethods(System.Type,System.String[]) (Tier0-FullOpts)
         -57 (-12.00 % of base) : 585995.dasm - Microsoft.CodeAnalysis.CSharp.BoundLocal:Update(Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol,int,Microsoft.CodeAnalysis.ConstantValue,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundLocal:this (Tier1)
         -60 (-11.72 % of base) : 396943.dasm - System.Xml.Xsl.Xslt.Stylesheet:AddVarPar(System.Xml.Xsl.Xslt.VarPar):ubyte:this (Tier0-FullOpts)
         -50 (-11.55 % of base) : 573674.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:get_IsIndexer():ubyte:this (Tier1)
         -50 (-10.62 % of base) : 112621.dasm - System.SpanHelpers:IndexOfNullByte(uint):int (Tier1)
         -73 (-10.58 % of base) : 585947.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:WriteConsideredUse(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte (Tier1)
         -56 (-10.55 % of base) : 109278.dasm - System.Dynamic.Utils.TypeExtensions:GetAnyStaticMethodValidated(System.Type,System.String,System.Type[]):System.Reflection.MethodInfo (Tier1)


librariestestsnotieredcompilation.run.windows.x86.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 101838360 (overridden on cmd)
Total bytes of diff: 102198209 (overridden on cmd)
Total bytes of delta: 359849 (0.35 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         571 : 59928.dasm (2.43 % of base)
         486 : 257938.dasm (5.35 % of base)
         486 : 249420.dasm (5.35 % of base)
         443 : 11651.dasm (7.85 % of base)
         443 : 52369.dasm (7.85 % of base)
         443 : 46666.dasm (7.85 % of base)
         416 : 55011.dasm (3.86 % of base)
         360 : 257920.dasm (5.15 % of base)
         360 : 249467.dasm (5.15 % of base)
         321 : 21371.dasm (3.63 % of base)
         278 : 136425.dasm (7.51 % of base)
         278 : 136391.dasm (7.52 % of base)
         271 : 216051.dasm (2.94 % of base)
         265 : 215891.dasm (3.77 % of base)
         265 : 216061.dasm (3.79 % of base)
         264 : 271263.dasm (3.56 % of base)
         264 : 263175.dasm (3.56 % of base)
         254 : 257901.dasm (3.55 % of base)
         249 : 215950.dasm (8.83 % of base)
         249 : 216006.dasm (8.83 % of base)

Top file improvements (bytes):
        -164 : 63922.dasm (-2.84 % of base)
        -158 : 17672.dasm (-6.28 % of base)
        -139 : 158308.dasm (-7.97 % of base)
        -126 : 218836.dasm (-3.58 % of base)
        -126 : 199274.dasm (-3.58 % of base)
        -112 : 123347.dasm (-1.46 % of base)
        -109 : 284213.dasm (-2.89 % of base)
        -104 : 134113.dasm (-2.95 % of base)
         -97 : 133833.dasm (-2.20 % of base)
         -95 : 133825.dasm (-1.95 % of base)
         -94 : 133668.dasm (-3.14 % of base)
         -93 : 14599.dasm (-1.62 % of base)
         -87 : 1983.dasm (-8.97 % of base)
         -86 : 147436.dasm (-1.87 % of base)
         -81 : 31537.dasm (-1.73 % of base)
         -79 : 12905.dasm (-1.65 % of base)
         -79 : 63210.dasm (-11.08 % of base)
         -73 : 39193.dasm (-2.88 % of base)
         -71 : 212130.dasm (-7.46 % of base)
         -69 : 207570.dasm (-2.94 % of base)

87 total files with Code Size differences (39 improved, 48 regressed), 20 unchanged.

Top method regressions (bytes):
         571 (2.43 % of base) : 59928.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)
         486 (5.35 % of base) : 257938.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:SimpleTestClassSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestClass):this (FullOpts)
         486 (5.35 % of base) : 249420.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:SimpleTestClassSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestClass):this (FullOpts)
         443 (7.85 % of base) : 11651.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
         443 (7.85 % of base) : 52369.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
         443 (7.85 % of base) : 46666.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
         416 (3.86 % of base) : 55011.dasm - Microsoft.Gen.OptionsValidation.Unit.Test.OptionsUsingGeneratedAttributesValidator:Validate(System.String,Microsoft.Gen.OptionsValidation.Unit.Test.OptionsUsingGeneratedAttributes):Microsoft.Extensions.Options.ValidateOptionsResult:this (FullOpts)
         360 (5.15 % of base) : 257920.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:SimpleTestStructSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestStruct):this (FullOpts)
         360 (5.15 % of base) : 249467.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:SimpleTestStructSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestStruct):this (FullOpts)
         321 (3.63 % of base) : 21371.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
         278 (7.52 % of base) : 136391.dasm - System.IO.Tests.StringReaderTests+<ReadBlockMemoryAsync_Success>d__20:MoveNext():this (FullOpts)
         278 (7.51 % of base) : 136425.dasm - System.IO.Tests.StringReaderTests+<ReadMemoryAsync_Success>d__19:MoveNext():this (FullOpts)
         271 (2.94 % of base) : 216051.dasm - System.Tests.DecimalTests_GenericMath:IsIntegerTest() (FullOpts)
         265 (3.77 % of base) : 215891.dasm - System.Tests.DecimalTests_GenericMath:IsEvenIntegerTest() (FullOpts)
         265 (3.79 % of base) : 216061.dasm - System.Tests.DecimalTests_GenericMath:IsOddIntegerTest() (FullOpts)
         264 (3.56 % of base) : 271263.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<DictionaryOfString>d__29:MoveNext():this (FullOpts)
         264 (3.56 % of base) : 263175.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<DictionaryOfString>d__29:MoveNext():this (FullOpts)
         254 (3.55 % of base) : 257901.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:ObjWCtorMixedParamsSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.ObjWCtorMixedParams):this (FullOpts)
         249 (8.83 % of base) : 215950.dasm - System.Tests.DecimalTests_GenericMath:MinMagnitudeNumberTest() (FullOpts)
         249 (8.83 % of base) : 216006.dasm - System.Tests.DecimalTests_GenericMath:MinMagnitudeTest() (FullOpts)

Top method improvements (bytes):
        -164 (-2.84 % of base) : 63922.dasm - System.Xml.Schema.Compiler:CompileLocalAttributes(System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaObjectCollection,System.Xml.Schema.XmlSchemaAnyAttribute,int):this (FullOpts)
        -158 (-6.28 % of base) : 17672.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorDeclarationSyntax,int,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
        -139 (-7.97 % of base) : 158308.dasm - System.Net.Http.HttpConnection+ChunkedEncodingWriteStream+<<WriteAsync>g__WriteChunkAsync|4_0>d:MoveNext():this (FullOpts)
        -126 (-3.58 % of base) : 218836.dasm - System.Tests.StringTests:ZeroLengthTrim_Memory() (FullOpts)
        -126 (-3.58 % of base) : 199274.dasm - System.Tests.StringTests:ZeroLengthTrim_Memory() (FullOpts)
        -112 (-1.46 % of base) : 123347.dasm - System.Formats.Tar.Tests.TarWriter_WriteEntryAsync_Tests+<Write_TwoEntries_With_UnseekableDataStreams_Async>d__20:MoveNext():this (FullOpts)
        -109 (-2.89 % of base) : 284213.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex3472_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -104 (-2.95 % of base) : 134113.dasm - System.IO.Pipelines.Tests.ReadAsyncCancellationTests+<CancellingBeforeAdvance>d__1:MoveNext():this (FullOpts)
         -97 (-2.20 % of base) : 133833.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts+<HelloWorldAcrossTwoBlocks>d__11:MoveNext():this (FullOpts)
         -95 (-1.95 % of base) : 133825.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts+<ReaderShouldNotGetUnflushedBytesWhenOverflowingSegments>d__16:MoveNext():this (FullOpts)
         -94 (-3.14 % of base) : 133668.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest+<BufferSegmentsPooledUpToThreshold>d__5:MoveNext():this (FullOpts)
         -93 (-1.62 % of base) : 14599.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeParameterConstraints(Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterConstraintClauseSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterConstraintClause,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.TypeConstraintSyntax]]:this (FullOpts)
         -87 (-8.97 % of base) : 1983.dasm - System.Xml.XmlWellFormedWriter:AddAttribute(System.String,System.String,System.String):this (FullOpts)
         -86 (-1.87 % of base) : 147436.dasm - System.Management.PropertyData:MapValueToWmiValue(System.Object,int,ubyte):System.Object (FullOpts)
         -81 (-1.73 % of base) : 31537.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAsOperator(Microsoft.CodeAnalysis.CSharp.Syntax.BinaryExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
         -79 (-1.65 % of base) : 12905.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)
         -79 (-11.08 % of base) : 63210.dasm - System.Xml.Serialization.TypeScope:ShouldBeReplaced(System.Reflection.MemberInfo,System.Type,byref):ubyte (FullOpts)
         -73 (-2.88 % of base) : 39193.dasm - Castle.DynamicProxy.Generators.InvocationTypeGenerator:ImplementInvokeMethodOnTarget(Castle.DynamicProxy.Generators.Emitters.AbstractTypeEmitter,System.Reflection.ParameterInfo[],Castle.DynamicProxy.Generators.Emitters.MethodEmitter,Castle.DynamicProxy.Generators.Emitters.SimpleAST.Reference):this (FullOpts)
         -71 (-7.46 % of base) : 212130.dasm - System.Tests.GetCustomAttribute:PositiveTest8() (FullOpts)
         -69 (-2.94 % of base) : 207570.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)

Top method regressions (percentages):
          19 (59.38 % of base) : 147579.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
          17 (33.33 % of base) : 5376.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          30 (27.78 % of base) : 159030.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
          14 (27.45 % of base) : 49650.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          14 (27.45 % of base) : 43950.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
          45 (24.06 % of base) : 265673.dasm - System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (FullOpts)
          39 (21.55 % of base) : 149737.dasm - System.SpanTests.ReplaceTests`1+<>c__DisplayClass5_0[System.__Canon]:<ArgumentValidation_Copy>b__1():this (FullOpts)
          29 (20.14 % of base) : 22207.dasm - System.Xml.Linq.XElement:GetNamespaceOfPrefixInScope(System.String,System.Xml.Linq.XElement):System.String:this (FullOpts)
          20 (20.00 % of base) : 159018.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
          49 (19.52 % of base) : 21151.dasm - System.Net.Sockets.SocketAsyncEventArgs:<CompleteCore>g__CleanupIOCPResult|168_0():this (FullOpts)
          41 (18.81 % of base) : 134441.dasm - System.IO.Pipes.PipeStream+PipeValueTaskSource:ReleaseResources():this (FullOpts)
         240 (18.74 % of base) : 214490.dasm - System.Tests.TimeZoneInfoTests:GetAmbiguousTimeOffsets_LocalAmbiguousOffsets() (FullOpts)
          74 (18.00 % of base) : 219512.dasm - System.Tests.StringTests:IndexerUsingRangeTest() (FullOpts)
          74 (18.00 % of base) : 198999.dasm - System.Tests.StringTests:IndexerUsingRangeTest() (FullOpts)
          74 (18.00 % of base) : 218756.dasm - System.Tests.StringTests:SubstringUsingRangeTest() (FullOpts)
          74 (18.00 % of base) : 198213.dasm - System.Tests.StringTests:SubstringUsingRangeTest() (FullOpts)
          17 (17.00 % of base) : 159023.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
           6 (16.67 % of base) : 150679.dasm - System.SpanTests.SpanTests+<>c__DisplayClass651_0:<SliceIntRangeChecksd>b__5():this (FullOpts)
          39 (16.25 % of base) : 74734.dasm - System.Collections.Tests.StackTests+<>c:<Clone_IsShallowCopy>b__9_0(System.Collections.Stack):this (FullOpts)
          27 (15.08 % of base) : 228069.dasm - System.Security.Cryptography.Pkcs.SignerInfo:FindAttributeIndexByOid(System.Security.Cryptography.Asn1.AttributeAsn[],System.Security.Cryptography.Oid,int):int (FullOpts)

Top method improvements (percentages):
         -41 (-15.41 % of base) : 254405.dasm - System.Text.RegularExpressions.RegexCharClass:IsUnicodeCategoryOfSmallCharCount(System.String,byref,byref,byref):ubyte (FullOpts)
         -56 (-15.34 % of base) : 205015.dasm - System.Runtime.Serialization.XsdDataContractImporter:ImportAnnotation(System.Xml.Schema.XmlSchemaAnnotation,System.Xml.XmlQualifiedName):System.Xml.XmlElement (FullOpts)
         -56 (-15.22 % of base) : 204863.dasm - System.Runtime.Serialization.SchemaImporter:ImportAnnotation(System.Xml.Schema.XmlSchemaAnnotation,System.Xml.XmlQualifiedName):System.Xml.XmlElement (FullOpts)
         -28 (-15.14 % of base) : 236674.dasm - System.Security.Cryptography.Xml.Utils:HasNamespace(System.Xml.XmlElement,System.String,System.String):ubyte (FullOpts)
         -43 (-13.23 % of base) : 34472.dasm - System.Xml.XmlAttributeCollection:get_ItemOf(System.String,System.String):System.Xml.XmlAttribute:this (FullOpts)
         -30 (-13.10 % of base) : 277555.dasm - System.Text.RegularExpressions.RegexCharClass:IsUnicodeCategoryOfSmallCharCount(System.String,byref,byref,byref):ubyte (FullOpts)
          -9 (-12.86 % of base) : 278170.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
          -9 (-12.86 % of base) : 5628.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
         -43 (-12.65 % of base) : 179899.dasm - System.Xml.XmlAttributeCollection:FindNodeOffsetNS(System.Xml.XmlAttribute):int:this (FullOpts)
         -41 (-12.02 % of base) : 100401.dasm - System.Diagnostics.DiagnosticSourceEventSource+FilterAndTransform:Sample(System.String,System.String,System.Diagnostics.DiagnosticSourceEventSource):int (FullOpts)
         -40 (-11.80 % of base) : 100301.dasm - System.Diagnostics.ActivityLink:Equals(System.Object):ubyte:this (FullOpts)
         -32 (-11.19 % of base) : 94645.dasm - System.Xml.Schema.XmlSchemaSet:Schemas(System.String):System.Collections.ICollection:this (FullOpts)
         -36 (-11.18 % of base) : 100670.dasm - System.Diagnostics.Tests.ActivitySourceTests+<>c__DisplayClass9_1:<TestActivityCreationProperties>b__7(System.Diagnostics.ActivityLink):ubyte:this (FullOpts)
         -79 (-11.08 % of base) : 63210.dasm - System.Xml.Serialization.TypeScope:ShouldBeReplaced(System.Reflection.MemberInfo,System.Type,byref):ubyte (FullOpts)
         -28 (-11.02 % of base) : 94689.dasm - System.Data.DataSet:set_Prefix(System.String):this (FullOpts)
         -12 (-10.26 % of base) : 7971.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerManager:HasCustomTag(System.Collections.Immutable.ImmutableArray`1[System.String],System.String):ubyte (FullOpts)
         -24 (-10.17 % of base) : 11888.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitBinaryOperatorChildren(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
         -30 (-10.00 % of base) : 301300.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31902_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -30 (-10.00 % of base) : 301305.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31907_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -26 (-9.92 % of base) : 96331.dasm - System.Xml.XmlNamedNodeMap:FindNodeOffset(System.String,System.String):int:this (FullOpts)


realworld.run.windows.x86.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 11362130 (overridden on cmd)
Total bytes of diff: 11363410 (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):
         108 : 4504.dasm (57.75 % of base)
         102 : 34808.dasm (1.82 % of base)
          84 : 14676.dasm (1.21 % of base)
          64 : 1846.dasm (1.17 % of base)
          60 : 16268.dasm (1.92 % of base)
          60 : 5864.dasm (5.64 % of base)
          47 : 8700.dasm (4.95 % of base)
          40 : 9263.dasm (2.54 % of base)
          39 : 15257.dasm (3.69 % of base)
          37 : 28959.dasm (14.51 % of base)
          34 : 1547.dasm (4.61 % of base)
          30 : 27318.dasm (2.17 % of base)
          30 : 23979.dasm (0.98 % of base)
          28 : 20643.dasm (1.32 % of base)
          28 : 21202.dasm (0.57 % of base)
          25 : 25966.dasm (5.34 % of base)
          23 : 20360.dasm (1.12 % of base)
          22 : 7027.dasm (1.66 % of base)
          22 : 16339.dasm (1.94 % of base)
          21 : 14674.dasm (0.31 % of base)

Top file improvements (bytes):
         -41 : 20750.dasm (-0.96 % of base)
         -19 : 15564.dasm (-0.43 % of base)
         -13 : 1703.dasm (-0.57 % of base)
         -11 : 35758.dasm (-1.63 % of base)
         -11 : 14002.dasm (-1.52 % of base)
         -10 : 16421.dasm (-0.61 % of base)
         -10 : 33970.dasm (-0.73 % of base)
          -9 : 14749.dasm (-0.74 % of base)
          -9 : 34455.dasm (-0.43 % of base)
          -8 : 20587.dasm (-0.70 % of base)
          -8 : 3154.dasm (-0.26 % of base)
          -7 : 14315.dasm (-1.04 % of base)
          -7 : 35269.dasm (-0.03 % of base)
          -7 : 2181.dasm (-0.94 % of base)
          -7 : 283.dasm (-1.13 % of base)
          -6 : 1777.dasm (-0.91 % of base)
          -6 : 1848.dasm (-0.47 % of base)
          -6 : 19927.dasm (-1.10 % of base)
          -6 : 32211.dasm (-0.63 % of base)
          -6 : 18998.dasm (-0.41 % of base)

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

Top method regressions (bytes):
         108 (57.75 % of base) : 4504.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)
         102 (1.82 % of base) : 34808.dasm - Microsoft.ApplicationInsights.Metrics.MetricIdentifier:EnsureDimensionNamesValid(byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,byref) (FullOpts)
          84 (1.21 % of base) : 14676.dasm - SixLabors.ImageSharp.Advanced.ParallelRowIterator+RowOperationWrapper`2[SixLabors.ImageSharp.Processing.Processors.Convolution.Convolution2PassProcessor`1+HorizontalConvolutionRowOperation[SixLabors.ImageSharp.PixelFormats.Rgba32],System.Numerics.Vector4]:Invoke(int):this (FullOpts)
          64 (1.17 % of base) : 1846.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (FullOpts)
          60 (5.64 % of base) : 5864.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
          60 (1.92 % of base) : 16268.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)
          47 (4.95 % of base) : 8700.dasm - FSharp.Compiler.NameResolution:AddResults[System.__Canon](Internal.Utilities.Library.ResultOrException`1[System.__Canon],Internal.Utilities.Library.ResultOrException`1[System.__Canon]):Internal.Utilities.Library.ResultOrException`1[System.__Canon] (FullOpts)
          40 (2.54 % of base) : 9263.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)
          39 (3.69 % of base) : 15257.dasm - Microsoft.ML.SchemaShape:Create(Microsoft.ML.DataViewSchema):Microsoft.ML.SchemaShape (FullOpts)
          37 (14.51 % of base) : 28959.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          34 (4.61 % of base) : 1547.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
          30 (2.17 % of base) : 27318.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
          30 (0.98 % of base) : 23979.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
          28 (0.57 % of base) : 21202.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
          28 (1.32 % of base) : 20643.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (FullOpts)
          25 (5.34 % of base) : 25966.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          23 (1.12 % of base) : 20360.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)
          22 (1.66 % of base) : 7027.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.94 % of base) : 16339.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)
          21 (0.31 % of base) : 14674.dasm - SixLabors.ImageSharp.Advanced.ParallelRowIterator:IterateRows[SixLabors.ImageSharp.Processing.Processors.Convolution.Convolution2PassProcessor`1+HorizontalConvolutionRowOperation[SixLabors.ImageSharp.PixelFormats.Rgba32],System.Numerics.Vector4](SixLabors.ImageSharp.Rectangle,byref,byref) (FullOpts)

Top method improvements (bytes):
         -41 (-0.96 % of base) : 20750.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (FullOpts)
         -19 (-0.43 % of base) : 15564.dasm - Microsoft.ML.Transforms.Text.NgramExtractingTransformer:Train(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Transforms.Text.NgramExtractingEstimator+ColumnOptions[],System.Collections.Immutable.ImmutableArray`1[Microsoft.ML.Transforms.Text.NgramExtractingTransformer+TransformInfo],Microsoft.ML.IDataView,byref):Microsoft.ML.Internal.Utilities.SequencePool[] (FullOpts)
         -13 (-0.57 % of base) : 1703.dasm - System.Uri:GetCanonicalPath(byref,int):this (FullOpts)
         -11 (-1.52 % of base) : 14002.dasm - System.Collections.Generic.Dictionary`2[ubyte,System.__Canon]:TryInsert(ubyte,System.__Canon,ubyte):ubyte:this (FullOpts)
         -11 (-1.63 % of base) : 35758.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (FullOpts)
         -10 (-0.61 % of base) : 16421.dasm - Microsoft.ML.Data.MetricWriter:GetConfusionMatrix(Microsoft.ML.Runtime.IHost,Microsoft.ML.IDataView,ubyte,int,ubyte):Microsoft.ML.Data.ConfusionMatrix (FullOpts)
         -10 (-0.73 % of base) : 33970.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)
          -9 (-0.43 % of base) : 34455.dasm - System.Linq.Expressions.Expression:Switch(System.Type,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo,System.Collections.Generic.IEnumerable`1[System.Linq.Expressions.SwitchCase]):System.Linq.Expressions.SwitchExpression (FullOpts)
          -9 (-0.74 % of base) : 14749.dasm - System.Threading.ManualResetEventSlim:Wait(int,System.Threading.CancellationToken):ubyte:this (FullOpts)
          -8 (-0.26 % of base) : 3154.dasm - FSharp.Compiler.CompilerImports:TcConfig.TryResolveLibsUsingMSBuildRules.Static(FSharp.Compiler.CompilerConfig+TcConfig,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+AssemblyReference],FSharp.Compiler.Text.Range,FSharp.Compiler.CompilerImports+ResolveAssemblyReferenceMode):System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+UnresolvedAssemblyReference]] (FullOpts)
          -8 (-0.70 % of base) : 20587.dasm - Microsoft.CodeAnalysis.PEModule:GetTypeNamespaceNamesOrThrow(System.Collections.Generic.Dictionary`2[System.String,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.Reflection.Metadata.TypeDefinitionHandle]]):this (FullOpts)
          -7 (-0.03 % of base) : 35269.dasm - Microsoft.PowerShell.Commands.ModuleCmdletBase:LoadModuleManifest(System.String,System.Management.Automation.ExternalScriptInfo,System.Collections.Hashtable,System.Collections.Hashtable,int,System.Version,System.Version,System.Version,System.Nullable`1[System.Guid],byref,byref):System.Management.Automation.PSModuleInfo:this (FullOpts)
          -7 (-1.04 % of base) : 14315.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:BuildLength(System.ReadOnlySpan`1[int]):this (FullOpts)
          -7 (-0.94 % of base) : 2181.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:TryInsert(int,ubyte,ubyte):ubyte:this (FullOpts)
          -7 (-1.13 % of base) : 283.dasm - System.Reflection.TypeNameParser:GetType(System.String,System.ReadOnlySpan`1[System.String],System.String):System.Type:this (FullOpts)
          -6 (-0.41 % of base) : 18998.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddSkippedSyntax(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken,Microsoft.CodeAnalysis.GreenNode,ubyte):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
          -6 (-1.10 % of base) : 19927.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,uint]:System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.CopyTo(System.Collections.Generic.KeyValuePair`2[System.__Canon,uint][],int):this (FullOpts)
          -6 (-0.63 % of base) : 32211.dasm - System.Linq.Expressions.Expression:ValidateLambdaArgs(System.Type,byref,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.ParameterExpression],System.String) (FullOpts)
          -6 (-0.91 % of base) : 1777.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this (FullOpts)
          -6 (-0.47 % of base) : 1848.dasm - System.Xml.XmlTextReaderImpl:ParseQName(ubyte,int,byref):int:this (FullOpts)

Top method regressions (percentages):
         108 (57.75 % of base) : 4504.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)
          18 (32.73 % of base) : 10043.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
          37 (14.51 % of base) : 28959.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          14 (10.94 % of base) : 25019.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
          14 (10.69 % of base) : 26027.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
          14 (9.86 % of base) : 26886.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)
          14 (6.60 % of base) : 17033.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
          10 (6.13 % of base) : 4790.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
          60 (5.64 % of base) : 5864.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
           5 (5.43 % of base) : 23998.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AttributeDataExtensions:DecodeNotNullIfNotNullAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.String (FullOpts)
          25 (5.34 % of base) : 25966.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
          47 (4.95 % of base) : 8700.dasm - FSharp.Compiler.NameResolution:AddResults[System.__Canon](Internal.Utilities.Library.ResultOrException`1[System.__Canon],Internal.Utilities.Library.ResultOrException`1[System.__Canon]):Internal.Utilities.Library.ResultOrException`1[System.__Canon] (FullOpts)
           6 (4.92 % of base) : 30238.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)
           5 (4.72 % of base) : 23825.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:DecodeMaybeNullWhenOrNotNullWhenOrDoesNotReturnIfAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.Nullable`1[ubyte] (FullOpts)
          34 (4.61 % of base) : 1547.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
          18 (4.29 % of base) : 32462.dasm - Microsoft.PowerShell.Commands.RegistryProvider:GetHiveRoot(System.String):Microsoft.PowerShell.Commands.IRegistryWrapper:this (FullOpts)
           7 (4.19 % of base) : 22256.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.01 % of base) : 34079.dasm - System.Management.Automation.PSMethod:GetMethodGroupType(System.Reflection.MethodInfo):System.Type (FullOpts)
          14 (3.94 % of base) : 21511.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeAttributeUsageAttribute(Microsoft.CodeAnalysis.TypedConstant,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[System.String,Microsoft.CodeAnalysis.TypedConstant]]):Microsoft.CodeAnalysis.AttributeUsageInfo (FullOpts)
          39 (3.69 % of base) : 15257.dasm - Microsoft.ML.SchemaShape:Create(Microsoft.ML.DataViewSchema):Microsoft.ML.SchemaShape (FullOpts)

Top method improvements (percentages):
          -4 (-2.06 % of base) : 5655.dasm - FSharp.Compiler.CompilerImports:OpenILBinary(System.String,FSharp.Compiler.AbstractIL.ILBinaryReader+ReduceMemoryFlag,Microsoft.FSharp.Core.FSharpOption`1[System.String],ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`2[System.String,System.DateTime],Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`3[System.Object,int,int]]]):FSharp.Compiler.AbstractIL.ILBinaryReader+ILModuleReader (FullOpts)
          -2 (-1.90 % of base) : 101.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.90 % of base) : 20013.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.89 % of base) : 3117.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.82 % of base) : 15348.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.75 % of base) : 207.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.68 % of base) : 4540.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.65 % of base) : 25873.dasm - System.Collections.Generic.HashSet`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:MoveNext():ubyte:this (FullOpts)
         -11 (-1.63 % of base) : 35758.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (FullOpts)
         -11 (-1.52 % of base) : 14002.dasm - System.Collections.Generic.Dictionary`2[ubyte,System.__Canon]:TryInsert(ubyte,System.__Canon,ubyte):ubyte:this (FullOpts)
          -2 (-1.33 % of base) : 26590.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:IsReceiverRefReadOnly(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
          -2 (-1.31 % of base) : 35063.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
          -7 (-1.13 % of base) : 283.dasm - System.Reflection.TypeNameParser:GetType(System.String,System.ReadOnlySpan`1[System.String],System.String):System.Type:this (FullOpts)
          -2 (-1.12 % of base) : 26969.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -6 (-1.10 % of base) : 19927.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,uint]:System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.CopyTo(System.Collections.Generic.KeyValuePair`2[System.__Canon,uint][],int):this (FullOpts)
          -7 (-1.04 % of base) : 14315.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:BuildLength(System.ReadOnlySpan`1[int]):this (FullOpts)
         -41 (-0.96 % of base) : 20750.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (FullOpts)
          -7 (-0.94 % of base) : 2181.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:TryInsert(int,ubyte,ubyte):ubyte:this (FullOpts)
          -6 (-0.91 % of base) : 1777.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this (FullOpts)
          -2 (-0.79 % of base) : 7402.dasm - FSharp.Compiler.CompilerConfig:GetWarningNumber(FSharp.Compiler.Text.Range,System.String):Microsoft.FSharp.Core.FSharpOption`1[int] (FullOpts)